5 #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_KEYBOARD_MANAGER_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_KEYBOARD_MANAGER_H_
15 #include "flutter/fml/macros.h"
59 virtual void OnText(
const std::u16string&
text) = 0;
111 LPARAM
const lparam);
142 using OnKeyCallback =
143 std::function<void(std::unique_ptr<PendingEvent>,
bool)>;
148 bool placeholder =
false;
159 void ProcessNextEvent();
165 void PerformProcessEvent(std::unique_ptr<PendingEvent> event,
173 void HandleOnKeyResult(std::unique_ptr<PendingEvent> event,
174 bool framework_handled);
180 void DispatchText(
const PendingEvent& event);
188 UINT PeekNextMessageType(UINT wMsgFilterMin, UINT wMsgFilterMax);
194 bool RemoveRedispatchedMessage(UINT
action, WPARAM wparam, LPARAM lparam);
196 WindowDelegate* window_delegate_;
202 std::vector<Win32Message> current_session_;
207 bool last_key_is_ctrl_left_down;
212 uint8_t ctrl_left_scancode;
217 bool should_synthesize_ctrl_left_up;
223 std::deque<std::unique_ptr<PendingEvent>> pending_events_;
226 std::atomic<bool> processing_event_;
230 std::deque<Win32Message> pending_redispatches_;
237 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_KEYBOARD_MANAGER_H_