Flutter Engine
The Flutter Engine
Classes | Functions | Variables
fl_platform_plugin.cc File Reference
#include "flutter/shell/platform/linux/fl_platform_plugin.h"
#include <gtk/gtk.h>
#include <cstring>
#include "flutter/shell/platform/linux/public/flutter_linux/fl_json_method_codec.h"
#include "flutter/shell/platform/linux/public/flutter_linux/fl_method_channel.h"

Go to the source code of this file.

Classes

struct  _FlPlatformPlugin
 

Functions

static void send_response (FlMethodCall *method_call, FlMethodResponse *response)
 
static void clipboard_text_cb (GtkClipboard *clipboard, const gchar *text, gpointer user_data)
 
static void clipboard_text_has_strings_cb (GtkClipboard *clipboard, const gchar *text, gpointer user_data)
 
static FlMethodResponse * clipboard_set_data (FlPlatformPlugin *self, FlValue *args)
 
static FlMethodResponse * clipboard_get_data_async (FlPlatformPlugin *self, FlMethodCall *method_call)
 
static FlMethodResponse * clipboard_has_strings_async (FlPlatformPlugin *self, FlMethodCall *method_call)
 
static gchar * get_exit_response (FlMethodResponse *response)
 
static void quit_application ()
 
static void request_app_exit_response_cb (GObject *object, GAsyncResult *result, gpointer user_data)
 
static void request_app_exit (FlPlatformPlugin *self, const char *type)
 
static FlMethodResponse * system_intitialization_complete (FlPlatformPlugin *self, FlMethodCall *method_call)
 
static FlMethodResponse * system_exit_application (FlPlatformPlugin *self, FlMethodCall *method_call)
 
static FlMethodResponse * system_sound_play (FlPlatformPlugin *self, FlValue *args)
 
static FlMethodResponse * system_navigator_pop (FlPlatformPlugin *self)
 
static void method_call_cb (FlMethodChannel *channel, FlMethodCall *method_call, gpointer user_data)
 
static void fl_platform_plugin_dispose (GObject *object)
 
static void fl_platform_plugin_class_init (FlPlatformPluginClass *klass)
 
static void fl_platform_plugin_init (FlPlatformPlugin *self)
 
FlPlatformPlugin * fl_platform_plugin_new (FlBinaryMessenger *messenger)
 
void fl_platform_plugin_request_app_exit (FlPlatformPlugin *self)
 

Variables

static constexpr char kChannelName [] = "flutter/platform"
 
static constexpr char kBadArgumentsError [] = "Bad Arguments"
 
static constexpr char kUnknownClipboardFormatError []
 
static constexpr char kInProgressError [] = "In Progress"
 
static constexpr char kGetClipboardDataMethod [] = "Clipboard.getData"
 
static constexpr char kSetClipboardDataMethod [] = "Clipboard.setData"
 
static constexpr char kClipboardHasStringsMethod [] = "Clipboard.hasStrings"
 
static constexpr char kExitApplicationMethod [] = "System.exitApplication"
 
static constexpr char kRequestAppExitMethod [] = "System.requestAppExit"
 
static constexpr char kInitializationCompleteMethod []
 
static constexpr char kPlaySoundMethod [] = "SystemSound.play"
 
static constexpr char kSystemNavigatorPopMethod [] = "SystemNavigator.pop"
 
static constexpr char kTextKey [] = "text"
 
static constexpr char kValueKey [] = "value"
 
static constexpr char kExitTypeKey [] = "type"
 
static constexpr char kExitTypeCancelable [] = "cancelable"
 
static constexpr char kExitTypeRequired [] = "required"
 
static constexpr char kExitResponseKey [] = "response"
 
static constexpr char kExitResponseCancel [] = "cancel"
 
static constexpr char kExitResponseExit [] = "exit"
 
static constexpr char kTextPlainFormat [] = "text/plain"
 
static constexpr char kSoundTypeAlert [] = "SystemSoundType.alert"
 
static constexpr char kSoundTypeClick [] = "SystemSoundType.click"
 

Function Documentation

◆ clipboard_get_data_async()

