diff options
author | crupest <crupest@outlook.com> | 2019-05-26 23:38:34 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-05-26 23:38:34 +0800 |
commit | 9e2d63adb90c293f4bc2893b0de7655aea2ecc85 (patch) | |
tree | 102bb993bf0dbca6c0673195a327f01c59287172 /include/cru/win | |
parent | a191a44e0ec7fd353cb9a60e2e7a18f45f6df04a (diff) | |
download | cru-9e2d63adb90c293f4bc2893b0de7655aea2ecc85.tar.gz cru-9e2d63adb90c293f4bc2893b0de7655aea2ecc85.tar.bz2 cru-9e2d63adb90c293f4bc2893b0de7655aea2ecc85.zip |
...
Diffstat (limited to 'include/cru/win')
-rw-r--r-- | include/cru/win/graph/win_graph_factory.hpp | 2 | ||||
-rw-r--r-- | include/cru/win/native/win_application.hpp | 17 | ||||
-rw-r--r-- | include/cru/win/native/win_native_window.hpp | 4 |
3 files changed, 13 insertions, 10 deletions
diff --git a/include/cru/win/graph/win_graph_factory.hpp b/include/cru/win/graph/win_graph_factory.hpp index 02f1a0fc..2df7ed9a 100644 --- a/include/cru/win/graph/win_graph_factory.hpp +++ b/include/cru/win/graph/win_graph_factory.hpp @@ -8,7 +8,7 @@ namespace cru::win::graph { class WinGraphFactory : public Object, public virtual platform::graph::IGraphFactory, public virtual IWinNativeFactory { - friend IGraphFactory* ::cru::platform::graph::IGraphFactory::CreateInstance(); + friend IGraphFactory* IGraphFactory::CreateInstance(); public: static WinGraphFactory* GetInstance(); diff --git a/include/cru/win/native/win_application.hpp b/include/cru/win/native/win_application.hpp index 5bdb753e..d3e705e1 100644 --- a/include/cru/win/native/win_application.hpp +++ b/include/cru/win/native/win_application.hpp @@ -11,14 +11,12 @@ class TimerManager; class WindowManager; class WinApplication : public Object, - public virtual platform::native::UiApplication { + public virtual platform::native::IUiApplication { + friend IUiApplication* IUiApplication::CreateInstance(); public: static WinApplication* GetInstance(); private: - static WinApplication* instance; - - private: explicit WinApplication(HINSTANCE h_instance); public: @@ -41,9 +39,12 @@ class WinApplication : public Object, const std::function<void()>& action) override; void CancelTimer(unsigned long id) override; - std::vector<platform::native::NativeWindow*> GetAllWindow() override; - platform::native::NativeWindow* CreateWindow( - platform::native::NativeWindow* parent) override; + std::vector<platform::native::INativeWindow*> GetAllWindow() override; + platform::native::INativeWindow* CreateWindow( + platform::native::INativeWindow* parent) override; + + bool IsAutoDelete() const override { return auto_delete_; } + void SetAutoDelete(bool value) override { auto_delete_ = value; } HINSTANCE GetInstanceHandle() const { return h_instance_; } @@ -52,6 +53,8 @@ class WinApplication : public Object, WindowManager* GetWindowManager() const { return window_manager_.get(); } private: + bool auto_delete_ = false; + HINSTANCE h_instance_; std::shared_ptr<GodWindow> god_window_; diff --git a/include/cru/win/native/win_native_window.hpp b/include/cru/win/native/win_native_window.hpp index 272ca14b..0fafc7fd 100644 --- a/include/cru/win/native/win_native_window.hpp +++ b/include/cru/win/native/win_native_window.hpp @@ -13,7 +13,7 @@ class WindowManager; class WindowRenderTarget; class WinNativeWindow : public Object, - public virtual platform::native::NativeWindow { + public virtual platform::native::INativeWindow { public: WinNativeWindow(WinApplication* application, std::shared_ptr<WindowClass> window_class, DWORD window_style, @@ -29,7 +29,7 @@ class WinNativeWindow : public Object, void Close() override; - NativeWindow* GetParent() override { return parent_window_; } + INativeWindow* GetParent() override { return parent_window_; } bool IsVisible() override; void SetVisible(bool is_visible) override; |