aboutsummaryrefslogtreecommitdiff
path: root/include/cru/platform/gui/win/UiApplication.h
diff options
context:
space:
mode:
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_;