#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 event_type, fl_pointer_manager_handle_button_press(), get_device_kind(), gtk_widget_get_scale_factor(), self, set_scrolling_position(), sync_modifier_if_needed(), x, and y.
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(), gtk_widget_get_scale_factor(), self, set_scrolling_position(), sync_modifier_if_needed(), x, and y.
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(), gdk_cursor_new_from_name(), gdk_window_get_display(), gdk_window_set_cursor(), gtk_widget_get_toplevel(), gtk_widget_get_window(), handler, self, and window.
Referenced by setup_cursor().
|
static |
Definition at line 522 of file fl_view.cc.
References fl_compositor_render(), gdk_gl_context_clear_current(), gdk_gl_context_make_current(), gtk_widget_get_window(), paint_background(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 380 of file fl_view.cc.
References fl_pointer_manager_handle_enter(), get_device_kind(), gtk_widget_get_scale_factor(), self, x, and y.
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, gtk_widget_class_set_accessible_type(), and SIGNAL_FIRST_FRAME.
|
static |
Definition at line 552 of file fl_view.cc.
References fl_engine_get_mouse_cursor_handler(), fl_engine_remove_view(), handler, and self.
Referenced by fl_view_class_init().
|
static |
Definition at line 642 of file fl_view.cc.
References fl_engine_get_text_input_handler(), fl_text_input_handler_set_widget(), and self.
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.
References self.
| G_MODULE_EXPORT FlEngine * fl_view_get_engine | ( | FlView * | view | ) |
| 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.
References self.
Referenced by create_regular(), TEST(), TEST(), and TEST().
|
static |
Definition at line 260 of file fl_view.cc.
References fl_engine_get_binary_messenger(), fl_engine_get_texture_registrar(), fl_plugin_registrar_new(), and self.
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(), gtk_widget_add_events(), gtk_widget_show(), leave_notify_event_cb(), motion_notify_event_cb(), realize_cb(), scroll_event_cb(), self, size_allocate_cb(), touch_event_cb(), and TRUE.
|
static |
Definition at line 651 of file fl_view.cc.
References handle_key_event(), key_event, and self.
Referenced by fl_view_class_init().
|
static |
Definition at line 658 of file fl_view.cc.
References handle_key_event(), key_event, and self.
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 engine, fl_engine_new(), fl_engine_set_implicit_view(), g_autoptr(), flutter::kFlutterImplicitViewId, self, and setup_engine().
Referenced by fl_application_activate(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), TEST(), 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 engine, fl_engine_add_view(), self, setup_engine(), and view_added_cb().
Referenced by create_regular(), TEST(), TEST(), TEST(), and TEST().
|
static |
Definition at line 540 of file fl_view.cc.
References handle_geometry_changed(), pspec, and self.
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, layers_count, and self.
Referenced by fl_renderable_iface_init().
|
static |
Definition at line 596 of file fl_view.cc.
References gtk_widget_realize(), and self.
Referenced by fl_view_class_init().
| 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.
References self.
| 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(), gtk_widget_queue_draw(), self, SIGNAL_FIRST_FRAME, TRUE, and user_data.
|
static |
Definition at line 407 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_begin(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 418 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_end(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 411 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_update(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 422 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_begin(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 430 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_end(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 426 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_update(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 134 of file fl_view.cc.
References device, kFlutterPointerDeviceKindMouse, kFlutterPointerDeviceKindStylus, and kFlutterPointerDeviceKindTouch.
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(), gdk_display_get_monitor_at_window(), gtk_widget_get_allocation(), gtk_widget_get_display(), gtk_widget_get_scale_factor(), gtk_widget_get_toplevel(), gtk_widget_get_window(), self, 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(), key_event, self, 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(), and self.
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(), and self.
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(), get_device_kind(), gtk_widget_get_scale_factor(), self, x, and y.
Referenced by fl_view_init().
|
static |
Definition at line 359 of file fl_view.cc.
References event_type, fl_pointer_manager_handle_motion(), get_device_kind(), gtk_widget_get_scale_factor(), self, sync_modifier_if_needed(), x, and y.
Referenced by fl_view_init().
|
static |
Definition at line 242 of file fl_view.cc.
References init_scrolling(), init_touch(), and self.
Referenced by setup_engine().
|
static |
Definition at line 510 of file fl_view.cc.
References gdk_cairo_set_source_rgba(), and self.
Referenced by draw_cb().
|
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(), gtk_widget_get_toplevel(), handle_geometry_changed(), flutter::kFlutterImplicitViewId, kOpenGL, kSoftware, self, 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(), gtk_widget_get_scale_factor(), self, 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(), gtk_widget_get_scale_factor(), self, x, and y.
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(), fl_engine_get_mouse_cursor_handler(), handler, and self.
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(), self, 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(), gdk_gl_context_realize(), gdk_window_create_gl_context(), gtk_widget_get_display(), gtk_widget_get_window(), self, and shareable.
Referenced by realize_cb().
|
static |
Definition at line 459 of file fl_view.cc.
References fl_compositor_software_new(), fl_engine_get_task_runner(), and self.
Referenced by realize_cb().
|
static |
Definition at line 506 of file fl_view.cc.
References handle_geometry_changed(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 279 of file fl_view.cc.
References fl_engine_get_keyboard_manager(), fl_keyboard_manager_sync_modifier_if_needed(), and self.
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(), gtk_widget_get_scale_factor(), self, and TRUE.
Referenced by fl_view_init().
|
static |
Definition at line 227 of file fl_view.cc.
References fl_view_accessible_handle_update_semantics(), self, and FlutterSemanticsUpdate2::view_id.
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(), self, 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(), self, 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().