Limit on text width in textboxes

This commit is contained in:
Simon Robertshaw 2012-08-20 20:41:38 +01:00
parent 8e43ee60bb
commit 1b75cbdcc9
2 changed files with 6 additions and 3 deletions

View File

@ -361,7 +361,10 @@ void Textbox::OnVKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
cursor = getLowerSelectionBound();
}
if(limit==std::string::npos || backingText.length() < limit)
int regionWidth = Size.X;
if(Appearance.icon)
regionWidth -= 17;
if((limit==std::string::npos || backingText.length() < limit) && (Graphics::textwidth((char*)std::string(backingText+char(character)).c_str()) <= regionWidth || multiline || limit!=std::string::npos))
{
if(cursor == backingText.length())
{
@ -371,8 +374,8 @@ void Textbox::OnVKeyPress(int key, Uint16 character, bool shift, bool ctrl, bool
{
backingText.insert(cursor, 1, (char)character);
}
cursor++;
}
cursor++;
changed = true;
ClearSelection();
}

View File

@ -169,7 +169,7 @@ void PreviewView::commentBoxAutoHeight()
if(!addCommentBox)
return;
int textWidth = Graphics::textwidth(addCommentBox->GetText().c_str());
if(textWidth+5 > Size.X-(XRES/2)-48)
if(textWidth+10 > Size.X-(XRES/2)-48)
{
commentBoxHeight = 59;
addCommentBox->SetMultiline(true);