diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-28 18:46:52 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-28 18:46:52 +0800 |
| commit | fa9e88a3a753de0f7a33efcf6a2671c28f099ba3 (patch) | |
| tree | a0836203b9d178ff6cd1cf0acb3620852d7566ac /src/platform/gui/sdl/Window.cpp | |
| parent | 9e596ff10782455615f69b9b54ce22176145b020 (diff) | |
| download | cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.tar.gz cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.tar.bz2 cru-fa9e88a3a753de0f7a33efcf6a2671c28f099ba3.zip | |
sdl add event dispatch logic.
Diffstat (limited to 'src/platform/gui/sdl/Window.cpp')
| -rw-r--r-- | src/platform/gui/sdl/Window.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/platform/gui/sdl/Window.cpp b/src/platform/gui/sdl/Window.cpp index b0fcded4..3ab8cf4d 100644 --- a/src/platform/gui/sdl/Window.cpp +++ b/src/platform/gui/sdl/Window.cpp @@ -18,6 +18,8 @@ namespace cru::platform::gui::sdl { SdlWindow::SdlWindow(SdlUiApplication* application) : application_(application), + sdl_window_(nullptr), + sdl_window_id_(0), client_rect_(100, 100, 400, 200), parent_(nullptr) { application->RegisterWindow(this); @@ -214,6 +216,11 @@ void SdlWindow::DoCreateWindow() { throw SdlException("Failed to create window."); } + sdl_window_id_ = SDL_GetWindowID(sdl_window_); + if (sdl_window_id_ == 0) { + throw SdlException("Failed to get ID of created window."); + } + CreateEvent_.Raise(nullptr); CheckSdlReturn( @@ -309,6 +316,7 @@ bool SdlWindow::HandleEvent(const SDL_Event* event) { VisibilityChangeEvent_.Raise(WindowVisibilityType::Hide); DestroyEvent_.Raise(nullptr); sdl_window_ = nullptr; + sdl_window_id_ = 0; return true; } case SDL_EVENT_MOUSE_BUTTON_DOWN: { |
