Split settings into seperate source and header files
[oweals/minetest.git] / src / guiFormSpecMenu.h
index 5d74978a941fffdefb141fc54a904cf1e20fc612..583cad4a27da64ba29a273d5d05ab2d3ad5d671d 100644 (file)
@@ -33,6 +33,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 class IGameDef;
 class InventoryManager;
 class ISimpleTextureSource;
+class Client;
 
 typedef enum {
        f_Button,
@@ -40,6 +41,7 @@ typedef enum {
        f_TabHeader,
        f_CheckBox,
        f_DropDown,
+       f_ScrollBar,
        f_Unknown
 } FormspecFieldType;
 
@@ -151,7 +153,7 @@ class GUIFormSpecMenu : public GUIModalMenu
                {
                }
                FieldSpec(const std::wstring &name, const std::wstring &label,
-                         const std::wstring &fdeflt, int id) :
+                               const std::wstring &fdeflt, int id) :
                        fname(name),
                        flabel(label),
                        fdefault(fdeflt),
@@ -208,7 +210,8 @@ public:
                        ISimpleTextureSource *tsrc,
                        IFormSource* fs_src,
                        TextDest* txt_dst,
-                       GUIFormSpecMenu** ext_ptr
+                       GUIFormSpecMenu** ext_ptr,
+                       Client* client
                        );
 
        ~GUIFormSpecMenu();
@@ -274,6 +277,10 @@ public:
        static bool parseColor(const std::string &value,
                        video::SColor &color, bool quiet);
 
+#ifdef __ANDROID__
+       bool getAndroidUIInput();
+#endif
+
 protected:
        v2s32 getBasePos() const
        {
@@ -289,6 +296,7 @@ protected:
        InventoryManager *m_invmgr;
        IGameDef *m_gamedef;
        ISimpleTextureSource *m_tsrc;
+       Client *m_client;
 
        std::string m_formspec_string;
        InventoryLocation m_current_inventory_location;
@@ -302,7 +310,8 @@ protected:
        std::vector<std::pair<FieldSpec,GUITable*> > m_tables;
        std::vector<std::pair<FieldSpec,gui::IGUICheckBox*> > m_checkboxes;
        std::map<std::wstring, TooltipSpec> m_tooltips;
-       
+       std::vector<std::pair<FieldSpec,gui::IGUIScrollBar*> > m_scrollbars;
+
        ItemSpec *m_selected_item;
        u32 m_selected_amount;
        bool m_selected_dragging;
@@ -393,6 +402,7 @@ private:
        void parseListColors(parserData* data,std::string element);
        void parseTooltip(parserData* data,std::string element);
        bool parseVersionDirect(std::string data);
+       void parseScrollBar(parserData* data, std::string element);
 
        /**
         * check if event is part of a double click
@@ -409,6 +419,14 @@ private:
        clickpos m_doubleclickdetect[2];
 
        int m_btn_height;
+
+       std::wstring getLabelByID(s32 id);
+       std::wstring getNameByID(s32 id);
+#ifdef __ANDROID__
+       v2s32 m_down_pos;
+       std::wstring m_JavaDialogFieldName;
+#endif
+
 };
 
 class FormspecFormSource: public IFormSource