]> git.lizzy.rs Git - dragonfireclient.git/blobdiff - src/guiFormSpecMenu.h
Translated using Weblate (Czech)
[dragonfireclient.git] / src / guiFormSpecMenu.h
index 28f11d2e70390be6f000c227b7f2f5ba3b3c4d68..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();
@@ -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
        */
@@ -228,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);
@@ -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,9 +283,16 @@ class GUIFormSpecMenu : public GUIModalMenu
        gui::IGUIStaticText *m_tooltip_element;
 
        bool m_allowclose;
-       bool m_use_gettext;
        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;
@@ -293,7 +301,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 +313,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);
@@ -332,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