diff options
author | crupest <crupest@outlook.com> | 2019-04-01 16:00:29 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2019-04-01 16:00:29 +0800 |
commit | 0a429ee13c9fb9a9da6df62b1ebae101180278f5 (patch) | |
tree | 7c6f34ca466e19e423d54178825b517e94663f8d /src | |
parent | 9e382d2175c6706e69b734480e26032e16d0bde4 (diff) | |
download | cru-0a429ee13c9fb9a9da6df62b1ebae101180278f5.tar.gz cru-0a429ee13c9fb9a9da6df62b1ebae101180278f5.tar.bz2 cru-0a429ee13c9fb9a9da6df62b1ebae101180278f5.zip |
...
Diffstat (limited to 'src')
-rw-r--r-- | src/platform_win/win_application.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/platform_win/win_application.cpp b/src/platform_win/win_application.cpp index ce85dc67..31d8c990 100644 --- a/src/platform_win/win_application.cpp +++ b/src/platform_win/win_application.cpp @@ -4,11 +4,13 @@ #include "cru/platform/win/god_window.hpp" #include "cru/platform/win/graph_manager.hpp" #include "cru/platform/win/win_graph_factory.hpp" +#include "cru/platform/win/win_native_window.hpp" #include "god_window_message.hpp" #include "timer.hpp" #include "window_manager.hpp" #include <VersionHelpers.h> +#include <cassert> namespace cru::platform { UiApplication* UiApplication::GetInstance() { @@ -79,5 +81,25 @@ unsigned long WinApplication::SetInterval( void WinApplication::CancelTimer(unsigned long id) { timer_manager_->KillTimer(static_cast<UINT_PTR>(id)); } + +std::vector<NativeWindow*> WinApplication::GetAllWindow() { + const auto&& windows = window_manager_->GetAllWindows(); + std::vector<NativeWindow*> result; + for (const auto w : windows) { + result.push_back(static_cast<NativeWindow*>(w)); + } + return result; +} + +NativeWindow* WinApplication::CreateWindow(NativeWindow* parent) { + WinNativeWindow* p = nullptr; + if (parent != nullptr) { + p = dynamic_cast<WinNativeWindow*>(parent); + assert(p); + } + return new WinNativeWindow(this, window_manager_->GetGeneralWindowClass(), + WS_OVERLAPPEDWINDOW, p); +} + GraphFactory* WinApplication::GetGraphFactory() { return graph_factory_.get(); } } // namespace cru::platform::win |