From cb17c3035bbd80bd8ea6718bae4c57cfb2555653 Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Thu, 15 Jun 2017 23:20:00 +0200 Subject: Initial monitor GUI Basic monitor functionality, GTK-3.0 and QT5 backends --- src/gui_main.hh | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/gui_main.hh (limited to 'src/gui_main.hh') diff --git a/src/gui_main.hh b/src/gui_main.hh new file mode 100644 index 0000000..af35106 --- /dev/null +++ b/src/gui_main.hh @@ -0,0 +1,66 @@ +// -*- mode: c++; c-basic-offset: 2; -*- + +#ifndef GUI_MAIN_HH +#define GUI_MAIN_HH + +#include +#include +#include + +#include "gui_attrtext.hh" +#include "gui_window.hh" + +class GuiListModel; +class GuiMenu; +class GuiStatusBar; +class Looper; + +class GuiMain : public GuiWindow { +public: + class Listener : public GuiWindow::Listener { + public: + virtual ~Listener() {} + + virtual bool about_to_exit(GuiMain* main) = 0; + virtual void selected_row(GuiMain* main, size_t index) = 0; + virtual void lost_selection(GuiMain* main) = 0; + + protected: + Listener() {} + }; + + static GuiMain* create(std::string const& title, + uint32_t width, uint32_t height); + static Looper* createLooper(); + + virtual void set_menu(GuiMenu* menu) = 0; + virtual GuiMenu* menu() const = 0; + + virtual void set_statusbar(GuiStatusBar* statusbar) = 0; + virtual GuiStatusBar* statusbar() const = 0; + + virtual void set_split(double split) = 0; + virtual double split() const = 0; + + virtual void set_listmodel(GuiListModel* model) = 0; + virtual GuiListModel* listmodel() const = 0; + + virtual void set_package(std::unique_ptr&& data) = 0; + + virtual bool run(int argc, char** argv) = 0; + + virtual bool exit() = 0; + + virtual void show(GuiWindow* window) = 0; + + virtual void add_listener(Listener* listener) = 0; + virtual void remove_listener(Listener* listener) = 0; + + virtual void add_to_clipboard(std::string const& data, + std::string const& mimetype = "") = 0; + +protected: + GuiMain() {} +}; + +#endif // GUI_MAIN_HH -- cgit v1.2.3-70-g09d2