Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
fl_accessibility_handler.cc
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
6
10
11typedef struct {
12 GWeakRef engine;
13 FlAccessibilityChannel* channel;
15
16G_DEFINE_TYPE_WITH_PRIVATE(FlAccessibilityHandler,
17 fl_accessibility_handler,
18 G_TYPE_OBJECT)
19
20static void send_announcement(int64_t view_id,
21 const char* message,
24 gpointer user_data) {
25 FlAccessibilityHandler* self = FL_ACCESSIBILITY_HANDLER(user_data);
27 reinterpret_cast<FlAccessibilityHandlerPrivate*>(
28 fl_accessibility_handler_get_instance_private(self));
29
30 g_autoptr(FlEngine) engine = FL_ENGINE(g_weak_ref_get(&priv->engine));
31 if (engine == nullptr) {
32 return;
33 }
34
36 if (renderable == nullptr || !FL_IS_VIEW(renderable)) {
37 return;
38 }
39
40 FlView* view = FL_VIEW(renderable);
44}
45
46static void fl_accessibility_handler_dispose(GObject* object) {
47 FlAccessibilityHandler* self = FL_ACCESSIBILITY_HANDLER(object);
49 reinterpret_cast<FlAccessibilityHandlerPrivate*>(
50 fl_accessibility_handler_get_instance_private(self));
51
52 g_weak_ref_clear(&priv->engine);
53 g_clear_object(&priv->channel);
54
55 G_OBJECT_CLASS(fl_accessibility_handler_parent_class)->dispose(object);
56}
57
59 FlAccessibilityHandlerClass* klass) {
60 G_OBJECT_CLASS(klass)->dispose = fl_accessibility_handler_dispose;
61}
62
63static void fl_accessibility_handler_init(FlAccessibilityHandler* self) {}
64
68
69FlAccessibilityHandler* fl_accessibility_handler_new(FlEngine* engine) {
70 g_return_val_if_fail(FL_IS_ENGINE(engine), nullptr);
71
72 FlAccessibilityHandler* self = FL_ACCESSIBILITY_HANDLER(
73 g_object_new(fl_accessibility_handler_get_type(), nullptr));
75 reinterpret_cast<FlAccessibilityHandlerPrivate*>(
76 fl_accessibility_handler_get_instance_private(self));
77
78 g_weak_ref_init(&priv->engine, engine);
79 priv->channel =
82
83 return self;
84}
FlutterEngine engine
Definition main.cc:84
FlAccessibilityChannel * fl_accessibility_channel_new(FlBinaryMessenger *messenger, FlAccessibilityChannelVTable *vtable, gpointer user_data)
@ FL_ASSERTIVENESS_ASSERTIVE
FlViewAccessible * accessible
FlView * view
FlAccessibilityHandler * fl_accessibility_handler_new(FlEngine *engine)
static void fl_accessibility_handler_dispose(GObject *object)
const char * message
G_DEFINE_TYPE_WITH_PRIVATE(FlAccessibilityHandler, fl_accessibility_handler, G_TYPE_OBJECT) static void send_announcement(int64_t view_id
const char FlTextDirection text_direction
static FlAccessibilityChannelVTable accessibility_channel_vtable
fl_view_accessible_send_announcement(accessible, message, assertiveness==FL_ASSERTIVENESS_ASSERTIVE)
const char FlTextDirection FlAssertiveness assertiveness
static void fl_accessibility_handler_class_init(FlAccessibilityHandlerClass *klass)
g_autoptr(FlEngine) engine
static void fl_accessibility_handler_init(FlAccessibilityHandler *self)
FlRenderable * renderable
const char FlTextDirection FlAssertiveness gpointer user_data
FlAccessibilityHandlerPrivate * priv
FlRenderable * fl_engine_get_renderable(FlEngine *self, FlutterViewId view_id)
Definition fl_engine.cc:954
G_MODULE_EXPORT FlBinaryMessenger * fl_engine_get_binary_messenger(FlEngine *self)
FlViewAccessible * fl_view_get_accessible(FlView *self)
Definition fl_view.cc:808
G_BEGIN_DECLS FlutterViewId view_id
void(* send_announcement)(int64_t view_id, const char *message, FlTextDirection text_direction, FlAssertiveness assertiveness, gpointer user_data)