]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/guiInventoryMenu.h
Modified windows build parameters a bit to make it build
[dragonfireclient.git] / src / guiInventoryMenu.h
index 6211bb24bdf2eed3823b8a755f206b9e7af728cf..acddb5c24866b5f1c69d0277947042bc5486c3ff 100644 (file)
@@ -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<s32> rect,
-               const core::rect<s32> *clip=0);
+               const core::rect<s32> *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<InventoryAction*> *actions,
-                       IMenuManager *menumgr);
+                       IMenuManager *menumgr,
+                       v2s16 menu_size,
+                       core::array<DrawSpec> &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<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