mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
111 lines
3.2 KiB
C
111 lines
3.2 KiB
C
// Copyright 2013 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef FLUTTER_SHELL_PLATFORM_LINUX_FL_ACCESSIBLE_NODE_H_
|
|
#define FLUTTER_SHELL_PLATFORM_LINUX_FL_ACCESSIBLE_NODE_H_
|
|
|
|
#include <gtk/gtk.h>
|
|
|
|
#include "flutter/shell/platform/embedder/embedder.h"
|
|
#include "flutter/shell/platform/linux/public/flutter_linux/fl_engine.h"
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
// ATK doesn't have the g_autoptr macros, so add them manually.
|
|
// https://gitlab.gnome.org/GNOME/atk/-/issues/10
|
|
G_DEFINE_AUTOPTR_CLEANUP_FUNC(AtkObject, g_object_unref)
|
|
|
|
G_DECLARE_FINAL_TYPE(FlAccessibleNode,
|
|
fl_accessible_node,
|
|
FL,
|
|
ACCESSIBLE_NODE,
|
|
AtkObject);
|
|
|
|
/**
|
|
* FlAccessibleNode:
|
|
*
|
|
* #FlAccessibleNode is an object that exposes a Flutter accessibility node to
|
|
* ATK.
|
|
*/
|
|
|
|
/**
|
|
* fl_accessible_node_new:
|
|
* @engine: the #FlEngine this node came from.
|
|
* @id: the semantics node ID this object represents.
|
|
*
|
|
* Creates a new accessibility object that exposes Flutter accessibility
|
|
* information to ATK.
|
|
*
|
|
* Returns: a new #FlAccessibleNode.
|
|
*/
|
|
FlAccessibleNode* fl_accessible_node_new(FlEngine* engine, int32_t id);
|
|
|
|
/**
|
|
* fl_accessible_node_new:
|
|
* @node: an #FlAccessibleNode.
|
|
* @parent: an #AtkObject.
|
|
*
|
|
* Sets the parent of this node. The parent can be changed at any time.
|
|
*/
|
|
void fl_accessible_node_set_parent(FlAccessibleNode* node, AtkObject* parent);
|
|
|
|
/**
|
|
* fl_accessible_node_new:
|
|
* @node: an #FlAccessibleNode.
|
|
* @children: (transfer none) (element-type AtkObject): a list of #AtkObject.
|
|
*
|
|
* Sets the children of this node. The children can be changed at any time.
|
|
*/
|
|
void fl_accessible_node_set_children(FlAccessibleNode* node,
|
|
GPtrArray* children);
|
|
|
|
/**
|
|
* fl_accessible_node_set_name:
|
|
* @node: an #FlAccessibleNode.
|
|
* @name: a node name.
|
|
*
|
|
* Sets the name of this node as reported to the a11y consumer.
|
|
*/
|
|
void fl_accessible_node_set_name(FlAccessibleNode* node, const gchar* name);
|
|
|
|
/**
|
|
* fl_accessible_node_set_extents:
|
|
* @node: an #FlAccessibleNode.
|
|
* @x: x co-ordinate of this node relative to its parent.
|
|
* @y: y co-ordinate of this node relative to its parent.
|
|
* @width: width of this node in pixels.
|
|
* @height: height of this node in pixels.
|
|
*
|
|
* Sets the position and size of this node.
|
|
*/
|
|
void fl_accessible_node_set_extents(FlAccessibleNode* node,
|
|
gint x,
|
|
gint y,
|
|
gint width,
|
|
gint height);
|
|
|
|
/**
|
|
* fl_accessible_node_set_flags:
|
|
* @node: an #FlAccessibleNode.
|
|
* @flags: the flags for this node.
|
|
*
|
|
* Sets the flags for this node.
|
|
*/
|
|
void fl_accessible_node_set_flags(FlAccessibleNode* node,
|
|
FlutterSemanticsFlag flags);
|
|
|
|
/**
|
|
* fl_accessible_node_set_actions:
|
|
* @node: an #FlAccessibleNode.
|
|
* @actions: the actions this node can perform.
|
|
*
|
|
* Sets the actions that this node can perform.
|
|
*/
|
|
void fl_accessible_node_set_actions(FlAccessibleNode* node,
|
|
FlutterSemanticsAction actions);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_ACCESSIBLE_NODE_H_
|