// -*- mode: c++; c-basic-offset: 2; -*- #ifndef GUI_TEXTWND_HH #define GUI_TEXTWND_HH #include #include #include "gui_window.hh" class AttributedText; class GuiTextWindow : public GuiWindow { public: class Listener : public GuiWindow::Listener { public: virtual ~Listener() {} virtual bool about_to_close(GuiTextWindow* wnd) = 0; protected: Listener() {} }; static GuiTextWindow* create(std::string const& title, uint32_t width, uint32_t height, AttributedText const* text = nullptr); virtual void set_text(AttributedText const* text) = 0; virtual void set_text(std::unique_ptr&& text) = 0; virtual AttributedText const* text() const = 0; virtual void add_listener(Listener* listener) = 0; virtual void remove_listener(Listener* listener) = 0; virtual void show(GuiWindow* parent) = 0; virtual void focus() = 0; protected: GuiTextWindow() {} }; #endif // GUI_TEXTWND_HH