From d79c0223315beaf55fcd10d6891675c4d57b5e2b Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Tue, 21 Oct 2008 19:00:39 +0000 Subject: moved client console into libui --- src/ui/console.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/ui/console.h (limited to 'src/ui/console.h') 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__ -- cgit v1.2.3