X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiInventoryMenu.h;h=acddb5c24866b5f1c69d0277947042bc5486c3ff;hb=7df125c249dc9b99b66f047a395106c2038eb00e;hp=6211bb24bdf2eed3823b8a755f206b9e7af728cf;hpb=c914cbb0a081b30b28271618bbaa8e987a108ae7;p=dragonfireclient.git diff --git a/src/guiInventoryMenu.h b/src/guiInventoryMenu.h index 6211bb24b..acddb5c24 100644 --- a/src/guiInventoryMenu.h +++ b/src/guiInventoryMenu.h @@ -26,9 +26,10 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "utility.h" #include "modalMenu.h" -void drawInventoryItem(gui::IGUIEnvironment* env, +void drawInventoryItem(video::IVideoDriver *driver, + gui::IGUIFont *font, InventoryItem *item, core::rect rect, - const core::rect *clip=0); + const core::rect *clip); class GUIInventoryMenu : public GUIModalMenu { @@ -38,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 @@ -48,6 +52,7 @@ class GUIInventoryMenu : public GUIModalMenu return i != -1; } + std::string inventoryname; std::string listname; s32 i; }; @@ -57,24 +62,55 @@ 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 *actions, - IMenuManager *menumgr); + IMenuManager *menumgr, + v2s16 menu_size, + core::array &init_draw_spec, + InventoryContext *c, + InventoryManager *invmgr + ); ~GUIInventoryMenu(); void removeChildren(); @@ -95,16 +131,19 @@ class GUIInventoryMenu : public GUIModalMenu return padding + AbsoluteRect.UpperLeftCorner; } + v2s16 m_menu_size; + v2s32 padding; v2s32 spacing; v2s32 imgsize; + + InventoryContext *m_c; + InventoryManager *m_invmgr; - core::array m_draw_positions; - - Inventory *m_inventory; + core::array m_init_draw_spec; + core::array m_draw_spec; ItemSpec *m_selected_item; - Queue *m_actions; }; #endif