Support for hiding text box input, hide server connection password box by default
This commit is contained in:
parent
4c006afc94
commit
cd497bbcf3
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"password" : {
|
||||||
|
"hidden" : true
|
||||||
|
}
|
||||||
|
}
|
@ -8,6 +8,7 @@ namespace Star {
|
|||||||
TextBoxWidget::TextBoxWidget(String const& startingText, String const& hint, WidgetCallbackFunc callback)
|
TextBoxWidget::TextBoxWidget(String const& startingText, String const& hint, WidgetCallbackFunc callback)
|
||||||
: m_text(startingText), m_hint(hint), m_callback(callback) {
|
: m_text(startingText), m_hint(hint), m_callback(callback) {
|
||||||
auto assets = Root::singleton().assets();
|
auto assets = Root::singleton().assets();
|
||||||
|
m_textHidden = false;
|
||||||
m_regex = ".*";
|
m_regex = ".*";
|
||||||
m_repeatKeyThreshold = 0;
|
m_repeatKeyThreshold = 0;
|
||||||
m_repeatCode = SpecialRepeatKeyCodes::None;
|
m_repeatCode = SpecialRepeatKeyCodes::None;
|
||||||
@ -61,7 +62,12 @@ void TextBoxWidget::renderImpl() {
|
|||||||
context()->renderInterfaceText(m_hint, {pos, m_hAnchor, m_vAnchor});
|
context()->renderInterfaceText(m_hint, {pos, m_hAnchor, m_vAnchor});
|
||||||
} else {
|
} else {
|
||||||
context()->setFontColor(m_color.mix(Color::rgbf(0, 0, 1), blueRate).toRgba());
|
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()->setDefaultFont();
|
||||||
context()->setFontProcessingDirectives("");
|
context()->setFontProcessingDirectives("");
|
||||||
@ -136,7 +142,7 @@ void TextBoxWidget::update() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String TextBoxWidget::getText() {
|
String TextBoxWidget::getText() const {
|
||||||
return m_text;
|
return m_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -155,6 +161,14 @@ bool TextBoxWidget::setText(String const& text, bool callback) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TextBoxWidget::getHidden() const {
|
||||||
|
return m_textHidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TextBoxWidget::setHidden(bool hidden) {
|
||||||
|
m_textHidden = hidden;
|
||||||
|
}
|
||||||
|
|
||||||
String TextBoxWidget::getRegex() {
|
String TextBoxWidget::getRegex() {
|
||||||
return m_regex;
|
return m_regex;
|
||||||
}
|
}
|
||||||
|
@ -14,9 +14,12 @@ public:
|
|||||||
|
|
||||||
virtual void update() override;
|
virtual void update() override;
|
||||||
|
|
||||||
String getText();
|
String getText() const;
|
||||||
bool setText(String const& text, bool callback = true);
|
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 .*
|
// Set the regex that the text-box must match. Defaults to .*
|
||||||
String getRegex();
|
String getRegex();
|
||||||
void setRegex(String const& regex);
|
void setRegex(String const& regex);
|
||||||
@ -56,6 +59,7 @@ private:
|
|||||||
bool modText(String const& text);
|
bool modText(String const& text);
|
||||||
bool newTextValid(String const& text) const;
|
bool newTextValid(String const& text) const;
|
||||||
|
|
||||||
|
bool m_textHidden;
|
||||||
String m_text;
|
String m_text;
|
||||||
String m_hint;
|
String m_hint;
|
||||||
String m_regex;
|
String m_regex;
|
||||||
|
@ -432,6 +432,8 @@ WidgetConstructResult WidgetParser::textboxHandler(String const& name, Json cons
|
|||||||
textbox->setMaxWidth(config.getInt("maxWidth"));
|
textbox->setMaxWidth(config.getInt("maxWidth"));
|
||||||
if (config.contains("regex"))
|
if (config.contains("regex"))
|
||||||
textbox->setRegex(config.getString("regex"));
|
textbox->setRegex(config.getString("regex"));
|
||||||
|
if (config.contains("hidden"))
|
||||||
|
textbox->setHidden(config.getBool("hidden"));
|
||||||
|
|
||||||
common(textbox, config);
|
common(textbox, config);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user