Flutter Engine
 
Loading...
Searching...
No Matches
fl_key_event_channel.h File Reference

Go to the source code of this file.

Enumerations

enum  FlKeyEventType {
  FL_KEY_EVENT_TYPE_KEYUP ,
  FL_KEY_EVENT_TYPE_KEYDOWN
}
 

Functions

G_BEGIN_DECLS G_DECLARE_FINAL_TYPE (FlKeyEventChannel, fl_key_event_channel, FL, KEY_EVENT_CHANNEL, GObject)
 
FlKeyEventChannel * fl_key_event_channel_new (FlBinaryMessenger *messenger)
 
void fl_key_event_channel_send (FlKeyEventChannel *channel, FlKeyEventType type, int64_t scan_code, int64_t key_code, int64_t modifiers, int64_t unicode_scarlar_values, int64_t specified_logical_key, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
 
gboolean fl_key_event_channel_send_finish (GObject *object, GAsyncResult *result, gboolean *handled, GError **error)
 

Enumeration Type Documentation

◆ FlKeyEventType

FlKeyEventChannel:

#FlKeyEventChannel is a channel that implements the shell side of SystemChannels.keyEvent from the Flutter services library.

Enumerator
FL_KEY_EVENT_TYPE_KEYUP 
FL_KEY_EVENT_TYPE_KEYDOWN 

Definition at line 25 of file fl_key_event_channel.h.

Function Documentation

◆ fl_key_event_channel_new()

FlKeyEventChannel * fl_key_event_channel_new ( FlBinaryMessenger *  messenger)

fl_key_event_channel_new: @messenger: an #FlBinaryMessenger

Creates a new channel that implements SystemChannels.keyEvent from the Flutter services library.

Returns: a new #FlKeyEventChannel.

Definition at line 50 of file fl_key_event_channel.cc.

50 {
51 g_return_val_if_fail(FL_IS_BINARY_MESSENGER(messenger), nullptr);
52
53 FlKeyEventChannel* self = FL_KEY_EVENT_CHANNEL(
54 g_object_new(fl_key_event_channel_get_type(), nullptr));
55
56 g_autoptr(FlJsonMessageCodec) codec = fl_json_message_codec_new();
58 FL_MESSAGE_CODEC(codec));
59
60 return self;
61}
G_MODULE_EXPORT FlBasicMessageChannel * fl_basic_message_channel_new(FlBinaryMessenger *messenger, const gchar *name, FlMessageCodec *codec)
g_autoptr(GMutexLocker) locker
G_MODULE_EXPORT FlJsonMessageCodec * fl_json_message_codec_new()
static constexpr char kChannelName[]

References fl_basic_message_channel_new(), fl_json_message_codec_new(), g_autoptr(), kChannelName, and self.

Referenced by fl_key_channel_responder_new().

◆ fl_key_event_channel_send()

void fl_key_event_channel_send ( FlKeyEventChannel *  channel,
FlKeyEventType  type,
int64_t  scan_code,
int64_t  key_code,
int64_t  modifiers,
int64_t  unicode_scarlar_values,
int64_t  specified_logical_key,
GCancellable *  cancellable,
GAsyncReadyCallback  callback,
gpointer  user_data 
)

fl_key_event_channel_send: @channel: an #FlKeyEventChannel @type: event type. @scan_code: scan code. @key_code: key code. @modifiers: modifiers. @unicode_scarlar_values: @specified_logical_key: @cancellable: (allow-none): a #GCancellable or NULL. @callback: (scope async): a #GAsyncReadyCallback to call when the method returns. @user_data: (closure): user data to pass to @callback.

Send a key event to the platform.

Definition at line 63 of file fl_key_event_channel.cc.

