mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-22 14:15:38 +00:00
Added <forceUppercase> theming tag.
Applies to <text>, <textlist>, and <datetime> elements. See THEMES.md for details.
This commit is contained in:
parent
11065cc582
commit
e2458f5d92
|
@ -342,6 +342,7 @@ Reference
|
||||||
* `image name="logo"` - PATH
|
* `image name="logo"` - PATH
|
||||||
- A logo image, to be displayed in the system logo carousel.
|
- A logo image, to be displayed in the system logo carousel.
|
||||||
* You can use extra elements (elements with `extra="true"`) to add your own backgrounds, etc. They will be displayed behind the carousel, and scroll relative to the carousel.
|
* You can use extra elements (elements with `extra="true"`) to add your own backgrounds, etc. They will be displayed behind the carousel, and scroll relative to the carousel.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
#### fastSelect
|
#### fastSelect
|
||||||
|
@ -419,6 +420,7 @@ Can be created as an extra.
|
||||||
- Size of the font as a percentage of screen height (e.g. for a value of `0.1`, the text's height would be 10% of the screen height).
|
- Size of the font as a percentage of screen height (e.g. for a value of `0.1`, the text's height would be 10% of the screen height).
|
||||||
* `alignment` - type: STRING.
|
* `alignment` - type: STRING.
|
||||||
- Valid values are "left", "center", or "right". Controls alignment on the X axis. "center" will also align vertically.
|
- Valid values are "left", "center", or "right". Controls alignment on the X axis. "center" will also align vertically.
|
||||||
|
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
||||||
|
|
||||||
#### textlist
|
#### textlist
|
||||||
|
|
||||||
|
@ -440,6 +442,7 @@ Can be created as an extra.
|
||||||
- Valid values are "left", "center", or "right". Controls alignment on the X axis.
|
- Valid values are "left", "center", or "right". Controls alignment on the X axis.
|
||||||
* `horizontalMargin` - type: FLOAT.
|
* `horizontalMargin` - type: FLOAT.
|
||||||
- Horizontal offset for text from the alignment point. If `alignment` is "left", offsets the text to the right. If `alignment` is "right", offsets text to the left. No effect if `alignment` is "center". Given as a percentage of the element's parent's width (same unit as `size`'s X value).
|
- Horizontal offset for text from the alignment point. If `alignment` is "left", offsets the text to the right. If `alignment` is "right", offsets text to the left. No effect if `alignment` is "center". Given as a percentage of the element's parent's width (same unit as `size`'s X value).
|
||||||
|
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
||||||
|
|
||||||
#### ninepatch
|
#### ninepatch
|
||||||
|
|
||||||
|
@ -467,6 +470,7 @@ EmulationStation borrows the concept of "nine patches" from Android (or "9-Slice
|
||||||
* `color` - type: COLOR.
|
* `color` - type: COLOR.
|
||||||
* `fontPath` - type: PATH.
|
* `fontPath` - type: PATH.
|
||||||
* `fontSize` - type: FLOAT.
|
* `fontSize` - type: FLOAT.
|
||||||
|
* `forceUppercase` - type: BOOLEAN. Draw text in uppercase.
|
||||||
|
|
||||||
#### sound
|
#### sound
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,8 @@ std::map< std::string, ElementMapType > ThemeData::sElementMap = boost::assign::
|
||||||
("color", COLOR)
|
("color", COLOR)
|
||||||
("fontPath", PATH)
|
("fontPath", PATH)
|
||||||
("fontSize", FLOAT)
|
("fontSize", FLOAT)
|
||||||
("alignment", STRING)))
|
("alignment", STRING)
|
||||||
|
("forceUppercase", BOOLEAN)))
|
||||||
("textlist", makeMap(boost::assign::map_list_of
|
("textlist", makeMap(boost::assign::map_list_of
|
||||||
("pos", NORMALIZED_PAIR)
|
("pos", NORMALIZED_PAIR)
|
||||||
("size", NORMALIZED_PAIR)
|
("size", NORMALIZED_PAIR)
|
||||||
|
@ -51,7 +52,8 @@ std::map< std::string, ElementMapType > ThemeData::sElementMap = boost::assign::
|
||||||
("fontSize", FLOAT)
|
("fontSize", FLOAT)
|
||||||
("scrollSound", PATH)
|
("scrollSound", PATH)
|
||||||
("alignment", STRING)
|
("alignment", STRING)
|
||||||
("horizontalMargin", FLOAT)))
|
("horizontalMargin", FLOAT)
|
||||||
|
("forceUppercase", BOOLEAN)))
|
||||||
("container", makeMap(boost::assign::map_list_of
|
("container", makeMap(boost::assign::map_list_of
|
||||||
("pos", NORMALIZED_PAIR)
|
("pos", NORMALIZED_PAIR)
|
||||||
("size", NORMALIZED_PAIR)))
|
("size", NORMALIZED_PAIR)))
|
||||||
|
@ -64,7 +66,8 @@ std::map< std::string, ElementMapType > ThemeData::sElementMap = boost::assign::
|
||||||
("size", NORMALIZED_PAIR)
|
("size", NORMALIZED_PAIR)
|
||||||
("color", COLOR)
|
("color", COLOR)
|
||||||
("fontPath", PATH)
|
("fontPath", PATH)
|
||||||
("fontSize", FLOAT)))
|
("fontSize", FLOAT)
|
||||||
|
("forceUppercase", BOOLEAN)))
|
||||||
("rating", makeMap(boost::assign::map_list_of
|
("rating", makeMap(boost::assign::map_list_of
|
||||||
("pos", NORMALIZED_PAIR)
|
("pos", NORMALIZED_PAIR)
|
||||||
("size", NORMALIZED_PAIR)
|
("size", NORMALIZED_PAIR)
|
||||||
|
|
|
@ -35,6 +35,7 @@ namespace ThemeFlags
|
||||||
SOUND = 128,
|
SOUND = 128,
|
||||||
ALIGNMENT = 256,
|
ALIGNMENT = 256,
|
||||||
TEXT = 512,
|
TEXT = 512,
|
||||||
|
FORCE_UPPERCASE = 1024,
|
||||||
|
|
||||||
ALL = 0xFFFFFFFF
|
ALL = 0xFFFFFFFF
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
|
|
||||||
DateTimeComponent::DateTimeComponent(Window* window, DisplayMode dispMode) : GuiComponent(window),
|
DateTimeComponent::DateTimeComponent(Window* window, DisplayMode dispMode) : GuiComponent(window),
|
||||||
mEditing(false), mEditIndex(0), mDisplayMode(dispMode), mRelativeUpdateAccumulator(0),
|
mEditing(false), mEditIndex(0), mDisplayMode(dispMode), mRelativeUpdateAccumulator(0),
|
||||||
mColor(0x777777FF), mFont(Font::get(FONT_SIZE_SMALL, FONT_PATH_LIGHT)), mSizeSet(false)
|
mColor(0x777777FF), mFont(Font::get(FONT_SIZE_SMALL, FONT_PATH_LIGHT)), mUppercase(false), mSizeSet(false)
|
||||||
{
|
{
|
||||||
updateTextCache();
|
updateTextCache();
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ DateTimeComponent::DateTimeComponent(Window* window, DisplayMode dispMode) : Gui
|
||||||
void DateTimeComponent::setDisplayMode(DisplayMode mode)
|
void DateTimeComponent::setDisplayMode(DisplayMode mode)
|
||||||
{
|
{
|
||||||
mDisplayMode = mode;
|
mDisplayMode = mode;
|
||||||
|
updateTextCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool DateTimeComponent::input(InputConfig* config, Input input)
|
bool DateTimeComponent::input(InputConfig* config, Input input)
|
||||||
|
@ -249,7 +250,7 @@ std::shared_ptr<Font> DateTimeComponent::getFont() const
|
||||||
void DateTimeComponent::updateTextCache()
|
void DateTimeComponent::updateTextCache()
|
||||||
{
|
{
|
||||||
DisplayMode mode = getCurrentDisplayMode();
|
DisplayMode mode = getCurrentDisplayMode();
|
||||||
const std::string dispString = getDisplayString(mode);
|
const std::string dispString = mUppercase ? strToUpper(getDisplayString(mode)) : getDisplayString(mode);
|
||||||
std::shared_ptr<Font> font = getFont();
|
std::shared_ptr<Font> font = getFont();
|
||||||
mTextCache = std::unique_ptr<TextCache>(font->buildTextCache(dispString, 0, 0, mColor));
|
mTextCache = std::unique_ptr<TextCache>(font->buildTextCache(dispString, 0, 0, mColor));
|
||||||
|
|
||||||
|
@ -302,6 +303,12 @@ void DateTimeComponent::onSizeChanged()
|
||||||
updateTextCache();
|
updateTextCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DateTimeComponent::setUppercase(bool uppercase)
|
||||||
|
{
|
||||||
|
mUppercase = uppercase;
|
||||||
|
updateTextCache();
|
||||||
|
}
|
||||||
|
|
||||||
void DateTimeComponent::applyTheme(const std::shared_ptr<ThemeData>& theme, const std::string& view, const std::string& element, unsigned int properties)
|
void DateTimeComponent::applyTheme(const std::shared_ptr<ThemeData>& theme, const std::string& view, const std::string& element, unsigned int properties)
|
||||||
{
|
{
|
||||||
GuiComponent::applyTheme(theme, view, element, properties);
|
GuiComponent::applyTheme(theme, view, element, properties);
|
||||||
|
@ -315,5 +322,8 @@ void DateTimeComponent::applyTheme(const std::shared_ptr<ThemeData>& theme, cons
|
||||||
if(properties & COLOR && elem->has("color"))
|
if(properties & COLOR && elem->has("color"))
|
||||||
setColor(elem->get<unsigned int>("color"));
|
setColor(elem->get<unsigned int>("color"));
|
||||||
|
|
||||||
|
if(properties & FORCE_UPPERCASE && elem->has("forceUppercase"))
|
||||||
|
setUppercase(elem->get<bool>("forceUppercase"));
|
||||||
|
|
||||||
setFont(Font::getFromTheme(elem, properties, mFont));
|
setFont(Font::getFromTheme(elem, properties, mFont));
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ public:
|
||||||
|
|
||||||
void setColor(unsigned int color); // Text color.
|
void setColor(unsigned int color); // Text color.
|
||||||
void setFont(std::shared_ptr<Font> font); // Font to display with. Default is Font::get(FONT_SIZE_MEDIUM).
|
void setFont(std::shared_ptr<Font> font); // Font to display with. Default is Font::get(FONT_SIZE_MEDIUM).
|
||||||
|
void setUppercase(bool uppercase); // Force text to be uppercase when in DISP_RELATIVE_TO_NOW mode.
|
||||||
|
|
||||||
virtual void applyTheme(const std::shared_ptr<ThemeData>& theme, const std::string& view, const std::string& element, unsigned int properties) override;
|
virtual void applyTheme(const std::shared_ptr<ThemeData>& theme, const std::string& view, const std::string& element, unsigned int properties) override;
|
||||||
|
|
||||||
|
@ -59,6 +60,7 @@ private:
|
||||||
|
|
||||||
unsigned int mColor;
|
unsigned int mColor;
|
||||||
std::shared_ptr<Font> mFont;
|
std::shared_ptr<Font> mFont;
|
||||||
|
bool mUppercase;
|
||||||
|
|
||||||
bool mSizeSet;
|
bool mSizeSet;
|
||||||
};
|
};
|
||||||
|
|
|
@ -7,13 +7,13 @@
|
||||||
#include "../Settings.h"
|
#include "../Settings.h"
|
||||||
|
|
||||||
TextComponent::TextComponent(Window* window) : GuiComponent(window),
|
TextComponent::TextComponent(Window* window) : GuiComponent(window),
|
||||||
mFont(Font::get(FONT_SIZE_MEDIUM)), mColor(0x000000FF), mAutoCalcExtent(true, true), mAlignment(ALIGN_LEFT)
|
mFont(Font::get(FONT_SIZE_MEDIUM)), mUppercase(false), mColor(0x000000FF), mAutoCalcExtent(true, true), mAlignment(ALIGN_LEFT)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
TextComponent::TextComponent(Window* window, const std::string& text, const std::shared_ptr<Font>& font, unsigned int color, Alignment align,
|
TextComponent::TextComponent(Window* window, const std::string& text, const std::shared_ptr<Font>& font, unsigned int color, Alignment align,
|
||||||
Eigen::Vector3f pos, Eigen::Vector2f size) : GuiComponent(window),
|
Eigen::Vector3f pos, Eigen::Vector2f size) : GuiComponent(window),
|
||||||
mFont(NULL), mColor(0x000000FF), mAutoCalcExtent(true, true), mAlignment(align)
|
mFont(NULL), mUppercase(false), mColor(0x000000FF), mAutoCalcExtent(true, true), mAlignment(align)
|
||||||
{
|
{
|
||||||
setFont(font);
|
setFont(font);
|
||||||
setColor(color);
|
setColor(color);
|
||||||
|
@ -63,6 +63,12 @@ void TextComponent::setText(const std::string& text)
|
||||||
onTextChanged();
|
onTextChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TextComponent::setUppercase(bool uppercase)
|
||||||
|
{
|
||||||
|
mUppercase = uppercase;
|
||||||
|
onTextChanged();
|
||||||
|
}
|
||||||
|
|
||||||
void TextComponent::render(const Eigen::Affine3f& parentTrans)
|
void TextComponent::render(const Eigen::Affine3f& parentTrans)
|
||||||
{
|
{
|
||||||
Eigen::Affine3f trans = parentTrans * getTransform();
|
Eigen::Affine3f trans = parentTrans * getTransform();
|
||||||
|
@ -118,11 +124,11 @@ void TextComponent::calculateExtent()
|
||||||
{
|
{
|
||||||
if(mAutoCalcExtent.x())
|
if(mAutoCalcExtent.x())
|
||||||
{
|
{
|
||||||
mSize = mFont->sizeText(mText);
|
mSize = mFont->sizeText(mUppercase ? strToUpper(mText) : mText);
|
||||||
}else{
|
}else{
|
||||||
if(mAutoCalcExtent.y())
|
if(mAutoCalcExtent.y())
|
||||||
{
|
{
|
||||||
mSize[1] = mFont->sizeWrappedText(mText, getSize().x()).y();
|
mSize[1] = mFont->sizeWrappedText(mUppercase ? strToUpper(mText) : mText, getSize().x()).y();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -131,16 +137,17 @@ void TextComponent::onTextChanged()
|
||||||
{
|
{
|
||||||
calculateExtent();
|
calculateExtent();
|
||||||
|
|
||||||
|
std::string text = mUppercase ? strToUpper(mText) : mText;
|
||||||
|
|
||||||
std::shared_ptr<Font> f = getFont();
|
std::shared_ptr<Font> f = getFont();
|
||||||
const bool wrap = (mSize.y() == 0 || (int)mSize.y() > f->getHeight());
|
const bool wrap = (mSize.y() == 0 || (int)mSize.y() > f->getHeight());
|
||||||
Eigen::Vector2f size = f->sizeText(mText);
|
Eigen::Vector2f size = f->sizeText(text);
|
||||||
if(!wrap && mSize.x() && mText.size() && size.x() > mSize.x())
|
if(!wrap && mSize.x() && text.size() && size.x() > mSize.x())
|
||||||
{
|
{
|
||||||
// abbreviate text
|
// abbreviate text
|
||||||
const std::string abbrev = "...";
|
const std::string abbrev = "...";
|
||||||
Eigen::Vector2f abbrevSize = f->sizeText(abbrev);
|
Eigen::Vector2f abbrevSize = f->sizeText(abbrev);
|
||||||
|
|
||||||
std::string text = mText;
|
|
||||||
while(text.size() && size.x() + abbrevSize.x() > mSize.x())
|
while(text.size() && size.x() + abbrevSize.x() > mSize.x())
|
||||||
{
|
{
|
||||||
text.erase(text.size() - 1, 1);
|
text.erase(text.size() - 1, 1);
|
||||||
|
@ -151,7 +158,7 @@ void TextComponent::onTextChanged()
|
||||||
|
|
||||||
mTextCache = std::shared_ptr<TextCache>(f->buildTextCache(text, 0, 0, (mColor >> 8 << 8) | mOpacity));
|
mTextCache = std::shared_ptr<TextCache>(f->buildTextCache(text, 0, 0, (mColor >> 8 << 8) | mOpacity));
|
||||||
}else{
|
}else{
|
||||||
mTextCache = std::shared_ptr<TextCache>(f->buildTextCache(f->wrapText(mText, mSize.x()), 0, 0, (mColor >> 8 << 8) | mOpacity));
|
mTextCache = std::shared_ptr<TextCache>(f->buildTextCache(f->wrapText(text, mSize.x()), 0, 0, (mColor >> 8 << 8) | mOpacity));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,5 +209,8 @@ void TextComponent::applyTheme(const std::shared_ptr<ThemeData>& theme, const st
|
||||||
if(properties & TEXT && elem->has("text"))
|
if(properties & TEXT && elem->has("text"))
|
||||||
setText(elem->get<std::string>("text"));
|
setText(elem->get<std::string>("text"));
|
||||||
|
|
||||||
|
if(properties & FORCE_UPPERCASE && elem->has("forceUppercase"))
|
||||||
|
setUppercase(elem->get<bool>("forceUppercase"));
|
||||||
|
|
||||||
setFont(Font::getFromTheme(elem, properties, mFont));
|
setFont(Font::getFromTheme(elem, properties, mFont));
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ public:
|
||||||
Eigen::Vector3f pos = Eigen::Vector3f::Zero(), Eigen::Vector2f size = Eigen::Vector2f::Zero());
|
Eigen::Vector3f pos = Eigen::Vector3f::Zero(), Eigen::Vector2f size = Eigen::Vector2f::Zero());
|
||||||
|
|
||||||
void setFont(const std::shared_ptr<Font>& font);
|
void setFont(const std::shared_ptr<Font>& font);
|
||||||
|
void setUppercase(bool uppercase);
|
||||||
void onSizeChanged() override;
|
void onSizeChanged() override;
|
||||||
void setText(const std::string& text);
|
void setText(const std::string& text);
|
||||||
void setColor(unsigned int color);
|
void setColor(unsigned int color);
|
||||||
|
@ -44,6 +45,7 @@ private:
|
||||||
|
|
||||||
unsigned int mColor;
|
unsigned int mColor;
|
||||||
std::shared_ptr<Font> mFont;
|
std::shared_ptr<Font> mFont;
|
||||||
|
bool mUppercase;
|
||||||
Eigen::Matrix<bool, 1, 2> mAutoCalcExtent;
|
Eigen::Matrix<bool, 1, 2> mAutoCalcExtent;
|
||||||
std::string mText;
|
std::string mText;
|
||||||
std::shared_ptr<TextCache> mTextCache;
|
std::shared_ptr<TextCache> mTextCache;
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include "../Sound.h"
|
#include "../Sound.h"
|
||||||
#include "../Log.h"
|
#include "../Log.h"
|
||||||
#include "../ThemeData.h"
|
#include "../ThemeData.h"
|
||||||
|
#include "../Util.h"
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
struct TextListData
|
struct TextListData
|
||||||
|
@ -60,7 +61,13 @@ public:
|
||||||
inline void setFont(const std::shared_ptr<Font>& font)
|
inline void setFont(const std::shared_ptr<Font>& font)
|
||||||
{
|
{
|
||||||
mFont = font;
|
mFont = font;
|
||||||
|
for(auto it = mEntries.begin(); it != mEntries.end(); it++)
|
||||||
|
it->data.textCache.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void setUppercase(bool uppercase)
|
||||||
|
{
|
||||||
|
mUppercase = true;
|
||||||
for(auto it = mEntries.begin(); it != mEntries.end(); it++)
|
for(auto it = mEntries.begin(); it != mEntries.end(); it++)
|
||||||
it->data.textCache.reset();
|
it->data.textCache.reset();
|
||||||
}
|
}
|
||||||
|
@ -75,7 +82,6 @@ protected:
|
||||||
virtual void onScroll(int amt) { if(mScrollSound) mScrollSound->play(); }
|
virtual void onScroll(int amt) { if(mScrollSound) mScrollSound->play(); }
|
||||||
virtual void onCursorChanged(const CursorState& state);
|
virtual void onCursorChanged(const CursorState& state);
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const int MARQUEE_DELAY = 900;
|
static const int MARQUEE_DELAY = 900;
|
||||||
static const int MARQUEE_SPEED = 16;
|
static const int MARQUEE_SPEED = 16;
|
||||||
|
@ -90,6 +96,7 @@ private:
|
||||||
std::function<void(CursorState state)> mCursorChangedCallback;
|
std::function<void(CursorState state)> mCursorChangedCallback;
|
||||||
|
|
||||||
std::shared_ptr<Font> mFont;
|
std::shared_ptr<Font> mFont;
|
||||||
|
bool mUppercase;
|
||||||
unsigned int mSelectorColor;
|
unsigned int mSelectorColor;
|
||||||
unsigned int mSelectedColor;
|
unsigned int mSelectedColor;
|
||||||
std::shared_ptr<Sound> mScrollSound;
|
std::shared_ptr<Sound> mScrollSound;
|
||||||
|
@ -108,6 +115,7 @@ TextListComponent<T>::TextListComponent(Window* window) :
|
||||||
mAlignment = ALIGN_CENTER;
|
mAlignment = ALIGN_CENTER;
|
||||||
|
|
||||||
mFont = Font::get(FONT_SIZE_MEDIUM);
|
mFont = Font::get(FONT_SIZE_MEDIUM);
|
||||||
|
mUppercase = false;
|
||||||
mSelectorColor = 0x000000FF;
|
mSelectorColor = 0x000000FF;
|
||||||
mSelectedColor = 0;
|
mSelectedColor = 0;
|
||||||
mColors[0] = 0x0000FFFF;
|
mColors[0] = 0x0000FFFF;
|
||||||
|
@ -171,7 +179,7 @@ void TextListComponent<T>::render(const Eigen::Affine3f& parentTrans)
|
||||||
color = mColors[entry.data.colorId];
|
color = mColors[entry.data.colorId];
|
||||||
|
|
||||||
if(!entry.data.textCache)
|
if(!entry.data.textCache)
|
||||||
entry.data.textCache = std::unique_ptr<TextCache>(font->buildTextCache(entry.name, 0, 0, 0x000000FF));
|
entry.data.textCache = std::unique_ptr<TextCache>(font->buildTextCache(mUppercase ? strToUpper(entry.name) : entry.name, 0, 0, 0x000000FF));
|
||||||
|
|
||||||
entry.data.textCache->setColor(color);
|
entry.data.textCache->setColor(color);
|
||||||
|
|
||||||
|
@ -351,4 +359,7 @@ void TextListComponent<T>::applyTheme(const std::shared_ptr<ThemeData>& theme, c
|
||||||
mHorizontalMargin = elem->get<float>("horizontalMargin") * (this->mParent ? this->mParent->getSize().x() : (float)Renderer::getScreenWidth());
|
mHorizontalMargin = elem->get<float>("horizontalMargin") * (this->mParent ? this->mParent->getSize().x() : (float)Renderer::getScreenWidth());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(properties & FORCE_UPPERCASE && elem->has("forceUppercase"))
|
||||||
|
setUppercase(elem->get<bool>("forceUppercase"));
|
||||||
}
|
}
|
||||||
|
|
|
@ -107,7 +107,7 @@ void DetailedGameListView::onThemeChanged(const std::shared_ptr<ThemeData>& them
|
||||||
|
|
||||||
mDescContainer.applyTheme(theme, getName(), "md_description", POSITION | ThemeFlags::SIZE);
|
mDescContainer.applyTheme(theme, getName(), "md_description", POSITION | ThemeFlags::SIZE);
|
||||||
mDescription.setSize(mDescContainer.getSize().x(), 0);
|
mDescription.setSize(mDescContainer.getSize().x(), 0);
|
||||||
mDescription.applyTheme(theme, getName(), "md_description", FONT_PATH | FONT_SIZE | COLOR);
|
mDescription.applyTheme(theme, getName(), "md_description", FONT_PATH | FONT_SIZE | COLOR | FORCE_UPPERCASE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DetailedGameListView::initMDLabels()
|
void DetailedGameListView::initMDLabels()
|
||||||
|
|
Loading…
Reference in a new issue