Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/ui/ui.h
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-10-05 19:03:25 +0000
committerStijn Buys <ingar@osirion.org>2008-10-05 19:03:25 +0000
commitda9beb729c58ca2d91f67ab85a6728b628c27cf2 (patch)
tree96fd5df00a2431f40f515aa9fdf722377a0b6079 /src/ui/ui.h
parent381c729e777b50771626703e60b422aafc791513 (diff)
user interface library
Diffstat (limited to 'src/ui/ui.h')
-rw-r--r--src/ui/ui.h57
1 files changed, 57 insertions, 0 deletions
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__