/* 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" namespace ui { class IconButton; } namespace client { class HUD; class Chat; class MapWindow; class InventoryWindow; class ReputationWindow; class EntityMenu; class BuyMenu; class TradeMenu; /** * @brief the game user interface base widget * The GameWindow is showb 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(); /// toggle reputation window void toggle_reputation(); /// togge chat window void toggle_chat(); /// toggle chat bar void toggle_chatbar(); /// show entity menus void show_menu(const std::string & label); 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; ReputationWindow *gamewindow_reputation; EntityMenu *gamewindow_entitymenu; BuyMenu *gamewindow_buymenu; TradeMenu *gamewindow_trademenu; ui::IconButton *gamewindow_menubutton; ui::IconButton *gamewindow_freeflightbutton; ui::IconButton *gamewindow_gotobutton; ui::IconButton *gamewindow_dockbutton; ui::IconButton *gamewindow_launchbutton; ui::IconButton *gamewindow_formationbutton; ui::IconButton *gamewindow_homebutton; ui::IconButton *gamewindow_chatbutton; ui::IconButton *gamewindow_mapbutton; ui::IconButton *gamewindow_inventorybutton; ui::IconButton *gamewindow_reputationbutton; }; // class GameWindow } // namepace client #endif // __INCLUDED_CLIENT_GAMEWINDOW_H__