Prefer UTF-8, cleanup, ryzom/ryzomcore#335

develop
kaetemi 4 years ago
parent 6ff5ddd790
commit 698bfff501

@ -64,13 +64,14 @@ namespace NLGUI
/// Accessors
std::string getInputString() const;
std::string getPrompt() const;
const u32string &getInputStringRef() const { return _InputString; }
const ucstring &getPrompt() const { return _Prompt; }
const u32string &getPromptRef() const { return _Prompt; }
/** Set the prompt
* NB : line returns are encoded as '\n', not '\r\n'
*/
void setPrompt(const ucstring &s) { _Prompt = s; }
void setPrompt(const std::string &s);
void setInputString(const std::string &str);
void setInputStringRef(const u32string &str) {_InputString = str; };
void setInputStringAsInt(sint32 val);
@ -228,7 +229,7 @@ namespace NLGUI
NLMISC::CRGBA _BackSelectColor;
// Text info
ucstring _Prompt;
u32string _Prompt;
u32string _InputString;
CViewText *_ViewText;

@ -96,7 +96,7 @@ namespace NLGUI
_ViewTextDeltaX(0)
{
_Prompt = ">";
_Prompt = u32string(1, '>');
_BackSelectColor= CRGBA::White;
_TextSelectColor= CRGBA::Black;
}
@ -170,7 +170,7 @@ namespace NLGUI
else
if( name == "prompt" )
{
return _Prompt.toString();
return CUtfStringView(_Prompt).toUtf8();
}
else
if( name == "enter_type" )
@ -354,7 +354,7 @@ namespace NLGUI
else
if( name == "prompt" )
{
_Prompt = value;
_Prompt = CUtfStringView(value).toUtf32();
return;
}
else
@ -477,7 +477,7 @@ namespace NLGUI
xmlSetProp( node, BAD_CAST "max_chars_size", BAD_CAST toString( _MaxCharsSize ).c_str() );
xmlSetProp( node, BAD_CAST "enter_loose_focus", BAD_CAST toString( _LooseFocusOnEnter ).c_str() );
xmlSetProp( node, BAD_CAST "enter_recover_focus", BAD_CAST toString( _RecoverFocusOnEnter ).c_str() );
xmlSetProp( node, BAD_CAST "prompt", BAD_CAST _Prompt.toString().c_str() );
xmlSetProp( node, BAD_CAST "prompt", BAD_CAST CUtfStringView(_Prompt).toUtf8().c_str() );
std::string e;
switch( _EntryType )
@ -606,7 +606,7 @@ namespace NLGUI
if (prop) _ResetFocusOnHide = convertBool(prop);
prop = (char*) xmlGetProp( cur, (xmlChar*)"prompt" );
if (prop) _Prompt = (const char*)prop;
if (prop) _Prompt = CUtfStringView((const char*)prop).toUtf32();
prop = (char*) xmlGetProp( cur, (xmlChar*)"entry_type" );
_EntryType = Text;
@ -1436,13 +1436,13 @@ namespace NLGUI
ucstring usTmp;
if (_EntryType == Password)
{
usTmp = _Prompt;
usTmp = CUtfStringView(_Prompt).toUtf16();
for (uint32 i = 0; i < _InputString.size(); ++i)
usTmp += "*";
}
else
{
usTmp = _Prompt + CUtfStringView(_InputString).toUtf16();
usTmp = CUtfStringView(_Prompt + _InputString).toUtf16();
}
_ViewText->setText (usTmp);
}
@ -1624,6 +1624,12 @@ namespace NLGUI
}
// ----------------------------------------------------------------------------
void CGroupEditBox::setPrompt(const std::string &s)
{
_Prompt = CUtfStringView(s).toUtf32();
}
// ----------------------------------------------------------------------------
void CGroupEditBox::setInputString(const std::string &str)
@ -1742,6 +1748,12 @@ namespace NLGUI
CInterfaceGroup::setActive(active);
}
// ***************************************************************************
std::string CGroupEditBox::getPrompt() const
{
return NLMISC::CUtfStringView(_Prompt).toUtf8();
}
// ***************************************************************************
std::string CGroupEditBox::getInputString() const
{

@ -288,11 +288,11 @@ class CAHEditGotoLineBegin : public CAHEdit
// go to the start of line
if (_GroupEdit->getViewText())
{
sint line = _GroupEdit->getViewText()->getLineFromIndex(_GroupEdit->getCursorPos() + (uint)_GroupEdit->getPrompt().length());
sint line = _GroupEdit->getViewText()->getLineFromIndex(_GroupEdit->getCursorPos() + (uint)_GroupEdit->getPromptRef().length());
if (line == -1) return;
sint newPos = std::max(_GroupEdit->getViewText()->getLineStartIndex(line), (sint) _GroupEdit->getPrompt().length());
sint newPos = std::max(_GroupEdit->getViewText()->getLineStartIndex(line), (sint) _GroupEdit->getPromptRef().length());
if (newPos == -1) return;
_GroupEdit->setCursorPos(newPos - (sint32)_GroupEdit->getPrompt().length());
_GroupEdit->setCursorPos(newPos - (sint32)_GroupEdit->getPromptRef().length());
_GroupEdit->setCursorAtPreviousLineEnd(false);
}
}
@ -310,20 +310,20 @@ class CAHEditGotoLineEnd : public CAHEdit
{
if (_GroupEdit->getViewText()->getMultiLine())
{
sint line = _GroupEdit->getViewText()->getLineFromIndex(_GroupEdit->getCursorPos() + (uint)_GroupEdit->getPrompt().length(), _GroupEdit->isCursorAtPreviousLineEnd());
sint line = _GroupEdit->getViewText()->getLineFromIndex(_GroupEdit->getCursorPos() + (uint)_GroupEdit->getPromptRef().length(), _GroupEdit->isCursorAtPreviousLineEnd());
if (line == -1) return;
sint newPos;
bool endOfPreviousLine;
_GroupEdit->getViewText()->getLineEndIndex(line, newPos, endOfPreviousLine);
if (newPos != -1)
{
_GroupEdit->setCursorPos(newPos - (sint32)_GroupEdit->getPrompt().length());
_GroupEdit->setCursorPos(newPos - (sint32)_GroupEdit->getPromptRef().length());
_GroupEdit->setCursorAtPreviousLineEnd(endOfPreviousLine);
}
}
else
{
_GroupEdit->setCursorPos((sint32)_GroupEdit->getPrompt().length() + (sint32)_GroupEdit->getInputString().length());
_GroupEdit->setCursorPos((sint32)_GroupEdit->getPromptRef().length() + (sint32)_GroupEdit->getInputString().length());
}
}
}
@ -378,7 +378,7 @@ class CAHEditPreviousLine : public CAHEdit
}
else if (_GroupEdit->getViewText()->getMultiLine())
{
uint cursorPosInText = _GroupEdit->getCursorPos() + (uint)_GroupEdit->getPrompt().length();
uint cursorPosInText = _GroupEdit->getCursorPos() + (uint)_GroupEdit->getPromptRef().length();
if (
(_GroupEdit->getCursorPos() == (sint32) _GroupEdit->getInputStringRef().length() && _GroupEdit->getViewText()->getNumLine() == 1) ||
_GroupEdit->getViewText()->getLineFromIndex(cursorPosInText, _GroupEdit->isCursorAtPreviousLineEnd()) == 0
@ -396,7 +396,7 @@ class CAHEditPreviousLine : public CAHEdit
_GroupEdit->getViewText()->getCharacterIndexFromPosition(cx, cy, newCharIndex, newLineEnd);
if (newLineEnd)
{
_GroupEdit->setCursorPos(newCharIndex - (sint32)_GroupEdit->getPrompt().length());
_GroupEdit->setCursorPos(newCharIndex - (sint32)_GroupEdit->getPromptRef().length());
_GroupEdit->setCursorAtPreviousLineEnd(true);
sint32 newPos = _GroupEdit->getCursorPos();
clamp(newPos, (sint32) 0, (sint32) _GroupEdit->getInputStringRef().size());
@ -417,7 +417,7 @@ class CAHEditPreviousLine : public CAHEdit
{
_GroupEdit->setCursorPos(newCharIndex + 1);
}
_GroupEdit->setCursorPos(_GroupEdit->getCursorPos()-(sint32)_GroupEdit->getPrompt().length());
_GroupEdit->setCursorPos(_GroupEdit->getCursorPos()-(sint32)_GroupEdit->getPromptRef().length());
sint32 newpos = _GroupEdit->getCursorPos();
clamp(newpos, (sint32) 0, (sint32)_GroupEdit->getInputStringRef().size());
_GroupEdit->setCursorPos(newpos);
@ -452,7 +452,7 @@ class CAHEditNextLine : public CAHEdit
{
float cx, cy;
float height;
_GroupEdit->getViewText()->getCharacterPositionFromIndex(_GroupEdit->getCursorPos() + (sint)_GroupEdit->getPrompt().length(), _GroupEdit->isCursorAtPreviousLineEnd(), cx, cy, height);
_GroupEdit->getViewText()->getCharacterPositionFromIndex(_GroupEdit->getCursorPos() + (sint)_GroupEdit->getPromptRef().length(), _GroupEdit->isCursorAtPreviousLineEnd(), cx, cy, height);
if (cy != 0)
{
cy -= height;
@ -461,7 +461,7 @@ class CAHEditNextLine : public CAHEdit
_GroupEdit->getViewText()->getCharacterIndexFromPosition(cx, cy, newCharIndex, newLineEnd);
if (newLineEnd)
{
_GroupEdit->setCursorPos(newCharIndex - (sint32)_GroupEdit->getPrompt().length());
_GroupEdit->setCursorPos(newCharIndex - (sint32)_GroupEdit->getPromptRef().length());
_GroupEdit->setCursorAtPreviousLineEnd(true);
sint32 newPos = _GroupEdit->getCursorPos();
clamp(newPos, (sint32) 0, (sint32) _GroupEdit->getInputStringRef().size());
@ -480,9 +480,9 @@ class CAHEditNextLine : public CAHEdit
}
else
{
_GroupEdit->setCursorPos(min(sint32(newCharIndex + 1), sint32(_GroupEdit->getInputStringRef().length() + _GroupEdit->getPrompt().length())));
_GroupEdit->setCursorPos(min(sint32(newCharIndex + 1), sint32(_GroupEdit->getInputStringRef().length() + _GroupEdit->getPromptRef().length())));
}
_GroupEdit->setCursorPos(_GroupEdit->getCursorPos()-(sint32)_GroupEdit->getPrompt().length());
_GroupEdit->setCursorPos(_GroupEdit->getCursorPos()-(sint32)_GroupEdit->getPromptRef().length());
sint32 newPos = _GroupEdit->getCursorPos();
clamp(newPos, (sint32) 0, (sint32) _GroupEdit->getInputStringRef().size());
_GroupEdit->setCursorPos(newPos);

@ -262,7 +262,7 @@ void CChatWindow::setPrompt(const ucstring &prompt)
if (!_Chat) return;
CGroupEditBox *eb = dynamic_cast<CGroupEditBox *>(_Chat->getGroup("eb"));
if (!eb) return;
eb->setPrompt(prompt);
eb->setPrompt(prompt.toUtf8());
}
void CChatWindow::setPromptColor(NLMISC::CRGBA col)

Loading…
Cancel
Save