#include "flutter/shell/platform/linux/public/flutter_linux/fl_view.h"#include <atk/atk.h>#include <gdk/gdkwayland.h>#include <gtk/gtk-a11y.h>#include <cstring>#include "flutter/common/constants.h"#include "flutter/shell/platform/linux/fl_accessible_node.h"#include "flutter/shell/platform/linux/fl_compositor_opengl.h"#include "flutter/shell/platform/linux/fl_compositor_software.h"#include "flutter/shell/platform/linux/fl_engine_private.h"#include "flutter/shell/platform/linux/fl_key_event.h"#include "flutter/shell/platform/linux/fl_opengl_manager.h"#include "flutter/shell/platform/linux/fl_plugin_registrar_private.h"#include "flutter/shell/platform/linux/fl_pointer_manager.h"#include "flutter/shell/platform/linux/fl_scrolling_manager.h"#include "flutter/shell/platform/linux/fl_socket_accessible.h"#include "flutter/shell/platform/linux/fl_touch_manager.h"#include "flutter/shell/platform/linux/fl_view_accessible.h"#include "flutter/shell/platform/linux/fl_view_private.h"#include "flutter/shell/platform/linux/fl_window_state_monitor.h"#include "flutter/shell/platform/linux/public/flutter_linux/fl_engine.h"#include "flutter/shell/platform/linux/public/flutter_linux/fl_plugin_registry.h"Go to the source code of this file.
Classes | |
| struct | _FlView |
Enumerations | |
| enum | { SIGNAL_FIRST_FRAME , LAST_SIGNAL } |
Functions | |
| static void | fl_renderable_iface_init (FlRenderableInterface *iface) |
| static void | fl_view_plugin_registry_iface_init (FlPluginRegistryInterface *iface) |
| G_DEFINE_TYPE_WITH_CODE (FlView, fl_view, GTK_TYPE_BOX, G_IMPLEMENT_INTERFACE(fl_plugin_registry_get_type(), fl_view_plugin_registry_iface_init)) static gboolean redraw_cb(gpointer user_data) | |
| static gboolean | window_delete_event_cb (FlView *self) |
| static void | init_scrolling (FlView *self) |
| static void | init_touch (FlView *self) |
| static FlutterPointerDeviceKind | get_device_kind (GdkEvent *event) |
| static void | cursor_changed_cb (FlView *self) |
| static void | setup_cursor (FlView *self) |
| static void | handle_geometry_changed (FlView *self) |
| static void | view_added_cb (GObject *object, GAsyncResult *result, gpointer user_data) |
| static void | update_semantics_cb (FlView *self, const FlutterSemanticsUpdate2 *update) |
| static void | on_pre_engine_restart_cb (FlView *self) |
| static void | fl_view_present_layers (FlRenderable *renderable, const FlutterLayer **layers, size_t layers_count) |
| static FlPluginRegistrar * | fl_view_get_registrar_for_plugin (FlPluginRegistry *registry, const gchar *name) |
| static void | sync_modifier_if_needed (FlView *self, GdkEvent *event) |
| static void | set_scrolling_position (FlView *self, gdouble x, gdouble y) |
| static gboolean | button_press_event_cb (FlView *self, GdkEventButton *button_event) |
| static gboolean | button_release_event_cb (FlView *self, GdkEventButton *button_event) |
| static gboolean | scroll_event_cb (FlView *self, GdkEventScroll *event) |
| static gboolean | touch_event_cb (FlView *self, GdkEventTouch *event) |
| static gboolean | motion_notify_event_cb (FlView *self, GdkEventMotion *motion_event) |
| static gboolean | enter_notify_event_cb (FlView *self, GdkEventCrossing *crossing_event) |
| static gboolean | leave_notify_event_cb (FlView *self, GdkEventCrossing *crossing_event) |
| static void | gesture_rotation_begin_cb (FlView *self) |
| static void | gesture_rotation_update_cb (FlView *self, gdouble rotation, gdouble delta) |
| static void | gesture_rotation_end_cb (FlView *self) |
| static void | gesture_zoom_begin_cb (FlView *self) |
| static void | gesture_zoom_update_cb (FlView *self, gdouble scale) |
| static void | gesture_zoom_end_cb (FlView *self) |
| static void | setup_opengl (FlView *self) |
| static void | setup_software (FlView *self) |
| static void | realize_cb (FlView *self) |
| static void | size_allocate_cb (FlView *self) |
| static void | paint_background (FlView *self, cairo_t *cr) |
| static gboolean | draw_cb (FlView *self, cairo_t *cr) |
| static void | fl_view_notify (GObject *object, GParamSpec *pspec) |
| static void | fl_view_dispose (GObject *object) |
| static void | fl_view_realize (GtkWidget *widget) |
| static gboolean | handle_key_event (FlView *self, GdkEventKey *key_event) |
| static gboolean | fl_view_focus_in_event (GtkWidget *widget, GdkEventFocus *event) |
| static gboolean | fl_view_key_press_event (GtkWidget *widget, GdkEventKey *key_event) |
| static gboolean | fl_view_key_release_event (GtkWidget *widget, GdkEventKey *key_event) |
| static void | fl_view_class_init (FlViewClass *klass) |
| static void | setup_engine (FlView *self) |
| static void | fl_view_init (FlView *self) |
| G_MODULE_EXPORT FlView * | fl_view_new (FlDartProject *project) |
| G_MODULE_EXPORT FlView * | fl_view_new_for_engine (FlEngine *engine) |
| G_MODULE_EXPORT FlEngine * | fl_view_get_engine (FlView *self) |
| G_MODULE_EXPORT int64_t | fl_view_get_id (FlView *self) |
| G_MODULE_EXPORT void | fl_view_set_background_color (FlView *self, const GdkRGBA *color) |
| FlViewAccessible * | fl_view_get_accessible (FlView *self) |
Variables | |
| static guint | fl_view_signals [LAST_SIGNAL] |
| anonymous enum |
|
static |
Definition at line 294 of file fl_view.cc.
References fl_pointer_manager_handle_button_press(), get_device_kind(), set_scrolling_position(), and sync_modifier_if_needed().
Referenced by fl_view_init().
|
static |
Definition at line 321 of file fl_view.cc.
References fl_pointer_manager_handle_button_release(), get_device_kind(), set_scrolling_position(), and sync_modifier_if_needed().
Referenced by fl_view_init().
|
static |
Definition at line 154 of file fl_view.cc.
References fl_engine_get_mouse_cursor_handler(), fl_mouse_cursor_handler_get_cursor_name(), g_autoptr(), and window.
Referenced by setup_cursor().
|
static |
Definition at line 522 of file fl_view.cc.
References fl_compositor_render(), and paint_background().
Referenced by fl_view_init().
|
static |
Definition at line 380 of file fl_view.cc.
References fl_pointer_manager_handle_enter(), and get_device_kind().
Referenced by fl_view_init().
|
static |
Definition at line 270 of file fl_view.cc.
References fl_view_present_layers().
|
static |
Definition at line 664 of file fl_view.cc.
References fl_view_dispose(), fl_view_focus_in_event(), fl_view_key_press_event(), fl_view_key_release_event(), fl_view_notify(), fl_view_realize(), fl_view_signals, and SIGNAL_FIRST_FRAME.
|
static |
Definition at line 552 of file fl_view.cc.
References fl_engine_get_mouse_cursor_handler(), and fl_engine_remove_view().
Referenced by fl_view_class_init().
|
static |
Definition at line 642 of file fl_view.cc.
References fl_engine_get_text_input_handler(), and fl_text_input_handler_set_widget().
Referenced by fl_view_class_init().
| FlViewAccessible* fl_view_get_accessible | ( | FlView * | view | ) |
fl_view_get_accessible: @view: an #FlView.
Get the accessible object for this view.
Returns: an #FlViewAccessible.
Definition at line 808 of file fl_view.cc.
Referenced by TEST().
| G_MODULE_EXPORT FlEngine* fl_view_get_engine | ( | FlView * | view | ) |
fl_view_get_engine: @view: an #FlView.
Gets the engine being rendered in the view.
Returns: an #FlEngine.
Definition at line 790 of file fl_view.cc.
Referenced by fl_application_activate(), and TEST().
| G_MODULE_EXPORT int64_t fl_view_get_id | ( | FlView * | view | ) |
fl_view_get_id: @view: an #FlView.
Gets the Flutter view ID used by this view.
Returns: a view ID or -1 if now ID assigned.
Definition at line 796 of file fl_view.cc.
Referenced by create_regular(), and TEST().
|
static |
Definition at line 260 of file fl_view.cc.
References fl_engine_get_binary_messenger(), fl_engine_get_texture_registrar(), and fl_plugin_registrar_new().
Referenced by fl_view_plugin_registry_iface_init().
|
static |
Definition at line 702 of file fl_view.cc.
References button_press_event_cb(), button_release_event_cb(), draw_cb(), enter_notify_event_cb(), gesture_rotation_begin_cb(), gesture_rotation_end_cb(), gesture_rotation_update_cb(), gesture_zoom_begin_cb(), gesture_zoom_end_cb(), gesture_zoom_update_cb(), leave_notify_event_cb(), motion_notify_event_cb(), realize_cb(), scroll_event_cb(), size_allocate_cb(), touch_event_cb(), and TRUE.
|
static |
Definition at line 651 of file fl_view.cc.
References handle_key_event().
Referenced by fl_view_class_init().
|
static |
Definition at line 658 of file fl_view.cc.
References handle_key_event().
Referenced by fl_view_class_init().
| G_MODULE_EXPORT FlView* fl_view_new | ( | FlDartProject * | project | ) |
FlView:
#FlView is a GTK widget that is capable of displaying a Flutter application.
The following example shows how to set up a view in a GTK application: |[ FlDartProject *project = fl_dart_project_new (); FlView *view = fl_view_new (project); gtk_widget_show (GTK_WIDGET (view)); gtk_container_add (GTK_CONTAINER (parent), view);
FlBinaryMessenger *messenger = fl_engine_get_binary_messenger (fl_view_get_engine (view)); setup_channels_or_plugins (messenger); ]| fl_view_new: @project: The project to show.
Creates a widget to show a Flutter application.
Returns: a new #FlView.
Definition at line 763 of file fl_view.cc.
References fl_engine_new(), fl_engine_set_implicit_view(), g_autoptr(), and setup_engine().
Referenced by fl_application_activate(), and TEST().
| G_MODULE_EXPORT FlView* fl_view_new_for_engine | ( | FlEngine * | engine | ) |
fl_view_new_for_engine: @engine: an #FlEngine.
Creates a widget to show a window in a Flutter application. The engine must be not be headless.
Returns: a new #FlView.
Definition at line 777 of file fl_view.cc.
References fl_engine_add_view(), setup_engine(), and view_added_cb().
Referenced by create_regular(), and TEST().
|
static |
Definition at line 540 of file fl_view.cc.
References handle_geometry_changed(), and pspec.
Referenced by fl_view_class_init().
|
static |
Definition at line 274 of file fl_view.cc.
References fl_view_get_registrar_for_plugin().
|
static |
Definition at line 248 of file fl_view.cc.
References fl_compositor_present_layers(), layers, and layers_count.
Referenced by fl_renderable_iface_init().
|
static |
| G_MODULE_EXPORT void fl_view_set_background_color | ( | FlView * | view, |
| const GdkRGBA * | color | ||
| ) |
fl_view_set_background_color: @view: an #FlView. @color: a background color.
Set the background color for Flutter (defaults to black).
Definition at line 801 of file fl_view.cc.
| G_DEFINE_TYPE_WITH_CODE | ( | FlView | , |
| fl_view | , | ||
| GTK_TYPE_BOX | , | ||
| G_IMPLEMENT_INTERFACE(fl_plugin_registry_get_type(), fl_view_plugin_registry_iface_init) | |||
| ) |
Definition at line 94 of file fl_view.cc.
References fl_view_signals, g_signal_emit(), SIGNAL_FIRST_FRAME, TRUE, and user_data.
|
static |
Definition at line 407 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_begin().
Referenced by fl_view_init().
|
static |
Definition at line 418 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_end().
Referenced by fl_view_init().
|
static |
Definition at line 411 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_update().
Referenced by fl_view_init().
|
static |
Definition at line 422 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_begin().
Referenced by fl_view_init().
|
static |
Definition at line 430 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_end().
Referenced by fl_view_init().
|
static |
Definition at line 426 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_update().
Referenced by fl_view_init().
|
static |
Definition at line 134 of file fl_view.cc.
Referenced by button_press_event_cb(), button_release_event_cb(), enter_notify_event_cb(), leave_notify_event_cb(), and motion_notify_event_cb().
|
static |
Definition at line 176 of file fl_view.cc.
References fl_display_monitor_get_display_id(), fl_engine_get_display_monitor(), fl_engine_send_window_metrics_event(), and window.
Referenced by fl_view_notify(), realize_cb(), size_allocate_cb(), and view_added_cb().
|
static |
Definition at line 605 of file fl_view.cc.
References fl_engine_get_keyboard_manager(), fl_engine_get_text_input_handler(), fl_key_event_new_from_gdk_event(), fl_keyboard_manager_handle_event(), fl_text_input_handler_filter_keypress(), g_autoptr(), if(), and user_data.
Referenced by fl_view_key_press_event(), and fl_view_key_release_event().
|
static |
Definition at line 123 of file fl_view.cc.
References fl_scrolling_manager_new().
Referenced by on_pre_engine_restart_cb(), and setup_engine().
|
static |
Definition at line 129 of file fl_view.cc.
References fl_touch_manager_new().
Referenced by on_pre_engine_restart_cb(), and setup_engine().
|
static |
Definition at line 392 of file fl_view.cc.
References fl_pointer_manager_handle_leave(), and get_device_kind().
Referenced by fl_view_init().
|
static |
Definition at line 359 of file fl_view.cc.
References fl_pointer_manager_handle_motion(), get_device_kind(), and sync_modifier_if_needed().
Referenced by fl_view_init().
|
static |
Definition at line 242 of file fl_view.cc.
References init_scrolling(), and init_touch().
Referenced by setup_engine().
|
static |
|
static |
Definition at line 464 of file fl_view.cc.
References error, fl_engine_get_binary_messenger(), fl_engine_get_opengl_manager(), fl_engine_get_renderer_type(), fl_engine_start(), fl_opengl_manager_clear_current(), fl_window_state_monitor_new(), g_autoptr(), handle_geometry_changed(), setup_cursor(), setup_opengl(), setup_software(), and window_delete_event_cb().
Referenced by fl_view_init().
|
static |
Definition at line 341 of file fl_view.cc.
References fl_scrolling_manager_handle_scroll_event(), and TRUE.
Referenced by fl_view_init().
|
static |
Definition at line 287 of file fl_view.cc.
References fl_scrolling_manager_set_last_mouse_position().
Referenced by button_press_event_cb(), and button_release_event_cb().
|
static |
Definition at line 166 of file fl_view.cc.
References cursor_changed_cb(), and fl_engine_get_mouse_cursor_handler().
Referenced by realize_cb().
|
static |
Definition at line 684 of file fl_view.cc.
References fl_pointer_manager_new(), fl_socket_accessible_embed(), fl_view_accessible_new(), init_scrolling(), init_touch(), on_pre_engine_restart_cb(), and update_semantics_cb().
Referenced by fl_view_new(), and fl_view_new_for_engine().
|
static |
Definition at line 434 of file fl_view.cc.
References error, fl_compositor_opengl_new(), fl_engine_get_opengl_manager(), fl_engine_get_task_runner(), g_autoptr(), and shareable.
Referenced by realize_cb().
|
static |
Definition at line 459 of file fl_view.cc.
References fl_compositor_software_new(), and fl_engine_get_task_runner().
Referenced by realize_cb().
|
static |
Definition at line 506 of file fl_view.cc.
References handle_geometry_changed().
Referenced by fl_view_init().
|
static |
Definition at line 279 of file fl_view.cc.
References fl_engine_get_keyboard_manager(), and fl_keyboard_manager_sync_modifier_if_needed().
Referenced by button_press_event_cb(), button_release_event_cb(), and motion_notify_event_cb().
|
static |
Definition at line 351 of file fl_view.cc.
References fl_touch_manager_handle_touch_event(), and TRUE.
Referenced by fl_view_init().
|
static |
Definition at line 227 of file fl_view.cc.
References fl_view_accessible_handle_update_semantics().
Referenced by setup_engine().
|
static |
Definition at line 207 of file fl_view.cc.
References error, fl_engine_add_view_finish(), g_autoptr(), handle_geometry_changed(), and user_data.
Referenced by fl_view_new_for_engine().
|
static |
Definition at line 117 of file fl_view.cc.
References fl_engine_request_app_exit(), and TRUE.
Referenced by realize_cb().
|
static |
Definition at line 87 of file fl_view.cc.
Referenced by fl_view_class_init(), and G_DEFINE_TYPE_WITH_CODE().