/*===================================================================== APM_PLANNER Open Source Ground Control Station (c) 2013, Bill Bonney This file is part of the APM_PLANNER project APM_PLANNER is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. APM_PLANNER is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with APM_PLANNER. If not, see . ======================================================================*/ /** * @file * @brief Text Console. * * @author Bill Bonney * * Influenced from Qt examples by :- * Copyright (C) 2012 Denis Shienkov * Copyright (C) 2012 Laszlo Papp * */ #ifndef CONSOLE_H #define CONSOLE_H #include class APMHighlighter; class Console : public QPlainTextEdit { Q_OBJECT signals: void getData(const QByteArray &data); public: explicit Console(QWidget *parent = 0); void putData(const QByteArray &data); void setLocalEchoEnabled(bool set); protected: virtual void keyPressEvent(QKeyEvent *e); virtual void mousePressEvent(QMouseEvent *e); virtual void mouseDoubleClickEvent(QMouseEvent *e); virtual void contextMenuEvent(QContextMenuEvent *e); private: bool localEchoEnabled; APMHighlighter* m_highlighter; }; #endif // CONSOLE_H