aboutsummaryrefslogtreecommitdiff
path: root/src/win/native/WindowManager.cpp
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2020-10-30 00:07:57 +0800
committercrupest <crupest@outlook.com>2020-10-30 00:07:57 +0800
commit6aa2201797a9ed64ce0178215ae941d0c5f09579 (patch)
tree9a74ee8d9f616afbe693ef7825a71474850831b5 /src/win/native/WindowManager.cpp
parentb4cb4fb7552d35c267bdb66913e4c822f16346ab (diff)
downloadcru-6aa2201797a9ed64ce0178215ae941d0c5f09579.tar.gz
cru-6aa2201797a9ed64ce0178215ae941d0c5f09579.tar.bz2
cru-6aa2201797a9ed64ce0178215ae941d0c5f09579.zip
...
Diffstat (limited to 'src/win/native/WindowManager.cpp')
-rw-r--r--src/win/native/WindowManager.cpp56
1 files changed, 0 insertions, 56 deletions
diff --git a/src/win/native/WindowManager.cpp b/src/win/native/WindowManager.cpp
deleted file mode 100644
index 56cc8981..00000000
--- a/src/win/native/WindowManager.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-#include "WindowManager.hpp"
-
-#include "cru/win/native/UiApplication.hpp"
-#include "cru/win/native/Window.hpp"
-#include "cru/win/native/WindowClass.hpp"
-
-namespace cru::platform::native::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_->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::native::win