]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/guiFormSpecMenu.h
Fix spaces float islands code
[dragonfireclient.git] / src / guiFormSpecMenu.h
index 640c35c0a407139ca2ac705ea3f06bd0e5e9397e..8b0e50379f86b27b421d85e39c7b26ca5bed6cfd 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();
@@ -212,6 +214,7 @@ class GUIFormSpecMenu : public GUIModalMenu
        }
 
        void removeChildren();
+       void setInitialFocus();
        /*
                Remove and re-add (or reposition) stuff
        */
@@ -224,7 +227,8 @@ class GUIFormSpecMenu : public GUIModalMenu
        void updateSelectedItem();
        ItemStack verifySelectedItem();
 
-       void acceptInput();
+       void acceptInput(bool quit);
+       bool preprocessEvent(const SEvent& event);
        bool OnEvent(const SEvent& event);
 
        int getListboxIndex(std::string listboxname);
@@ -243,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;
@@ -280,6 +285,14 @@ class GUIFormSpecMenu : public GUIModalMenu
        bool m_allowclose;
        bool m_lock;
        v2u32 m_lockscreensize;
+
+       bool m_bgfullscreen;
+       bool m_slotborder;
+       bool m_clipbackground;
+       video::SColor m_bgcolor;
+       video::SColor m_slotbg_n;
+       video::SColor m_slotbg_h;
+       video::SColor m_slotbordercolor;
 private:
        typedef struct {
                v2s32 size;
@@ -288,6 +301,7 @@ 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;
@@ -299,8 +313,6 @@ 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
@@ -330,8 +342,10 @@ class GUIFormSpecMenu : public GUIModalMenu
        void parseItemImageButton(parserData* data,std::string element);
        void parseTabHeader(parserData* data,std::string element);
        void parseBox(parserData* data,std::string element);
+       void parseBackgroundColor(parserData* data,std::string element);
+       void parseListColors(parserData* data,std::string element);
 
-       bool parseColor(std::string color, irr::video::SColor& outcolor); 
+       bool parseColor(std::string &value, video::SColor &color, bool quiet);
 };
 
 class FormspecFormSource: public IFormSource