]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/guiFormSpecMenu.h
Add a callback: minetest.register_on_craft(itemstack, player,
[dragonfireclient.git] / src / guiFormSpecMenu.h
index 28f11d2e70390be6f000c227b7f2f5ba3b3c4d68..c244e458f08105141e2fa3f6a85cf3acf5dad119 100644 (file)
@@ -30,6 +30,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 class IGameDef;
 class InventoryManager;
+class ISimpleTextureSource;
 
 typedef enum {
        f_Button,
@@ -176,7 +177,8 @@ class GUIFormSpecMenu : public GUIModalMenu
                        gui::IGUIElement* parent, s32 id,
                        IMenuManager *menumgr,
                        InventoryManager *invmgr,
-                       IGameDef *gamedef
+                       IGameDef *gamedef,
+                       ISimpleTextureSource *tsrc
                        );
 
        ~GUIFormSpecMenu();
@@ -206,16 +208,13 @@ class GUIFormSpecMenu : public GUIModalMenu
                m_allowclose = value;
        }
 
-       void useGettext(bool value) {
-               m_use_gettext = true;
-       }
-
        void lockSize(bool lock,v2u32 basescreensize=v2u32(0,0)) {
                m_lock = lock;
                m_lockscreensize = basescreensize;
        }
 
        void removeChildren();
+       void setInitialFocus();
        /*
                Remove and re-add (or reposition) stuff
        */
@@ -229,6 +228,7 @@ class GUIFormSpecMenu : public GUIModalMenu
        ItemStack verifySelectedItem();
 
        void acceptInput();
+       bool preprocessEvent(const SEvent& event);
        bool OnEvent(const SEvent& event);
 
        int getListboxIndex(std::string listboxname);
@@ -247,6 +247,7 @@ class GUIFormSpecMenu : public GUIModalMenu
        irr::IrrlichtDevice* m_device;
        InventoryManager *m_invmgr;
        IGameDef *m_gamedef;
+       ISimpleTextureSource *m_tsrc;
 
        std::string m_formspec_string;
        InventoryLocation m_current_inventory_location;
@@ -282,7 +283,6 @@ class GUIFormSpecMenu : public GUIModalMenu
        gui::IGUIStaticText *m_tooltip_element;
 
        bool m_allowclose;
-       bool m_use_gettext;
        bool m_lock;
        v2u32 m_lockscreensize;
 private:
@@ -293,7 +293,9 @@ class GUIFormSpecMenu : public GUIModalMenu
                v2s32 basepos;
                int bp_set;
                v2u32 screensize;
+               std::wstring focused_fieldname;
                std::map<std::wstring,int> listbox_selections;
+               std::map<std::wstring,int> listbox_scroll;
        } parserData;
 
        typedef struct {
@@ -303,14 +305,14 @@ class GUIFormSpecMenu : public GUIModalMenu
                bool key_escape;
        } fs_key_pendig;
 
-       std::vector<video::ITexture *> m_Textures;
-
        fs_key_pendig current_keys_pending;
 
        // Determine whether listbox click was double click
        // (Using some black Irrlicht magic)
        bool checkListboxClick(std::wstring wlistboxname, int eventtype);
 
+       gui::IGUIScrollBar* getListboxScrollbar(gui::IGUIListBox *listbox);
+
        void parseElement(parserData* data,std::string element);
 
        void parseSize(parserData* data,std::string element);