 |
Flutter Windows Embedder
|
|
Go to the documentation of this file.
5 #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOW_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOW_H_
11 #include "flutter/fml/macros.h"
14 #include "flutter/shell/platform/embedder/embedder.h"
24 #include "flutter/third_party/accessibility/ax/platform/ax_fragment_root_delegate_win.h"
25 #include "flutter/third_party/accessibility/ax/platform/ax_fragment_root_win.h"
26 #include "flutter/third_party/accessibility/ax/platform/ax_platform_node_win.h"
27 #include "flutter/third_party/accessibility/gfx/native_widget_types.h"
41 std::unique_ptr<WindowsProcTable> windows_proc_table =
nullptr,
42 std::unique_ptr<TextInputManager> text_input_manager =
nullptr);
59 UINT wRemoveMsg)
override;
67 LPARAM lParam)
override;
75 virtual void OnResize(
unsigned int width,
unsigned int height);
84 FlutterPointerDeviceKind device_kind,
91 FlutterPointerDeviceKind device_kind,
99 FlutterPointerDeviceKind device_kind,
106 FlutterPointerDeviceKind device_kind,
113 virtual void OnText(
const std::u16string&
text)
override;
146 virtual void OnScroll(
double delta_x,
148 FlutterPointerDeviceKind device_kind,
184 size_t height)
override;
199 virtual ui::AXPlatformNodeWin*
GetAlert()
override;
228 LPARAM
const lparam) noexcept;
236 LPARAM
const lparam);
242 LPARAM
const lparam);
247 LPARAM
const lparam);
252 LPARAM
const lparam);
257 LPARAM
const lparam);
264 LPARAM
const lparam);
303 static LRESULT CALLBACK WndProc(HWND
const window,
306 LPARAM
const lparam) noexcept;
310 static const long kWmDpiChangedBeforeParent = 0x02E2;
313 static const int kDirectManipulationTimer = 1;
320 WNDCLASS RegisterWindowClass(std::wstring& title);
323 static FlutterWindow* GetThisFromHandle(HWND
const window) noexcept;
326 void TrackMouseLeaveEvent(HWND hwnd);
329 void HandleResize(UINT width, UINT height);
332 void UpdateScrollOffsetMultiplier();
337 void CreateAxFragmentRoot();
344 HCURSOR current_cursor_;
352 bool restored_ =
false;
353 bool focused_ =
false;
355 int current_dpi_ = 0;
356 int current_width_ = 0;
357 int current_height_ = 0;
360 float scroll_offset_multiplier_;
363 HWND window_handle_ =
nullptr;
366 std::wstring window_class_name_;
369 bool tracking_mouse_leave_ =
false;
373 int keycode_for_char_message_ = 0;
384 std::unique_ptr<WindowsProcTable> windows_proc_table_;
387 std::unique_ptr<TextInputManager> text_input_manager_;
390 std::unique_ptr<KeyboardManager> keyboard_manager_;
393 std::vector<TOUCHINPUT> touch_points_;
396 std::unique_ptr<ui::AXFragmentRootWin> ax_fragment_root_;
406 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOW_H_
WindowStateEvent
An event representing a change in window state that may update the.
virtual void OnComposeBegin()
virtual float GetDpiScale() override
virtual UINT Win32DispatchMessage(UINT Msg, WPARAM wParam, LPARAM lParam) override
virtual void OnThemeChange()
virtual void OnPointerDown(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id, UINT button)
virtual bool GetHighContrastEnabled()
virtual void OnCursorRectUpdated(const Rect &rect) override
std::function< void(bool)> KeyEventCallback
std::wstring NarrowToWide(const char *source)
std::variant< HWND > WindowsRenderTarget
virtual void OnImeEndComposition(UINT const message, WPARAM const wparam, LPARAM const lparam)
virtual LRESULT OnGetObject(UINT const message, WPARAM const wparam, LPARAM const lparam)
FlutterWindow(int width, int height, std::unique_ptr< WindowsProcTable > windows_proc_table=nullptr, std::unique_ptr< TextInputManager > text_input_manager=nullptr)
void InitializeChild(const char *title, unsigned int width, unsigned int height)
virtual WindowsRenderTarget GetRenderTarget() override
virtual void AbortImeComposing()
virtual bool OnBitmapSurfaceUpdated(const void *allocation, size_t row_bytes, size_t height) override
virtual void OnPointerMove(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id, int modifiers_state)
virtual ui::AXFragmentRootDelegateWin * GetAxFragmentRootDelegate()
virtual void OnText(const std::u16string &text) override
virtual ui::AXPlatformNodeWin * GetAlert() override
friend class WindowAXFragmentRootDelegate
std::unique_ptr< DirectManipulationOwner > direct_manipulation_owner_
virtual BOOL Win32PeekMessage(LPMSG lpMsg, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) override
virtual void OnPointerLeave(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id)
virtual void OnUpdateSemanticsEnabled(bool enabled)
virtual void OnPointerUp(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id, UINT button)
virtual gfx::NativeViewAccessible GetNativeViewAccessible()
virtual void UpdateFlutterCursor(const std::string &cursor_name) override
virtual void OnImeSetContext(UINT const message, WPARAM const wparam, LPARAM const lparam)
virtual void SetFlutterCursor(HCURSOR cursor) override
virtual void SetView(WindowBindingHandlerDelegate *view) override
virtual PointerLocation GetPrimaryPointerLocation() override
virtual void OnComposeChange(const std::u16string &text, int cursor_pos)
virtual void OnImeStartComposition(UINT const message, WPARAM const wparam, LPARAM const lparam)
virtual PlatformWindow GetPlatformWindow() override
virtual void OnSetCursor()
virtual void OnResetImeComposing() override
virtual void OnWindowStateEvent(WindowStateEvent event)
virtual void OnKey(int key, int scancode, int action, char32_t character, bool extended, bool was_down, KeyEventCallback callback) override
virtual void OnResize(unsigned int width, unsigned int height)
virtual void OnWindowResized() override
virtual uint32_t Win32MapVkToChar(uint32_t virtual_key) override
virtual bool NeedsVSync() override
virtual AlertPlatformNodeDelegate * GetAlertDelegate() override
virtual void OnComposeCommit()
LRESULT HandleMessage(UINT const message, WPARAM const wparam, LPARAM const lparam) noexcept
std::unique_ptr< ui::AXPlatformNodeWin > alert_node_
virtual void OnImeRequest(UINT const message, WPARAM const wparam, LPARAM const lparam)
virtual float GetScrollOffsetMultiplier()
virtual LRESULT Win32DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
virtual void OnScroll(double delta_x, double delta_y, FlutterPointerDeviceKind device_kind, int32_t device_id)
virtual void OnImeComposition(UINT const message, WPARAM const wparam, LPARAM const lparam)
virtual void OnComposeEnd()
virtual PhysicalWindowBounds GetPhysicalWindowBounds() override
std::unique_ptr< AlertPlatformNodeDelegate > alert_delegate_
virtual bool IsVisible() override
virtual void SendInitialAccessibilityFeatures() override
virtual void OnDpiScale(unsigned int dpi)
FlutterDesktopBinaryReply callback
virtual void UpdateCursorRect(const Rect &rect)