diff options
-rw-r--r-- | assets/opensb/interface/windowconfig/multiplayer.config.patch | 5 | ||||
-rw-r--r-- | source/windowing/StarTextBoxWidget.cpp | 18 | ||||
-rw-r--r-- | source/windowing/StarTextBoxWidget.hpp | 6 | ||||
-rw-r--r-- | source/windowing/StarWidgetParsing.cpp | 2 |
4 files changed, 28 insertions, 3 deletions
diff --git a/assets/opensb/interface/windowconfig/multiplayer.config.patch b/assets/opensb/interface/windowconfig/multiplayer.config.patch new file mode 100644 index 0000000..8830e54 --- /dev/null +++ b/assets/opensb/interface/windowconfig/multiplayer.config.patch @@ -0,0 +1,5 @@ +{ + "password" : { + "hidden" : true + } +}
\ No newline at end of file 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); |