static FlMethodResponse * clipboard_get_data_async ( FlPlatformPlugin *  self,
FlMethodCall *  method_call 
)
static

Definition at line 119 of file fl_platform_plugin.cc.

120 {
122
124 return FL_METHOD_RESPONSE(fl_method_error_response_new(
125 kBadArgumentsError, "Expected string", nullptr));
126 }
127
128 const gchar* format = fl_value_get_string(args);
129 if (strcmp(format, kTextPlainFormat) != 0) {
130 return FL_METHOD_RESPONSE(fl_method_error_response_new(
131 kUnknownClipboardFormatError, "GTK clipboard API only supports text",
132 nullptr));
133 }
134
135 GtkClipboard* clipboard =
136 gtk_clipboard_get_default(gdk_display_get_default());
137 gtk_clipboard_request_text(clipboard, clipboard_text_cb,
138 g_object_ref(method_call));
139
140 // Will respond later.
141 return nullptr;
142}
G_BEGIN_DECLS G_MODULE_EXPORT FlValue * args
G_MODULE_EXPORT FlValue * fl_method_call_get_args(FlMethodCall *self)
G_BEGIN_DECLS G_MODULE_EXPORT FlMethodCall * method_call
G_MODULE_EXPORT FlMethodErrorResponse * fl_method_error_response_new(const gchar *code, const gchar *message, FlValue *details)
static constexpr char kUnknownClipboardFormatError[]
static constexpr char kBadArgumentsError[]
static void clipboard_text_cb(GtkClipboard *clipboard, const gchar *text, gpointer user_data)
static constexpr char kTextPlainFormat[]
uint32_t uint32_t * format
G_MODULE_EXPORT FlValueType fl_value_get_type(FlValue *self)
Definition: fl_value.cc:466
G_MODULE_EXPORT const gchar * fl_value_get_string(FlValue *self)
Definition: fl_value.cc:682
typedefG_BEGIN_DECLS struct _FlValue FlValue
Definition: fl_value.h:42
@ FL_VALUE_TYPE_STRING
Definition: fl_value.h:69

◆ clipboard_has_strings_async()

static FlMethodResponse * clipboard_has_strings_async ( FlPlatformPlugin *  self,
FlMethodCall *  method_call 
)
static

Definition at line 146 of file fl_platform_plugin.cc.

148 {
149 GtkClipboard* clipboard =
150 gtk_clipboard_get_default(gdk_display_get_default());
151 gtk_clipboard_request_text(clipboard, clipboard_text_has_strings_cb,
152 g_object_ref(method_call));
153
154 // Will respond later.
155 return nullptr;
156}
static void clipboard_text_has_strings_cb(GtkClipboard *clipboard, const gchar *text, gpointer user_data)

◆ clipboard_set_data()

static FlMethodResponse * clipboard_set_data ( FlPlatformPlugin *  self,
FlValue args 
)
static

Definition at line 97 of file fl_platform_plugin.cc.

98 {
100 return FL_METHOD_RESPONSE(fl_method_error_response_new(
101 kBadArgumentsError, "Argument map missing or malformed", nullptr));
102 }
103
105 if (text_value == nullptr ||
107 return FL_METHOD_RESPONSE(fl_method_error_response_new(
108 kBadArgumentsError, "Missing clipboard text", nullptr));
109 }
110
111 GtkClipboard* clipboard =
112 gtk_clipboard_get_default(gdk_display_get_default());
113 gtk_clipboard_set_text(clipboard, fl_value_get_string(text_value), -1);
114
115 return FL_METHOD_RESPONSE(fl_method_success_response_new(nullptr));
116}
G_MODULE_EXPORT FlMethodSuccessResponse * fl_method_success_response_new(FlValue *result)
static constexpr char kTextKey[]
G_MODULE_EXPORT FlValue * fl_value_lookup_string(FlValue *self, const gchar *key)
Definition: fl_value.cc:811
@ FL_VALUE_TYPE_MAP
Definition: fl_value.h:75

◆ clipboard_text_cb()

static void clipboard_text_cb ( GtkClipboard *  clipboard,
const gchar *  text,
gpointer  user_data 
)
static

Definition at line 64 of file fl_platform_plugin.cc.

