/* client/gamewindow.h This file is part of the Osirion project and is distributed under the terms and conditions of the GNU General Public License version 2 */ #ifndef __INCLUDED_CLIENT_GAMEWINDOW_H__ #define __INCLUDED_CLIENT_GAMEWINDOW_H__ #include "ui/window.h" #include "ui/label.h" #include "ui/iconbutton.h" #include "client/hud.h" #include "client/chat.h" #include "client/inventorywindow.h" #include "client/mapwindow.h" #include "client/buymenu.h" #include "client/entitymenu.h" #include "client/trademenu.h" namespace client { /** * @brief the game user interface base widget * The GameWindow is drawn if core::localcontrol() is set. * It contains the HUD, icons and all menus for game interaction. **/ class GameWindow : public ui::Window { public: GameWindow(ui::Widget *parent = 0); virtual ~GameWindow(); void clear(); void event_text(const std::string & text); /// toggle map window void toggle_map(); /// toggle inventory window void toggle_inventory(); /// togge chat window void toggle_chat(); /// toggle chat bar void toggle_chatbar(); /// show entity menus void show_menu(const std::string & label); inline HUD *hud() { return gamewindow_hud; } inline Chat *chat() { return gamewindow_chat; } inline MapWindow *map() { return gamewindow_map; } inline InventoryWindow *inventory() { return gamewindow_inventory; } inline EntityMenu *menu() { return gamewindow_entitymenu; } protected: /// keypress event handler virtual bool on_keypress(const int key, const unsigned int modifier); virtual void draw(); virtual void resize(); private: HUD *gamewindow_hud; Chat *gamewindow_chat; MapWindow *gamewindow_map; InventoryWindow *gamewindow_inventory; EntityMenu *gamewindow_entitymenu; BuyMenu *gamewindow_buymenu; TradeMenu *gamewindow_trademenu; ui::IconButton *gamewindow_menubutton; ui::IconButton *gamewindow_dockbutton; ui::IconButton *gamewindow_launchbutton; ui::IconButton *gamewindow_homebutton; ui::IconButton *gamewindow_chatbutton; ui::IconButton *gamewindow_mapbutton; ui::IconButton *gamewindow_inventorybutton; }; // class GameWindow } // namepace client #endif // __INCLUDED_CLIENT_GAMEWINDOW_H__