Flutter Windows Embedder
flutter_window.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOW_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOW_H_
7 
8 #include <string>
9 #include <vector>
10 
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"
28 
29 namespace flutter {
30 
31 // A win32 flutter child window used as implementations for flutter view. In
32 // the future, there will likely be a CoreWindow-based FlutterWindow as well.
33 // At the point may make sense to dependency inject the native window rather
34 // than inherit.
36  public WindowBindingHandler {
37  public:
38  // Create flutter Window for use as child window
39  FlutterWindow(int width,
40  int height,
41  std::unique_ptr<WindowsProcTable> windows_proc_table = nullptr,
42  std::unique_ptr<TextInputManager> text_input_manager = nullptr);
43 
44  virtual ~FlutterWindow();
45 
46  // Initializes as a child window with size using |width| and |height| and
47  // |title| to identify the windowclass. Does not show window, window must be
48  // parented into window hierarchy by caller.
49  void InitializeChild(const char* title,
50  unsigned int width,
51  unsigned int height);
52 
53  HWND GetWindowHandle();
54 
55  // |KeyboardManager::WindowDelegate|
56  virtual BOOL Win32PeekMessage(LPMSG lpMsg,
57  UINT wMsgFilterMin,
58  UINT wMsgFilterMax,
59  UINT wRemoveMsg) override;
60 
61  // |KeyboardManager::WindowDelegate|
62  virtual uint32_t Win32MapVkToChar(uint32_t virtual_key) override;
63 
64  // |KeyboardManager::WindowDelegate|
65  virtual UINT Win32DispatchMessage(UINT Msg,
66  WPARAM wParam,
67  LPARAM lParam) override;
68 
69  // Called when the DPI changes either when a
70  // user drags the window between monitors of differing DPI or when the user
71  // manually changes the scale factor.
72  virtual void OnDpiScale(unsigned int dpi);
73 
74  // Called when a resize occurs.
75  virtual void OnResize(unsigned int width, unsigned int height);
76 
77  // Called when a paint is requested.
78  virtual void OnPaint();
79 
80  // Called when the pointer moves within the
81  // window bounds.
82  virtual void OnPointerMove(double x,
83  double y,
84  FlutterPointerDeviceKind device_kind,
85  int32_t device_id,
86  int modifiers_state);
87 
88  // Called when the a mouse button, determined by |button|, goes down.
89  virtual void OnPointerDown(double x,
90  double y,
91  FlutterPointerDeviceKind device_kind,
92  int32_t device_id,
93  UINT button);
94 
95  // Called when the a mouse button, determined by |button|, goes from
96  // down to up
97  virtual void OnPointerUp(double x,
98  double y,
99  FlutterPointerDeviceKind device_kind,
100  int32_t device_id,
101  UINT button);
102 
103  // Called when the mouse leaves the window.
104  virtual void OnPointerLeave(double x,
105  double y,
106  FlutterPointerDeviceKind device_kind,
107  int32_t device_id);
108 
109  // Called when the cursor should be set for the client area.
110  virtual void OnSetCursor();
111 
112  // |WindowBindingHandlerDelegate|
113  virtual void OnText(const std::u16string& text) override;
114 
115  // |WindowBindingHandlerDelegate|
116  virtual void OnKey(int key,
117  int scancode,
118  int action,
119  char32_t character,
120  bool extended,
121  bool was_down,
122  KeyEventCallback callback) override;
123 
124  // Called when IME composing begins.
125  virtual void OnComposeBegin();
126 
127  // Called when IME composing text is committed.
128  virtual void OnComposeCommit();
129 
130  // Called when IME composing ends.
131  virtual void OnComposeEnd();
132 
133  // Called when IME composing text or cursor position changes.
134  virtual void OnComposeChange(const std::u16string& text, int cursor_pos);
135 
136  // |FlutterWindowBindingHandler|
137  virtual void OnCursorRectUpdated(const Rect& rect) override;
138 
139  // |FlutterWindowBindingHandler|
140  virtual void OnResetImeComposing() override;
141 
142  // Called when accessibility support is enabled or disabled.
143  virtual void OnUpdateSemanticsEnabled(bool enabled);
144 
145  // Called when mouse scrollwheel input occurs.
146  virtual void OnScroll(double delta_x,
147  double delta_y,
148  FlutterPointerDeviceKind device_kind,
149  int32_t device_id);
150 
151  // Returns the root view accessibility node, or nullptr if none.
152  virtual gfx::NativeViewAccessible GetNativeViewAccessible();
153 
154  // |FlutterWindowBindingHandler|
155  virtual void SetView(WindowBindingHandlerDelegate* view) override;
156 
157  // |FlutterWindowBindingHandler|
158  virtual WindowsRenderTarget GetRenderTarget() override;
159 
160  // |FlutterWindowBindingHandler|
161  virtual PlatformWindow GetPlatformWindow() override;
162 
163  // |FlutterWindowBindingHandler|
164  virtual float GetDpiScale() override;
165 
166  // |FlutterWindowBindingHandler|
167  virtual bool IsVisible() override;
168 
169  // |FlutterWindowBindingHandler|
171 
172  // |FlutterWindowBindingHandler|
173  virtual void UpdateFlutterCursor(const std::string& cursor_name) override;
174 
175  // |FlutterWindowBindingHandler|
176  virtual void SetFlutterCursor(HCURSOR cursor) override;
177 
178  // |FlutterWindowBindingHandler|
179  virtual void OnWindowResized() override;
180 
181  // |FlutterWindowBindingHandler|
182  virtual bool OnBitmapSurfaceUpdated(const void* allocation,
183  size_t row_bytes,
184  size_t height) override;
185 
186  // |FlutterWindowBindingHandler|
187  virtual PointerLocation GetPrimaryPointerLocation() override;
188 
189  // Called when a theme change message is issued.
190  virtual void OnThemeChange();
191 
192  // |WindowBindingHandler|
193  virtual void SendInitialAccessibilityFeatures() override;
194 
195  // |WindowBindingHandler|
196  virtual AlertPlatformNodeDelegate* GetAlertDelegate() override;
197 
198  // |WindowBindingHandler|
199  virtual ui::AXPlatformNodeWin* GetAlert() override;
200 
201  // |WindowBindingHandler|
202  virtual bool NeedsVSync() override;
203 
204  // Called to obtain a pointer to the fragment root delegate.
205  virtual ui::AXFragmentRootDelegateWin* GetAxFragmentRootDelegate();
206 
207  // Called on a resize or focus event.
208  virtual void OnWindowStateEvent(WindowStateEvent event);
209 
210  protected:
211  // Win32's DefWindowProc.
212  //
213  // Used as the fallback behavior of HandleMessage. Exposed for dependency
214  // injection.
215  virtual LRESULT Win32DefWindowProc(HWND hWnd,
216  UINT Msg,
217  WPARAM wParam,
218  LPARAM lParam);
219 
220  // Converts a c string to a wide unicode string.
221  std::wstring NarrowToWide(const char* source);
222 
223  // Processes and route salient window messages for mouse handling,
224  // size change and DPI. Delegates handling of these to member overloads that
225  // inheriting classes can handle.
226  LRESULT HandleMessage(UINT const message,
227  WPARAM const wparam,
228  LPARAM const lparam) noexcept;
229 
230  // Called when the OS requests a COM object.
231  //
232  // The primary use of this function is to supply Windows with wrapped
233  // semantics objects for use by Windows accessibility.
234  virtual LRESULT OnGetObject(UINT const message,
235  WPARAM const wparam,
236  LPARAM const lparam);
237 
238  // Called when a window is activated in order to configure IME support for
239  // multi-step text input.
240  virtual void OnImeSetContext(UINT const message,
241  WPARAM const wparam,
242  LPARAM const lparam);
243 
244  // Called when multi-step text input begins when using an IME.
245  virtual void OnImeStartComposition(UINT const message,
246  WPARAM const wparam,
247  LPARAM const lparam);
248 
249  // Called when edits/commit of multi-step text input occurs when using an IME.
250  virtual void OnImeComposition(UINT const message,
251  WPARAM const wparam,
252  LPARAM const lparam);
253 
254  // Called when multi-step text input ends when using an IME.
255  virtual void OnImeEndComposition(UINT const message,
256  WPARAM const wparam,
257  LPARAM const lparam);
258 
259  // Called when the user triggers an IME-specific request such as input
260  // reconversion, where an existing input sequence is returned to composing
261  // mode to select an alternative candidate conversion.
262  virtual void OnImeRequest(UINT const message,
263  WPARAM const wparam,
264  LPARAM const lparam);
265 
266  // Called when the app ends IME composing, such as when the text input client
267  // is cleared or changed.
268  virtual void AbortImeComposing();
269 
270  // Called when the cursor rect has been updated.
271  //
272  // |rect| is in Win32 window coordinates.
273  virtual void UpdateCursorRect(const Rect& rect);
274 
275  UINT GetCurrentDPI();
276 
277  UINT GetCurrentWidth();
278 
279  UINT GetCurrentHeight();
280 
281  // Returns the current pixel per scroll tick value.
282  virtual float GetScrollOffsetMultiplier();
283 
284  // Check if the high contrast feature is enabled on the OS
285  virtual bool GetHighContrastEnabled();
286 
287  // Delegate to a alert_node_ used to set the announcement text.
288  std::unique_ptr<AlertPlatformNodeDelegate> alert_delegate_;
289 
290  // Accessibility node that represents an alert.
291  std::unique_ptr<ui::AXPlatformNodeWin> alert_node_;
292 
293  // Handles running DirectManipulation on the window to receive trackpad
294  // gestures.
295  std::unique_ptr<DirectManipulationOwner> direct_manipulation_owner_;
296 
297  private:
298  // OS callback called by message pump. Handles the WM_NCCREATE message which
299  // is passed when the non-client area is being created and enables automatic
300  // non-client DPI scaling so that the non-client area automatically
301  // responsponds to changes in DPI. All other messages are handled by
302  // MessageHandler.
303  static LRESULT CALLBACK WndProc(HWND const window,
304  UINT const message,
305  WPARAM const wparam,
306  LPARAM const lparam) noexcept;
307 
308  // WM_DPICHANGED_BEFOREPARENT defined in more recent Windows
309  // SDK
310  static const long kWmDpiChangedBeforeParent = 0x02E2;
311 
312  // Timer identifier for DirectManipulation gesture polling.
313  static const int kDirectManipulationTimer = 1;
314 
315  // Release OS resources associated with the window.
316  void Destroy();
317 
318  // Registers a window class with default style attributes, cursor and
319  // icon.
320  WNDCLASS RegisterWindowClass(std::wstring& title);
321 
322  // Retrieves a class instance pointer for |window|
323  static FlutterWindow* GetThisFromHandle(HWND const window) noexcept;
324 
325  // Activates tracking for a "mouse leave" event.
326  void TrackMouseLeaveEvent(HWND hwnd);
327 
328  // Stores new width and height and calls |OnResize| to notify inheritors
329  void HandleResize(UINT width, UINT height);
330 
331  // Updates the cached scroll_offset_multiplier_ value based off OS settings.
332  void UpdateScrollOffsetMultiplier();
333 
334  // Creates the ax_fragment_root_, alert_delegate_ and alert_node_ if they do
335  // not yet exist.
336  // Once set, they are not reset to nullptr.
337  void CreateAxFragmentRoot();
338 
339  // A pointer to a FlutterWindowsView that can be used to update engine
340  // windowing and input state.
341  WindowBindingHandlerDelegate* binding_handler_delegate_;
342 
343  // The last cursor set by Flutter. Defaults to the arrow cursor.
344  HCURSOR current_cursor_;
345 
346  // The cursor rect set by Flutter.
347  RECT cursor_rect_;
348 
349  // The window receives resize and focus messages before its view is set, so
350  // these values cache the state of the window in the meantime so that the
351  // proper application lifecycle state can be updated once the view is set.
352  bool restored_ = false;
353  bool focused_ = false;
354 
355  int current_dpi_ = 0;
356  int current_width_ = 0;
357  int current_height_ = 0;
358 
359  // Holds the conversion factor from lines scrolled to pixels scrolled.
360  float scroll_offset_multiplier_;
361 
362  // Member variable to hold window handle.
363  HWND window_handle_ = nullptr;
364 
365  // Member variable to hold the window title.
366  std::wstring window_class_name_;
367 
368  // Set to true to be notified when the mouse leaves the window.
369  bool tracking_mouse_leave_ = false;
370 
371  // Keeps track of the last key code produced by a WM_KEYDOWN or WM_SYSKEYDOWN
372  // message.
373  int keycode_for_char_message_ = 0;
374 
375  // Keeps track of the last mouse coordinates by a WM_MOUSEMOVE message.
376  double mouse_x_ = 0;
377  double mouse_y_ = 0;
378 
379  // Generates touch point IDs for touch events.
380  SequentialIdGenerator touch_id_generator_;
381 
382  // Abstracts Windows APIs that may not be available on all supported versions
383  // of Windows.
384  std::unique_ptr<WindowsProcTable> windows_proc_table_;
385 
386  // Manages IME state.
387  std::unique_ptr<TextInputManager> text_input_manager_;
388 
389  // Manages IME state.
390  std::unique_ptr<KeyboardManager> keyboard_manager_;
391 
392  // Used for temporarily storing the WM_TOUCH-provided touch points.
393  std::vector<TOUCHINPUT> touch_points_;
394 
395  // Implements IRawElementProviderFragmentRoot when UIA is enabled.
396  std::unique_ptr<ui::AXFragmentRootWin> ax_fragment_root_;
397 
398  // Allow WindowAXFragmentRootDelegate to access protected method.
400 
401  FML_DISALLOW_COPY_AND_ASSIGN(FlutterWindow);
402 };
403 
404 } // namespace flutter
405 
406 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_FLUTTER_WINDOW_H_
flutter::AlertPlatformNodeDelegate
Definition: alert_platform_node_delegate.h:18
flutter::WindowStateEvent
WindowStateEvent
An event representing a change in window state that may update the.
Definition: windows_lifecycle_manager.h:24
direct_manipulation.h
alert_platform_node_delegate.h
flutter::FlutterWindow::GetCurrentHeight
UINT GetCurrentHeight()
Definition: flutter_window.cc:945
flutter::FlutterWindow::OnComposeBegin
virtual void OnComposeBegin()
Definition: flutter_window.cc:279
scancode
int scancode
Definition: keyboard_key_handler_unittests.cc:115
flutter::FlutterWindow::GetDpiScale
virtual float GetDpiScale() override
Definition: flutter_window.cc:175
windows_lifecycle_manager.h
geometry.h
was_down
bool was_down
Definition: keyboard_key_handler_unittests.cc:119
extended
bool extended
Definition: keyboard_key_handler_unittests.cc:118
flutter::FlutterWindow::Win32DispatchMessage
virtual UINT Win32DispatchMessage(UINT Msg, WPARAM wParam, LPARAM lParam) override
Definition: flutter_window.cc:503
flutter::FlutterWindow::OnThemeChange
virtual void OnThemeChange()
Definition: flutter_window.cc:358
windowsx_shim.h
flutter::FlutterWindow::OnPointerDown
virtual void OnPointerDown(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id, UINT button)
Definition: flutter_window.cc:227
flutter::FlutterWindow::GetHighContrastEnabled
virtual bool GetHighContrastEnabled()
Definition: flutter_window.cc:953
flutter::FlutterWindow::OnCursorRectUpdated
virtual void OnCursorRectUpdated(const Rect &rect) override
Definition: flutter_window.cc:313
character
char32_t character
Definition: keyboard_key_handler_unittests.cc:117
flutter::KeyboardManager::WindowDelegate::KeyEventCallback
std::function< void(bool)> KeyEventCallback
Definition: keyboard_manager.h:54
flutter::FlutterWindow::GetCurrentWidth
UINT GetCurrentWidth()
Definition: flutter_window.cc:941
flutter::FlutterWindow::NarrowToWide
std::wstring NarrowToWide(const char *source)
Definition: flutter_window.cc:509
flutter::WindowsRenderTarget
std::variant< HWND > WindowsRenderTarget
Definition: window_binding_handler.h:44
flutter::FlutterWindow::OnImeEndComposition
virtual void OnImeEndComposition(UINT const message, WPARAM const wparam, LPARAM const lparam)
Definition: flutter_window.cc:914
flutter::KeyboardManager::WindowDelegate
Definition: keyboard_manager.h:52
flutter::WindowBindingHandlerDelegate
Definition: window_binding_handler_delegate.h:18
flutter::FlutterWindow::OnGetObject
virtual LRESULT OnGetObject(UINT const message, WPARAM const wparam, LPARAM const lparam)
Definition: flutter_window.cc:808
flutter::FlutterWindow::FlutterWindow
FlutterWindow(int width, int height, std::unique_ptr< WindowsProcTable > windows_proc_table=nullptr, std::unique_ptr< TextInputManager > text_input_manager=nullptr)
Definition: flutter_window.cc:119
flutter::FlutterWindow::InitializeChild
void InitializeChild(const char *title, unsigned int width, unsigned int height)
Definition: flutter_window.cc:452
flutter::FlutterWindow::GetRenderTarget
virtual WindowsRenderTarget GetRenderTarget() override
Definition: flutter_window.cc:167
flutter::Rect
Definition: geometry.h:56
flutter::FlutterWindow::AbortImeComposing
virtual void AbortImeComposing()
Definition: flutter_window.cc:929
flutter::PhysicalWindowBounds
Definition: window_binding_handler.h:27
flutter::PointerLocation
Definition: window_binding_handler.h:34
flutter::FlutterWindow::GetWindowHandle
HWND GetWindowHandle()
Definition: flutter_window.cc:487
text_input_manager.h
flutter::FlutterWindow::OnBitmapSurfaceUpdated
virtual bool OnBitmapSurfaceUpdated(const void *allocation, size_t row_bytes, size_t height) override
Definition: flutter_window.cc:325
flutter::FlutterWindow::OnPointerMove
virtual void OnPointerMove(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id, int modifiers_state)
Definition: flutter_window.cc:218
flutter::FlutterWindow::GetAxFragmentRootDelegate
virtual ui::AXFragmentRootDelegateWin * GetAxFragmentRootDelegate()
Definition: flutter_window.cc:367
flutter::FlutterWindow::OnText
virtual void OnText(const std::u16string &text) override
Definition: flutter_window.cc:264
flutter::FlutterWindow::GetAlert
virtual ui::AXPlatformNodeWin * GetAlert() override
Definition: flutter_window.cc:376
windows_proc_table.h
flutter::FlutterWindow::WindowAXFragmentRootDelegate
friend class WindowAXFragmentRootDelegate
Definition: flutter_window.h:399
flutter::FlutterWindow::direct_manipulation_owner_
std::unique_ptr< DirectManipulationOwner > direct_manipulation_owner_
Definition: flutter_window.h:295
flutter::FlutterWindow::Win32PeekMessage
virtual BOOL Win32PeekMessage(LPMSG lpMsg, UINT wMsgFilterMin, UINT wMsgFilterMax, UINT wRemoveMsg) override
Definition: flutter_window.cc:491
flutter::FlutterWindow::OnPointerLeave
virtual void OnPointerLeave(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id)
Definition: flutter_window.cc:253
flutter::FlutterWindow::GetCurrentDPI
UINT GetCurrentDPI()
Definition: flutter_window.cc:937
flutter::FlutterWindow::OnUpdateSemanticsEnabled
virtual void OnUpdateSemanticsEnabled(bool enabled)
Definition: flutter_window.cc:296
flutter::FlutterWindow::OnPointerUp
virtual void OnPointerUp(double x, double y, FlutterPointerDeviceKind device_kind, int32_t device_id, UINT button)
Definition: flutter_window.cc:240
flutter::FlutterWindow::GetNativeViewAccessible
virtual gfx::NativeViewAccessible GetNativeViewAccessible()
Definition: flutter_window.cc:343
flutter::FlutterWindow::UpdateFlutterCursor
virtual void UpdateFlutterCursor(const std::string &cursor_name) override
Definition: flutter_window.cc:187
flutter::PlatformWindow
HWND PlatformWindow
Definition: window_binding_handler.h:40
flutter::FlutterWindow::OnImeSetContext
virtual void OnImeSetContext(UINT const message, WPARAM const wparam, LPARAM const lparam)
Definition: flutter_window.cc:864
flutter_windows_view.h
text
std::u16string text
Definition: keyboard_unittests.cc:332
flutter::FlutterWindow::SetFlutterCursor
virtual void SetFlutterCursor(HCURSOR cursor) override
Definition: flutter_window.cc:191
flutter::FlutterWindow::~FlutterWindow
virtual ~FlutterWindow()
Definition: flutter_window.cc:151
flutter::FlutterWindow::SetView
virtual void SetView(WindowBindingHandlerDelegate *view) override
Definition: flutter_window.cc:156
flutter::FlutterWindow::GetPrimaryPointerLocation
virtual PointerLocation GetPrimaryPointerLocation() override
Definition: flutter_window.cc:351
flutter::FlutterWindow::OnComposeChange
virtual void OnComposeChange(const std::u16string &text, int cursor_pos)
Definition: flutter_window.cc:291
flutter::FlutterWindow::OnImeStartComposition
virtual void OnImeStartComposition(UINT const message, WPARAM const wparam, LPARAM const lparam)
Definition: flutter_window.cc:872
flutter::FlutterWindow::OnPaint
virtual void OnPaint()
Definition: flutter_window.cc:212
window_binding_handler.h
flutter::FlutterWindow::GetPlatformWindow
virtual PlatformWindow GetPlatformWindow() override
Definition: flutter_window.cc:171
flutter::FlutterWindow::OnSetCursor
virtual void OnSetCursor()
Definition: flutter_window.cc:260
flutter::FlutterWindow::OnResetImeComposing
virtual void OnResetImeComposing() override
Definition: flutter_window.cc:321
flutter::FlutterWindow::OnWindowStateEvent
virtual void OnWindowStateEvent(WindowStateEvent event)
Definition: flutter_window.cc:393
flutter::FlutterWindow::OnKey
virtual void OnKey(int key, int scancode, int action, char32_t character, bool extended, bool was_down, KeyEventCallback callback) override
Definition: flutter_window.cc:268
flutter
Definition: accessibility_bridge_windows.cc:11
flutter::FlutterWindow::OnResize
virtual void OnResize(unsigned int width, unsigned int height)
Definition: flutter_window.cc:206
flutter::FlutterWindow::OnWindowResized
virtual void OnWindowResized() override
Definition: flutter_window.cc:196
flutter::FlutterWindow::Win32MapVkToChar
virtual uint32_t Win32MapVkToChar(uint32_t virtual_key) override
Definition: flutter_window.cc:499
sequential_id_generator.h
flutter::FlutterWindow::NeedsVSync
virtual bool NeedsVSync() override
Definition: flutter_window.cc:381
flutter::FlutterWindow::GetAlertDelegate
virtual AlertPlatformNodeDelegate * GetAlertDelegate() override
Definition: flutter_window.cc:371
flutter::FlutterWindow::OnComposeCommit
virtual void OnComposeCommit()
Definition: flutter_window.cc:283
flutter::FlutterWindow::HandleMessage
LRESULT HandleMessage(UINT const message, WPARAM const wparam, LPARAM const lparam) noexcept
Definition: flutter_window.cc:556
flutter::FlutterWindow::alert_node_
std::unique_ptr< ui::AXPlatformNodeWin > alert_node_
Definition: flutter_window.h:291
flutter::FlutterWindow::OnImeRequest
virtual void OnImeRequest(UINT const message, WPARAM const wparam, LPARAM const lparam)
Definition: flutter_window.cc:921
flutter::FlutterWindow::GetScrollOffsetMultiplier
virtual float GetScrollOffsetMultiplier()
Definition: flutter_window.cc:949
flutter::SequentialIdGenerator
Definition: sequential_id_generator.h:20
flutter::FlutterWindow::Win32DefWindowProc
virtual LRESULT Win32DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: flutter_window.cc:966
flutter::FlutterWindow::OnScroll
virtual void OnScroll(double delta_x, double delta_y, FlutterPointerDeviceKind device_kind, int32_t device_id)
Definition: flutter_window.cc:300
flutter::FlutterWindow::OnImeComposition
virtual void OnImeComposition(UINT const message, WPARAM const wparam, LPARAM const lparam)
Definition: flutter_window.cc:879
flutter::FlutterWindow::OnComposeEnd
virtual void OnComposeEnd()
Definition: flutter_window.cc:287
flutter::FlutterWindow::GetPhysicalWindowBounds
virtual PhysicalWindowBounds GetPhysicalWindowBounds() override
Definition: flutter_window.cc:183
flutter::WindowBindingHandler
Definition: window_binding_handler.h:47
message
Win32Message message
Definition: keyboard_unittests.cc:137
action
int action
Definition: keyboard_key_handler_unittests.cc:116
flutter::FlutterWindow
Definition: flutter_window.h:35
keyboard_manager.h
flutter::FlutterWindow::alert_delegate_
std::unique_ptr< AlertPlatformNodeDelegate > alert_delegate_
Definition: flutter_window.h:288
flutter::FlutterWindow::IsVisible
virtual bool IsVisible() override
Definition: flutter_window.cc:179
key
int key
Definition: keyboard_key_handler_unittests.cc:114
flutter::FlutterWindow::SendInitialAccessibilityFeatures
virtual void SendInitialAccessibilityFeatures() override
Definition: flutter_window.cc:363
flutter::FlutterWindow::OnDpiScale
virtual void OnDpiScale(unsigned int dpi)
Definition: flutter_window.cc:202
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:46
flutter::FlutterWindow::UpdateCursorRect
virtual void UpdateCursorRect(const Rect &rect)
Definition: flutter_window.cc:933