From c350346c41cb779413389f26c5c8f4e9bd2a8141 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Sun, 16 Nov 2025 14:49:46 +0800 Subject: Cleanup Win codes. --- include/cru/platform/gui/win/UiApplication.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'include') 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 #include +#include #include @@ -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 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> timers_; - std::unique_ptr window_manager_; + std::unique_ptr general_window_class_; + std::vector windows_; std::unique_ptr cursor_manager_; std::unique_ptr clipboard_; -- cgit v1.2.3