66 {
67 g_autoptr(FlMethodCall) method_call = FL_METHOD_CALL(user_data);
68
69 g_autoptr(FlValue) result = nullptr;
70 if (text != nullptr) {
73 }
74
75 g_autoptr(FlMethodResponse) response =
76 FL_METHOD_RESPONSE(fl_method_success_response_new(result));
77 send_response(method_call, response);
78}
static void send_response(FlMethodCall *method_call, FlMethodResponse *response)
GAsyncResult * result
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
std::u16string text
void * user_data

◆ clipboard_text_has_strings_cb()

static void clipboard_text_has_strings_cb ( GtkClipboard *  clipboard,
const gchar *  text,
gpointer  user_data 
)
static

Definition at line 81 of file fl_platform_plugin.cc.

83 {
84 g_autoptr(FlMethodCall) method_call = FL_METHOD_CALL(user_data);
85
86 g_autoptr(FlValue) result = fl_value_new_map();
89 fl_value_new_bool(text != nullptr && strlen(text) > 0));
90
91 g_autoptr(FlMethodResponse) response =
92 FL_METHOD_RESPONSE(fl_method_success_response_new(result));
93 send_response(method_call, response);
94}
static constexpr char kValueKey[]
G_MODULE_EXPORT FlValue * fl_value_new_bool(bool value)
Definition: fl_value.cc:255

◆ fl_platform_plugin_class_init()

static void fl_platform_plugin_class_init ( FlPlatformPluginClass *  klass)
static

Definition at line 394 of file fl_platform_plugin.cc.

394 {
395 G_OBJECT_CLASS(klass)->dispose = fl_platform_plugin_dispose;
396}
static void fl_platform_plugin_dispose(GObject *object)

◆ fl_platform_plugin_dispose()

static void fl_platform_plugin_dispose ( GObject *  object)
static

Definition at line 382 of file fl_platform_plugin.cc.

382 {
383 FlPlatformPlugin* self = FL_PLATFORM_PLUGIN(object);
384
385 g_cancellable_cancel(self->cancellable);
386
387 g_clear_object(&self->channel);
388 g_clear_object(&self->exit_application_method_call);
389 g_clear_object(&self->cancellable);
390
391 G_OBJECT_CLASS(fl_platform_plugin_parent_class)->dispose(object);
392}

◆ fl_platform_plugin_init()

static void fl_platform_plugin_init ( FlPlatformPlugin *  self)
static

Definition at line 398 of file fl_platform_plugin.cc.

398 {
399 self->cancellable = g_cancellable_new();
400}

◆ fl_platform_plugin_new()

FlPlatformPlugin * fl_platform_plugin_new ( FlBinaryMessenger *  messenger)

FlPlatformPlugin:

#FlPlatformPlugin is a plugin that implements the shell side of SystemChannels.platform from the Flutter services library. fl_platform_plugin_new: @messenger: an #FlBinaryMessenger

Creates a new plugin that implements SystemChannels.platform from the Flutter services library.

Returns: a new #FlPlatformPlugin

Definition at line 402 of file fl_platform_plugin.cc.

402 {
403 g_return_val_if_fail(FL_IS_BINARY_MESSENGER(messenger), nullptr);
404
405 FlPlatformPlugin* self =
406 FL_PLATFORM_PLUGIN(g_object_new(fl_platform_plugin_get_type(), nullptr));
407
408 g_autoptr(FlJsonMethodCodec) codec = fl_json_method_codec_new();
409 self->channel =
410 fl_method_channel_new(messenger, kChannelName, FL_METHOD_CODEC(codec));
412 nullptr);
413 self->app_initialization_complete = FALSE;
414
415 return self;
416}
G_MODULE_EXPORT FlJsonMethodCodec * fl_json_method_codec_new()
G_MODULE_EXPORT FlMethodChannel * fl_method_channel_new(FlBinaryMessenger *messenger, const gchar *name, FlMethodCodec *codec)
G_MODULE_EXPORT void fl_method_channel_set_method_call_handler(FlMethodChannel *self, FlMethodChannelMethodCallHandler handler, gpointer user_data, GDestroyNotify destroy_notify)
static void method_call_cb(FlMethodChannel *channel, FlMethodCall *method_call, gpointer user_data)
static constexpr char kChannelName[]
return FALSE

