diff options
| author | Yuqian Yang <crupest@crupest.life> | 2025-11-16 14:49:46 +0800 |
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2025-11-16 14:49:46 +0800 |
| commit | c350346c41cb779413389f26c5c8f4e9bd2a8141 (patch) | |
| tree | 2bc976b3d6724f9665cab64a4d5f355d67b03e6f /src/platform/gui/win/WindowManager.cpp | |
| parent | 9feb6a1611a86b90a02b5bfe2b1d4c8189650491 (diff) | |
| download | cru-c350346c41cb779413389f26c5c8f4e9bd2a8141.tar.gz cru-c350346c41cb779413389f26c5c8f4e9bd2a8141.tar.bz2 cru-c350346c41cb779413389f26c5c8f4e9bd2a8141.zip | |
Cleanup Win codes.
Diffstat (limited to 'src/platform/gui/win/WindowManager.cpp')
| -rw-r--r-- | src/platform/gui/win/WindowManager.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/platform/gui/win/WindowManager.cpp b/src/platform/gui/win/WindowManager.cpp deleted file mode 100644 index ac172dda..00000000 --- a/src/platform/gui/win/WindowManager.cpp +++ /dev/null @@ -1,57 +0,0 @@ -#include "WindowManager.h" - -#include "cru/platform/gui/win/UiApplication.h" -#include "cru/platform/gui/win/Window.h" -#include "cru/platform/gui/win/WindowClass.h" - -namespace cru::platform::gui::win { -LRESULT __stdcall GeneralWndProc(HWND hWnd, UINT Msg, WPARAM wParam, - LPARAM lParam) { - auto window = - WinUiApplication::GetInstance()->GetWindowManager()->FromHandle(hWnd); - - LRESULT result; - if (window != nullptr && - window->HandleNativeWindowMessage(hWnd, Msg, wParam, lParam, &result)) - return result; - - return DefWindowProc(hWnd, Msg, wParam, lParam); -} - -WindowManager::WindowManager(WinUiApplication* application) { - application_ = application; - general_window_class_ = std::make_unique<WindowClass>( - L"CruUIWindowClass", GeneralWndProc, application->GetInstanceHandle()); -} - -WindowManager::~WindowManager() { - for (const auto& [key, window] : window_map_) delete window; -} - -void WindowManager::RegisterWindow(HWND hwnd, WinNativeWindow* window) { - Expects(window_map_.count(hwnd) == 0); // The hwnd is already in the map. - window_map_.emplace(hwnd, window); -} - -void WindowManager::UnregisterWindow(HWND hwnd) { - const auto find_result = window_map_.find(hwnd); - Expects(find_result != window_map_.end()); // The hwnd is not in the map. - window_map_.erase(find_result); - if (window_map_.empty() && application_->IsQuitOnAllWindowClosed()) - application_->RequestQuit(0); -} - -WinNativeWindow* WindowManager::FromHandle(HWND hwnd) { - const auto find_result = window_map_.find(hwnd); - if (find_result == window_map_.end()) - return nullptr; - else - return find_result->second; -} - -std::vector<WinNativeWindow*> WindowManager::GetAllWindows() const { - std::vector<WinNativeWindow*> windows; - for (const auto& [key, value] : window_map_) windows.push_back(value); - return windows; -} -} // namespace cru::platform::gui::win |
