feat(ui): handle tab key events in CSimpleEditBox (#102)

This commit is contained in:
Tristan 'Natrist' Cormier 2025-10-05 11:30:09 -04:00 committed by GitHub
parent 9cac949796
commit 5055e03f65
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 0 deletions

View File

@ -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();

View File

@ -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);