17 resizable_(resizable),
18 view_alive_(
std::make_shared<int>(0)) {}
27 <<
"HostWindowSized subclass must reset view_controller_ in its "
31void HostWindowSized::DidUpdateViewSize(int32_t
width, int32_t
height) {
35 auto const view_alive = weak_view_alive.lock();
53 int32_t physical_height) {
54 WINDOWINFO window_info = {.cbSize =
sizeof(WINDOWINFO)};
59 double const scale =
static_cast<double>(dpi > 0 ? dpi : 96) / 96.0;
62 Size(physical_width / scale, physical_height / scale),
64 window_info.dwStyle, window_info.dwExStyle,
nullptr);
71 window_size->height(),
72 SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE);
81WindowRect HostWindowSized::GetWorkArea()
const {
82 constexpr int32_t kDefaultWorkAreaSize = 10000;
83 WindowRect work_area = {0, 0, kDefaultWorkAreaSize, kDefaultWorkAreaSize};
84 HMONITOR
const monitor =
87 MONITORINFO monitor_info = {};
88 monitor_info.cbSize =
sizeof(monitor_info);
89 if (GetMonitorInfo(monitor, &monitor_info)) {
90 work_area.
left = monitor_info.rcWork.left;
91 work_area.
top = monitor_info.rcWork.top;
92 work_area.
width = monitor_info.rcWork.right - monitor_info.rcWork.left;
93 work_area.
height = monitor_info.rcWork.bottom - monitor_info.rcWork.top;
std::shared_ptr< WindowsProcTable > windows_proc_table()
TaskRunner * task_runner()
BoxConstraints box_constraints_
std::unique_ptr< FlutterWindowsViewController > view_controller_
FlutterWindowsEngine * engine_
static std::optional< Size > GetWindowSizeForClientSize(WindowsProcTable const &win32, Size const &client_size, std::optional< Size > smallest, std::optional< Size > biggest, DWORD window_style, DWORD extended_window_style, std::optional< HWND > const &owner_hwnd)
std::shared_ptr< int > view_alive_
HostWindowSized(WindowManager *window_manager, FlutterWindowsEngine *engine, bool resizable)
virtual void ApplyContentSize(int32_t physical_width, int32_t physical_height)
~HostWindowSized() override=0
void PostTask(TaskClosure task)
#define FML_DCHECK(condition)
UINT GetDpiForHWND(HWND hwnd)