1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-07-22 17:18:39 +00:00

StaticText/EnrichedString: Styling support (#9187)

* StaticText/EnrichedString: Styling support

* Fix tooltip fg/bgcolor

* Fix default color for substr(), add unittests
This commit is contained in:
SmallJoker 2020-01-22 19:09:11 +01:00 committed by GitHub
parent fab3f5f7c8
commit 1892ff3c0d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 224 additions and 205 deletions

View file

@ -32,6 +32,7 @@ public:
const irr::video::SColor &color = irr::video::SColor(255, 255, 255, 255));
EnrichedString(const std::wstring &string,
const std::vector<irr::video::SColor> &colors);
void clear();
void operator=(const wchar_t *str);
void addAtEnd(const std::wstring &s, const irr::video::SColor &color);
@ -50,6 +51,14 @@ public:
const wchar_t *c_str() const;
const std::vector<irr::video::SColor> &getColors() const;
const std::wstring &getString() const;
void setDefaultColor(const irr::video::SColor &color);
void updateDefaultColor();
inline const irr::video::SColor &getDefaultColor() const
{
return m_default_color;
}
inline bool operator==(const EnrichedString &other) const
{
return (m_string == other.m_string && m_colors == other.m_colors);
@ -58,12 +67,6 @@ public:
{
return !(*this == other);
}
inline void clear()
{
m_string.clear();
m_colors.clear();
m_has_background = false;
}
inline bool empty() const
{
return m_string.empty();
@ -72,6 +75,7 @@ public:
{
return m_string.size();
}
inline bool hasBackground() const
{
return m_has_background;
@ -80,9 +84,19 @@ public:
{
return m_background;
}
inline void setBackground(const irr::video::SColor &color)
{
m_background = color;
m_has_background = true;
}
private:
std::wstring m_string;
std::vector<irr::video::SColor> m_colors;
bool m_has_background = false;
bool m_has_background;
irr::video::SColor m_default_color;
irr::video::SColor m_background;
// This variable defines the length of the default-colored text.
// Change this to a std::vector if an "end coloring" tag is wanted.
size_t m_default_length;
};