Ejemplo n.º 1
0
void TextField::update(float dt)
{
    if (getAttachWithIME())
    {
        attachWithIMEEvent();
        setAttachWithIME(false);
    }
    if (getDetachWithIME())
    {
        detachWithIMEEvent();
        setDetachWithIME(false);
    }
    if (getInsertText())
    {
        insertTextEvent();
        setInsertText(false);
        
        textfieldRendererScaleChangedWithSize();
    }
    if (getDeleteBackward())
    {
        deleteBackwardEvent();
        setDeleteBackward(false);
        
        textfieldRendererScaleChangedWithSize();
    }
}
Ejemplo n.º 2
0
void TextField::adaptRenderers()
{
    if (_textFieldRendererAdaptDirty)
    {
        textfieldRendererScaleChangedWithSize();
        _textFieldRendererAdaptDirty = false;
    }
}
Ejemplo n.º 3
0
void TextField::setText(const std::string& text)
{
    std::string strText(text);
    
    if (isMaxLengthEnabled())
    {
        int max = _textFieldRenderer->getMaxLength();
        int text_count = _calcCharCount(text.c_str());
        int total = text_count + _calcCharCount(getStringValue());
        if (total > max)
        {
            int ascii = 0;
            int unicode = 0;
            int end = 0;
            int count = 0;
            
            for (int i = 0; i < total * 3; ++i)
            {
                char value = text[i];
                
                if (value >= 0 && value <= 127) // ascii
                {
                    ascii++;
                    count++;
                }
                else
                {
                    unicode++;
                    if (unicode % 3 == 0)
                    {
                        count++;
                    }
                }
                
                if (count == max)
                {
                    break;
                }
            }
            end = ascii + unicode;
            strText = strText.substr(0, end);
        }
    }

    const char* content = strText.c_str();
    if (isPasswordEnabled())
    {
        _textFieldRenderer->setPasswordText(content);
        _textFieldRenderer->setString("");
        _textFieldRenderer->insertText(content, strlen(content));
    }
    else
    {
        _textFieldRenderer->setString(content);
    }
    
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 4
0
void UITextField::setText(const char* text)
{
	if (!text)
	{
		return;
	}
    std::string strText(text);
    _textFieldRenderer->setString(strText.c_str());
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 5
0
void TextField::setText(const std::string& text)
{
    std::string strText(text);
    if (isMaxLengthEnabled())
    {
        strText = strText.substr(0, getMaxLength());
    }
    const char* content = strText.c_str();
    if (isPasswordEnabled())
    {
        _textFieldRenderer->setPasswordText(content);
        _textFieldRenderer->insertText(content, static_cast<int>(strlen(content)));
    }
    else
    {
        _textFieldRenderer->setString(content);
    }
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 6
0
void TextField::onSizeChanged()
{
    Widget::onSizeChanged();
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 7
0
void TextField::setFontName(const std::string& name)
{
    _textFieldRenderer->setFontName(name);
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 8
0
void TextField::setFontSize(int size)
{
    _textFieldRenderer->setFontSize(size);
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 9
0
void TextField::setPlaceHolder(const std::string& value)
{
    _textFieldRenderer->setPlaceHolder(value);
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 10
0
void UITextField::onSizeChanged()
{
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 11
0
void UITextField::setFontName(const char *name)
{
    _textFieldRenderer->setFontName(name);
    textfieldRendererScaleChangedWithSize();
}
Ejemplo n.º 12
0
void UITextField::setPlaceHolder(const char *value)
{
    _textFieldRenderer->setPlaceHolder(value);
    textfieldRendererScaleChangedWithSize();
}