Added support for secureTextEntry (passwords)

Added a secureTextEntry property. Enabling this property causes the
TextField to display the entered text as bullets.
This commit is contained in:
Marcel Bloemendaal 2013-03-28 15:08:33 +01:00
parent 696ea07495
commit 6d6a0f23eb
2 changed files with 36 additions and 1 deletions

View File

@ -55,6 +55,7 @@ CCTextFieldTTF::CCTextFieldTTF()
, m_nCharCount(0) , m_nCharCount(0)
, m_pInputText(new std::string) , m_pInputText(new std::string)
, m_pPlaceHolder(new std::string) // prevent CCLabelTTF initWithString assertion , m_pPlaceHolder(new std::string) // prevent CCLabelTTF initWithString assertion
, m_pSecureTextEntry(false)
{ {
m_ColorSpaceHolder.r = m_ColorSpaceHolder.g = m_ColorSpaceHolder.b = 127; m_ColorSpaceHolder.r = m_ColorSpaceHolder.g = m_ColorSpaceHolder.b = 127;
} }
@ -287,11 +288,25 @@ void CCTextFieldTTF::setColorSpaceHolder(const ccColor3B& color)
// input text property // input text property
void CCTextFieldTTF::setString(const char *text) void CCTextFieldTTF::setString(const char *text)
{ {
std::string displayText;
int length;
CC_SAFE_DELETE(m_pInputText); CC_SAFE_DELETE(m_pInputText);
if (text) if (text)
{ {
m_pInputText = new std::string(text); m_pInputText = new std::string(text);
displayText = *m_pInputText;
if (m_pSecureTextEntry)
{
displayText = "";
length = m_pInputText->length();
while (length)
{
displayText.append("");
--length;
}
}
} }
else else
{ {
@ -305,7 +320,7 @@ void CCTextFieldTTF::setString(const char *text)
} }
else else
{ {
CCLabelTTF::setString(m_pInputText->c_str()); CCLabelTTF::setString(displayText.c_str());
} }
m_nCharCount = _calcCharCount(m_pInputText->c_str()); m_nCharCount = _calcCharCount(m_pInputText->c_str());
} }
@ -331,4 +346,19 @@ const char * CCTextFieldTTF::getPlaceHolder(void)
return m_pPlaceHolder->c_str(); return m_pPlaceHolder->c_str();
} }
// secureTextEntry
void CCTextFieldTTF::setSecureTextEntry(bool value)
{
if (m_pSecureTextEntry != value)
{
m_pSecureTextEntry = value;
setString(getString());
}
}
bool CCTextFieldTTF::getSecureTextEntry()
{
return m_pSecureTextEntry;
}
NS_CC_END NS_CC_END

View File

@ -145,6 +145,11 @@ public:
protected: protected:
std::string * m_pPlaceHolder; std::string * m_pPlaceHolder;
ccColor3B m_ColorSpaceHolder; ccColor3B m_ColorSpaceHolder;
public:
virtual void setSecureTextEntry(bool value);
virtual bool getSecureTextEntry();
protected:
bool m_pSecureTextEntry;
protected: protected:
virtual void draw(); virtual void draw();