72 {
73 g_return_if_fail(FL_IS_KEY_EVENT_CHANNEL(self));
74
75 const gchar* type_string;
76 switch (type) {
78 type_string = kTypeValueUp;
79 break;
81 type_string = kTypeValueDown;
82 break;
83 default:
84 g_assert_not_reached();
85 }
86
96 if (unicode_scalar_values != kUnicodeScalarValuesUnset) {
98 fl_value_new_int(unicode_scalar_values));
99 }
100 if (specified_logical_key != kSpecifiedLogicalKeyUnset) {
102 fl_value_new_int(specified_logical_key));
103 }
104 fl_basic_message_channel_send(self->channel, message, cancellable, callback,
105 user_data);
106}
GLenum type
G_MODULE_EXPORT void fl_basic_message_channel_send(FlBasicMessageChannel *self, FlValue *message, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
static constexpr char kScanCodeKey[]
static constexpr char kToolkitKey[]
static constexpr int64_t kSpecifiedLogicalKeyUnset
static constexpr char kTypeKey[]
static constexpr char kGtkToolkit[]
static constexpr int64_t kUnicodeScalarValuesUnset
static constexpr char kModifiersKey[]
static constexpr char kSpecifiedLogicalKey[]
static constexpr char kLinuxKeymap[]
static constexpr char kKeyCodeKey[]
static constexpr char kUnicodeScalarValuesKey[]
static constexpr char kKeymapKey[]
static constexpr char kTypeValueUp[]
static constexpr char kTypeValueDown[]
G_BEGIN_DECLS GBytes * message
G_MODULE_EXPORT FlValue * fl_value_new_map()
Definition fl_value.cc:366
G_MODULE_EXPORT void fl_value_set_string_take(FlValue *self, const gchar *key, FlValue *value)
Definition fl_value.cc:650
G_MODULE_EXPORT FlValue * fl_value_new_string(const gchar *value)
Definition fl_value.cc:276
G_MODULE_EXPORT FlValue * fl_value_new_int(int64_t value)
Definition fl_value.cc:262
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition fl_value.h:42
FlutterDesktopBinaryReply callback

References callback, fl_basic_message_channel_send(), FL_KEY_EVENT_TYPE_KEYDOWN, FL_KEY_EVENT_TYPE_KEYUP, fl_value_new_int(), fl_value_new_map(), fl_value_new_string(), fl_value_set_string_take(), g_autoptr(), kGtkToolkit, kKeyCodeKey, kKeymapKey, kLinuxKeymap, kModifiersKey, kScanCodeKey, kSpecifiedLogicalKey, kSpecifiedLogicalKeyUnset, kToolkitKey, kTypeKey, kTypeValueDown, kTypeValueUp, kUnicodeScalarValuesKey, kUnicodeScalarValuesUnset, message, self, type, and user_data.

Referenced by fl_key_channel_responder_handle_event().

◆ fl_key_event_channel_send_finish()

gboolean fl_key_event_channel_send_finish ( GObject *  object,
GAsyncResult *  result,
gboolean *  handled,
GError **  error 
)

fl_key_event_channel_send_finish: @object:

Returns
: a #GAsyncResult. @error: (allow-none): #GError location to store the error occurring, or NULL to ignore.

Completes request started with fl_key_event_channel_send().

Returns: TRUE on success.

Definition at line 108 of file fl_key_event_channel.cc.

111 {
113 FL_BASIC_MESSAGE_CHANNEL(object), result, error);
114 if (message == nullptr) {
115 return FALSE;
116 }
117
118 FlValue* handled_value = fl_value_lookup_string(message, "handled");
119 *handled = fl_value_get_bool(handled_value);
120
121 return TRUE;
122}
G_MODULE_EXPORT FlValue * fl_basic_message_channel_send_finish(FlBasicMessageChannel *self, GAsyncResult *result, GError **error)
return TRUE
const uint8_t uint32_t uint32_t GError ** error
G_MODULE_EXPORT FlValue * fl_value_lookup_string(FlValue *self, const gchar *key)
Definition fl_value.cc:811
G_MODULE_EXPORT bool fl_value_get_bool(FlValue *self)
Definition fl_value.cc:661

References error, fl_basic_message_channel_send_finish(), fl_value_get_bool(), fl_value_lookup_string(), g_autoptr(), message, and TRUE.

Referenced by handle_response().

◆ G_DECLARE_FINAL_TYPE()

G_BEGIN_DECLS G_DECLARE_FINAL_TYPE ( FlKeyEventChannel  ,
fl_key_event_channel  ,
FL  ,
KEY_EVENT_CHANNEL  ,
GObject   
)