feat(ui): implement CSimpleTop::OnKeyDownRepeat

This commit is contained in:
VDm 2025-08-02 18:31:14 +04:00
parent d8780335f7
commit 982aedbc02
7 changed files with 43 additions and 8 deletions

View file

@ -1091,6 +1091,10 @@ int32_t CSimpleFrame::OnLayerKeyUp(const CKeyEvent& evt) {
return 1;
}
int32_t CSimpleFrame::OnLayerKeyDownRepeat(const CKeyEvent& evt) {
return 0;
}
int32_t CSimpleFrame::OnLayerMouseDown(const CMouseEvent& evt, const char* btn) {
if (!btn) {
if (this->m_lookForDrag & evt.button) {

View file

@ -100,6 +100,7 @@ class CSimpleFrame : public CScriptRegion {
virtual int32_t OnLayerChar(const CCharEvent& evt);
virtual int32_t OnLayerKeyDown(const CKeyEvent& evt);
virtual int32_t OnLayerKeyUp(const CKeyEvent& evt);
virtual int32_t OnLayerKeyDownRepeat(const CKeyEvent& evt);
virtual int32_t OnLayerMouseDown(const CMouseEvent& evt, const char* btn);
virtual int32_t OnLayerMouseUp(const CMouseEvent& evt, const char* btn);
virtual void PostLoadXML(XMLNode* node, CStatus* status);

View file

@ -124,9 +124,25 @@ int32_t CSimpleTop::OnKeyDown(const EVENT_DATA_KEY* pKeyData, void* param) {
return eaten == 0;
}
int32_t CSimpleTop::OnKeyDownRepeat(const void* a1, void* a2) {
// TODO
return 0;
int32_t CSimpleTop::OnKeyDownRepeat(const EVENT_DATA_KEY* pKeyData, void* param) {
CSimpleTop* top = static_cast<CSimpleTop*>(param);
CSimpleTop::m_eventTime = pKeyData->time;
int32_t eaten = 0;
CSimpleFrame* frame = top->m_keydownCapture[pKeyData->key];
if (frame) {
CKeyEvent keyEvent;
keyEvent = *pKeyData;
keyEvent.id = 0x40060065;
frame->OnLayerKeyDownRepeat(keyEvent);
eaten = 1;
}
return eaten == 0;
}
int32_t CSimpleTop::OnKeyUp(const EVENT_DATA_KEY* pKeyData, void* param) {

View file

@ -36,7 +36,7 @@ class CSimpleTop : public CLayoutFrame {
static int32_t OnFocusChanged(const void* a1, void* a2);
static int32_t OnIme(const void* a1, void* a2);
static int32_t OnKeyDown(const EVENT_DATA_KEY* pKeyData, void* param);
static int32_t OnKeyDownRepeat(const void* a1, void* a2);
static int32_t OnKeyDownRepeat(const EVENT_DATA_KEY* pKeyData, void* param);
static int32_t OnKeyUp(const EVENT_DATA_KEY* pKeyData, void* param);
static int32_t OnMouseDown(const EVENT_DATA_MOUSE* pMouseData, void* param);
static int32_t OnMouseMove(const EVENT_DATA_MOUSE* pMouseData, void* param);