/* client/playerview.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_PLAYERVIEW_H__ #define __INCLUDED_CLIENT_PLAYERVIEW_H__ #include "ui/widget.h" #include "ui/label.h" #include "ui/iconbutton.h" #include "client/chat.h" #include "client/buymenu.h" #include "client/entitymenu.h" #include "client/inventory.h" #include "client/trademenu.h" #include "client/hud.h" #include "client/map.h" #include "client/notifications.h" namespace client { /// the player's view when joined class PlayerView : public ui::Widget { public: PlayerView(ui::Widget *parent = 0); virtual ~PlayerView(); 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 view_hud; } inline Map *map() { return view_map; } inline Chat *chat() { return view_chat; } inline Inventory *inventory() { return view_inventory; } inline Notifications *notify() { return view_notify; } inline EntityMenu *menu() { return view_entitymenu; } protected: virtual void draw(); virtual void resize(); private: Notifications *view_notify; HUD *view_hud; Chat *view_chat; Map *view_map; Inventory *view_inventory; EntityMenu *view_entitymenu; BuyMenu *view_buymenu; TradeMenu *view_trademenu; ui::Label *label_viewname; ui::IconButton *view_menubutton; ui::IconButton *view_dockbutton; ui::IconButton *view_launchbutton; ui::IconButton *view_homebutton; ui::IconButton *view_chatbutton; ui::IconButton *view_mapbutton; ui::IconButton *view_inventorybutton; }; } #endif // __INCLUDED_CLIENT_PLAYERVIEW_H__