aboutsummaryrefslogtreecommitdiff
path: root/src/gui/guiFormSpecMenu.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/guiFormSpecMenu.h')
-rw-r--r--src/gui/guiFormSpecMenu.h207
1 files changed, 115 insertions, 92 deletions
diff --git a/src/gui/guiFormSpecMenu.h b/src/gui/guiFormSpecMenu.h
index ea9731258..613acaa04 100644
--- a/src/gui/guiFormSpecMenu.h
+++ b/src/gui/guiFormSpecMenu.h
@@ -41,8 +41,7 @@ class Client;
class TexturePool;
class GUIScrollContainer;
-typedef enum
-{
+typedef enum {
f_Button,
f_Table,
f_TabHeader,
@@ -56,8 +55,7 @@ typedef enum
f_Unknown
} FormspecFieldType;
-typedef enum
-{
+typedef enum {
quit_mode_no,
quit_mode_accept,
quit_mode_cancel
@@ -90,9 +88,9 @@ class GUIFormSpecMenu : public GUIModalMenu
ListRingSpec() = default;
ListRingSpec(const InventoryLocation &a_inventoryloc,
- const std::string &a_listname) :
- inventoryloc(a_inventoryloc),
- listname(a_listname)
+ const std::string &a_listname):
+ inventoryloc(a_inventoryloc),
+ listname(a_listname)
{
}
@@ -105,15 +103,17 @@ class GUIFormSpecMenu : public GUIModalMenu
FieldSpec() = default;
FieldSpec(const std::string &name, const std::wstring &label,
- const std::wstring &default_text, s32 id,
- int priority = 0,
+ const std::wstring &default_text, s32 id, int priority = 0,
gui::ECURSOR_ICON cursor_icon = ECI_NORMAL) :
- fname(name),
- flabel(label),
- fdefault(unescape_enriched(
- translate_string(default_text))),
- fid(id), send(false), ftype(f_Unknown), is_exit(false),
- priority(priority), fcursor_icon(cursor_icon)
+ fname(name),
+ flabel(label),
+ fdefault(unescape_enriched(translate_string(default_text))),
+ fid(id),
+ send(false),
+ ftype(f_Unknown),
+ is_exit(false),
+ priority(priority),
+ fcursor_icon(cursor_icon)
{
}
@@ -134,9 +134,10 @@ class GUIFormSpecMenu : public GUIModalMenu
{
TooltipSpec() = default;
TooltipSpec(const std::wstring &a_tooltip, irr::video::SColor a_bgcolor,
- irr::video::SColor a_color) :
- tooltip(translate_string(a_tooltip)),
- bgcolor(a_bgcolor), color(a_color)
+ irr::video::SColor a_color):
+ tooltip(translate_string(a_tooltip)),
+ bgcolor(a_bgcolor),
+ color(a_color)
{
}
@@ -146,16 +147,21 @@ class GUIFormSpecMenu : public GUIModalMenu
};
public:
- GUIFormSpecMenu(JoystickController *joystick, gui::IGUIElement *parent, s32 id,
- IMenuManager *menumgr, Client *client, ISimpleTextureSource *tsrc,
- IFormSource *fs_src, TextDest *txt_dst,
- const std::string &formspecPrepend, bool remap_dbl_click = true);
+ GUIFormSpecMenu(JoystickController *joystick,
+ gui::IGUIElement* parent, s32 id,
+ IMenuManager *menumgr,
+ Client *client,
+ ISimpleTextureSource *tsrc,
+ IFormSource* fs_src,
+ TextDest* txt_dst,
+ const std::string &formspecPrepend,
+ bool remap_dbl_click = true);
~GUIFormSpecMenu();
static void create(GUIFormSpecMenu *&cur_formspec, Client *client,
- JoystickController *joystick, IFormSource *fs_src,
- TextDest *txt_dest, const std::string &formspecPrepend);
+ JoystickController *joystick, IFormSource *fs_src, TextDest *txt_dest,
+ const std::string &formspecPrepend);
void setFormSpec(const std::string &formspec_string,
const InventoryLocation &current_inventory_location)
@@ -190,9 +196,12 @@ public:
m_text_dst = text_dst;
}
- void allowClose(bool value) { m_allowclose = value; }
+ void allowClose(bool value)
+ {
+ m_allowclose = value;
+ }
- void lockSize(bool lock, v2u32 basescreensize = v2u32(0, 0))
+ void lockSize(bool lock,v2u32 basescreensize=v2u32(0,0))
{
m_lock = lock;
m_lockscreensize = basescreensize;
@@ -201,18 +210,30 @@ public:
void removeChildren();
void setInitialFocus();
- void setFocus(const std::string &elementname) { m_focused_element = elementname; }
+ void setFocus(const std::string &elementname)
+ {
+ m_focused_element = elementname;
+ }
- Client *getClient() const { return m_client; }
+ Client *getClient() const
+ {
+ return m_client;
+ }
const GUIInventoryList::ItemSpec *getSelectedItem() const
{
return m_selected_item;
}
- const u16 getSelectedAmount() const { return m_selected_amount; }
+ const u16 getSelectedAmount() const
+ {
+ return m_selected_amount;
+ }
- bool doTooltipAppendItemname() const { return m_tooltip_append_itemname; }
+ bool doTooltipAppendItemname() const
+ {
+ return m_tooltip_append_itemname;
+ }
void addHoveredItemTooltip(const std::string &name)
{
@@ -231,13 +252,13 @@ public:
ItemStack verifySelectedItem();
void acceptInput(FormspecQuitMode quitmode);
- bool preprocessEvent(const SEvent &event);
- bool OnEvent(const SEvent &event);
+ bool preprocessEvent(const SEvent& event);
+ bool OnEvent(const SEvent& event);
bool doPause;
bool pausesGame() { return doPause; }
- GUITable *getTable(const std::string &tablename);
- std::vector<std::string> *getDropDownValues(const std::string &name);
+ GUITable* getTable(const std::string &tablename);
+ std::vector<std::string>* getDropDownValues(const std::string &name);
#ifdef __ANDROID__
bool getAndroidUIInput();
@@ -246,7 +267,7 @@ public:
protected:
v2s32 getBasePos() const
{
- return padding + offset + AbsoluteRect.UpperLeftCorner;
+ return padding + offset + AbsoluteRect.UpperLeftCorner;
}
std::wstring getLabelByID(s32 id);
std::string getNameByID(s32 id);
@@ -260,11 +281,9 @@ protected:
std::unordered_set<std::string> property_warned;
StyleSpec getDefaultStyleForElement(const std::string &type,
- const std::string &name = "",
- const std::string &parent_type = "");
- std::array<StyleSpec, StyleSpec::NUM_STATES> getStyleForElement(
- const std::string &type, const std::string &name = "",
- const std::string &parent_type = "");
+ const std::string &name="", const std::string &parent_type="");
+ std::array<StyleSpec, StyleSpec::NUM_STATES> getStyleForElement(const std::string &type,
+ const std::string &name="", const std::string &parent_type="");
v2s32 padding;
v2f32 spacing;
@@ -326,16 +345,15 @@ protected:
video::SColor m_default_tooltip_color;
private:
- IFormSource *m_form_src;
- TextDest *m_text_dst;
- std::string m_last_formname;
- u16 m_formspec_version = 1;
- std::string m_focused_element = "";
+ IFormSource *m_form_src;
+ TextDest *m_text_dst;
+ std::string m_last_formname;
+ u16 m_formspec_version = 1;
+ std::string m_focused_element = "";
JoystickController *m_joystick;
bool m_show_debug = false;
- typedef struct
- {
+ typedef struct {
bool explicit_size;
bool real_coordinates;
u8 simple_field_count;
@@ -352,23 +370,20 @@ private:
GUIInventoryList::Options inventorylist_options;
- struct
- {
+ struct {
s32 max = 1000;
s32 min = 0;
s32 small_step = 10;
s32 large_step = 100;
s32 thumb_size = 1;
- GUIScrollBar::ArrowVisibility arrow_visiblity =
- GUIScrollBar::DEFAULT;
+ GUIScrollBar::ArrowVisibility arrow_visiblity = GUIScrollBar::DEFAULT;
} scrollbar_options;
// used to restore table selection/scroll/treeview state
std::unordered_map<std::string, GUITable::DynamicData> table_dyndata;
} parserData;
- typedef struct
- {
+ typedef struct {
bool key_up;
bool key_down;
bool key_enter;
@@ -379,50 +394,49 @@ private:
std::string current_field_enter_pending = "";
std::vector<std::string> m_hovered_item_tooltips;
- void parseElement(parserData *data, const std::string &element);
+ void parseElement(parserData* data, const std::string &element);
- void parseSize(parserData *data, const std::string &element);
- void parseContainer(parserData *data, const std::string &element);
- void parseContainerEnd(parserData *data);
+ void parseSize(parserData* data, const std::string &element);
+ void parseContainer(parserData* data, const std::string &element);
+ void parseContainerEnd(parserData* data);
void parseScrollContainer(parserData *data, const std::string &element);
void parseScrollContainerEnd(parserData *data);
- void parseList(parserData *data, const std::string &element);
- void parseListRing(parserData *data, const std::string &element);
- void parseCheckbox(parserData *data, const std::string &element);
- void parseImage(parserData *data, const std::string &element);
+ void parseList(parserData* data, const std::string &element);
+ void parseListRing(parserData* data, const std::string &element);
+ void parseCheckbox(parserData* data, const std::string &element);
+ void parseImage(parserData* data, const std::string &element);
void parseAnimatedImage(parserData *data, const std::string &element);
- void parseItemImage(parserData *data, const std::string &element);
- void parseButton(parserData *data, const std::string &element,
+ void parseItemImage(parserData* data, const std::string &element);
+ void parseButton(parserData* data, const std::string &element,
const std::string &typ);
- void parseBackground(parserData *data, const std::string &element);
- void parseTableOptions(parserData *data, const std::string &element);
- void parseTableColumns(parserData *data, const std::string &element);
- void parseTable(parserData *data, const std::string &element);
- void parseTextList(parserData *data, const std::string &element);
- void parseDropDown(parserData *data, const std::string &element);
+ void parseBackground(parserData* data, const std::string &element);
+ void parseTableOptions(parserData* data, const std::string &element);
+ void parseTableColumns(parserData* data, const std::string &element);
+ void parseTable(parserData* data, const std::string &element);
+ void parseTextList(parserData* data, const std::string &element);
+ void parseDropDown(parserData* data, const std::string &element);
void parseFieldCloseOnEnter(parserData *data, const std::string &element);
- void parsePwdField(parserData *data, const std::string &element);
- void parseField(parserData *data, const std::string &element,
- const std::string &type);
- void createTextField(parserData *data, FieldSpec &spec, core::rect<s32> &rect,
- bool is_multiline);
- void parseSimpleField(parserData *data, std::vector<std::string> &parts);
- void parseTextArea(parserData *data, std::vector<std::string> &parts,
+ void parsePwdField(parserData* data, const std::string &element);
+ void parseField(parserData* data, const std::string &element, const std::string &type);
+ void createTextField(parserData *data, FieldSpec &spec,
+ core::rect<s32> &rect, bool is_multiline);
+ void parseSimpleField(parserData* data,std::vector<std::string> &parts);
+ void parseTextArea(parserData* data,std::vector<std::string>& parts,
const std::string &type);
void parseHyperText(parserData *data, const std::string &element);
- void parseLabel(parserData *data, const std::string &element);
- void parseVertLabel(parserData *data, const std::string &element);
- void parseImageButton(parserData *data, const std::string &element,
+ void parseLabel(parserData* data, const std::string &element);
+ void parseVertLabel(parserData* data, const std::string &element);
+ void parseImageButton(parserData* data, const std::string &element,
const std::string &type);
- void parseItemImageButton(parserData *data, const std::string &element);
- void parseTabHeader(parserData *data, const std::string &element);
- void parseBox(parserData *data, const std::string &element);
- void parseBackgroundColor(parserData *data, const std::string &element);
- void parseListColors(parserData *data, const std::string &element);
- void parseTooltip(parserData *data, const std::string &element);
+ void parseItemImageButton(parserData* data, const std::string &element);
+ void parseTabHeader(parserData* data, const std::string &element);
+ void parseBox(parserData* data, const std::string &element);
+ void parseBackgroundColor(parserData* data, const std::string &element);
+ void parseListColors(parserData* data, const std::string &element);
+ void parseTooltip(parserData* data, const std::string &element);
bool parseVersionDirect(const std::string &data);
- bool parseSizeDirect(parserData *data, const std::string &element);
- void parseScrollBar(parserData *data, const std::string &element);
+ bool parseSizeDirect(parserData* data, const std::string &element);
+ void parseScrollBar(parserData* data, const std::string &element);
void parseScrollBarOptions(parserData *data, const std::string &element);
bool parsePositionDirect(parserData *data, const std::string &element);
void parsePosition(parserData *data, const std::string &element);
@@ -434,7 +448,7 @@ private:
void tryClose();
void showTooltip(const std::wstring &text, const irr::video::SColor &color,
- const irr::video::SColor &bgcolor);
+ const irr::video::SColor &bgcolor);
/**
* In formspec version < 2 the elements were not ordered properly. Some element
@@ -447,16 +461,25 @@ private:
gui::IGUIFont *m_font = nullptr;
};
-class FormspecFormSource : public IFormSource
+class FormspecFormSource: public IFormSource
{
public:
- FormspecFormSource(const std::string &formspec) : m_formspec(formspec) {}
+ FormspecFormSource(const std::string &formspec):
+ m_formspec(formspec)
+ {
+ }
~FormspecFormSource() = default;
- void setForm(const std::string &formspec) { m_formspec = formspec; }
+ void setForm(const std::string &formspec)
+ {
+ m_formspec = formspec;
+ }
- const std::string &getForm() const { return m_formspec; }
+ const std::string &getForm() const
+ {
+ return m_formspec;
+ }
std::string m_formspec;
};