diff options
Diffstat (limited to 'src/guiInventoryMenu.h')
-rw-r--r-- | src/guiInventoryMenu.h | 68 |
1 files changed, 55 insertions, 13 deletions
diff --git a/src/guiInventoryMenu.h b/src/guiInventoryMenu.h index 45a5e236a..10fb7a425 100644 --- a/src/guiInventoryMenu.h +++ b/src/guiInventoryMenu.h @@ -39,9 +39,12 @@ class GUIInventoryMenu : public GUIModalMenu { i = -1; } - ItemSpec(const std::string &a_name, s32 a_i) + ItemSpec(const std::string &a_inventoryname, + const std::string &a_listname, + s32 a_i) { - listname = a_name; + inventoryname = a_inventoryname; + listname = a_listname; i = a_i; } bool isValid() const @@ -49,6 +52,7 @@ class GUIInventoryMenu : public GUIModalMenu return i != -1; } + std::string inventoryname; std::string listname; s32 i; }; @@ -58,26 +62,61 @@ class GUIInventoryMenu : public GUIModalMenu ListDrawSpec() { } - ListDrawSpec(const std::string &a_name, v2s32 a_pos, v2s32 a_geom) + ListDrawSpec(const std::string &a_inventoryname, + const std::string &a_listname, + v2s32 a_pos, v2s32 a_geom) { - listname = a_name; + inventoryname = a_inventoryname; + listname = a_listname; pos = a_pos; geom = a_geom; } + std::string inventoryname; std::string listname; v2s32 pos; v2s32 geom; }; - public: + struct DrawSpec + { + DrawSpec() + { + } + DrawSpec(const std::string &a_type, + const std::string &a_name, + const std::string &a_subname, + v2s32 a_pos, + v2s32 a_geom) + { + type = a_type; + name = a_name; + subname = a_subname; + pos = a_pos; + geom = a_geom; + } + + std::string type; + std::string name; + std::string subname; + v2s32 pos; + v2s32 geom; + }; + GUIInventoryMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, - Inventory *inventory, - Queue<InventoryAction*> *actions, - IMenuManager *menumgr); + IMenuManager *menumgr, + v2s16 menu_size, + InventoryContext *c, + InventoryManager *invmgr + ); ~GUIInventoryMenu(); + void setDrawSpec(core::array<DrawSpec> &init_draw_spec) + { + m_init_draw_spec = init_draw_spec; + } + void removeChildren(); /* Remove and re-add (or reposition) stuff @@ -90,22 +129,25 @@ public: bool OnEvent(const SEvent& event); -private: +protected: v2s32 getBasePos() const { return padding + AbsoluteRect.UpperLeftCorner; } + v2s16 m_menu_size; + v2s32 padding; v2s32 spacing; v2s32 imgsize; + + InventoryContext *m_c; + InventoryManager *m_invmgr; - core::array<ListDrawSpec> m_draw_positions; - - Inventory *m_inventory; + core::array<DrawSpec> m_init_draw_spec; + core::array<ListDrawSpec> m_draw_spec; ItemSpec *m_selected_item; - Queue<InventoryAction*> *m_actions; }; #endif |