From 336766125f25b94dd9fc19aeea35c8b43acbeea0 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Fri, 29 Jul 2011 21:10:05 +0000 Subject: Renamed various user interface classes, somewhat improved inventory window. --- src/client/gamewindow.h | 103 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 src/client/gamewindow.h (limited to 'src/client/gamewindow.h') diff --git a/src/client/gamewindow.h b/src/client/gamewindow.h new file mode 100644 index 0000000..336158e --- /dev/null +++ b/src/client/gamewindow.h @@ -0,0 +1,103 @@ +/* + 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/chat.h" +#include "client/buymenu.h" +#include "client/entitymenu.h" +#include "client/inventorywindow.h" +#include "client/trademenu.h" +#include "client/hud.h" +#include "client/map.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 Map *map() { + return gamewindow_map; + } + inline Chat *chat() { + return gamewindow_chat; + } + 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; + Map *gamewindow_map; + InventoryWindow *gamewindow_inventory; + + EntityMenu *gamewindow_entitymenu; + BuyMenu *gamewindow_buymenu; + TradeMenu *gamewindow_trademenu; + + ui::Label *label_viewname; + + 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__ -- cgit v1.2.3