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

summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorKae <80987908+Novaenia@users.noreply.github.com>2023-06-28 01:40:55 +1000
committerKae <80987908+Novaenia@users.noreply.github.com>2023-06-28 01:40:55 +1000
commitcd497bbcf399bcfa17694725583cefd93bff65d9 (patch)
treec91cf4e089bb1c2c46bf8f3f44cf8d49cb4684d7 /source
parent4c006afc94e4994f215eddaa35ee22358d963019 (diff)
Support for hiding text box input, hide server connection password box by default
Diffstat (limited to 'source')
-rw-r--r--source/windowing/StarTextBoxWidget.cpp18
-rw-r--r--source/windowing/StarTextBoxWidget.hpp6
-rw-r--r--source/windowing/StarWidgetParsing.cpp2
3 files changed, 23 insertions, 3 deletions
diff --git a/source/windowing/StarTextBoxWidget.cpp b/source/windowing/StarTextBoxWidget.cpp
index 7c69fb1..0622d89 100644
--- a/source/windowing/StarTextBoxWidget.cpp
+++ b/source/windowing/StarTextBoxWidget.cpp
@@ -8,6 +8,7 @@ namespace Star {
TextBoxWidget::TextBoxWidget(String const& startingText, String const& hint, WidgetCallbackFunc callback)
: m_text(startingText), m_hint(hint), m_callback(callback) {
auto assets = Root::singleton().assets();
+ m_textHidden = false;
m_regex = ".*";
m_repeatKeyThreshold = 0;
m_repeatCode = SpecialRepeatKeyCodes::None;
@@ -61,7 +62,12 @@ void TextBoxWidget::renderImpl() {
context()->renderInterfaceText(m_hint, {pos, m_hAnchor, m_vAnchor});
} else {
context()->setFontColor(m_color.mix(Color::rgbf(0, 0, 1), blueRate).toRgba());
- context()->renderInterfaceText(m_text, {pos, m_hAnchor, m_vAnchor});
+ if (m_textHidden) {
+ String hiddenText('*', m_text.length());
+ context()->renderInterfaceText(hiddenText, { pos, m_hAnchor, m_vAnchor });
+ }
+ else
+ context()->renderInterfaceText(m_text, { pos, m_hAnchor, m_vAnchor });
}
context()->setDefaultFont();
context()->setFontProcessingDirectives("");
@@ -136,7 +142,7 @@ void TextBoxWidget::update() {
}
}
-String TextBoxWidget::getText() {
+String TextBoxWidget::getText() const {
return m_text;
}
@@ -155,6 +161,14 @@ bool TextBoxWidget::setText(String const& text, bool callback) {
return true;
}
+bool TextBoxWidget::getHidden() const {
+ return m_textHidden;
+}
+
+void TextBoxWidget::setHidden(bool hidden) {
+ m_textHidden = hidden;
+}
+
String TextBoxWidget::getRegex() {
return m_regex;
}
diff --git a/source/windowing/StarTextBoxWidget.hpp b/source/windowing/StarTextBoxWidget.hpp
index d37125a..b075e6b 100644
--- a/source/windowing/StarTextBoxWidget.hpp
+++ b/source/windowing/StarTextBoxWidget.hpp
@@ -14,9 +14,12 @@ public:
virtual void update() override;
- String getText();
+ String getText() const;
bool setText(String const& text, bool callback = true);
+ bool getHidden() const;
+ void setHidden(bool hidden);
+
// Set the regex that the text-box must match. Defaults to .*
String getRegex();
void setRegex(String const& regex);
@@ -56,6 +59,7 @@ private:
bool modText(String const& text);
bool newTextValid(String const& text) const;
+ bool m_textHidden;
String m_text;
String m_hint;
String m_regex;
diff --git a/source/windowing/StarWidgetParsing.cpp b/source/windowing/StarWidgetParsing.cpp
index c7bc69e..a8a08df 100644
--- a/source/windowing/StarWidgetParsing.cpp
+++ b/source/windowing/StarWidgetParsing.cpp
@@ -432,6 +432,8 @@ WidgetConstructResult WidgetParser::textboxHandler(String const& name, Json cons
textbox->setMaxWidth(config.getInt("maxWidth"));
if (config.contains("regex"))
textbox->setRegex(config.getString("regex"));
+ if (config.contains("hidden"))
+ textbox->setHidden(config.getBool("hidden"));
common(textbox, config);