2020-06-16 16:40:14 +00:00
|
|
|
/* gtkaccessible.h: Accessible interface
|
|
|
|
*
|
|
|
|
* Copyright 2020 GNOME Foundation
|
|
|
|
*
|
|
|
|
* SPDX-License-Identifier: LGPL-2.1-or-later
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
2020-07-17 13:39:56 +00:00
|
|
|
#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
|
|
|
|
#error "Only <gtk/gtk.h> can be included directly."
|
|
|
|
#endif
|
|
|
|
|
2020-06-16 16:40:14 +00:00
|
|
|
#include <glib-object.h>
|
|
|
|
#include <gtk/gtktypes.h>
|
|
|
|
#include <gtk/gtkenums.h>
|
|
|
|
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
|
|
|
|
#define GTK_TYPE_ACCESSIBLE (gtk_accessible_get_type())
|
|
|
|
|
2023-02-03 09:48:24 +00:00
|
|
|
GDK_AVAILABLE_IN_4_10
|
2020-06-16 16:40:14 +00:00
|
|
|
G_DECLARE_INTERFACE (GtkAccessible, gtk_accessible, GTK, ACCESSIBLE, GObject)
|
|
|
|
|
2022-09-15 14:00:25 +00:00
|
|
|
/**
|
|
|
|
* GtkAccessiblePlatformState:
|
2022-09-16 16:48:40 +00:00
|
|
|
* @GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE: whether the accessible can be focused
|
|
|
|
* @GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED: whether the accessible has focus
|
|
|
|
* @GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE: whether the accessible is active
|
2022-09-15 14:00:25 +00:00
|
|
|
*
|
|
|
|
* The various platform states which can be queried
|
2022-09-16 16:48:40 +00:00
|
|
|
* using [method@Gtk.Accessible.get_platform_state].
|
|
|
|
*
|
|
|
|
* Since: 4.10
|
2022-09-15 14:00:25 +00:00
|
|
|
*/
|
2022-09-12 12:40:11 +00:00
|
|
|
typedef enum {
|
|
|
|
GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE,
|
|
|
|
GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED,
|
|
|
|
GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE
|
|
|
|
} GtkAccessiblePlatformState;
|
|
|
|
|
2023-02-03 09:48:24 +00:00
|
|
|
/** < private >
|
2022-09-15 14:00:25 +00:00
|
|
|
* GtkAccessiblePlatformChange:
|
2022-09-16 16:48:40 +00:00
|
|
|
* @GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSABLE: whether the accessible has changed
|
|
|
|
* its focusable state
|
|
|
|
* @GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSED: whether the accessible has changed its
|
|
|
|
* focused state
|
|
|
|
* @GTK_ACCESSIBLE_PLATFORM_CHANGE_ACTIVE: whether the accessible has changed its
|
|
|
|
* active state
|
2022-09-15 14:00:25 +00:00
|
|
|
*
|
|
|
|
* Represents the various platform changes which can occur and are communicated
|
2022-09-16 16:48:40 +00:00
|
|
|
* using [method@Gtk.Accessible.platform_changed].
|
2022-09-15 14:00:25 +00:00
|
|
|
*/
|
2022-09-12 12:40:11 +00:00
|
|
|
typedef enum {
|
|
|
|
GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSABLE = 1 << GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE,
|
|
|
|
GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSED = 1 << GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED,
|
|
|
|
GTK_ACCESSIBLE_PLATFORM_CHANGE_ACTIVE = 1 << GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE,
|
|
|
|
} GtkAccessiblePlatformChange;
|
|
|
|
|
|
|
|
struct _GtkAccessibleInterface
|
|
|
|
{
|
|
|
|
GTypeInterface g_iface;
|
|
|
|
|
2022-09-15 14:00:25 +00:00
|
|
|
/**
|
|
|
|
* GtkAccessibleInterface::get_at_context:
|
|
|
|
* @self: a `GtkAccessible`
|
|
|
|
*
|
|
|
|
* Retrieves the `GtkATContext` for this accessible implementation.
|
|
|
|
*/
|
2022-09-12 12:40:11 +00:00
|
|
|
GtkATContext * (* get_at_context) (GtkAccessible *self);
|
|
|
|
|
2022-09-15 14:00:25 +00:00
|
|
|
/**
|
|
|
|
* GtkAccessibleInterface::get_platform_state:
|
|
|
|
*
|
|
|
|
* @self: A `GtkAccessible`
|
|
|
|
* @state: The state to retrieve
|
|
|
|
*
|
|
|
|
* Returns whether @self has the given platform state.
|
|
|
|
* @returns: %true if @state is active for @self.
|
|
|
|
* @returns:
|
|
|
|
*/
|
2022-09-12 12:40:11 +00:00
|
|
|
gboolean (* get_platform_state) (GtkAccessible *self,
|
|
|
|
GtkAccessiblePlatformState state);
|
|
|
|
|
2022-09-15 14:00:25 +00:00
|
|
|
/**
|
2022-11-22 14:17:30 +00:00
|
|
|
* GtkAccessibleInterface::get_accessible_parent:
|
2022-09-15 14:00:25 +00:00
|
|
|
* @self: a `GtkAccessible`
|
|
|
|
*
|
|
|
|
* Returns the parent `GtkAccessible` of @self.
|
|
|
|
* Be sure not to return %NULL, as a top-level `GtkAccessible` which is not a
|
|
|
|
* top-level window is not supported.
|
|
|
|
*/
|
2022-11-22 14:17:30 +00:00
|
|
|
GtkAccessible * (* get_accessible_parent) (GtkAccessible *self);
|
2022-09-15 14:00:25 +00:00
|
|
|
|
|
|
|
/**
|
|
|
|
* GtkaccessibleInterface::get_child_at_index:
|
|
|
|
* @self: a `GtkAccessible`
|
2022-09-16 16:48:40 +00:00
|
|
|
* @idx: the index of the child
|
2022-09-15 14:00:25 +00:00
|
|
|
*
|
|
|
|
* Returns the child of @self whose position corresponds to @index.
|
|
|
|
* If @index is not valid for @self's children, return -1.
|
|
|
|
*/
|
2022-09-16 16:48:40 +00:00
|
|
|
GtkAccessible * (* get_child_at_index) (GtkAccessible *self, guint idx);
|
2022-09-12 12:40:11 +00:00
|
|
|
|
2022-09-15 14:00:25 +00:00
|
|
|
/**
|
|
|
|
* GtkAccessibleInterface::get_bounds:
|
|
|
|
* @self: a `GtkAccessible`
|
|
|
|
* @x: an addres of the x coordinate
|
|
|
|
* @y: an address of the y coordinate
|
|
|
|
* @width: address of the width
|
|
|
|
* @height: address of the height
|
|
|
|
*
|
|
|
|
* Returns the dimensions and position of @self, if this information
|
|
|
|
* can be determined.
|
|
|
|
* @returns: %true if the values are valid, %false otherwise
|
|
|
|
*/
|
2022-09-12 12:40:11 +00:00
|
|
|
gboolean (* get_bounds) (GtkAccessible *self, int *x, int *y,
|
|
|
|
int *width, int *height);
|
|
|
|
};
|
|
|
|
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
GtkATContext * gtk_accessible_get_at_context (GtkAccessible *self);
|
|
|
|
|
2023-02-03 09:48:24 +00:00
|
|
|
GDK_AVAILABLE_IN_4_10
|
2022-09-12 12:40:11 +00:00
|
|
|
gboolean gtk_accessible_get_platform_state (GtkAccessible *self,
|
|
|
|
GtkAccessiblePlatformState state);
|
|
|
|
|
2023-02-03 09:48:24 +00:00
|
|
|
GDK_AVAILABLE_IN_4_10
|
2022-11-22 14:17:30 +00:00
|
|
|
GtkAccessible * gtk_accessible_get_accessible_parent(GtkAccessible *self);
|
2022-09-12 12:40:11 +00:00
|
|
|
|
2023-02-03 09:48:24 +00:00
|
|
|
GDK_AVAILABLE_IN_4_10
|
2022-09-16 16:48:40 +00:00
|
|
|
GtkAccessible * gtk_accessible_get_child_at_index(GtkAccessible *self, guint idx);
|
2022-09-12 12:40:11 +00:00
|
|
|
|
2023-02-03 09:48:24 +00:00
|
|
|
GDK_AVAILABLE_IN_4_10
|
2022-09-12 12:40:11 +00:00
|
|
|
gboolean gtk_accessible_get_bounds (GtkAccessible *self, int *x, int *y, int *width, int *height);
|
|
|
|
|
2020-07-08 15:56:31 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2020-07-13 14:51:39 +00:00
|
|
|
GtkAccessibleRole gtk_accessible_get_accessible_role (GtkAccessible *self);
|
2020-07-13 14:20:19 +00:00
|
|
|
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
2020-07-13 14:51:39 +00:00
|
|
|
void gtk_accessible_update_state (GtkAccessible *self,
|
|
|
|
GtkAccessibleState first_state,
|
2020-07-13 14:20:19 +00:00
|
|
|
...);
|
2020-07-08 15:56:31 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
2020-07-13 14:51:39 +00:00
|
|
|
void gtk_accessible_update_property (GtkAccessible *self,
|
|
|
|
GtkAccessibleProperty first_property,
|
|
|
|
...);
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
2020-07-17 11:00:31 +00:00
|
|
|
void gtk_accessible_update_relation (GtkAccessible *self,
|
|
|
|
GtkAccessibleRelation first_relation,
|
|
|
|
...);
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
2020-07-13 14:51:39 +00:00
|
|
|
void gtk_accessible_update_state_value (GtkAccessible *self,
|
2020-08-05 14:03:00 +00:00
|
|
|
int n_states,
|
|
|
|
GtkAccessibleState states[],
|
|
|
|
const GValue values[]);
|
2020-07-13 16:47:36 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_update_property_value (GtkAccessible *self,
|
2020-08-05 14:03:00 +00:00
|
|
|
int n_properties,
|
|
|
|
GtkAccessibleProperty properties[],
|
|
|
|
const GValue values[]);
|
2020-07-17 11:00:31 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_update_relation_value (GtkAccessible *self,
|
2020-08-05 14:03:00 +00:00
|
|
|
int n_relations,
|
|
|
|
GtkAccessibleRelation relations[],
|
|
|
|
const GValue values[]);
|
2020-06-16 16:40:14 +00:00
|
|
|
|
2020-07-28 15:46:53 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_reset_state (GtkAccessible *self,
|
|
|
|
GtkAccessibleState state);
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_reset_property (GtkAccessible *self,
|
|
|
|
GtkAccessibleProperty property);
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_reset_relation (GtkAccessible *self,
|
|
|
|
GtkAccessibleRelation relation);
|
|
|
|
|
2020-11-10 14:08:16 +00:00
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_state_init_value (GtkAccessibleState state,
|
|
|
|
GValue *value);
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_property_init_value (GtkAccessibleProperty property,
|
|
|
|
GValue *value);
|
|
|
|
GDK_AVAILABLE_IN_ALL
|
|
|
|
void gtk_accessible_relation_init_value (GtkAccessibleRelation relation,
|
|
|
|
GValue *value);
|
|
|
|
|
2020-06-16 16:40:14 +00:00
|
|
|
G_END_DECLS
|