Mercurial > jwe > qt-gui-with-push-parser
view gui-main.h @ 8:7c4b04a6346d
clean up include files in gui-main.h
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 23 May 2019 11:26:44 -0400 |
parents | 04867eba6428 |
children | 822a2fe5bb51 |
line wrap: on
line source
#if ! defined (calc_gui_main_h) #define calc_gui_main_h 1 #include <string> #include <QTextDocument> #include <QTextEdit> #include "qt-interpreter.h" namespace gui { class command_window : public QTextEdit { Q_OBJECT public: command_window (QWidget *p = nullptr); virtual ~command_window (void) = default; // Accept an input line, parse and possibly execute it. void accept_line (const std::string& line); // Redisplay current command line. void insert_at_end (const std::string& text); void emit_error (const std::string& msg); void emit_result (double value); signals: void input_char_available (int key); void accept_line_signal (const QString& line); void redisplay_signal (void); public slots: void handle_input_char (int key); void handle_error (const QString& msg); void handle_result (double value); void redisplay (void); protected: void keyPressEvent (QKeyEvent *event); int do_arrow_key (int arrow_key); // Retrieve a command from the history list and insert it on the // current command. void history (bool up); void erase_line (void); void insert_at_cursor (const std::string& text); void insert_line (const std::string& prompt, const std::string& line); int set_mark (void); void insert_result (double value); void scroll_to_bottom (void); // Child widgets: QTextDocument *m_buffer; calc::qt_interpreter *m_interpreter; int beg_mark; int prompt_mark; }; extern int main (int argc, char **argv); } #endif