Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/gamewindow.h')
-rw-r--r--src/client/gamewindow.h103
1 files changed, 103 insertions, 0 deletions
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__