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)
|
||||
: 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,6 +62,11 @@ 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());
|
||||
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();
|
||||
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user