Flutter Engine
Loading...
Searching...
No Matches
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
"
11
#include "
flutter/shell/platform/common/client_wrapper/include/flutter/binary_messenger.h
"
12
#include "
flutter/shell/platform/common/client_wrapper/include/flutter/encodable_value.h
"
13
#include "
flutter/shell/platform/common/client_wrapper/include/flutter/method_channel.h
"
14
#include "
flutter/shell/platform/windows/public/flutter_windows.h
"
15
#include "
flutter/shell/platform/windows/window_binding_handler.h
"
16
17
namespace
flutter
{
18
19
class
FlutterWindowsEngine;
20
21
// Handler for the cursor system channel.
22
class
CursorHandler
{
23
public
:
24
explicit
CursorHandler
(
flutter::BinaryMessenger
* messenger,
25
flutter::FlutterWindowsEngine
*
engine
);
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_
binary_messenger.h
flutter::BinaryMessenger
Definition
binary_messenger.h:28
flutter::CursorHandler
Definition
cursor_handler.h:22
flutter::FlutterWindowsEngine
Definition
flutter_windows_engine.h:92
flutter::MethodCall
Definition
method_call.h:18
flutter::MethodResult
Definition
method_result.h:17
encodable_value.h
engine
FlutterEngine engine
Definition
main.cc:84
method_call
G_BEGIN_DECLS G_MODULE_EXPORT FlMethodCall * method_call
Definition
fl_method_channel.h:120
flutter_windows.h
macros.h
FML_DISALLOW_COPY_AND_ASSIGN
#define FML_DISALLOW_COPY_AND_ASSIGN(TypeName)
Definition
macros.h:27
method_channel.h
flutter
Definition
asset_manager.cc:10
flutter::GetMaskBitmaps
void GetMaskBitmaps(HBITMAP bitmap, HBITMAP &mask_bitmap)
Definition
cursor_handler.cc:230
flutter::GetCursorFromBuffer
HCURSOR GetCursorFromBuffer(const std::vector< uint8_t > &buffer, double hot_x, double hot_y, int width, int height)
Definition
cursor_handler.cc:186
height
int32_t height
Definition
serialization_callbacks.cc:1
width
int32_t width
Definition
serialization_callbacks.cc:0
window_binding_handler.h
shell
platform
windows
cursor_handler.h
Generated on Thu Nov 6 2025 16:11:28 for Flutter Engine by
1.9.8