16 #include "fml/logging.h"
31 return !active_windows_.empty();
38 if (!window || !window->GetWindowHandle()) {
39 FML_LOG(ERROR) <<
"Failed to create host window";
42 FlutterViewId const view_id = window->view_controller_->view()->view_id();
43 active_windows_[window->GetWindowHandle()] = std::move(window);
49 on_message_ =
nullptr;
50 std::vector<HWND> active_handles;
51 active_handles.reserve(active_windows_.size());
52 for (
auto& [hwnd, window] : active_windows_) {
53 active_handles.push_back(hwnd);
55 for (
auto hwnd : active_handles) {
68 active_windows_.erase(hwnd);
73 FML_LOG(WARNING) <<
"Received message for unknown view";
91 on_message_(&message_struct);
93 return message_struct.
result;
130 if (view ==
nullptr) {
140 GetClientRect(hwnd, &rect);
142 static_cast<double>(USER_DEFAULT_SCREEN_DPI);
143 double const width = rect.right / dpr;
144 double const height = rect.bottom / dpr;
146 .width = rect.right / dpr,
147 .height = rect.bottom / dpr,
FlutterWindowsView * view(FlutterViewId view_id) const
static FlutterWindowsEngine * GetEngineForId(int64_t engine_id)
FlutterWindowsView * GetViewFromTopLevelWindow(HWND hwnd) const
WindowManager * window_manager()
FlutterViewId view_id() const
virtual HWND GetWindowHandle() const
void SetContentSize(const WindowSizing &size)
static std::unique_ptr< HostWindow > CreateRegularWindow(WindowManager *controller, FlutterWindowsEngine *engine, const WindowSizing &content_size)
static HostWindow * GetThisFromHandle(HWND hwnd)
std::optional< LRESULT > HandleMessage(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
void Initialize(const WindowingInitRequest *request)
WindowManager(FlutterWindowsEngine *engine)
FlutterViewId CreateRegularWindow(const WindowCreationRequest *request)
bool HasTopLevelWindows() const
UINT FlutterDesktopGetDpiForHWND(HWND hwnd)
WindowSizing content_size
void(* on_message)(WindowsMessage *)
void InternalFlutterWindows_WindowManager_Initialize(int64_t engine_id, const flutter::WindowingInitRequest *request)
bool InternalFlutterWindows_WindowManager_HasTopLevelWindows(int64_t engine_id)
FlutterViewId InternalFlutterWindows_WindowManager_CreateRegularWindow(int64_t engine_id, const flutter::WindowCreationRequest *request)
FlutterWindowSize InternalFlutterWindows_WindowManager_GetWindowContentSize(HWND hwnd)
HWND InternalFlutterWindows_WindowManager_GetTopLevelWindowHandle(int64_t engine_id, FlutterViewId view_id)
void InternalFlutterWindows_WindowManager_SetWindowContentSize(HWND hwnd, const flutter::WindowSizing *size)