Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-10-21 19:00:39 +0000
committerStijn Buys <ingar@osirion.org>2008-10-21 19:00:39 +0000
commitd79c0223315beaf55fcd10d6891675c4d57b5e2b (patch)
tree3ea902634192dfcffa21a4e7a8cd28da714f0daa /src/ui/console.h
parent9f2e49593639a9f1f3e5f4f7b690ff364afefd56 (diff)
moved client console into libui
Diffstat (limited to 'src/ui/console.h')
-rw-r--r--src/ui/console.h73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/ui/console.h b/src/ui/console.h
new file mode 100644
index 0000000..2cec72e
--- /dev/null
+++ b/src/ui/console.h
@@ -0,0 +1,73 @@
+/*
+ ui/console.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_CONSOLE_H__
+#define __INCLUDED_UI_CONSOLE_H__
+
+#include "sys/consoleinterface.h"
+#include "ui/inputbox.h"
+#include "ui/scrollpane.h"
+#include "ui/window.h"
+
+namespace ui {
+
+/* -- class ConsoleBuffer ------------------------------------------ */
+
+/// client console buffer
+/** stores incoming console messages
+ */
+class ConsoleBuffer : public sys::ConsoleInterface {
+public:
+ ConsoleBuffer();
+ virtual ~ConsoleBuffer();
+};
+
+/* -- class Console ------------------------------------------------ */
+
+/// client system console widget
+class Console : public Window {
+public:
+ Console(Widget *parent);
+ virtual ~Console();
+
+ /// load input history
+ void load_history();
+
+ /// save input history
+ void save_history();
+
+ /// show console
+ virtual void show();
+
+ /// hide console
+ virtual void hide();
+
+ void toggle();
+
+protected:
+
+ /// draw the client console
+ virtual void draw();
+
+ /// handle keypress events
+ virtual bool on_keypress(const int key, const unsigned int modifier);
+
+private:
+ // input history
+ Text history;
+ Text::reverse_iterator history_pos;
+
+ // console widget
+ InputBox *console_input;
+ ScrollPane *console_scrollpane;
+
+ // console buffer
+ static ConsoleBuffer con_buffer;
+};
+
+}
+
+#endif // __INCLUDED_UI_CONSOLE_H__