summaryrefslogtreecommitdiff
path: root/src/guiInventoryMenu.h
diff options
context:
space:
mode:
authordarkrose <lisa@ltmnet.com>2012-07-16 02:19:38 +1000
committerPerttu Ahola <celeron55@gmail.com>2012-07-22 17:40:41 +0300
commit506203345ba2795aa0af68a434f4b77cf50e664a (patch)
tree51e168ed612bb0bcb7f2e0e2e77242e50bd8e855 /src/guiInventoryMenu.h
parentc259f7c8bd67e38c7be19a90c5113dbf8fd13670 (diff)
downloadminetest-506203345ba2795aa0af68a434f4b77cf50e664a.tar.gz
minetest-506203345ba2795aa0af68a434f4b77cf50e664a.tar.bz2
minetest-506203345ba2795aa0af68a434f4b77cf50e664a.zip
Implement formspec
Diffstat (limited to 'src/guiInventoryMenu.h')
-rw-r--r--src/guiInventoryMenu.h176
1 files changed, 0 insertions, 176 deletions
diff --git a/src/guiInventoryMenu.h b/src/guiInventoryMenu.h
deleted file mode 100644
index 5613db356..000000000
--- a/src/guiInventoryMenu.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
-Minetest-c55
-Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation; either version 2.1 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-*/
-
-
-#ifndef GUIINVENTORYMENU_HEADER
-#define GUIINVENTORYMENU_HEADER
-
-#include "irrlichttypes_extrabloated.h"
-#include "inventory.h"
-#include "inventorymanager.h"
-#include "modalMenu.h"
-
-class IGameDef;
-class InventoryManager;
-
-class IFormSource
-{
-public:
- virtual ~IFormSource(){}
- virtual std::string getForm() = 0;
-};
-
-void drawItemStack(video::IVideoDriver *driver,
- gui::IGUIFont *font,
- const ItemStack &item,
- const core::rect<s32> &rect,
- const core::rect<s32> *clip,
- IGameDef *gamedef);
-
-class GUIInventoryMenu : public GUIModalMenu
-{
- struct ItemSpec
- {
- ItemSpec()
- {
- i = -1;
- }
- ItemSpec(const InventoryLocation &a_inventoryloc,
- const std::string &a_listname,
- s32 a_i)
- {
- inventoryloc = a_inventoryloc;
- listname = a_listname;
- i = a_i;
- }
- bool isValid() const
- {
- return i != -1;
- }
-
- InventoryLocation inventoryloc;
- std::string listname;
- s32 i;
- };
-
- struct ListDrawSpec
- {
- ListDrawSpec()
- {
- }
- ListDrawSpec(const InventoryLocation &a_inventoryloc,
- const std::string &a_listname,
- v2s32 a_pos, v2s32 a_geom):
- inventoryloc(a_inventoryloc),
- listname(a_listname),
- pos(a_pos),
- geom(a_geom)
- {
- }
-
- InventoryLocation inventoryloc;
- std::string listname;
- v2s32 pos;
- v2s32 geom;
- };
-
- struct ImageDrawSpec
- {
- ImageDrawSpec()
- {
- }
- ImageDrawSpec(const std::string &a_name,
- v2s32 a_pos, v2s32 a_geom):
- name(a_name),
- pos(a_pos),
- geom(a_geom)
- {
- }
- std::string name;
- v2s32 pos;
- v2s32 geom;
- };
-
-public:
- GUIInventoryMenu(gui::IGUIEnvironment* env,
- gui::IGUIElement* parent, s32 id,
- IMenuManager *menumgr,
- InventoryManager *invmgr,
- IGameDef *gamedef
- );
- ~GUIInventoryMenu();
-
- void setFormSpec(const std::string &formspec_string,
- InventoryLocation current_inventory_location)
- {
- m_formspec_string = formspec_string;
- m_current_inventory_location = current_inventory_location;
- regenerateGui(m_screensize_old);
- }
-
- // form_src is deleted by this GUIInventoryMenu
- void setFormSource(IFormSource *form_src)
- {
- m_form_src = form_src;
- }
-
- void removeChildren();
- /*
- Remove and re-add (or reposition) stuff
- */
- void regenerateGui(v2u32 screensize);
-
- ItemSpec getItemAtPos(v2s32 p) const;
- void drawList(const ListDrawSpec &s, int phase);
- void drawSelectedItem();
- void drawMenu();
- void updateSelectedItem();
-
- bool OnEvent(const SEvent& event);
-
-protected:
- v2s32 getBasePos() const
- {
- return padding + AbsoluteRect.UpperLeftCorner;
- }
-
- v2s32 padding;
- v2s32 spacing;
- v2s32 imgsize;
-
- InventoryManager *m_invmgr;
- IGameDef *m_gamedef;
-
- std::string m_formspec_string;
- InventoryLocation m_current_inventory_location;
- IFormSource *m_form_src;
-
- core::array<ListDrawSpec> m_inventorylists;
- core::array<ImageDrawSpec> m_images;
-
- ItemSpec *m_selected_item;
- u32 m_selected_amount;
- bool m_selected_dragging;
-
- v2s32 m_pointer;
- gui::IGUIStaticText *m_tooltip_element;
-};
-
-#endif
-