◆ fl_platform_plugin_request_app_exit()

void fl_platform_plugin_request_app_exit ( FlPlatformPlugin *  plugin)

fl_platform_plugin_request_app_exit: @plugin: an #FlPlatformPlugin

Request the application exits (i.e. due to the window being requested to be closed).

Calling this will only send an exit request to the framework if the framework has already indicated that it is ready to receive requests by sending a "System.initializationComplete" method call on the platform channel. Calls before initialization is complete will result in an immediate exit.

Definition at line 418 of file fl_platform_plugin.cc.

418 {
419 g_return_if_fail(FL_IS_PLATFORM_PLUGIN(self));
420 // Request a cancellable exit.
422}
static constexpr char kExitTypeCancelable[]
static void request_app_exit(FlPlatformPlugin *self, const char *type)

◆ get_exit_response()

static gchar * get_exit_response ( FlMethodResponse *  response)
static

Definition at line 159 of file fl_platform_plugin.cc.

159 {
160 if (response == nullptr) {
161 return nullptr;
162 }
163
164 g_autoptr(GError) error = nullptr;
166 if (result == nullptr) {
167 g_warning("Error returned from System.requestAppExit: %s", error->message);
168 return nullptr;
169 }
171 g_warning("System.requestAppExit result argument map missing or malformed");
172 return nullptr;
173 }
174
176 if (fl_value_get_type(response_value) != FL_VALUE_TYPE_STRING) {
177 g_warning("Invalid response from System.requestAppExit");
178 return nullptr;
179 }
180 return g_strdup(fl_value_get_string(response_value));
181}
G_MODULE_EXPORT FlValue * fl_method_response_get_result(FlMethodResponse *self, GError **error)
const uint8_t uint32_t uint32_t GError ** error
static constexpr char kExitResponseKey[]

◆ method_call_cb()

static void method_call_cb ( FlMethodChannel *  channel,
FlMethodCall *  method_call,
gpointer  user_data 
)
static

Definition at line 350 of file fl_platform_plugin.cc.

352 {
353 FlPlatformPlugin* self = FL_PLATFORM_PLUGIN(user_data);
354
355 const gchar* method = fl_method_call_get_name(method_call);
357
358 g_autoptr(FlMethodResponse) response = nullptr;
359 if (strcmp(method, kSetClipboardDataMethod) == 0) {
360 response = clipboard_set_data(self, args);
361 } else if (strcmp(method, kGetClipboardDataMethod) == 0) {
363 } else if (strcmp(method, kClipboardHasStringsMethod) == 0) {
365 } else if (strcmp(method, kExitApplicationMethod) == 0) {
367 } else if (strcmp(method, kInitializationCompleteMethod) == 0) {
369 } else if (strcmp(method, kPlaySoundMethod) == 0) {
370 response = system_sound_play(self, args);
371 } else if (strcmp(method, kSystemNavigatorPopMethod) == 0) {
372 response = system_navigator_pop(self);
373 } else {
374 response = FL_METHOD_RESPONSE(fl_method_not_implemented_response_new());
375 }
376
377 if (response != nullptr) {
378 send_response(method_call, response);
379 }
380}
G_MODULE_EXPORT const gchar * fl_method_call_get_name(FlMethodCall *self)
G_MODULE_EXPORT FlMethodNotImplementedResponse * fl_method_not_implemented_response_new()
static constexpr char kSystemNavigatorPopMethod[]
static constexpr char kInitializationCompleteMethod[]
static FlMethodResponse * clipboard_has_strings_async(FlPlatformPlugin *self, FlMethodCall *method_call)
static constexpr char kClipboardHasStringsMethod[]
static FlMethodResponse * system_exit_application(FlPlatformPlugin *self, FlMethodCall *method_call)
static FlMethodResponse * clipboard_set_data(FlPlatformPlugin *self, FlValue *args)
static constexpr char kGetClipboardDataMethod[]
static constexpr char kExitApplicationMethod[]
static FlMethodResponse * system_sound_play(FlPlatformPlugin *self, FlValue *args)
static FlMethodResponse * system_intitialization_complete(FlPlatformPlugin *self, FlMethodCall *method_call)
static constexpr char kPlaySoundMethod[]
static FlMethodResponse * clipboard_get_data_async(FlPlatformPlugin *self, FlMethodCall *method_call)
static constexpr char kSetClipboardDataMethod[]
static FlMethodResponse * system_navigator_pop(FlPlatformPlugin *self)

