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_PLATFORM_HANDLER_H_ 6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_PLATFORM_HANDLER_H_ 7 8 #include "flutter/shell/platform/common/cpp/client_wrapper/include/flutter/binary_messenger.h" 9 #include "flutter/shell/platform/common/cpp/client_wrapper/include/flutter/method_channel.h" 10 #include "flutter/shell/platform/windows/public/flutter_windows.h" 11 #include "rapidjson/document.h" 12 13 namespace flutter { 14 15 class Win32FlutterWindow; 16 17 // Handler for internal system channels. 18 class PlatformHandler { 19 public: 20 explicit PlatformHandler(flutter::BinaryMessenger* messenger, 21 Win32FlutterWindow* window); 22 23 private: 24 // Called when a method is called on |channel_|; 25 void HandleMethodCall( 26 const flutter::MethodCall<rapidjson::Document>& method_call, 27 std::unique_ptr<flutter::MethodResult<rapidjson::Document>> result); 28 29 // The MethodChannel used for communication with the Flutter engine. 30 std::unique_ptr<flutter::MethodChannel<rapidjson::Document>> channel_; 31 32 static std::string GetClipboardString(); 33 static void SetClipboardString(std::string data); 34 35 // A reference to the win32 window. 36 Win32FlutterWindow* window_; 37 }; 38 39 } // namespace flutter 40 41 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_PLATFORM_HANDLER_H_ 42