Flutter Windows Embedder
cursor_handler.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_CURSOR_HANDLER_H_
6 #define FLUTTER_SHELL_PLATFORM_WINDOWS_CURSOR_HANDLER_H_
7 
8 #include <unordered_map>
9 
10 #include "flutter/fml/macros.h"
16 
17 namespace flutter {
18 
19 class FlutterWindowsEngine;
20 
21 // Handler for the cursor system channel.
23  public:
24  explicit CursorHandler(flutter::BinaryMessenger* messenger,
26 
27  private:
28  // Called when a method is called on |channel_|;
29  void HandleMethodCall(
30  const flutter::MethodCall<EncodableValue>& method_call,
31  std::unique_ptr<flutter::MethodResult<EncodableValue>> result);
32 
33  // The MethodChannel used for communication with the Flutter engine.
34  std::unique_ptr<flutter::MethodChannel<EncodableValue>> channel_;
35 
36  // The Flutter engine that will be notified for cursor updates.
37  FlutterWindowsEngine* engine_;
38 
39  // The cache map for custom cursors.
40  std::unordered_map<std::string, HCURSOR> custom_cursors_;
41 
42  FML_DISALLOW_COPY_AND_ASSIGN(CursorHandler);
43 };
44 
45 // Create a cursor from a rawBGRA buffer and the cursor info.
46 HCURSOR GetCursorFromBuffer(const std::vector<uint8_t>& buffer,
47  double hot_x,
48  double hot_y,
49  int width,
50  int height);
51 
52 // Get the corresponding mask bitmap from the source bitmap.
53 void GetMaskBitmaps(HBITMAP bitmap, HBITMAP& mask_bitmap);
54 
55 } // namespace flutter
56 
57 #endif // FLUTTER_SHELL_PLATFORM_WINDOWS_CURSOR_HANDLER_H_
encodable_value.h
flutter::GetCursorFromBuffer
HCURSOR GetCursorFromBuffer(const std::vector< uint8_t > &buffer, double hot_x, double hot_y, int width, int height)
Definition: cursor_handler.cc:205
flutter::CursorHandler
Definition: cursor_handler.h:22
flutter::FlutterWindowsEngine
Definition: flutter_windows_engine.h:89
binary_messenger.h
flutter::BinaryMessenger
Definition: binary_messenger.h:28
flutter::MethodCall
Definition: method_call.h:18
window_binding_handler.h
flutter::GetMaskBitmaps
void GetMaskBitmaps(HBITMAP bitmap, HBITMAP &mask_bitmap)
Definition: cursor_handler.cc:249
flutter
Definition: accessibility_bridge_windows.cc:11
flutter::MethodResult< EncodableValue >
method_channel.h
flutter_windows.h
flutter::CursorHandler::CursorHandler
CursorHandler(flutter::BinaryMessenger *messenger, flutter::FlutterWindowsEngine *engine)
Definition: cursor_handler.cc:50