Mercurial > hg > octave-lyh
annotate gui/src/terminal/win32/QConsole.h @ 13869:d80086a9880e gui
Initial implementation of a Qt Win32 terminal widget.
* src/AbstractTerminalView.h, src/AbstractTerminalView.cpp,
src/terminal/win32/QConsole.h, src/terminal/win32/QConsole.cpp,
src/terminal/win32/QConsole, src/terminal/win32/QConsoleColors.h,
src/terminal/win32/QConsoleColors.cpp, src/WinTerminalView/h,
src/WinTerminalView.cpp: New files.
* octave-gui.pro (win32-msvc*:CONFIG): Remove console.
(SOURCES): Remove src/terminal/TerminalEmulation.cpp, src/TerminalView.cpp,
src/TerminalHighlighter.cpp.
(unix:SOURCES): Move here.
(SOURCES): Add AbstractItemView.cpp.
(win32:SOURCES): New clause.
(HEADERS): Remove src/terminal/TerminalEmulation.h, src/TerminalView.h,
src/TerminalHighlighter.h.
(unix:HEADERS): Move here.
(win32:HEADERS): New clause.
(win32:INCLUDEPATH): Likewise.
* src/FileEditorMdiSubWindow.h (AbstractTerminalView.h): New include.
(FileEditorMdiSubWindow::initEditor): Change first argument to
AbstractTerminalView*.
(FileEditorMdiSubWindow::m_terminalView): New member.
(FileEditorMdiSubWindow::m_terminalEmulation): Remove member.
* src/FileEditorMdiSubWindow.cpp (FileEditorMdiSubWindow::runFile): Call
AbstractTerminalView::sendText.
(FileEditorMdiSubWindow::initEditor): Change first argument to
AbstractTerminalView* and store into m_terminalView.
* src/MainWindow.h (AbstractTerminalView.h): New include, replacing
TerminalView.h.
(MainWindow::m_terminalView): Change member type to AbstractTerminalView*.
(MainWindow::terminalView): Change return type to AbstractTerminalView*.
* src/MainWindow.cpp (MainWindow::openEditorFile): Change first argument of
FileEditorMdiSubWindow::initEditor call to AbstractTerminalView*.
(MainWindow::handleSaveWorkspaceRequest,
MainWindow::handleLoadWorkspaceRequest,
MainWindow::handleClearWorkspaceRequest,
MainWindow::handleCommandDoubleClicked): Call AbstractTerminalView::widget to
get the terminal widget.
(MainWindow::construct): Likewise + call AbstractTerminalView::create to
create the terminal widget.
* src/TerminalView.h (class TerminalView): Inherit from AbstractTerminalView.
(TerminalView::sendText): Change argument to const reference.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Wed, 16 Nov 2011 18:51:04 +0000 |
parents | |
children | b09321ab8464 |
rev | line source |
---|---|
13869
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
1 /* |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
2 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
3 Copyright (C) 2011 Michael Goffioul. |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
4 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
5 This file is part of QConsole. |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
6 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
7 Foobar is free software: you can redistribute it and/or modify |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
8 it under the terms of the GNU General Public License as published by |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
10 (at your option) any later version. |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
11 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
12 QConsole is distributed in the hope that it will be useful, |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
15 GNU General Public License for more details. |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
16 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
18 along with Foobar. If not, see <http://www.gnu.org/licenses/>. |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
19 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
20 */ |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
21 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
22 #ifndef __QConsole_h__ |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
23 #define __QConsole_h__ 1 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
24 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
25 #include <QWidget> |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
26 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
27 class QFocusEvent; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
28 class QKeyEvent; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
29 class QPaintEvent; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
30 class QResizeEvent; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
31 class QWheelEvent; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
32 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
33 class QConsolePrivate; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
34 class QConsoleThread; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
35 class QConsoleView; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
36 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
37 ////////////////////////////////////////////////////////////////////////////// |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
38 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
39 class QConsole : public QWidget |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
40 { |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
41 Q_OBJECT |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
42 friend class QConsolePrivate; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
43 friend class QConsoleThread; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
44 friend class QConsoleView; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
45 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
46 public: |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
47 QConsole (QWidget* parent = 0); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
48 QConsole (const QString& cmd, QWidget* parent = 0); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
49 ~QConsole (void); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
50 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
51 signals: |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
52 void terminated (void); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
53 void titleChanged (const QString&); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
54 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
55 protected: |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
56 void viewPaintEvent (QConsoleView*, QPaintEvent*); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
57 void viewResizeEvent (QConsoleView*, QResizeEvent*); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
58 void wheelEvent (QWheelEvent*); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
59 void focusInEvent (QFocusEvent*); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
60 bool winEvent (MSG*, long*); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
61 virtual void start (void); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
62 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
63 private slots: |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
64 void scrollValueChanged (int value); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
65 void monitorConsole (void); |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
66 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
67 private: |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
68 QConsolePrivate* d; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
69 }; |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
70 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
71 ////////////////////////////////////////////////////////////////////////////// |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
72 |
d80086a9880e
Initial implementation of a Qt Win32 terminal widget.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
diff
changeset
|
73 #endif // __QConsole_h__ |