1 | /* gtkatcontextprivate.h: Private header for GtkATContext |
2 | * |
3 | * Copyright 2020 GNOME Foundation |
4 | * |
5 | * SPDX-License-Identifier: LGPL-2.1-or-later |
6 | * |
7 | * This library is free software; you can redistribute it and/or |
8 | * modify it under the terms of the GNU Lesser General Public |
9 | * License as published by the Free Software Foundation; either |
10 | * version 2.1 of the License, or (at your option) any later version. |
11 | * |
12 | * This library is distributed in the hope that it will be useful, |
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 | * Lesser General Public License for more details. |
16 | * |
17 | * You should have received a copy of the GNU Lesser General Public |
18 | * License along with this library; if not, see <http://www.gnu.org/licenses/>. |
19 | */ |
20 | |
21 | #pragma once |
22 | |
23 | #include "gtkatcontext.h" |
24 | |
25 | #include "gtkaccessibleattributesetprivate.h" |
26 | |
27 | G_BEGIN_DECLS |
28 | |
29 | typedef enum { |
30 | GTK_ACCESSIBLE_PROPERTY_CHANGE_AUTOCOMPLETE = 1 << GTK_ACCESSIBLE_PROPERTY_AUTOCOMPLETE, |
31 | GTK_ACCESSIBLE_PROPERTY_CHANGE_DESCRIPTION = 1 << GTK_ACCESSIBLE_PROPERTY_DESCRIPTION, |
32 | = 1 << GTK_ACCESSIBLE_PROPERTY_HAS_POPUP, |
33 | GTK_ACCESSIBLE_PROPERTY_CHANGE_KEY_SHORTCUTS = 1 << GTK_ACCESSIBLE_PROPERTY_KEY_SHORTCUTS, |
34 | GTK_ACCESSIBLE_PROPERTY_CHANGE_LABEL = 1 << GTK_ACCESSIBLE_PROPERTY_LABEL, |
35 | GTK_ACCESSIBLE_PROPERTY_CHANGE_LEVEL = 1 << GTK_ACCESSIBLE_PROPERTY_LEVEL, |
36 | GTK_ACCESSIBLE_PROPERTY_CHANGE_MODAL = 1 << GTK_ACCESSIBLE_PROPERTY_MODAL, |
37 | GTK_ACCESSIBLE_PROPERTY_CHANGE_MULTI_LINE = 1 << GTK_ACCESSIBLE_PROPERTY_MULTI_LINE, |
38 | GTK_ACCESSIBLE_PROPERTY_CHANGE_MULTI_SELECTABLE = 1 << GTK_ACCESSIBLE_PROPERTY_MULTI_SELECTABLE, |
39 | GTK_ACCESSIBLE_PROPERTY_CHANGE_ORIENTATION = 1 << GTK_ACCESSIBLE_PROPERTY_ORIENTATION, |
40 | GTK_ACCESSIBLE_PROPERTY_CHANGE_PLACEHOLDER = 1 << GTK_ACCESSIBLE_PROPERTY_PLACEHOLDER, |
41 | GTK_ACCESSIBLE_PROPERTY_CHANGE_READ_ONLY = 1 << GTK_ACCESSIBLE_PROPERTY_READ_ONLY, |
42 | GTK_ACCESSIBLE_PROPERTY_CHANGE_REQUIRED = 1 << GTK_ACCESSIBLE_PROPERTY_REQUIRED, |
43 | GTK_ACCESSIBLE_PROPERTY_CHANGE_ROLE_DESCRIPTION = 1 << GTK_ACCESSIBLE_PROPERTY_ROLE_DESCRIPTION, |
44 | GTK_ACCESSIBLE_PROPERTY_CHANGE_SORT = 1 << GTK_ACCESSIBLE_PROPERTY_SORT, |
45 | GTK_ACCESSIBLE_PROPERTY_CHANGE_VALUE_MAX = 1 << GTK_ACCESSIBLE_PROPERTY_VALUE_MAX, |
46 | GTK_ACCESSIBLE_PROPERTY_CHANGE_VALUE_MIN = 1 << GTK_ACCESSIBLE_PROPERTY_VALUE_MIN, |
47 | GTK_ACCESSIBLE_PROPERTY_CHANGE_VALUE_NOW = 1 << GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, |
48 | GTK_ACCESSIBLE_PROPERTY_CHANGE_VALUE_TEXT = 1 << GTK_ACCESSIBLE_PROPERTY_VALUE_TEXT |
49 | } GtkAccessiblePropertyChange; |
50 | |
51 | typedef enum { |
52 | GTK_ACCESSIBLE_RELATION_CHANGE_ACTIVE_DESCENDANT = 1 << GTK_ACCESSIBLE_RELATION_ACTIVE_DESCENDANT, |
53 | GTK_ACCESSIBLE_RELATION_CHANGE_COL_COUNT = 1 << GTK_ACCESSIBLE_RELATION_COL_COUNT, |
54 | GTK_ACCESSIBLE_RELATION_CHANGE_COL_INDEX = 1 << GTK_ACCESSIBLE_RELATION_COL_INDEX, |
55 | GTK_ACCESSIBLE_RELATION_CHANGE_COL_INDEX_TEXT = 1 << GTK_ACCESSIBLE_RELATION_COL_INDEX_TEXT, |
56 | GTK_ACCESSIBLE_RELATION_CHANGE_COL_SPAN = 1 << GTK_ACCESSIBLE_RELATION_COL_SPAN, |
57 | GTK_ACCESSIBLE_RELATION_CHANGE_CONTROLS = 1 << GTK_ACCESSIBLE_RELATION_CONTROLS, |
58 | GTK_ACCESSIBLE_RELATION_CHANGE_DESCRIBED_BY = 1 << GTK_ACCESSIBLE_RELATION_DESCRIBED_BY, |
59 | GTK_ACCESSIBLE_RELATION_CHANGE_DETAILS = 1 << GTK_ACCESSIBLE_RELATION_DETAILS, |
60 | GTK_ACCESSIBLE_RELATION_CHANGE_ERROR_MESSAGE = 1 << GTK_ACCESSIBLE_RELATION_ERROR_MESSAGE, |
61 | GTK_ACCESSIBLE_RELATION_CHANGE_FLOW_TO = 1 << GTK_ACCESSIBLE_RELATION_FLOW_TO, |
62 | GTK_ACCESSIBLE_RELATION_CHANGE_LABELLED_BY = 1 << GTK_ACCESSIBLE_RELATION_LABELLED_BY, |
63 | GTK_ACCESSIBLE_RELATION_CHANGE_OWNS = 1 << GTK_ACCESSIBLE_RELATION_OWNS, |
64 | GTK_ACCESSIBLE_RELATION_CHANGE_POS_IN_SET = 1 << GTK_ACCESSIBLE_RELATION_POS_IN_SET, |
65 | GTK_ACCESSIBLE_RELATION_CHANGE_ROW_COUNT = 1 << GTK_ACCESSIBLE_RELATION_ROW_COUNT, |
66 | GTK_ACCESSIBLE_RELATION_CHANGE_ROW_INDEX = 1 << GTK_ACCESSIBLE_RELATION_ROW_INDEX, |
67 | GTK_ACCESSIBLE_RELATION_CHANGE_ROW_INDEX_TEXT = 1 << GTK_ACCESSIBLE_RELATION_ROW_INDEX_TEXT, |
68 | GTK_ACCESSIBLE_RELATION_CHANGE_ROW_SPAN = 1 << GTK_ACCESSIBLE_RELATION_ROW_SPAN, |
69 | GTK_ACCESSIBLE_RELATION_CHANGE_SET_SIZE = 1 << GTK_ACCESSIBLE_RELATION_SET_SIZE |
70 | } GtkAccessibleRelationChange; |
71 | |
72 | typedef enum { |
73 | GTK_ACCESSIBLE_STATE_CHANGE_BUSY = 1 << GTK_ACCESSIBLE_STATE_BUSY, |
74 | GTK_ACCESSIBLE_STATE_CHANGE_CHECKED = 1 << GTK_ACCESSIBLE_STATE_CHECKED, |
75 | GTK_ACCESSIBLE_STATE_CHANGE_DISABLED = 1 << GTK_ACCESSIBLE_STATE_DISABLED, |
76 | GTK_ACCESSIBLE_STATE_CHANGE_EXPANDED = 1 << GTK_ACCESSIBLE_STATE_EXPANDED, |
77 | GTK_ACCESSIBLE_STATE_CHANGE_HIDDEN = 1 << GTK_ACCESSIBLE_STATE_HIDDEN, |
78 | GTK_ACCESSIBLE_STATE_CHANGE_INVALID = 1 << GTK_ACCESSIBLE_STATE_INVALID, |
79 | GTK_ACCESSIBLE_STATE_CHANGE_PRESSED = 1 << GTK_ACCESSIBLE_STATE_PRESSED, |
80 | GTK_ACCESSIBLE_STATE_CHANGE_SELECTED = 1 << GTK_ACCESSIBLE_STATE_SELECTED |
81 | } GtkAccessibleStateChange; |
82 | |
83 | typedef enum { |
84 | GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE, |
85 | GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED, |
86 | GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE |
87 | } GtkAccessiblePlatformState; |
88 | |
89 | typedef enum { |
90 | GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSABLE = 1 << GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE, |
91 | GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSED = 1 << GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED, |
92 | GTK_ACCESSIBLE_PLATFORM_CHANGE_ACTIVE = 1 << GTK_ACCESSIBLE_PLATFORM_STATE_ACTIVE, |
93 | } GtkAccessiblePlatformChange; |
94 | |
95 | typedef enum { |
96 | GTK_ACCESSIBLE_CHILD_STATE_ADDED, |
97 | GTK_ACCESSIBLE_CHILD_STATE_REMOVED |
98 | } GtkAccessibleChildState; |
99 | |
100 | typedef enum { |
101 | GTK_ACCESSIBLE_CHILD_CHANGE_ADDED = 1 << GTK_ACCESSIBLE_CHILD_STATE_ADDED, |
102 | GTK_ACCESSIBLE_CHILD_CHANGE_REMOVED = 1 << GTK_ACCESSIBLE_CHILD_STATE_REMOVED |
103 | } GtkAccessibleChildChange; |
104 | |
105 | struct _GtkATContext |
106 | { |
107 | GObject parent_instance; |
108 | |
109 | GtkAccessibleRole accessible_role; |
110 | GtkAccessible *accessible; |
111 | GdkDisplay *display; |
112 | |
113 | GtkAccessibleAttributeSet *states; |
114 | GtkAccessibleAttributeSet *properties; |
115 | GtkAccessibleAttributeSet *relations; |
116 | |
117 | GtkAccessibleStateChange updated_states; |
118 | GtkAccessiblePropertyChange updated_properties; |
119 | GtkAccessibleRelationChange updated_relations; |
120 | GtkAccessiblePlatformChange updated_platform; |
121 | |
122 | guint realized : 1; |
123 | }; |
124 | |
125 | struct _GtkATContextClass |
126 | { |
127 | GObjectClass parent_class; |
128 | |
129 | void (* state_change) (GtkATContext *self, |
130 | GtkAccessibleStateChange changed_states, |
131 | GtkAccessiblePropertyChange changed_properties, |
132 | GtkAccessibleRelationChange changed_relations, |
133 | GtkAccessibleAttributeSet *states, |
134 | GtkAccessibleAttributeSet *properties, |
135 | GtkAccessibleAttributeSet *relations); |
136 | |
137 | void (* platform_change) (GtkATContext *self, |
138 | GtkAccessiblePlatformChange changed_platform); |
139 | |
140 | void (* bounds_change) (GtkATContext *self); |
141 | |
142 | void (* child_change) (GtkATContext *self, |
143 | GtkAccessibleChildChange changed_child, |
144 | GtkAccessible *child); |
145 | |
146 | void (* realize) (GtkATContext *self); |
147 | void (* unrealize) (GtkATContext *self); |
148 | }; |
149 | |
150 | GtkATContext * gtk_at_context_clone (GtkATContext *self, |
151 | GtkAccessibleRole role, |
152 | GtkAccessible *accessible, |
153 | GdkDisplay *display); |
154 | |
155 | void gtk_at_context_set_display (GtkATContext *self, |
156 | GdkDisplay *display); |
157 | GdkDisplay * gtk_at_context_get_display (GtkATContext *self); |
158 | void gtk_at_context_set_accessible_role (GtkATContext *self, |
159 | GtkAccessibleRole role); |
160 | |
161 | void gtk_at_context_realize (GtkATContext *self); |
162 | void gtk_at_context_unrealize (GtkATContext *self); |
163 | gboolean gtk_at_context_is_realized (GtkATContext *self); |
164 | |
165 | void gtk_at_context_update (GtkATContext *self); |
166 | |
167 | void gtk_at_context_set_accessible_state (GtkATContext *self, |
168 | GtkAccessibleState state, |
169 | GtkAccessibleValue *value); |
170 | gboolean gtk_at_context_has_accessible_state (GtkATContext *self, |
171 | GtkAccessibleState state); |
172 | GtkAccessibleValue * gtk_at_context_get_accessible_state (GtkATContext *self, |
173 | GtkAccessibleState state); |
174 | void gtk_at_context_set_accessible_property (GtkATContext *self, |
175 | GtkAccessibleProperty property, |
176 | GtkAccessibleValue *value); |
177 | gboolean gtk_at_context_has_accessible_property (GtkATContext *self, |
178 | GtkAccessibleProperty property); |
179 | GtkAccessibleValue * gtk_at_context_get_accessible_property (GtkATContext *self, |
180 | GtkAccessibleProperty property); |
181 | void gtk_at_context_set_accessible_relation (GtkATContext *self, |
182 | GtkAccessibleRelation property, |
183 | GtkAccessibleValue *value); |
184 | gboolean gtk_at_context_has_accessible_relation (GtkATContext *self, |
185 | GtkAccessibleRelation relation); |
186 | GtkAccessibleValue * gtk_at_context_get_accessible_relation (GtkATContext *self, |
187 | GtkAccessibleRelation relation); |
188 | |
189 | char * gtk_at_context_get_name (GtkATContext *self); |
190 | char * gtk_at_context_get_description (GtkATContext *self); |
191 | |
192 | void gtk_at_context_platform_changed (GtkATContext *self, |
193 | GtkAccessiblePlatformChange change); |
194 | void gtk_at_context_bounds_changed (GtkATContext *self); |
195 | void gtk_at_context_child_changed (GtkATContext *self, |
196 | GtkAccessibleChildChange change, |
197 | GtkAccessible *child); |
198 | |
199 | const char * gtk_accessible_property_get_attribute_name (GtkAccessibleProperty property); |
200 | const char * gtk_accessible_relation_get_attribute_name (GtkAccessibleRelation relation); |
201 | const char * gtk_accessible_state_get_attribute_name (GtkAccessibleState state); |
202 | |
203 | G_END_DECLS |
204 | |