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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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__