aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/experimental/lumina-terminal/TerminalWidget.h
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/experimental/lumina-terminal/TerminalWidget.h')
-rw-r--r--src-qt5/experimental/lumina-terminal/TerminalWidget.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src-qt5/experimental/lumina-terminal/TerminalWidget.h b/src-qt5/experimental/lumina-terminal/TerminalWidget.h
new file mode 100644
index 00000000..616919c3
--- /dev/null
+++ b/src-qt5/experimental/lumina-terminal/TerminalWidget.h
@@ -0,0 +1,73 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2015, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#ifndef _LUMINA_DESKTOP_UTILITIES_TERMINAL_PROCESS_WIDGET_H
+#define _LUMINA_DESKTOP_UTILITIES_TERMINAL_PROCESS_WIDGET_H
+
+#include <QTextEdit>
+#include <QKeyEvent>
+#include <QResizeEvent>
+#include <QSocketNotifier>
+#include <QTimer>
+#include <QMenu>
+#include <QClipboard>
+
+#include "TtyProcess.h"
+
+class TerminalWidget : public QTextEdit{
+ Q_OBJECT
+public:
+ TerminalWidget(QWidget *parent =0, QString dir="");
+ ~TerminalWidget();
+
+ void setTerminalFont(QFont);
+ void aboutToClose();
+
+private:
+ TTYProcess *PROC;
+ QTimer *resizeTimer;
+ QTextCharFormat DEFFMT, CFMT; //default/current text format
+ QTextCursor selCursor, lastCursor;
+ QMenu *contextMenu;
+ QAction *copyA, *pasteA;
+ int selectionStart;
+ bool closing;
+
+ //Incoming Data parsing
+ void InsertText(QString);
+ void applyData(QByteArray data); //overall data parsing
+ void applyANSI(QByteArray code); //individual code application
+ void applyANSIColor(int code); //Add the designated color code to the CFMT structure
+
+ //Outgoing Data parsing
+ void sendKeyPress(int key);
+
+ //Special incoming data flags
+ int startrow, endrow; //indexes for the first/last row ("\x1b[A;Br" CC)
+ bool altkeypad;
+private slots:
+ void UpdateText();
+ void ShellClosed();
+
+ void copySelection();
+ void pasteSelection();
+
+ void updateTermSize();
+
+signals:
+ void ProcessClosed(QString);
+
+protected:
+ void keyPressEvent(QKeyEvent *ev);
+ void mousePressEvent(QMouseEvent *ev);
+ void mouseMoveEvent(QMouseEvent *ev);
+ void mouseReleaseEvent(QMouseEvent *ev);
+ void mouseDoubleClickEvent(QMouseEvent *ev);
+ //void contextMenuEvent(QContextMenuEvent *ev);
+ void resizeEvent(QResizeEvent *ev);
+};
+
+#endif
bgstack15