X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2FguiFormSpecMenu.h;h=15bc628d17296f869b40145111cf9b7f30e03346;hb=18bfa1c785a123499ee12d0551a9447a4d32d93b;hp=3368bb82d8188c588fb1f1cbede558f7d13b0939;hpb=09ba047c0175adfaca4a6bccc41c8a0570c295db;p=oweals%2Fminetest.git diff --git a/src/guiFormSpecMenu.h b/src/guiFormSpecMenu.h index 3368bb82d..15bc628d1 100644 --- a/src/guiFormSpecMenu.h +++ b/src/guiFormSpecMenu.h @@ -28,6 +28,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "inventorymanager.h" #include "modalMenu.h" #include "guiTable.h" +#include "clientserver.h" class IGameDef; class InventoryManager; @@ -39,6 +40,7 @@ typedef enum { f_TabHeader, f_CheckBox, f_DropDown, + f_ScrollBar, f_Unknown } FormspecFieldType; @@ -150,7 +152,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), @@ -273,6 +275,10 @@ public: static bool parseColor(const std::string &value, video::SColor &color, bool quiet); +#ifdef __ANDROID__ + bool getAndroidUIInput(); +#endif + protected: v2s32 getBasePos() const { @@ -301,7 +307,8 @@ protected: std::vector > m_tables; std::vector > m_checkboxes; std::map m_tooltips; - + std::vector > m_scrollbars; + ItemSpec *m_selected_item; u32 m_selected_amount; bool m_selected_dragging; @@ -339,6 +346,7 @@ private: TextDest *m_text_dst; GUIFormSpecMenu **m_ext_ptr; gui::IGUIFont *m_font; + unsigned int m_formspec_version; typedef struct { v2s32 size; @@ -390,6 +398,8 @@ private: void parseBackgroundColor(parserData* data,std::string element); 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 @@ -406,6 +416,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 @@ -420,7 +438,7 @@ public: {} void setForm(std::string formspec) { - m_formspec = formspec; + m_formspec = FORMSPEC_VERSION_STRING + formspec; } std::string getForm()