Mercurial > octave-nkf
comparison libgui/qterminal/libqterminal/QTerminal.h @ 16639:ba808cd9d86c
simplify QTerminal inheritance scheme
* Qterminal.h, Qterminal.cc: Merge QTerminalInterface class into
QTerminal.
(QTerminal::create): New function.
(QTerminal::Qterminal): Now protected.
* QUnixTerminal.h, QUnixTerminal.cpp, QWinTerminal.h,
QWinTerminal.cpp: Derive from QTerminal, not QTerminalInterface.
* QTerminalInterface.h: Delete.
* libgui/qterminal-module.mk: Update file lists.
* terminal-dock-widget.cc
(terminal_dock_widget::terminal_dock_widget): Use QTerminal::create to
create terminal object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Sun, 12 May 2013 15:23:14 -0400 |
parents | d5ae5aa80d42 |
children | 64f9a3e301d3 |
comparison
equal
deleted
inserted
replaced
16638:3c2e457eeb72 | 16639:ba808cd9d86c |
---|---|
23 #ifndef QTERMINAL_H | 23 #ifndef QTERMINAL_H |
24 #define QTERMINAL_H | 24 #define QTERMINAL_H |
25 | 25 |
26 #include <QSettings> | 26 #include <QSettings> |
27 #include <QtGlobal> | 27 #include <QtGlobal> |
28 #include <QWidget> | |
29 #include <QColor> | |
30 #include <QMenu> | |
28 | 31 |
29 #ifdef Q_OS_WIN32 | 32 class QTerminal : public QWidget |
30 #include "win32/QWinTerminalImpl.h" | 33 { |
31 class QTerminal : public QWinTerminalImpl | 34 Q_OBJECT |
35 | |
36 public: | |
37 | |
38 static QTerminal *create (QWidget *xparent = 0); | |
39 | |
40 virtual ~QTerminal (void) { } | |
41 | |
42 virtual void setTerminalFont(const QFont& font) = 0; | |
43 | |
44 virtual void setSize(int h, int v) = 0; | |
45 | |
46 virtual void sendText(const QString& text) = 0; | |
47 | |
48 enum CursorType | |
32 { | 49 { |
33 Q_OBJECT | 50 UnderlineCursor, |
34 public: | 51 BlockCursor, |
35 QTerminal(QWidget *xparent = 0) | 52 IBeamCursor |
36 : QWinTerminalImpl(xparent) { } | 53 }; |
37 ~QTerminal() { } | |
38 | 54 |
39 public slots: | 55 virtual void setCursorType (CursorType type, bool blinking) |
40 void notice_settings (const QSettings *settings); | 56 { |
41 }; | 57 // Provide empty default impl in order to avoid conflicts with the |
42 #else | 58 // win impl. |
43 #include "unix/QUnixTerminalImpl.h" | |
44 class QTerminal : public QUnixTerminalImpl | |
45 { | |
46 Q_OBJECT | |
47 public: | |
48 QTerminal(QWidget *xparent = 0) | |
49 : QUnixTerminalImpl(xparent) { } | |
50 ~QTerminal() { } | |
51 | 59 |
52 public slots: | 60 Q_UNUSED (type); |
53 void notice_settings (const QSettings *settings); | 61 Q_UNUSED (blinking); |
54 }; | 62 } |
55 #endif | 63 |
64 virtual void setBackgroundColor (const QColor& color) = 0; | |
65 | |
66 virtual void setForegroundColor (const QColor& color) = 0; | |
67 | |
68 virtual void setSelectionColor (const QColor& color) = 0; | |
69 | |
70 virtual void setCursorColor (bool useForegroundColor, | |
71 const QColor& color) = 0; | |
72 | |
73 public slots: | |
74 | |
75 virtual void copyClipboard (void) = 0; | |
76 | |
77 virtual void pasteClipboard (void) = 0; | |
78 | |
79 virtual void handleCustomContextMenuRequested (const QPoint& at) | |
80 { | |
81 _contextMenu->move (mapToGlobal (at)); | |
82 _contextMenu->show (); | |
83 } | |
84 | |
85 void notice_settings (const QSettings *settings); | |
86 | |
87 protected: | |
88 | |
89 QTerminal (QWidget *xparent = 0) : QWidget (xparent) | |
90 { | |
91 connect (this, SIGNAL (customContextMenuRequested (QPoint)), | |
92 this, SLOT (handleCustomContextMenuRequested (QPoint))); | |
93 | |
94 setContextMenuPolicy (Qt::CustomContextMenu); | |
95 | |
96 _contextMenu = new QMenu (this); | |
97 | |
98 QAction *copyAction = _contextMenu->addAction ("Copy"); | |
99 QAction *pasteAction = _contextMenu->addAction ("Paste"); | |
100 | |
101 connect (copyAction, SIGNAL (triggered()), this, SLOT (copyClipboard())); | |
102 connect (pasteAction, SIGNAL (triggered()), this, SLOT (pasteClipboard())); | |
103 } | |
104 | |
105 private: | |
106 | |
107 QMenu *_contextMenu; | |
108 }; | |
56 | 109 |
57 #endif // QTERMINAL_H | 110 #endif // QTERMINAL_H |