aboutsummaryrefslogtreecommitdiff
path: root/src/platform/gui/win/WindowManager.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-11-16 14:49:46 +0800
committerYuqian Yang <crupest@crupest.life>2025-11-16 14:49:46 +0800
commitc350346c41cb779413389f26c5c8f4e9bd2a8141 (patch)
tree2bc976b3d6724f9665cab64a4d5f355d67b03e6f /src/platform/gui/win/WindowManager.cpp
parent9feb6a1611a86b90a02b5bfe2b1d4c8189650491 (diff)
downloadcru-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.cpp57
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