38 FML_LOG(ERROR) <<
"Failed to create host window";
42 active_windows_[
window->GetWindowHandle()] = std::move(
window);
53 FML_LOG(ERROR) <<
"Failed to create host window";
57 active_windows_[
window->GetWindowHandle()] = std::move(
window);
67 FML_LOG(ERROR) <<
"Failed to create host window";
71 active_windows_[
window->GetWindowHandle()] = std::move(
window);
81 FML_LOG(ERROR) <<
"Failed to create host window";
85 active_windows_[
window->GetWindowHandle()] = std::move(
window);
91 on_message_ =
nullptr;
92 std::vector<HWND> active_handles;
93 active_handles.reserve(active_windows_.size());
94 for (
auto& [hwnd,
window] : active_windows_) {
95 active_handles.push_back(hwnd);
97 for (
auto hwnd : active_handles) {
110 active_windows_.erase(hwnd);
119 FML_LOG(WARNING) <<
"Received message for unknown view";
137 on_message_(&message_struct);
139 return message_struct.
result;
152 engine->window_manager()->Initialize(request);
160 return engine->window_manager()->CreateRegularWindow(request);
169 return engine->window_manager()->CreateDialogWindow(request);
178 return engine->window_manager()->CreateTooltipWindow(request);
187 return engine->window_manager()->CreatePopupWindow(request);
196 if (
view ==
nullptr) {
199 return GetAncestor(
view->GetWindowHandle(), GA_ROOT);
213 window->SetContentSize(*size);
219 HWND flutter_view_handle =
nullptr;
226 flutter_view_handle =
window->GetFlutterViewWindowHandle();
227 ShowWindow(flutter_view_handle, SW_HIDE);
228 SetParent(flutter_view_handle,
nullptr);
231 if (flutter_view_handle) {
233 DestroyWindow(flutter_view_handle);
242 window->SetConstraints(*constraints);
250 const std::optional<FlutterEngineDisplayId> display_id =
252 ? std::optional<FlutterEngineDisplayId>(request->
display_id)
262 return window->GetFullscreen();
static FlutterWindowsEngine * GetEngineForId(int64_t engine_id)
static std::unique_ptr< HostWindow > CreatePopupWindow(WindowManager *window_manager, FlutterWindowsEngine *engine, const WindowConstraints &preferred_constraints, GetWindowPositionCallback get_position_callback, HWND parent)
static std::unique_ptr< HostWindow > CreateDialogWindow(WindowManager *window_manager, FlutterWindowsEngine *engine, const WindowSizeRequest &preferred_size, const WindowConstraints &preferred_constraints, LPCWSTR title, HWND parent, bool sized_to_content, bool resizable)
std::unique_ptr< FlutterWindowsViewController > view_controller_
static std::unique_ptr< HostWindow > CreateTooltipWindow(WindowManager *window_manager, FlutterWindowsEngine *engine, const WindowConstraints &preferred_constraints, GetWindowPositionCallback get_position_callback, HWND parent)
static ActualWindowSize GetWindowContentSize(HWND hwnd)
static std::unique_ptr< HostWindow > CreateRegularWindow(WindowManager *window_manager, FlutterWindowsEngine *engine, const WindowSizeRequest &preferred_size, const WindowConstraints &preferred_constraints, LPCWSTR title, bool sized_to_content, bool resizable)
static HostWindow * GetThisFromHandle(HWND hwnd)
FlutterViewId CreateDialogWindow(const DialogWindowCreationRequest *request)
std::optional< LRESULT > HandleMessage(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
FlutterViewId CreateRegularWindow(const RegularWindowCreationRequest *request)
void Initialize(const WindowingInitRequest *request)
WindowManager(FlutterWindowsEngine *engine)
FlutterViewId CreatePopupWindow(const PopupWindowCreationRequest *request)
FlutterViewId CreateTooltipWindow(const TooltipWindowCreationRequest *request)
G_BEGIN_DECLS FlutterViewId view_id
#define FML_LOG(severity)
WindowSizeRequest preferred_size
WindowConstraints preferred_constraints
FlutterEngineDisplayId display_id
WindowSizeRequest preferred_size
WindowConstraints preferred_constraints
void(* on_message)(WindowsMessage *)
void InternalFlutterWindows_WindowManager_Initialize(int64_t engine_id, const flutter::WindowingInitRequest *request)
void InternalFlutterWindows_WindowManager_SetWindowConstraints(HWND hwnd, const flutter::WindowConstraints *constraints)
FLUTTER_EXPORT void InternalFlutterWindows_WindowManager_UpdateTooltipPosition(HWND hwnd)
bool InternalFlutterWindows_WindowManager_GetFullscreen(HWND hwnd)
void InternalFlutterWindows_WindowManager_SetWindowSize(HWND hwnd, const flutter::WindowSizeRequest *size)
FlutterViewId InternalFlutterWindows_WindowManager_CreateRegularWindow(int64_t engine_id, const flutter::RegularWindowCreationRequest *request)
FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreateDialogWindow(int64_t engine_id, const flutter::DialogWindowCreationRequest *request)
void InternalFlutterWindows_WindowManager_SetFullscreen(HWND hwnd, const flutter::FullscreenRequest *request)
FLUTTER_EXPORT void InternalFlutterWindows_WindowManager_UpdatePopupPosition(HWND hwnd)
void InternalFlutterWindows_WindowManager_OnDestroyWindow(HWND hwnd)
flutter::ActualWindowSize InternalFlutterWindows_WindowManager_GetWindowContentSize(HWND hwnd)
FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreateTooltipWindow(int64_t engine_id, const flutter::TooltipWindowCreationRequest *request)
FLUTTER_EXPORT FlutterViewId InternalFlutterWindows_WindowManager_CreatePopupWindow(int64_t engine_id, const flutter::PopupWindowCreationRequest *request)
HWND InternalFlutterWindows_WindowManager_GetTopLevelWindowHandle(int64_t engine_id, FlutterViewId view_id)