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/inventorywindow.h | 77 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/client/inventorywindow.h (limited to 'src/client/inventorywindow.h') 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__ -- cgit v1.2.3