◆ quit_application()

static void quit_application ( )
static

Definition at line 184 of file fl_platform_plugin.cc.

184 {
185 GApplication* app = g_application_get_default();
186 if (app == nullptr) {
187 // Unable to gracefully quit, so just exit the process.
188 exit(0);
189 }
190
191 // GtkApplication windows contain a reference back to the application.
192 // Break them so the application object can cleanup.
193 // See https://gitlab.gnome.org/GNOME/gtk/-/issues/6190
194 if (GTK_IS_APPLICATION(app)) {
195 GList* windows = gtk_application_get_windows(GTK_APPLICATION(app));
196 for (GList* link = windows; link != NULL; link = link->next) {
197 GtkWidget* window = GTK_WIDGET(link->data);
198 gtk_window_set_application(GTK_WINDOW(window), NULL);
199 }
200 }
201
202 g_application_quit(app);
203}
GLFWwindow * window
Definition: main.cc:45
exit(kErrorExitCode)
def link(from_root, to_root)
Definition: dart_pkg.py:44

◆ request_app_exit()

static void request_app_exit ( FlPlatformPlugin *  self,
const char *  type 
)
static

Definition at line 253 of file fl_platform_plugin.cc.

253 {
254 g_autoptr(FlValue) args = fl_value_new_map();
255 if (!self->app_initialization_complete ||
256 g_str_equal(type, kExitTypeRequired)) {
258 return;
259 }
260
263 self->cancellable,
265}
GLenum type
G_MODULE_EXPORT void fl_method_channel_invoke_method(FlMethodChannel *self, const gchar *method, FlValue *args, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data)
static void quit_application()
static constexpr char kRequestAppExitMethod[]
static constexpr char kExitTypeRequired[]
static constexpr char kExitTypeKey[]
static void request_app_exit_response_cb(GObject *object, GAsyncResult *result, gpointer user_data)

◆ request_app_exit_response_cb()

static void request_app_exit_response_cb ( GObject *  object,
GAsyncResult *  result,
gpointer  user_data 
)
static

Definition at line 206 of file fl_platform_plugin.cc.

208 {
209 FlPlatformPlugin* self = FL_PLATFORM_PLUGIN(user_data);
210
211 g_autoptr(GError) error = nullptr;
212 g_autoptr(FlMethodResponse) method_response =
213 fl_method_channel_invoke_method_finish(FL_METHOD_CHANNEL(object), result,
214 &error);
215 g_autofree gchar* exit_response = nullptr;
216 if (method_response == nullptr) {
217 if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) {
218 return;
219 }
220 g_warning("Failed to complete System.requestAppExit: %s", error->message);
221 } else {
222 exit_response = get_exit_response(method_response);
223 }
224 // If something went wrong, then just exit.
225 if (exit_response == nullptr) {
226 exit_response = g_strdup(kExitResponseExit);
227 }
228
229 if (g_str_equal(exit_response, kExitResponseExit)) {
231 } else if (g_str_equal(exit_response, kExitResponseCancel)) {
232 // Canceled - no action to take.
233 }
234
235 // If request was due to a request from Flutter, pass result back.
236 if (self->exit_application_method_call != nullptr) {
237 g_autoptr(FlValue) exit_result = fl_value_new_map();
239 fl_value_new_string(exit_response));
240 g_autoptr(FlMethodResponse) exit_response =
241 FL_METHOD_RESPONSE(fl_method_success_response_new(exit_result));
242 if (!fl_method_call_respond(self->exit_application_method_call,
243 exit_response, &error)) {
244 g_warning("Failed to send response to System.exitApplication: %s",
245 error->message);
246 }
247 g_clear_object(&self->exit_application_method_call);
248 }
249}
G_MODULE_EXPORT gboolean fl_method_call_respond(FlMethodCall *self, FlMethodResponse *response, GError **error)
G_MODULE_EXPORT FlMethodResponse * fl_method_channel_invoke_method_finish(FlMethodChannel *self, GAsyncResult *result, GError **error)
static constexpr char kExitResponseExit[]
static constexpr char kExitResponseCancel[]
static gchar * get_exit_response(FlMethodResponse *response)

