X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2FguiInventoryMenu.h;h=55d18a851055f2f7cdf8b963bd4475ba6a93d850;hb=4b8e4dae589cabef054991c08eb2cd47c867994a;hp=acddb5c24866b5f1c69d0277947042bc5486c3ff;hpb=4a92df6ff021f1bfa645f97fd551c648d1ef8e3b;p=minetest.git diff --git a/src/guiInventoryMenu.h b/src/guiInventoryMenu.h index acddb5c24..55d18a851 100644 --- a/src/guiInventoryMenu.h +++ b/src/guiInventoryMenu.h @@ -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 rect, - const core::rect *clip); + const core::rect *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 &draw_spec, + const std::string &data, + const std::string ¤t_name); GUIInventoryMenu(gui::IGUIEnvironment* env, gui::IGUIElement* parent, s32 id, IMenuManager *menumgr, v2s16 menu_size, - core::array &init_draw_spec, InventoryContext *c, - InventoryManager *invmgr + InventoryManager *invmgr, + ITextureSource *tsrc ); ~GUIInventoryMenu(); + void setDrawSpec(core::array &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 m_init_draw_spec; core::array m_draw_spec;