// Copyright 2013 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_KEY_EVENT_HANDLER_H_ #define FLUTTER_SHELL_PLATFORM_WINDOWS_KEY_EVENT_HANDLER_H_ #include #include "flutter/shell/platform/common/cpp/client_wrapper/include/flutter/basic_message_channel.h" #include "flutter/shell/platform/common/cpp/client_wrapper/include/flutter/binary_messenger.h" #include "flutter/shell/platform/windows/keyboard_hook_handler.h" #include "flutter/shell/platform/windows/public/flutter_windows.h" #include "rapidjson/document.h" namespace flutter { class Win32FlutterWindow; // Implements a KeyboardHookHandler // // Handles key events and forwards them to the Flutter engine. class KeyEventHandler : public KeyboardHookHandler { public: explicit KeyEventHandler(flutter::BinaryMessenger* messenger); virtual ~KeyEventHandler(); // |KeyboardHookHandler| void KeyboardHook(Win32FlutterWindow* window, int key, int scancode, int action, int mods) override; // |KeyboardHookHandler| void CharHook(Win32FlutterWindow* window, unsigned int code_point) override; private: // The Flutter system channel for key event messages. std::unique_ptr> channel_; }; } // namespace flutter #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_KEY_EVENT_HANDLER_H_