diff options
author | Stijn Buys <ingar@osirion.org> | 2008-10-21 19:00:39 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-10-21 19:00:39 +0000 |
commit | d79c0223315beaf55fcd10d6891675c4d57b5e2b (patch) | |
tree | 3ea902634192dfcffa21a4e7a8cd28da714f0daa /src/ui/console.h | |
parent | 9f2e49593639a9f1f3e5f4f7b690ff364afefd56 (diff) |
moved client console into libui
Diffstat (limited to 'src/ui/console.h')
-rw-r--r-- | src/ui/console.h | 73 |
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__ |