summaryrefslogtreecommitdiff
path: root/src/guiFormSpecMenu.h
diff options
context:
space:
mode:
authorEkdohibs <nathanael.courant@laposte.net>2016-04-04 18:31:00 +0200
committerCraig Robbins <kde.psych@gmail.com>2016-04-24 03:54:11 +1000
commit48939df9a5ef1ff20f4f9717d1341b51a50dff14 (patch)
tree7325a70d4dbe445d4e3726f0aea402f3181906b4 /src/guiFormSpecMenu.h
parent21079cc8ebae0bf694c1903c07bf3e1517feab99 (diff)
downloadminetest-48939df9a5ef1ff20f4f9717d1341b51a50dff14.tar.gz
minetest-48939df9a5ef1ff20f4f9717d1341b51a50dff14.tar.bz2
minetest-48939df9a5ef1ff20f4f9717d1341b51a50dff14.zip
Escape more strings: formspecs, item descriptions, infotexts...
Also, change the escape character to the more standard \x1b Thus, it can be used in the future for translation or colored text, for example.
Diffstat (limited to 'src/guiFormSpecMenu.h')
-rw-r--r--src/guiFormSpecMenu.h25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/guiFormSpecMenu.h b/src/guiFormSpecMenu.h
index 005b91369..8774d306f 100644
--- a/src/guiFormSpecMenu.h
+++ b/src/guiFormSpecMenu.h
@@ -29,6 +29,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#include "modalMenu.h"
#include "guiTable.h"
#include "network/networkprotocol.h"
+#include "util/string.h"
class IGameDef;
class InventoryManager;
@@ -191,18 +192,26 @@ class GUIFormSpecMenu : public GUIModalMenu
bool scale;
};
+ /* The responsibility of unescaping the strings has been shifted
+ * from the formspec parsing methods to the draw methods.
+ * There still are a few exceptions:
+ * - Vertical label, because it modifies the string by inserting
+ * '\n' between each character,
+ * - Tab header, because it gives the string immediately to
+ * Irrlicht and we can't unescape it later.
+ */
struct FieldSpec
{
FieldSpec()
{
}
FieldSpec(const std::string &name, const std::wstring &label,
- const std::wstring &fdeflt, int id) :
+ const std::wstring &default_text, int id) :
fname(name),
- flabel(label),
- fdefault(fdeflt),
fid(id)
{
+ flabel = unescape_string(unescape_enriched(label));
+ fdefault = unescape_string(unescape_enriched(default_text));
send = false;
ftype = f_Unknown;
is_exit = false;
@@ -235,12 +244,12 @@ class GUIFormSpecMenu : public GUIModalMenu
}
TooltipSpec(std::string a_tooltip, irr::video::SColor a_bgcolor,
irr::video::SColor a_color):
- tooltip(a_tooltip),
bgcolor(a_bgcolor),
color(a_color)
{
+ tooltip = unescape_string(unescape_enriched(utf8_to_wide(a_tooltip)));
}
- std::string tooltip;
+ std::wstring tooltip;
irr::video::SColor bgcolor;
irr::video::SColor color;
};
@@ -252,18 +261,18 @@ class GUIFormSpecMenu : public GUIModalMenu
}
StaticTextSpec(const std::wstring &a_text,
const core::rect<s32> &a_rect):
- text(a_text),
rect(a_rect),
parent_button(NULL)
{
+ text = unescape_string(unescape_enriched(a_text));
}
StaticTextSpec(const std::wstring &a_text,
const core::rect<s32> &a_rect,
gui::IGUIButton *a_parent_button):
- text(a_text),
rect(a_rect),
parent_button(a_parent_button)
{
+ text = unescape_string(unescape_enriched(a_text));
}
std::wstring text;
core::rect<s32> rect;
@@ -406,7 +415,7 @@ protected:
u32 m_tooltip_show_delay;
s32 m_hovered_time;
s32 m_old_tooltip_id;
- std::string m_old_tooltip;
+ std::wstring m_old_tooltip;
bool m_rmouse_auto_place;