diff --git a/src/ui/CSimpleEditBox.cpp b/src/ui/CSimpleEditBox.cpp index 2716084..5ad17f7 100644 --- a/src/ui/CSimpleEditBox.cpp +++ b/src/ui/CSimpleEditBox.cpp @@ -768,6 +768,11 @@ void CSimpleEditBox::OnEscapePressed() { // TODO } +void CSimpleEditBox::OnTabPressed() { + this->RunOnTabPressedScript(); + // TODO this->DispatchAction(EVENT_TAB); +} + void CSimpleEditBox::OnFrameSizeChanged(float width, float height) { CSimpleFrame::OnFrameSizeChanged(width, height); this->UpdateSizes(); @@ -879,6 +884,10 @@ int32_t CSimpleEditBox::OnLayerKeyDown(const CKeyEvent& evt) { return 1; } + + case KEY_TAB: { + this->OnTabPressed(); + } // TODO // - remaining keys @@ -1019,6 +1028,12 @@ void CSimpleEditBox::RunOnEnterPressedScript() { } } +void CSimpleEditBox::RunOnTabPressedScript() { + if (this->m_onTabPressed.luaRef) { + this->RunScript(this->m_onTabPressed, 0, nullptr); + } +} + void CSimpleEditBox::RunOnTextChangedScript(int32_t changed) { if (this->m_onTextChanged.luaRef) { auto L = FrameScript_GetContext(); diff --git a/src/ui/CSimpleEditBox.hpp b/src/ui/CSimpleEditBox.hpp index 1272e8f..3f8fed9 100644 --- a/src/ui/CSimpleEditBox.hpp +++ b/src/ui/CSimpleEditBox.hpp @@ -93,12 +93,14 @@ class CSimpleEditBox : public CSimpleFrame, CSimpleFontedFrame { void MoveForward(int32_t highlight); void OnEnterPressed(); void OnEscapePressed(); + void OnTabPressed(); void OnTextChanged(); int32_t PrevCharOffset(int32_t offset); void RunOnCursorChangedScript(float x, float y, float w, float h); void RunOnEditFocusGainedScript(); void RunOnEditFocusLostScript(); void RunOnEnterPressedScript(); + void RunOnTabPressedScript(); void RunOnTextChangedScript(int32_t changed); void SetCursorPosition(int32_t position); void SetHistoryLines(int32_t a2);