aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/gui/win/UiApplication.h
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 /include/cru/platform/gui/win/UiApplication.h
parent9feb6a1611a86b90a02b5bfe2b1d4c8189650491 (diff)
downloadcru-c350346c41cb779413389f26c5c8f4e9bd2a8141.tar.gz
cru-c350346c41cb779413389f26c5c8f4e9bd2a8141.tar.bz2
cru-c350346c41cb779413389f26c5c8f4e9bd2a8141.zip
Cleanup Win codes.
Diffstat (limited to 'include/cru/platform/gui/win/UiApplication.h')
-rw-r--r--include/cru/platform/gui/win/UiApplication.h19
1 files changed, 14 insertions, 5 deletions
diff --git a/include/cru/platform/gui/win/UiApplication.h b/include/cru/platform/gui/win/UiApplication.h
index 15c23148..b2d1f39b 100644
--- a/include/cru/platform/gui/win/UiApplication.h
+++ b/include/cru/platform/gui/win/UiApplication.h
@@ -1,8 +1,10 @@
#pragma once
#include "Base.h"
+#include "Window.h"
+#include "WindowClass.h"
-#include <cru/platform/gui/UiApplication.h>
#include <cru/base/Timer.h>
+#include <cru/platform/gui/UiApplication.h>
#include <memory>
@@ -13,6 +15,8 @@ class DirectGraphicsFactory;
namespace cru::platform::gui::win {
class CRU_WIN_GUI_API WinUiApplication : public WinNativeResource,
public virtual IUiApplication {
+ friend WinNativeWindow;
+
public:
static WinUiApplication* GetInstance() { return instance; }
@@ -49,8 +53,7 @@ class CRU_WIN_GUI_API WinUiApplication : public WinNativeResource,
cru::platform::graphics::IGraphicsFactory* GetGraphicsFactory() override;
- cru::platform::graphics::direct2d::DirectGraphicsFactory*
- GetDirectFactory() {
+ cru::platform::graphics::direct2d::DirectGraphicsFactory* GetDirectFactory() {
return graph_factory_.get();
}
@@ -59,8 +62,13 @@ class CRU_WIN_GUI_API WinUiApplication : public WinNativeResource,
IClipboard* GetClipboard() override;
HINSTANCE GetInstanceHandle() const { return instance_handle_; }
+ std::vector<WinNativeWindow*> GetAllWinWindow();
+ WinNativeWindow* FromHWND(HWND hwnd);
- WindowManager* GetWindowManager() const { return window_manager_.get(); }
+ private:
+ WindowClass* GetGeneralWindowClass();
+ void RegisterWindow(WinNativeWindow* window);
+ void UnregisterWindow(WinNativeWindow* window);
private:
HINSTANCE instance_handle_;
@@ -72,7 +80,8 @@ class CRU_WIN_GUI_API WinUiApplication : public WinNativeResource,
TimerRegistry<std::function<void()>> timers_;
- std::unique_ptr<WindowManager> window_manager_;
+ std::unique_ptr<WindowClass> general_window_class_;
+ std::vector<WinNativeWindow*> windows_;
std::unique_ptr<WinCursorManager> cursor_manager_;
std::unique_ptr<WinClipboard> clipboard_;