◆ send_response()

static void send_response ( FlMethodCall *  method_call,
FlMethodResponse *  response 
)
static

Definition at line 55 of file fl_platform_plugin.cc.

56 {
57 g_autoptr(GError) error = nullptr;
58 if (!fl_method_call_respond(method_call, response, &error)) {
59 g_warning("Failed to send method call response: %s", error->message);
60 }
61}

◆ system_exit_application()

static FlMethodResponse * system_exit_application ( FlPlatformPlugin *  self,
FlMethodCall *  method_call 
)
static

Definition at line 278 of file fl_platform_plugin.cc.

279 {
282 return FL_METHOD_RESPONSE(fl_method_error_response_new(
283 kBadArgumentsError, "Argument map missing or malformed", nullptr));
284 }
285
287 if (type_value == nullptr ||
289 return FL_METHOD_RESPONSE(fl_method_error_response_new(
290 kBadArgumentsError, "Missing type argument", nullptr));
291 }
292 const char* type = fl_value_get_string(type_value);
293
294 // Save method call to respond to when our request to Flutter completes.
295 if (self->exit_application_method_call != nullptr) {
296 return FL_METHOD_RESPONSE(fl_method_error_response_new(
297 kInProgressError, "Request already in progress", nullptr));
298 }
299 self->exit_application_method_call =
300 FL_METHOD_CALL(g_object_ref(method_call));
301
302 // Requested to immediately quit if the app hasn't yet signaled that it is
303 // ready to handle requests, or if the type of exit requested is "required".
304 if (!self->app_initialization_complete ||
305 g_str_equal(type, kExitTypeRequired)) {
307 g_autoptr(FlValue) exit_result = fl_value_new_map();
310 return FL_METHOD_RESPONSE(fl_method_success_response_new(exit_result));
311 }
312
313 // Send the request back to Flutter to follow the standard process.
315
316 // Will respond later.
317 return nullptr;
318}
static constexpr char kInProgressError[]

◆ system_intitialization_complete()

static FlMethodResponse * system_intitialization_complete ( FlPlatformPlugin *  self,
FlMethodCall *  method_call 
)
static

Definition at line 270 of file fl_platform_plugin.cc.

272 {
273 self->app_initialization_complete = TRUE;
274 return FL_METHOD_RESPONSE(fl_method_success_response_new(nullptr));
275}

◆ system_navigator_pop()

static FlMethodResponse * system_navigator_pop ( FlPlatformPlugin *  self)
static

Definition at line 344 of file fl_platform_plugin.cc.

344 {
346 return FL_METHOD_RESPONSE(fl_method_success_response_new(nullptr));
347}

◆ system_sound_play()

static FlMethodResponse * system_sound_play ( FlPlatformPlugin *  self,
FlValue args 
)
static

Definition at line 321 of file fl_platform_plugin.cc.

322 {
324 return FL_METHOD_RESPONSE(fl_method_error_response_new(
325 kBadArgumentsError, "Expected string", nullptr));
326 }
327
328 const gchar* type = fl_value_get_string(args);
329 if (strcmp(type, kSoundTypeAlert) == 0) {
330 GdkDisplay* display = gdk_display_get_default();
331 if (display != nullptr) {
332 gdk_display_beep(display);
333 }
334 } else if (strcmp(type, kSoundTypeClick) == 0) {
335 // We don't make sounds for keyboard on desktops.
336 } else {
337 g_warning("Ignoring unknown sound type %s in SystemSound.play.\n", type);
338 }
339
340 return FL_METHOD_RESPONSE(fl_method_success_response_new(nullptr));
341}
static constexpr char kSoundTypeAlert[]
static constexpr char kSoundTypeClick[]

Variable Documentation

◆ kBadArgumentsError

