Flutter Linux Embedder
fl_windowing_channel.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_LINUX_FL_WINDOWING_CHANNEL_H_
6 #define FLUTTER_SHELL_PLATFORM_LINUX_FL_WINDOWING_CHANNEL_H_
7 
10 
11 G_BEGIN_DECLS
12 
13 G_DECLARE_FINAL_TYPE(FlWindowingChannel,
14  fl_windowing_channel,
15  FL,
16  WINDOWING_CHANNEL,
17  GObject);
18 
19 // States that a window can be in.
20 typedef enum {
26 
27 // Size dimensions used in windowing channel.
28 typedef struct {
29  double width;
30  double height;
32 
33 /**
34  * FlWindowingChannel:
35  *
36  * #FlWindowingChannel is a channel that implements the shell side
37  * of SystemChannels.windowing from the Flutter services library.
38  */
39 
40 typedef struct {
41  FlMethodResponse* (*create_regular)(FlWindowingSize* size,
42  FlWindowingSize* min_size,
43  FlWindowingSize* max_size,
44  const gchar* title,
46  gpointer user_data);
47  FlMethodResponse* (*modify_regular)(int64_t view_id,
48  FlWindowingSize* size,
49  const gchar* title,
51  gpointer user_data);
52  FlMethodResponse* (*destroy_window)(int64_t view_id, gpointer user_data);
54 
55 /**
56  * fl_windowing_channel_new:
57  * @messenger: an #FlBinaryMessenger
58  * @vtable: callbacks for incoming method calls.
59  * @user_data: data to pass in callbacks.
60  *
61  * Creates a new channel that sends handled windowing requests from the
62  * platform.
63  *
64  * Returns: a new #FlWindowingChannel
65  */
66 FlWindowingChannel* fl_windowing_channel_new(FlBinaryMessenger* messenger,
68  gpointer user_data);
69 
71  int64_t view_id,
72  FlWindowingSize* size,
74 
76 
78 
79 G_END_DECLS
80 
81 #endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_WINDOWING_CHANNEL_H_
FL_WINDOW_STATE_RESTORED
@ FL_WINDOW_STATE_RESTORED
Definition: fl_windowing_channel.h:22
FlWindowingSize::height
double height
Definition: fl_windowing_channel.h:30
G_DECLARE_FINAL_TYPE
G_BEGIN_DECLS G_DECLARE_FINAL_TYPE(FlWindowingChannel, fl_windowing_channel, FL, WINDOWING_CHANNEL, GObject)
fl_windowing_channel_new
FlWindowingChannel * fl_windowing_channel_new(FlBinaryMessenger *messenger, FlWindowingChannelVTable *vtable, gpointer user_data)
Definition: fl_windowing_channel.cc:257
FL_WINDOW_STATE_UNDEFINED
@ FL_WINDOW_STATE_UNDEFINED
Definition: fl_windowing_channel.h:21
state
AtkStateType state
Definition: fl_accessible_node.cc:10
fl_windowing_channel_make_create_regular_response
FlMethodResponse * fl_windowing_channel_make_create_regular_response(int64_t view_id, FlWindowingSize *size, FlWindowState state)
Definition: fl_windowing_channel.cc:275
user_data
G_BEGIN_DECLS G_MODULE_EXPORT FlValue gpointer user_data
Definition: fl_event_channel.h:90
FL_WINDOW_STATE_MINIMIZED
@ FL_WINDOW_STATE_MINIMIZED
Definition: fl_windowing_channel.h:24
fl_binary_messenger.h
FL_WINDOW_STATE_MAXIMIZED
@ FL_WINDOW_STATE_MAXIMIZED
Definition: fl_windowing_channel.h:23
fl_windowing_channel_make_destroy_window_response
FlMethodResponse * fl_windowing_channel_make_destroy_window_response()
Definition: fl_windowing_channel.cc:294
FlWindowingSize
Definition: fl_windowing_channel.h:28
fl_windowing_channel_make_modify_regular_response
FlMethodResponse * fl_windowing_channel_make_modify_regular_response()
Definition: fl_windowing_channel.cc:290
FlWindowState
FlWindowState
Definition: fl_windowing_channel.h:20
FL
FL
Definition: fl_binary_messenger.cc:27
fl_method_response.h
FlWindowingChannelVTable
Definition: fl_windowing_channel.h:40
FlWindowingSize::width
double width
Definition: fl_windowing_channel.h:29