feat(ui): partially implement CSimpleTop dtor

This commit is contained in:
fallenoak 2025-10-06 23:42:09 -05:00
parent 509cec3f94
commit a1fafb46ec
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D
4 changed files with 37 additions and 0 deletions

View File

@ -165,3 +165,7 @@ void EventRegisterEx(EVENTID id, EVENTHANDLERFUNC handler, void* param, float pr
}
}
}
void EventUnregisterEx(EVENTID id, EVENTHANDLERFUNC handler, void* param, uint32_t flags) {
// TODO
}

View File

@ -57,6 +57,8 @@ void EventRegister(EVENTID id, int32_t (*handler)(const void*, void*));
void EventRegisterEx(EVENTID id, int32_t (*handler)(const void*, void*), void* param, float priority);
void EventUnregisterEx(EVENTID id, EVENTHANDLERFUNC handler, void* param, uint32_t flags);
void OsNetPump(uint32_t timeout);
#endif

View File

@ -397,10 +397,37 @@ CSimpleTop::CSimpleTop() : CLayoutFrame() {
CSimpleTexture::Init();
}
CSimpleTop::~CSimpleTop() {
// TODO
this->DisableEvents();
HandleClose(this->m_screenLayer);
CSimpleTop::s_instance = nullptr;
// TODO
}
void CSimpleTop::CompressStrata(int32_t strata) {
// TODO
}
void CSimpleTop::DisableEvents() {
EventUnregisterEx(EVENT_ID_CHAR, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnChar), this, -1);
EventUnregisterEx(EVENT_ID_IME, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnIme), this, -1);
EventUnregisterEx(EVENT_ID_KEYDOWN, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnKeyDown), this, -1);
EventUnregisterEx(EVENT_ID_KEYUP, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnKeyUp), this, -1);
EventUnregisterEx(EVENT_ID_KEYDOWN_REPEATING, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnKeyDownRepeat), this, -1);
EventUnregisterEx(EVENT_ID_MOUSEMOVE, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnMouseMove), this, -1);
EventUnregisterEx(EVENT_ID_MOUSEMOVE_RELATIVE, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnMouseMoveRelative), this, -1);
EventUnregisterEx(EVENT_ID_MOUSEDOWN, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnMouseDown), this, -1);
EventUnregisterEx(EVENT_ID_MOUSEUP, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnMouseUp), this, -1);
EventUnregisterEx(EVENT_ID_MOUSEWHEEL, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnMouseWheel), this, -1);
EventUnregisterEx(EVENT_ID_SIZE, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnDisplaySizeChanged), this, -1);
EventUnregisterEx(EVENT_ID_FOCUS, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnFocusChanged), this, -1);
}
void CSimpleTop::EnableEvents() {
EventRegisterEx(EVENT_ID_CHAR, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnChar), this, 1.0);
EventRegisterEx(EVENT_ID_IME, reinterpret_cast<EVENTHANDLERFUNC>(CSimpleTop::OnIme), this, 1.0);

View File

@ -61,9 +61,13 @@ class CSimpleTop : public CLayoutFrame {
int32_t (*m_mousePositionCallback)(CMouseEvent*) = nullptr;
int32_t (*m_displaySizeCallback)(const CSizeEvent&) = nullptr;
// Virtual member functions
virtual ~CSimpleTop();
// Member functions
CSimpleTop();
void CompressStrata(int32_t strata);
void DisableEvents();
void EnableEvents();
void HideFrame(CSimpleFrame* frame, int32_t a4);
void MoveOrResizeFrame(const CMouseEvent& evt);