constexpr char kBadArgumentsError[] = "Bad Arguments"
staticconstexpr

Definition at line 14 of file fl_platform_plugin.cc.

◆ kChannelName

constexpr char kChannelName[] = "flutter/platform"
staticconstexpr

Definition at line 13 of file fl_platform_plugin.cc.

◆ kClipboardHasStringsMethod

constexpr char kClipboardHasStringsMethod[] = "Clipboard.hasStrings"
staticconstexpr

Definition at line 20 of file fl_platform_plugin.cc.

◆ kExitApplicationMethod

constexpr char kExitApplicationMethod[] = "System.exitApplication"
staticconstexpr

Definition at line 21 of file fl_platform_plugin.cc.

◆ kExitResponseCancel

constexpr char kExitResponseCancel[] = "cancel"
staticconstexpr

Definition at line 35 of file fl_platform_plugin.cc.

◆ kExitResponseExit

constexpr char kExitResponseExit[] = "exit"
staticconstexpr

Definition at line 36 of file fl_platform_plugin.cc.

◆ kExitResponseKey

constexpr char kExitResponseKey[] = "response"
staticconstexpr

Definition at line 34 of file fl_platform_plugin.cc.

◆ kExitTypeCancelable

constexpr char kExitTypeCancelable[] = "cancelable"
staticconstexpr

Definition at line 31 of file fl_platform_plugin.cc.

◆ kExitTypeKey

constexpr char kExitTypeKey[] = "type"
staticconstexpr

Definition at line 30 of file fl_platform_plugin.cc.

◆ kExitTypeRequired

constexpr char kExitTypeRequired[] = "required"
staticconstexpr

Definition at line 32 of file fl_platform_plugin.cc.

◆ kGetClipboardDataMethod

constexpr char kGetClipboardDataMethod[] = "Clipboard.getData"
staticconstexpr

Definition at line 18 of file fl_platform_plugin.cc.

◆ kInitializationCompleteMethod

constexpr char kInitializationCompleteMethod[]
staticconstexpr
Initial value:
=
"System.initializationComplete"

Definition at line 23 of file fl_platform_plugin.cc.

◆ kInProgressError

constexpr char kInProgressError[] = "In Progress"
staticconstexpr

Definition at line 17 of file fl_platform_plugin.cc.

◆ kPlaySoundMethod

constexpr char kPlaySoundMethod[] = "SystemSound.play"
staticconstexpr

Definition at line 25 of file fl_platform_plugin.cc.

◆ kRequestAppExitMethod

constexpr char kRequestAppExitMethod[] = "System.requestAppExit"
staticconstexpr

Definition at line 22 of file fl_platform_plugin.cc.

◆ kSetClipboardDataMethod

constexpr char kSetClipboardDataMethod[] = "Clipboard.setData"
staticconstexpr

Definition at line 19 of file fl_platform_plugin.cc.

◆ kSoundTypeAlert

constexpr char kSoundTypeAlert[] = "SystemSoundType.alert"
staticconstexpr

Definition at line 40 of file fl_platform_plugin.cc.

◆ kSoundTypeClick

constexpr char kSoundTypeClick[] = "SystemSoundType.click"
staticconstexpr

Definition at line 41 of file fl_platform_plugin.cc.

◆ kSystemNavigatorPopMethod

constexpr char kSystemNavigatorPopMethod[] = "SystemNavigator.pop"
staticconstexpr

Definition at line 26 of file fl_platform_plugin.cc.

◆ kTextKey

constexpr char kTextKey[] = "text"
staticconstexpr

Definition at line 27 of file fl_platform_plugin.cc.

◆ kTextPlainFormat

constexpr char kTextPlainFormat[] = "text/plain"
staticconstexpr

Definition at line 38 of file fl_platform_plugin.cc.

◆ kUnknownClipboardFormatError

constexpr char kUnknownClipboardFormatError[]
staticconstexpr
Initial value:
=
"Unknown Clipboard Format"

Definition at line 15 of file fl_platform_plugin.cc.

◆ kValueKey

constexpr char kValueKey[] = "value"
staticconstexpr

Definition at line 28 of file fl_platform_plugin.cc.