Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/dedicated/console.h')
-rw-r--r--src/dedicated/console.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/src/dedicated/console.h b/src/dedicated/console.h
new file mode 100644
index 0000000..13db3fc
--- /dev/null
+++ b/src/dedicated/console.h
@@ -0,0 +1,66 @@
+/*
+ server/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_SERVER_CONSOLE_H__
+#define __INCLUDED_SERVER_CONSOLE_H__
+
+#include "sys/consoleinterface.h"
+
+namespace server {
+
+class Console : public sys::ConsoleInterface {
+public:
+ Console();
+ ~Console();
+
+ /// initialize the server console
+ static void init();
+ /// shutdown the server console
+ static void shutdown();
+
+#ifdef HAVE_CURSES
+ /// resize the console
+ virtual void resize();
+ /// run one console frame
+ void frame();
+
+protected:
+ /// draw the ncurses console
+ void draw();
+ /// clear and draw background (ncurses)
+ void draw_background();
+ /// draw status
+ void draw_status();
+ /// draw the console text (ncurses)
+ void draw_text();
+ /// draw the console input (ncurses)
+ void draw_input();
+ /// dump console content to cout
+ void dump();
+ /// print one line of text (do nothing)
+ virtual void print(const std::string & text);
+
+private:
+ typedef std::deque<std::string> History;
+
+ /// set ncurses drawing color
+ void set_color(const char *color_code);
+
+ // input history
+ History history;
+ History::reverse_iterator history_pos;
+
+ size_t input_pos;
+ size_t console_scroll;
+#endif
+};
+
+Console *console();
+
+}
+
+#endif // __INCLUDED_SERVER_CONSOLE_H__
+