blob: 220338d274bb1eeee7b9f709253bfcedd2e1d66a [file] [log] [blame]
// 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_VIEW_ACCESSIBLE_H_
#define FLUTTER_SHELL_PLATFORM_LINUX_FL_VIEW_ACCESSIBLE_H_
#if !defined(__FLUTTER_LINUX_INSIDE__) && !defined(FLUTTER_LINUX_COMPILATION)
#error "Only <flutter_linux/flutter_linux.h> can be included directly."
#endif
#include <atk/atk.h>
#include "flutter/shell/platform/embedder/embedder.h"
#include "flutter/shell/platform/linux/public/flutter_linux/fl_engine.h"
G_BEGIN_DECLS
// ATK g_autoptr macros weren't added until 2.37. Add them manually.
// https://gitlab.gnome.org/GNOME/atk/-/issues/10
#if !ATK_CHECK_VERSION(2, 37, 0)
G_DEFINE_AUTOPTR_CLEANUP_FUNC(AtkPlug, g_object_unref)
#endif
G_DECLARE_FINAL_TYPE(FlViewAccessible,
fl_view_accessible,
FL,
VIEW_ACCESSIBLE,
AtkPlug)
/**
* FlViewAccessible:
*
* #FlViewAccessible is an object that exposes accessibility information for an
* #FlView.
*/
/**
* fl_view_accessible_new:
*
* Creates a new accessibility object that exposes Flutter accessibility
* information to ATK.
*
* Returns: a new #FlViewAccessible.
*/
FlViewAccessible* fl_view_accessible_new(FlEngine* engine);
/**
* fl_view_accessible_handle_update_semantics:
* @accessible: an #FlViewAccessible.
* @update: semantic update information.
*
* Handle a semantics update from Flutter.
*/
void fl_view_accessible_handle_update_semantics(
FlViewAccessible* accessible,
const FlutterSemanticsUpdate2* update);
G_END_DECLS
#endif // FLUTTER_SHELL_PLATFORM_LINUX_FL_VIEW_ACCESSIBLE_H_