#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_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_view_renderer.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 void first_frame_cb(FlView *self) | |
| static gboolean | window_delete_event_cb (FlView *self) |
| static void | init_scrolling (FlView *self) |
| static void | init_touch (FlView *self) |
| static FlutterPointerDeviceKind | get_pointer_device_kind (GdkEvent *event) |
| static void | get_pointer_device_state (GdkEvent *event, gdouble *rotation, gdouble *pressure) |
| 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 | realize_cb (FlView *self) |
| static void | size_allocate_cb (FlView *self) |
| 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 FlView * | fl_view_new_sized_to_content (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 298 of file fl_view.cc.
References event_type, fl_pointer_manager_handle_button_press(), get_pointer_device_kind(), get_pointer_device_state(), 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 329 of file fl_view.cc.
References fl_pointer_manager_handle_button_release(), get_pointer_device_kind(), get_pointer_device_state(), 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 155 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 396 of file fl_view.cc.
References fl_pointer_manager_handle_enter(), get_pointer_device_kind(), get_pointer_device_state(), gtk_widget_get_scale_factor(), self, x, and y.
Referenced by fl_view_init().
|
static |
Definition at line 274 of file fl_view.cc.
References fl_view_present_layers().
|
static |
Definition at line 609 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 506 of file fl_view.cc.
References fl_engine_get_text_input_handler(), fl_engine_remove_view(), fl_text_input_handler_get_widget(), fl_text_input_handler_set_widget(), and self.
Referenced by fl_view_class_init().
|
static |
Definition at line 587 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 | ) |
| G_MODULE_EXPORT FlEngine * fl_view_get_engine | ( | FlView * | view | ) |
| G_MODULE_EXPORT int64_t fl_view_get_id | ( | FlView * | view | ) |
|
static |
Definition at line 264 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 658 of file fl_view.cc.
References button_press_event_cb(), button_release_event_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(), scroll_event_cb(), self, touch_event_cb(), and TRUE.
|
static |
Definition at line 596 of file fl_view.cc.
References handle_key_event(), key_event, and self.
Referenced by fl_view_class_init().
|
static |
Definition at line 603 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 705 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_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| 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 719 of file fl_view.cc.
References engine, fl_engine_add_view(), gtk_widget_get_scale_factor(), self, setup_engine(), and view_added_cb().
Referenced by FlAccessibilityHandlerTest::SetUp(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().
| G_MODULE_EXPORT FlView * fl_view_new_sized_to_content | ( | FlEngine * | engine | ) |
fl_view_new_sized_to_content: @engine: an #FlEngine.
Creates a widget to show a window in a Flutter application. The window will always display content in the size that Flutter provides. The engine must be not be headless.
Returns: a new #FlView.
Definition at line 735 of file fl_view.cc.
References engine, fl_engine_add_view(), gtk_widget_get_scale_factor(), self, setup_engine(), TRUE, and view_added_cb().
Referenced by TEST_F().
|
static |
Definition at line 494 of file fl_view.cc.
References handle_geometry_changed(), pspec, and self.
Referenced by fl_view_class_init().
|
static |
Definition at line 278 of file fl_view.cc.
References fl_view_get_registrar_for_plugin().
|
static |
Definition at line 255 of file fl_view.cc.
References fl_view_renderer_present_layers(), layers, layers_count, renderable, and self.
Referenced by fl_renderable_iface_init().
|
static |
Definition at line 541 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 764 of file fl_view.cc.
References fl_view_renderer_set_background_color(), and 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 81 of file fl_view.cc.
References fl_view_signals, self, and SIGNAL_FIRST_FRAME.
|
static |
Definition at line 431 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_begin(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 442 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_end(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 435 of file fl_view.cc.
References fl_scrolling_manager_handle_rotation_update(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 446 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_begin(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 454 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_end(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 450 of file fl_view.cc.
References fl_scrolling_manager_handle_zoom_update(), and self.
Referenced by fl_view_init().
|
static |
Definition at line 112 of file fl_view.cc.
References device, kFlutterPointerDeviceKindInvertedStylus, 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 137 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 178 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(), height, self, width, and window.
Referenced by fl_view_notify(), realize_cb(), and size_allocate_cb().
|
static |
Definition at line 550 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 101 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 107 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 412 of file fl_view.cc.
References fl_pointer_manager_handle_leave(), get_pointer_device_kind(), get_pointer_device_state(), gtk_widget_get_scale_factor(), self, x, and y.
Referenced by fl_view_init().
|
static |
Definition at line 371 of file fl_view.cc.
References event_type, fl_pointer_manager_handle_motion(), get_pointer_device_kind(), get_pointer_device_state(), gtk_widget_get_scale_factor(), self, sync_modifier_if_needed(), x, and y.
Referenced by fl_view_init().
|
static |
Definition at line 249 of file fl_view.cc.
References init_scrolling(), init_touch(), and self.
Referenced by setup_engine().
|
static |
Definition at line 458 of file fl_view.cc.
References error, fl_engine_get_binary_messenger(), fl_engine_get_opengl_manager(), fl_engine_start(), fl_opengl_manager_clear_current(), fl_window_state_monitor_new(), g_autoptr(), gtk_widget_get_toplevel(), handle_geometry_changed(), flutter::kFlutterImplicitViewId, self, setup_cursor(), and window_delete_event_cb().
Referenced by setup_engine().
|
static |
Definition at line 353 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 291 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 167 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 629 of file fl_view.cc.
References first_frame_cb(), fl_pointer_manager_new(), fl_socket_accessible_embed(), fl_view_accessible_new(), fl_view_renderer_new(), gtk_widget_show(), init_scrolling(), init_touch(), on_pre_engine_restart_cb(), realize_cb(), self, size_allocate_cb(), and update_semantics_cb().
Referenced by fl_view_new(), fl_view_new_for_engine(), and fl_view_new_sized_to_content().
|
static |
Definition at line 490 of file fl_view.cc.
References handle_geometry_changed(), and self.
Referenced by setup_engine().
|
static |
Definition at line 283 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 363 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 234 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 218 of file fl_view.cc.
References error, fl_engine_add_view_finish(), and g_autoptr().
Referenced by fl_view_new_for_engine(), and fl_view_new_sized_to_content().
|
static |
Definition at line 95 of file fl_view.cc.
References fl_engine_request_app_exit(), self, and TRUE.
Referenced by realize_cb().
|
static |
Definition at line 74 of file fl_view.cc.
Referenced by fl_view_class_init(), and G_DEFINE_TYPE_WITH_CODE().