diff --git a/src/ui/CSimpleEditBox.cpp b/src/ui/CSimpleEditBox.cpp index b6ba190..04f50f5 100644 --- a/src/ui/CSimpleEditBox.cpp +++ b/src/ui/CSimpleEditBox.cpp @@ -1058,6 +1058,14 @@ void CSimpleEditBox::RunOnTextChangedScript(int32_t changed) { } } +void CSimpleEditBox::RunOnTextSetScript(const char* a2) { + if (this->m_onTextSet.luaRef) { + this->RunScript(this->m_onTextSet, 0, a2); + } + + // TODO action +} + void CSimpleEditBox::SetCursorPosition(int32_t position) { if (position >= 0) { this->m_cursorPos = std::min(this->m_textLength, position); @@ -1102,6 +1110,21 @@ void CSimpleEditBox::SetMultiLine(int32_t enabled) { this->UpdateSizes(); } +void CSimpleEditBox::SetText(const char* text, const char* a3) { + if (this->m_highlightLeft != this->m_highlightRight) { + this->m_dirtyFlags |= 0x2; + this->m_highlightRight = 0; + this->m_highlightLeft = 0; + } + + if (SStrCmp(text, this->m_text)) { + this->DeleteSubstring(0, this->m_textLength, 1); + this->m_visiblePos = 0; + this->Insert(text, a3, 0, 0, 1); + this->RunOnTextSetScript(a3); + } +} + void CSimpleEditBox::StartHighlight() { // TODO } diff --git a/src/ui/CSimpleEditBox.hpp b/src/ui/CSimpleEditBox.hpp index 2f8891b..a876e97 100644 --- a/src/ui/CSimpleEditBox.hpp +++ b/src/ui/CSimpleEditBox.hpp @@ -120,9 +120,11 @@ class CSimpleEditBox : public CSimpleFrame, CSimpleFontedFrame { void RunOnEscapePressedScript(); void RunOnTabPressedScript(); void RunOnTextChangedScript(int32_t changed); + void RunOnTextSetScript(const char* a2); void SetCursorPosition(int32_t position); void SetHistoryLines(int32_t a2); void SetMultiLine(int32_t enabled); + void SetText(const char* text, const char* a3); void StartHighlight(); void UpdateDirtyBits(); void UpdateSizes();