mirror of
https://github.com/luanti-org/luanti.git
synced 2025-10-13 08:35:20 +02: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:
@@ -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;
|
||||
};
|
||||
|
Reference in New Issue
Block a user