16 #include "fml/logging.h"
35 if (!window || !window->GetWindowHandle()) {
36 FML_LOG(ERROR) <<
"Failed to create host window";
39 FlutterViewId const view_id = window->view_controller_->view()->view_id();
40 active_windows_[window->GetWindowHandle()] = std::move(window);
49 if (!window || !window->GetWindowHandle()) {
50 FML_LOG(ERROR) <<
"Failed to create host window";
53 FlutterViewId const view_id = window->view_controller_->view()->view_id();
54 active_windows_[window->GetWindowHandle()] = std::move(window);
60 on_message_ =
nullptr;
61 std::vector<HWND> active_handles;
62 active_handles.reserve(active_windows_.size());
63 for (
auto& [hwnd, window] : active_windows_) {
64 active_handles.push_back(hwnd);
66 for (
auto hwnd : active_handles) {
79 active_windows_.erase(hwnd);
84 FML_LOG(WARNING) <<
"Received message for unknown view";
102 on_message_(&message_struct);
104 return message_struct.
result;
143 if (view ==
nullptr) {
177 const std::optional<FlutterEngineDisplayId> display_id =
179 ? std::optional<FlutterEngineDisplayId>(request->
display_id)
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
static ActualWindowSize GetWindowContentSize(HWND hwnd)
void SetContentSize(const WindowSizeRequest &size)
static HostWindow * GetThisFromHandle(HWND hwnd)
virtual bool GetFullscreen() const
void SetConstraints(const WindowConstraints &constraints)
virtual void SetFullscreen(bool fullscreen, std::optional< FlutterEngineDisplayId > display_id)
static std::unique_ptr< HostWindow > CreateDialogWindow(WindowManager *window_manager, FlutterWindowsEngine *engine, const WindowSizeRequest &preferred_size, const WindowConstraints &preferred_constraints, LPCWSTR title, HWND parent)
static std::unique_ptr< HostWindow > CreateRegularWindow(WindowManager *window_manager, FlutterWindowsEngine *engine, const WindowSizeRequest &preferred_size, const WindowConstraints &preferred_constraints, LPCWSTR title)
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)
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)
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::ActualWindowSize InternalFlutterWindows_WindowManager_GetWindowContentSize(HWND hwnd)
HWND InternalFlutterWindows_WindowManager_GetTopLevelWindowHandle(int64_t engine_id, FlutterViewId view_id)