/* 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 { class Window : public Widget { public: Window(Window *parent=0); ~Window(); virtual void draw_border(); /// set the label of the previous window void set_previous(Window *previous); /// clear the label of the previous window void clear_previous(); inline std::string const &previous() const { return window_previous; } protected: typedef std::list Windows; Windows window_children; Windows::iterator find_window(Window *window); virtual void add_window(Window *window); virtual void remove_window(Window *window); /// label of the previous window that got activated /** This label is used to implement the 'menu previous' * command */ std::string window_previous; }; } #endif // __INCLUDED_UI_WINDOW_H__