Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
path: root/source/windowing/StarTextBoxWidget.cpp
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-06-21 22:29:40 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-06-21 22:29:40 +1000
commitf0fec34dc9c2dbc86dd424e4963983cbb2ed9b41 (patch)
tree9073336184d32365b861df91b2fc062c39e0fb15 /source/windowing/StarTextBoxWidget.cpp
parent865f9a328a9068c9917c52c387f27b3e102712bc (diff)
The Fontpocalypse
I hate it
Diffstat (limited to 'source/windowing/StarTextBoxWidget.cpp')
-rw-r--r--source/windowing/StarTextBoxWidget.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/windowing/StarTextBoxWidget.cpp b/source/windowing/StarTextBoxWidget.cpp
index 5bcdfbf..7c69fb1 100644
--- a/source/windowing/StarTextBoxWidget.cpp
+++ b/source/windowing/StarTextBoxWidget.cpp
@@ -25,6 +25,7 @@ TextBoxWidget::TextBoxWidget(String const& startingText, String const& hint, Wid
auto fontConfig = assets->json("/interface.config:font");
m_fontSize = fontConfig.getInt("baseSize");
m_processingDirectives = fontConfig.getString("defaultDirectives");
+ m_font = fontConfig.queryString("defaultFont", "");
m_color = Color::rgb(jsonToVec3B(fontConfig.getArray("defaultColor")));
// Meh, padding is hard-coded here
@@ -46,6 +47,7 @@ void TextBoxWidget::renderImpl() {
else if (m_hAnchor == HorizontalAnchor::RightAnchor)
pos += Vec2F(size()[0], 0);
+ context()->setFont(m_font);
if ((m_maxWidth != -1) && m_overfillMode) {
context()->setFontSize(m_fontSize);
int shift = std::max(0, getCursorOffset() - m_maxWidth);
@@ -61,6 +63,7 @@ void TextBoxWidget::renderImpl() {
context()->setFontColor(m_color.mix(Color::rgbf(0, 0, 1), blueRate).toRgba());
context()->renderInterfaceText(m_text, {pos, m_hAnchor, m_vAnchor});
}
+ context()->setDefaultFont();
context()->setFontProcessingDirectives("");
context()->setFontColor(Vec4B::filled(255));
@@ -85,6 +88,7 @@ void TextBoxWidget::renderImpl() {
int TextBoxWidget::getCursorOffset() { // horizontal only
float scale;
+ context()->setFont(m_font);
context()->setFontSize(m_fontSize);
if (m_hAnchor == HorizontalAnchor::LeftAnchor) {
scale = 1.0;
@@ -391,6 +395,7 @@ bool TextBoxWidget::newTextValid(String const& text) const {
if (!text.regexMatch(m_regex))
return false;
if ((m_maxWidth != -1) && !m_overfillMode) {
+ context()->setFont(m_font);
context()->setFontSize(m_fontSize);
return context()->stringInterfaceWidth(text) <= m_maxWidth;
}