/* client/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_CLIENT_CONSOLE_H__ #define __INCLUDED_CLIENT_CONSOLE_H__ #include "sys/consoleinterface.h" #include #include #include #define MAXCONLINES 2048 namespace client { /// client console implementation class Console : public sys::ConsoleInterface { public: Console(); /// stream to send normal messages too virtual std::ostream & messagestream(); /// stream to send warning messages too virtual std::ostream & warningstream(); /// stream to send error messages too virtual std::ostream & errorstream(); /// stream to send debug messages too virtual std::ostream & debugstream(); /// flush buffer void flush(); /// draw the console void draw(); /// toggle the console on or off void toggle(); /// true of the console is visible inline bool visible() { return console_visible; } /// toggle handle keyboard input void handle_keyreleased(SDL_keysym* keysym); protected: /// console text buffer std::stringstream buffer; /// console text data std::deque text; private: std::string input; bool console_visible; }; } #endif // __INCLUDED_CLIENT_CONSOLE_H__