3 Copyright (C) 2010 celeron55, Perttu Ahola <celeron55@gmail.com>
5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License along
16 with this program; if not, write to the Free Software Foundation, Inc.,
17 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 #ifndef GUIINVENTORYMENU_HEADER
22 #define GUIINVENTORYMENU_HEADER
24 #include "common_irrlicht.h"
25 #include "inventory.h"
27 #include "modalMenu.h"
29 void drawInventoryItem(gui::IGUIEnvironment* env,
30 InventoryItem *item, core::rect<s32> rect,
31 const core::rect<s32> *clip=0);
33 class GUIInventoryMenu : public GUIModalMenu
41 ItemSpec(const std::string &a_name, s32 a_i)
60 ListDrawSpec(const std::string &a_name, v2s32 a_pos, v2s32 a_geom)
73 GUIInventoryMenu(gui::IGUIEnvironment* env,
74 gui::IGUIElement* parent, s32 id,
76 Queue<InventoryAction*> *actions,
77 IMenuManager *menumgr);
80 void removeChildren();
82 Remove and re-add (or reposition) stuff
84 void regenerateGui(v2u32 screensize);
86 ItemSpec getItemAtPos(v2s32 p) const;
87 void drawList(const ListDrawSpec &s);
90 bool OnEvent(const SEvent& event);
93 v2s32 getBasePos() const
95 return padding + AbsoluteRect.UpperLeftCorner;
102 core::array<ListDrawSpec> m_draw_positions;
104 Inventory *m_inventory;
106 ItemSpec *m_selected_item;
107 Queue<InventoryAction*> *m_actions;