From da9beb729c58ca2d91f67ab85a6728b628c27cf2 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sun, 5 Oct 2008 19:03:25 +0000 Subject: user interface library --- src/ui/ui.h | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 src/ui/ui.h (limited to 'src/ui/ui.h') diff --git a/src/ui/ui.h b/src/ui/ui.h new file mode 100644 index 0000000..c516d47 --- /dev/null +++ b/src/ui/ui.h @@ -0,0 +1,57 @@ +/* + ui/ui.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_H__ +#define __INCLUDED_UI_H__ + +#include "ui/palette.h" +#include "ui/widget.h" +#include "ui/window.h" + +namespace ui { + +class UI : public Window { +public: + /// constructor + UI(); + + /// destructor + ~UI(); + + /// list widgets + void list(); + + /// make a window the active window + void show_window(char const *label); + + /// hide the active window + void hide_window(); + + /// return the active window + Window *active() { return ui_active_window; } + +protected: + virtual void add_window(Window *window); + virtual void remove_window(Window *window); + +private: + Window *ui_active_window; +}; + +/// initialize the user interface +void init(); + +/// shutdown the user interface +void shutdown(); + +void frame(); + +/// the global root window +UI *root(); + +} + +#endif // __INCLUDED_UI_H__ -- cgit v1.2.3