/* client/chat.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_CHAT_H__ #define __INCLUDED_CLIENT_CHAT_H__ #include #include #include "ui/inputbox.h" #include "ui/scrollpane.h" #include "ui/window.h" namespace client { class Chat : public ui::Window { public: Chat(ui::Widget *parent = 0); ~Chat(); virtual void show(); void toggle(); void event_text(const std::string & text); inline bool small_view() const { return chat_small; } void set_small_view(bool small_view = true); void clear(); protected: virtual void event_draw(); virtual void resize(); virtual bool on_keypress(const int key, const unsigned int modifier); private: bool chat_small; ui::Text chat_log; ui::ScrollPane *chat_scrollpane; ui::InputBox *chat_input; typedef std::deque History; History history; History::reverse_iterator history_pos; }; } // namespace client #endif // __INCLUDED_CLIENT_CHAT_H__