/* ui/window.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_UI_WINDOW_H__ #define __INCLUDED_UI_WINDOW_H__ #include "ui/widget.h" namespace ui { /// a user interface window class Window : public Widget { public: Window(Widget *parent = 0); ~Window(); /** * @brief show the window and set input focus * show() sets focus on the window and all of its parents * The window will emit an EventWindowShow **/ virtual void show(); /** * @brief hide the window * The window will emit an EventWindowHide **/ virtual void hide(); /// set the label of the previous window // FIXME should be removed void set_previous(Window *previous); /// clear the label of the previous window // FIXME should be removed void clear_previous(); inline const std::string &previous() const { return window_previous; } protected: virtual void draw_background(); virtual void draw_border(); // FIXME should be removed std::string window_previous; }; } #endif // __INCLUDED_UI_WINDOW_H__