]> git.lizzy.rs Git - minetest.git/blobdiff - src/guiInventoryMenu.h
Tool definition transfer to client
[minetest.git] / src / guiInventoryMenu.h
index acddb5c24866b5f1c69d0277947042bc5486c3ff..55d18a851055f2f7cdf8b963bd4475ba6a93d850 100644 (file)
@@ -26,10 +26,13 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include "utility.h"
 #include "modalMenu.h"
 
+class ITextureSource;
+
 void drawInventoryItem(video::IVideoDriver *driver,
                gui::IGUIFont *font,
                InventoryItem *item, core::rect<s32> rect,
-               const core::rect<s32> *clip);
+               const core::rect<s32> *clip,
+               ITextureSource *tsrc);
 
 class GUIInventoryMenu : public GUIModalMenu
 {
@@ -102,17 +105,28 @@ class GUIInventoryMenu : public GUIModalMenu
                v2s32 pos;
                v2s32 geom;
        };
+       
+       // See .cpp for format
+       static v2s16 makeDrawSpecArrayFromString(
+                       core::array<GUIInventoryMenu::DrawSpec> &draw_spec,
+                       const std::string &data,
+                       const std::string &current_name);
 
        GUIInventoryMenu(gui::IGUIEnvironment* env,
                        gui::IGUIElement* parent, s32 id,
                        IMenuManager *menumgr,
                        v2s16 menu_size,
-                       core::array<DrawSpec> &init_draw_spec,
                        InventoryContext *c,
-                       InventoryManager *invmgr
+                       InventoryManager *invmgr,
+                       ITextureSource *tsrc
                        );
        ~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
@@ -120,12 +134,12 @@ class GUIInventoryMenu : public GUIModalMenu
        void regenerateGui(v2u32 screensize);
        
        ItemSpec getItemAtPos(v2s32 p) const;
-       void drawList(const ListDrawSpec &s);
+       void drawList(const ListDrawSpec &s, ITextureSource *tsrc);
        void drawMenu();
 
        bool OnEvent(const SEvent& event);
        
-private:
+protected:
        v2s32 getBasePos() const
        {
                return padding + AbsoluteRect.UpperLeftCorner;
@@ -139,6 +153,7 @@ class GUIInventoryMenu : public GUIModalMenu
        
        InventoryContext *m_c;
        InventoryManager *m_invmgr;
+       ITextureSource *m_tsrc;
 
        core::array<DrawSpec> m_init_draw_spec;
        core::array<ListDrawSpec> m_draw_spec;