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/inventorywindow.h')
-rw-r--r--src/client/inventorywindow.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/client/inventorywindow.h b/src/client/inventorywindow.h
new file mode 100644
index 0000000..474df25
--- /dev/null
+++ b/src/client/inventorywindow.h
@@ -0,0 +1,77 @@
+/*
+ client/inventorywindow.h
+ This file is part of the Osirion project and is distributed under
+ the terms of the GNU General Public License version 2
+*/
+
+#ifndef __INCLUDED_CLIENT_INVENTORYWINDOW_H__
+#define __INCLUDED_CLIENT_INVENTORYWINDOW_H__
+
+#include "core/info.h"
+#include "core/inventory.h"
+#include "ui/iconbutton.h"
+#include "ui/listview.h"
+#include "ui/modelview.h"
+#include "ui/scrollpane.h"
+#include "ui/plaintext.h"
+#include "ui/window.h"
+
+namespace client {
+
+/**
+ * @brief an inventory window widget
+ */
+class InventoryWindow : public ui::Window
+{
+public:
+ InventoryWindow(ui::Widget *parent = 0);
+ ~InventoryWindow();
+
+ void toggle();
+
+ virtual void show();
+
+protected:
+ /// resize event handler
+ virtual void resize();
+
+ /// draw event handler
+ virtual void draw();
+
+ /// emit event handler
+ virtual bool on_emit(Widget *sender, const Event event, void *data);
+
+ /// keypress event handler
+ virtual bool on_keypress(const int key, const unsigned int modifier);
+
+private:
+ void update_inventory();
+
+ void set_info(const core::Info *info, const int amount);
+
+ bool verify() const;
+
+ unsigned long inventorywindow_inventorytimestamp;
+ unsigned long inventorywindow_infotimestamp;
+
+ int inventorywindow_amount;
+
+ ui::Text inventorywindow_infotext;
+
+ const core::Info *inventorywindow_inforecord;
+
+ ui::ModelView *inventorywindow_modelview;
+
+ ui::Label *inventorywindow_titlelabel;
+ ui::Label *inventorywindow_modeltitlelabel;
+ ui::Label *inventorywindow_modelnamelabel;
+
+ ui::ListView *inventorywindow_listview;
+ ui::PlainText *inventorywindow_inventorytext;
+ ui::ScrollPane *inventorywindow_scrollpane;
+ ui::IconButton *inventorywindow_shipbutton;
+
+}; // class InventoryWindow
+
+}
+#endif // __INCLUDED_CLIENT_INVENTORYWINDOW_H__