1 /*
2  * This file is part of gtkD.
3  *
4  * gtkD is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License
6  * as published by the Free Software Foundation; either version 3
7  * of the License, or (at your option) any later version, with
8  * some exceptions, please read the COPYING file.
9  *
10  * gtkD is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with gtkD; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110, USA
18  */
19  
20 // generated automatically - do not change
21 // find conversion definition on APILookup.txt
22 // implement new conversion functionalities on the wrap.utils pakage
23 
24 module gtkc.atktypes;
25 
26 
27 public import gtkc.glibtypes;
28 public import gtkc.gobjecttypes;
29 public alias void* AtkFocusHandler;
30 public struct AtkRectangle;
31 
32 
33 /**
34  * typedef guint64 AtkState;
35  * The AtkState value should not be referenceed directly.
36  */
37 public alias ulong AtkState;
38 
39 /**
40  * typedef GSList AtkAttributeSet;
41  * This is a singly-linked list (a GSList) of AtkAttribute. It is
42  * used by atk_text_get_run_attributes(), atk_text_get_default_attributes()
43  * and atk_editable_text_set_run_attributes()
44  */
45 public alias GSList AtkAttributeSet;
46 /**
47  * Describes the type of link
48  * ATK_HYPERLINK_IS_INLINE
49  * Link is inline
50  */
51 public enum AtkHyperlinkStateFlags
52 {
53 	IS_INLINE = 1 << 0
54 }
55 /**
56  * Describes the role of an object
57  * These are the built-in enumerated roles that UI components can have in
58  * ATK. Other roles may be added at runtime, so an AtkRole >=
59  * ATK_ROLE_LAST_DEFINED is not necessarily an error.
60  * ATK_ROLE_INVALID
61  * Invalid role
62  * ATK_ROLE_ACCEL_LABEL
63  * A label which represents an accelerator
64  * ATK_ROLE_ALERT
65  * An object which is an alert to the user. Assistive Technologies typically respond to ATK_ROLE_ALERT by reading the entire onscreen contents of containers advertising this role. Should be used for warning dialogs, etc.
66  * ATK_ROLE_ANIMATION
67  * An object which is an animated image
68  * ATK_ROLE_ARROW
69  * An arrow in one of the four cardinal directions
70  * ATK_ROLE_CALENDAR
71  * An object that displays a calendar and allows the user to select a date
72  * ATK_ROLE_CANVAS
73  * An object that can be drawn into and is used to trap events
74  * ATK_ROLE_CHECK_BOX
75  * A choice that can be checked or unchecked and provides a separate indicator for the current state
76  * ATK_ROLE_CHECK_MENU_ITEM
77  * A menu item with a check box
78  * ATK_ROLE_COLOR_CHOOSER
79  * A specialized dialog that lets the user choose a color
80  * ATK_ROLE_COLUMN_HEADER
81  * The header for a column of data
82  * ATK_ROLE_COMBO_BOX
83  * A list of choices the user can select from
84  * ATK_ROLE_DATE_EDITOR
85  * An object whose purpose is to allow a user to edit a date
86  * ATK_ROLE_DESKTOP_ICON
87  * An inconifed internal frame within a DESKTOP_PANE
88  * ATK_ROLE_DESKTOP_FRAME
89  * A pane that supports internal frames and iconified versions of those internal frames
90  * ATK_ROLE_DIAL
91  * An object whose purpose is to allow a user to set a value
92  * ATK_ROLE_DIALOG
93  * A top level window with title bar and a border
94  * ATK_ROLE_DIRECTORY_PANE
95  * A pane that allows the user to navigate through and select the contents of a directory
96  * ATK_ROLE_DRAWING_AREA
97  * An object used for drawing custom user interface elements
98  * ATK_ROLE_FILE_CHOOSER
99  * A specialized dialog that lets the user choose a file
100  * ATK_ROLE_FILLER
101  * A object that fills up space in a user interface
102  * ATK_ROLE_FONT_CHOOSER
103  * A specialized dialog that lets the user choose a font
104  * ATK_ROLE_FRAME
105  * A top level window with a title bar, border, menubar, etc.
106  * ATK_ROLE_GLASS_PANE
107  * A pane that is guaranteed to be painted on top of all panes beneath it
108  * ATK_ROLE_HTML_CONTAINER
109  * A document container for HTML, whose children represent the document content
110  * ATK_ROLE_ICON
111  * A small fixed size picture, typically used to decorate components
112  * ATK_ROLE_IMAGE
113  * An object whose primary purpose is to display an image
114  * ATK_ROLE_INTERNAL_FRAME
115  * A frame-like object that is clipped by a desktop pane
116  * ATK_ROLE_LABEL
117  * An object used to present an icon or short string in an interface
118  * ATK_ROLE_LAYERED_PANE
119  * A specialized pane that allows its children to be drawn in layers, providing a form of stacking order
120  * ATK_ROLE_LIST
121  * An object that presents a list of objects to the user and allows the user to select one or more of them
122  * ATK_ROLE_LIST_ITEM
123  * An object that represents an element of a list
124  * ATK_ROLE_MENU
125  * An object usually found inside a menu bar that contains a list of actions the user can choose from
126  * ATK_ROLE_MENU_BAR
127  * An object usually drawn at the top of the primary dialog box of an application that contains a list of menus the user can choose from
128  * ATK_ROLE_MENU_ITEM
129  * An object usually contained in a menu that presents an action the user can choose
130  * ATK_ROLE_OPTION_PANE
131  * A specialized pane whose primary use is inside a DIALOG
132  * ATK_ROLE_PAGE_TAB
133  * An object that is a child of a page tab list
134  * ATK_ROLE_PAGE_TAB_LIST
135  * An object that presents a series of panels (or page tabs), one at a time, through some mechanism provided by the object
136  * ATK_ROLE_PANEL
137  * A generic container that is often used to group objects
138  * ATK_ROLE_PASSWORD_TEXT
139  * A text object uses for passwords, or other places where the text content is not shown visibly to the user
140  * ATK_ROLE_POPUP_MENU
141  * A temporary window that is usually used to offer the user a list of choices, and then hides when the user selects one of those choices
142  * ATK_ROLE_PROGRESS_BAR
143  * An object used to indicate how much of a task has been completed
144  * ATK_ROLE_PUSH_BUTTON
145  * An object the user can manipulate to tell the application to do something
146  * ATK_ROLE_RADIO_BUTTON
147  * A specialized check box that will cause other radio buttons in the same group to become unchecked when this one is checked
148  * ATK_ROLE_RADIO_MENU_ITEM
149  * A check menu item which belongs to a group. At each instant exactly one of the radio menu items from a group is selected
150  * ATK_ROLE_ROOT_PANE
151  * A specialized pane that has a glass pane and a layered pane as its children
152  * ATK_ROLE_ROW_HEADER
153  * The header for a row of data
154  * ATK_ROLE_SCROLL_BAR
155  * An object usually used to allow a user to incrementally view a large amount of data.
156  * ATK_ROLE_SCROLL_PANE
157  * An object that allows a user to incrementally view a large amount of information
158  * ATK_ROLE_SEPARATOR
159  * An object usually contained in a menu to provide a visible and logical separation of the contents in a menu
160  * ATK_ROLE_SLIDER
161  * An object that allows the user to select from a bounded range
162  * ATK_ROLE_SPLIT_PANE
163  * A specialized panel that presents two other panels at the same time
164  * ATK_ROLE_SPIN_BUTTON
165  * An object used to get an integer or floating point number from the user
166  * ATK_ROLE_STATUSBAR
167  * An object which reports messages of minor importance to the user
168  * ATK_ROLE_TABLE
169  * An object used to represent information in terms of rows and columns
170  * ATK_ROLE_TABLE_CELL
171  * A cell in a table
172  * ATK_ROLE_TABLE_COLUMN_HEADER
173  * The header for a column of a table
174  * ATK_ROLE_TABLE_ROW_HEADER
175  * The header for a row of a table
176  * ATK_ROLE_TEAR_OFF_MENU_ITEM
177  * A menu item used to tear off and reattach its menu
178  * ATK_ROLE_TERMINAL
179  * An object that represents an accessible terminal. Since: ATK-0.6
180  * ATK_ROLE_TEXT
181  * An object that presents text to the user
182  * ATK_ROLE_TOGGLE_BUTTON
183  * A specialized push button that can be checked or unchecked, but does not provide a separate indicator for the current state
184  * ATK_ROLE_TOOL_BAR
185  * A bar or palette usually composed of push buttons or toggle buttons
186  * ATK_ROLE_TOOL_TIP
187  * An object that provides information about another object
188  * ATK_ROLE_TREE
189  * An object used to represent hierarchical information to the user
190  * ATK_ROLE_TREE_TABLE
191  * An object capable of expanding and collapsing rows as well as showing multiple columns of data. Since: ATK-0.7
192  * ATK_ROLE_UNKNOWN
193  * The object contains some Accessible information, but its role is not known
194  * ATK_ROLE_VIEWPORT
195  * An object usually used in a scroll pane
196  * ATK_ROLE_WINDOW
197  * A top level window with no title or border.
198  * ATK_ROLE_HEADER
199  * An object that serves as a document header. Since: ATK-1.1.1
200  * ATK_ROLE_FOOTER
201  * An object that serves as a document footer. Since: ATK-1.1.1
202  * ATK_ROLE_PARAGRAPH
203  * An object which is contains a paragraph of text content. Since: ATK-1.1.1
204  * ATK_ROLE_RULER
205  * An object which describes margins and tab stops, etc. for text objects which it controls (should have CONTROLLER_FOR relation to such). Since: ATK-1.1.1
206  * ATK_ROLE_APPLICATION
207  * The object is an application object, which may contain ATK_ROLE_FRAME objects or other types of accessibles. The root accessible of any application's ATK hierarchy should have ATK_ROLE_APPLICATION. Since: ATK-1.1.4
208  * ATK_ROLE_AUTOCOMPLETE
209  * The object is a dialog or list containing items for insertion into an entry widget, for instance a list of words for completion of a text entry. Since: ATK-1.3
210  * ATK_ROLE_EDITBAR
211  * The object is an editable text object in a toolbar. Since: ATK-1.5
212  * ATK_ROLE_EMBEDDED
213  * The object is an embedded container within a document or panel. This role is a grouping "hint" indicating that the contained objects share a context. Since: ATK-1.7.2
214  * ATK_ROLE_ENTRY
215  * The object is a component whose textual content may be entered or modified by the user, provided ATK_STATE_EDITABLE is present. Since: ATK-1.11
216  * ATK_ROLE_CHART
217  * The object is a graphical depiction of quantitative data. It may contain multiple subelements whose attributes and/or description may be queried to obtain both the quantitative data and information about how the data is being presented. The LABELLED_BY relation is particularly important in interpreting objects of this type, as is the accessible-description property. Since: ATK-1.11
218  * ATK_ROLE_CAPTION
219  * The object contains descriptive information, usually textual, about another user interface element such as a table, chart, or image. Since: ATK-1.11
220  * ATK_ROLE_DOCUMENT_FRAME
221  * The object is a visual frame or container which contains a view of document content. Document frames may occur within another Document instance, in which case the second document may be said to be embedded in the containing instance. HTML frames are often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement the Document interface. Since: ATK-1.11
222  * ATK_ROLE_HEADING
223  * The object serves as a heading for content which follows it in a document. The 'heading level' of the heading, if availabe, may be obtained by querying the object's attributes.
224  * ATK_ROLE_PAGE
225  * The object is a containing instance which encapsulates a page of information. ATK_ROLE_PAGE is used in documents and content which support a paginated navigation model. Since: ATK-1.11
226  * ATK_ROLE_SECTION
227  * The object is a containing instance of document content which constitutes a particular 'logical' section of the document. The type of content within a section, and the nature of the section division itself, may be obtained by querying the object's attributes. Sections may be nested. Since: ATK-1.11
228  * ATK_ROLE_REDUNDANT_OBJECT
229  * The object is redundant with another object in the hierarchy, and is exposed for purely technical reasons. Objects of this role should normally be ignored by clients. Since: ATK-1.11
230  * ATK_ROLE_FORM
231  * The object is a container for form controls, for instance as part of a
232  * web form or user-input form within a document. This role is primarily a tag/convenience for
233  * clients when navigating complex documents, it is not expected that ordinary GUI containers will
234  * always have ATK_ROLE_FORM. Since: ATK-1.12.0
235  * ATK_ROLE_LINK
236  * The object is a hypertext anchor, i.e. a "link" in a
237  * hypertext document. Such objects are distinct from 'inline'
238  * content which may also use the Hypertext/Hyperlink interfaces
239  * to indicate the range/location within a text object where
240  * an inline or embedded object lies. Since: ATK-1.12.1
241  * ATK_ROLE_INPUT_METHOD_WINDOW
242  * The object is a window or similar viewport
243  * which is used to allow composition or input of a 'complex character',
244  * in other words it is an "input method window." Since: ATK-1.12.1
245  * ATK_ROLE_LAST_DEFINED
246  * not a valid role, used for finding end of the enumeration
247  */
248 public enum AtkRole
249 {
250 	INVALID = 0,
251 	ACCEL_LABEL,
252 	ALERT,
253 	ANIMATION,
254 	ARROW,
255 	CALENDAR,
256 	CANVAS,
257 	CHECK_BOX,
258 	CHECK_MENU_ITEM,
259 	COLOR_CHOOSER,
260 	COLUMN_HEADER,
261 	COMBO_BOX,
262 	DATE_EDITOR,
263 	DESKTOP_ICON,
264 	DESKTOP_FRAME,
265 	DIAL,
266 	DIALOG,
267 	DIRECTORY_PANE,
268 	DRAWING_AREA,
269 	FILE_CHOOSER,
270 	FILLER,
271 	FONT_CHOOSER,
272 	FRAME,
273 	GLASS_PANE,
274 	HTML_CONTAINER,
275 	ICON,
276 	IMAGE,
277 	INTERNAL_FRAME,
278 	LABEL,
279 	LAYERED_PANE,
280 	LIST,
281 	LIST_ITEM,
282 	MENU,
283 	MENU_BAR,
284 	MENU_ITEM,
285 	OPTION_PANE,
286 	PAGE_TAB,
287 	PAGE_TAB_LIST,
288 	PANEL,
289 	PASSWORD_TEXT,
290 	POPUP_MENU,
291 	PROGRESS_BAR,
292 	PUSH_BUTTON,
293 	RADIO_BUTTON,
294 	RADIO_MENU_ITEM,
295 	ROOT_PANE,
296 	ROW_HEADER,
297 	SCROLL_BAR,
298 	SCROLL_PANE,
299 	SEPARATOR,
300 	SLIDER,
301 	SPLIT_PANE,
302 	SPIN_BUTTON,
303 	STATUSBAR,
304 	TABLE,
305 	TABLE_CELL,
306 	TABLE_COLUMN_HEADER,
307 	TABLE_ROW_HEADER,
308 	TEAR_OFF_MENU_ITEM,
309 	TERMINAL,
310 	TEXT,
311 	TOGGLE_BUTTON,
312 	TOOL_BAR,
313 	TOOL_TIP,
314 	TREE,
315 	TREE_TABLE,
316 	UNKNOWN,
317 	VIEWPORT,
318 	WINDOW,
319 	HEADER,
320 	FOOTER,
321 	PARAGRAPH,
322 	RULER,
323 	APPLICATION,
324 	AUTOCOMPLETE,
325 	EDITBAR,
326 	EMBEDDED,
327 	ENTRY,
328 	CHART,
329 	CAPTION,
330 	DOCUMENT_FRAME,
331 	HEADING,
332 	PAGE,
333 	SECTION,
334 	REDUNDANT_OBJECT,
335 	FORM,
336 	LINK,
337 	INPUT_METHOD_WINDOW,
338 	LAST_DEFINED
339 }
340 /**
341  * Describes the layer of a component
342  * These enumerated "layer values" are used when determining which UI
343  * rendering layer a component is drawn into, which can help in making
344  * determinations of when components occlude one another.
345  * ATK_LAYER_INVALID
346  * The object does not have a layer
347  * ATK_LAYER_BACKGROUND
348  * This layer is reserved for the desktop background
349  * ATK_LAYER_CANVAS
350  * This layer is used for Canvas components
351  * ATK_LAYER_WIDGET
352  * This layer is normally used for components
353  * ATK_LAYER_MDI
354  * This layer is used for layered components
355  * ATK_LAYER_POPUP
356  * This layer is used for popup components, such as menus
357  * ATK_LAYER_OVERLAY
358  * This layer is reserved for future use.
359  * ATK_LAYER_WINDOW
360  * This layer is used for toplevel windows.
361  */
362 public enum AtkLayer
363 {
364 	INVALID,
365 	BACKGROUND,
366 	CANVAS,
367 	WIDGET,
368 	MDI,
369 	POPUP,
370 	OVERLAY,
371 	WINDOW
372 }
373 /**
374  * Describes the type of the relation
375  * ATK_RELATION_NULL
376  * Not used, represens "no relationship" or an error condition.
377  * ATK_RELATION_CONTROLLED_BY
378  * Indicates an object controlled by one or more target objects.
379  * ATK_RELATION_CONTROLLER_FOR
380  * Indicates an object is an controller for one or more target objects.
381  * ATK_RELATION_LABEL_FOR
382  * Indicates an object is a label for one or more target objects.
383  * ATK_RELATION_LABELLED_BY
384  * Indicates an object is labelled by one or more target objects.
385  * ATK_RELATION_MEMBER_OF
386  * Indicates an object is a member of a group of one or more target objects.
387  * ATK_RELATION_NODE_CHILD_OF
388  * Indicates an object is a cell in a treetable which is displayed because a cell in the same column is expanded and identifies that cell.
389  * ATK_RELATION_FLOWS_TO
390  * Indicates that the object has content that flows logically to another
391  *  AtkObject in a sequential way, (for instance text-flow).
392  * ATK_RELATION_FLOWS_FROM
393  * Indicates that the object has content that flows logically from
394  *  another AtkObject in a sequential way, (for instance text-flow).
395  * ATK_RELATION_SUBWINDOW_OF
396  * Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component.
397  * ATK_RELATION_EMBEDS
398  * Indicates that the object visually embeds
399  *  another object's content, i.e. this object's content flows around
400  *  another's content.
401  * ATK_RELATION_EMBEDDED_BY
402  * Inverse of ATK_RELATION_EMBEDS, indicates that
403  *  this object's content is visualy embedded in another object.
404  * ATK_RELATION_POPUP_FOR
405  * Indicates that an object is a popup for another object.
406  * ATK_RELATION_PARENT_WINDOW_OF
407  * Indicates that an object is a parent window of another object.
408  * ATK_RELATION_DESCRIBED_BY
409  * Indicates that another object provides descriptive information about this object; more verbose than ATK_RELATION_LABELLED_BY.
410  * ATK_RELATION_DESCRIPTION_FOR
411  * Indicates that an object provides descriptive information about another object; more verbose than ATK_RELATION_LABEL_FOR.
412  * ATK_RELATION_NODE_PARENT_OF
413  * Indicates an object is a cell in a treetable and is expanded to display other cells in the same column.
414  * ATK_RELATION_LAST_DEFINED
415  * Not used, this value indicates the end of the enumeration.
416  */
417 public enum AtkRelationType
418 {
419 	NULL = 0,
420 	CONTROLLED_BY,
421 	CONTROLLER_FOR,
422 	LABEL_FOR,
423 	LABELLED_BY,
424 	MEMBER_OF,
425 	NODE_CHILD_OF,
426 	FLOWS_TO,
427 	FLOWS_FROM,
428 	SUBWINDOW_OF,
429 	EMBEDS,
430 	EMBEDDED_BY,
431 	POPUP_FOR,
432 	PARENT_WINDOW_OF,
433 	DESCRIBED_BY,
434 	DESCRIPTION_FOR,
435 	NODE_PARENT_OF,
436 	LAST_DEFINED
437 }
438 /**
439  * The possible types of states of an object
440  * ATK_STATE_INVALID
441  * Indicates an invalid state - probably an error condition.
442  * ATK_STATE_ACTIVE
443  * Indicates a window is currently the active window, or is an active subelement within a container or table
444  * ATK_STATE_ARMED
445  * Indicates that the object is 'armed', i.e. will be activated by if a pointer button-release event occurs within its bounds. Buttons often enter this state when a pointer click occurs within their bounds, as a precursor to activation.
446  * ATK_STATE_BUSY
447  * Indicates the current object is busy, i.e. onscreen representation is in the process of changing, or the object is temporarily unavailable for interaction due to activity already in progress. This state may be used by implementors of Document to indicate that content loading is underway. It also may indicate other 'pending' conditions; clients may wish to interrogate this object when the ATK_STATE_BUSY flag is removed.
448  * ATK_STATE_CHECKED
449  * Indicates this object is currently checked, for instance a checkbox is 'non-empty'.
450  * ATK_STATE_DEFUNCT
451  * Indicates that this object no longer has a valid backing widget (for instance, if its peer object has been destroyed)
452  * ATK_STATE_EDITABLE
453  * Indicates the user can change the contents of this object
454  * ATK_STATE_ENABLED
455  * Indicates that this object is enabled, i.e. that it currently reflects some application state. Objects that are "greyed out" may lack this state, and may lack the STATE_SENSITIVE if direct user interaction cannot cause them to acquire STATE_ENABLED. See also: ATK_STATE_SENSITIVE
456  * ATK_STATE_EXPANDABLE
457  * Indicates this object allows progressive disclosure of its children
458  * ATK_STATE_EXPANDED
459  * Indicates this object its expanded - see ATK_STATE_EXPANDABLE above
460  * ATK_STATE_FOCUSABLE
461  * Indicates this object can accept keyboard focus, which means all events resulting from typing on the keyboard will normally be passed to it when it has focus
462  * ATK_STATE_FOCUSED
463  * Indicates this object currently has the keyboard focus
464  * ATK_STATE_HORIZONTAL
465  * Indicates the orientation of this object is horizontal; used, for instance, by objects of ATK_ROLE_SCROLL_BAR. For objects where vertical/horizontal orientation is especially meaningful.
466  * ATK_STATE_ICONIFIED
467  * Indicates this object is minimized and is represented only by an icon
468  * ATK_STATE_MODAL
469  * Indicates something must be done with this object before the user can interact with an object in a different window
470  * ATK_STATE_MULTI_LINE
471  * Indicates this (text) object can contain multiple lines of text
472  * ATK_STATE_MULTISELECTABLE
473  * Indicates this object allows more than one of its children to be selected at the same time, or in the case of text objects, that the object supports non-contiguous text selections.
474  * ATK_STATE_OPAQUE
475  * Indicates this object paints every pixel within its rectangular region.
476  * ATK_STATE_PRESSED
477  * Indicates this object is currently pressed; c.f. ATK_STATE_ARMED
478  * ATK_STATE_RESIZABLE
479  * Indicates the size of this object is not fixed
480  * ATK_STATE_SELECTABLE
481  * Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that can be selected
482  * ATK_STATE_SELECTED
483  * Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that has been selected
484  * ATK_STATE_SENSITIVE
485  * Indicates this object is sensitive, e.g. to user interaction.
486  * STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable controls,
487  * but may be found in the absence of STATE_ENABLED if the current visible state of the
488  * control is "disconnected" from the application state. In such cases, direct user interaction
489  * can often result in the object gaining STATE_SENSITIVE, for instance if a user makes
490  * an explicit selection using an object whose current state is ambiguous or undefined.
491  * see STATE_ENABLED, STATE_INDETERMINATE.
492  * ATK_STATE_SHOWING
493  * Indicates this object, the object's parent, the object's parent's parent, and so on,
494  * are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose
495  * between this object and the top of the window stack.
496  * ATK_STATE_SINGLE_LINE
497  * Indicates this (text) object can contain only a single line of text
498  * ATK_STATE_STALE
499  * Indicates that the information returned for this object may no longer be
500  * synchronized with the application state. This is implied if the object has STATE_TRANSIENT,
501  * and can also occur towards the end of the object peer's lifecycle. It can also be used to indicate that
502  * the index associated with this object has changed since the user accessed the object (in lieu of
503  * "index-in-parent-changed" events).
504  * ATK_STATE_TRANSIENT
505  * Indicates this object is transient, i.e. a snapshot which may not emit events when its
506  * state changes. Data from objects with ATK_STATE_TRANSIENT should not be cached, since there may be no
507  * notification given when the cached data becomes obsolete.
508  * ATK_STATE_VERTICAL
509  * Indicates the orientation of this object is vertical
510  * ATK_STATE_VISIBLE
511  * Indicates this object is visible, e.g. has been explicitly marked for exposure to the user.
512  * ATK_STATE_MANAGES_DESCENDANTS
513  * Indicates that "active-descendant-changed" event
514  * is sent when children become 'active' (i.e. are selected or navigated to onscreen).
515  * Used to prevent need to enumerate all children in very large containers, like tables.
516  * The presence of STATE_MANAGES_DESCENDANTS is an indication to the client.
517  * that the children should not, and need not, be enumerated by the client.
518  * Objects implementing this state are expected to provide relevant state
519  * notifications to listening clients, for instance notifications of visibility
520  * changes and activation of their contained child objects, without the client
521  * having previously requested references to those children.
522  * ATK_STATE_INDETERMINATE
523  * Indicates that a check box is in a state other than checked or not checked.
524  * This usually means that the boolean value reflected or
525  * controlled by the object does not apply consistently to the entire current context.
526  * For example, a checkbox for the "Bold" attribute of text may have STATE_INDETERMINATE
527  * if the currently selected text contains a mixture of weight attributes.
528  * In many cases interacting with a STATE_INDETERMINATE object will cause
529  * the context's corresponding boolean attribute to be homogenized, whereupon the object
530  * will lose STATE_INDETERMINATE and a corresponding state-changed event will be fired.
531  * ATK_STATE_TRUNCATED
532  * Indicates that an object is truncated, e.g. a text value in a speradsheet cell.
533  * ATK_STATE_REQUIRED
534  * Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface.
535  * ATK_STATE_INVALID_ENTRY
536  * Indicates that the object has encountered an error condition due to failure of input validation. For instance, a form control may acquire this state in response to invalid or malformed user input.
537  * ATK_STATE_SUPPORTS_AUTOCOMPLETION
538  * Indicates that the object in question implements some form of ¨typeahead¨ or
539  * pre-selection behavior whereby entering the first character of one or more sub-elements
540  * causes those elements to scroll into view or become selected. Subsequent character input
541  * may narrow the selection further as long as one or more sub-elements match the string.
542  * This state is normally only useful and encountered on objects that implement Selection.
543  * In some cases the typeahead behavior may result in full or partial ¨completion¨ of
544  * the data in the input field, in which case these input events may trigger text-changed
545  * events from the AtkText interface. This state supplants ATK_ROLE_AUTOCOMPLETE.
546  * ATK_STATE_SELECTABLE_TEXT
547  * Indicates that the object in question supports text selection. It should only be exposed on objects which implement the Text interface, in order to distinguish this state from ATK_STATE_SELECTABLE, which infers that the object in question is a selectable child of an object which implements Selection. While similar, text selection and subelement selection are distinct operations.
548  * ATK_STATE_DEFAULT
549  * Indicates that the object is the "default" active component, i.e. the object which is activated by an end-user press of the "Enter" or "Return" key. Typically a "close" or "submit" button.
550  * ATK_STATE_ANIMATED
551  * Indicates that the object changes its appearance dynamically as an inherent part of its presentation. This state may come and go if an object is only temporarily animated on the way to a 'final' onscreen presentation.
552  * note some applications, notably content viewers, may not be able to detect
553  * all kinds of animated content. Therefore the absence of this state should not
554  * be taken as definitive evidence that the object's visual representation is
555  * static; this state is advisory.
556  * ATK_STATE_VISITED
557  * Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited".
558  * ATK_STATE_LAST_DEFINED
559  * Not a valid state, used for finding end of enumeration
560  */
561 public enum AtkStateType
562 {
563 	INVALID,
564 	ACTIVE,
565 	ARMED,
566 	BUSY,
567 	CHECKED,
568 	DEFUNCT,
569 	EDITABLE,
570 	ENABLED,
571 	EXPANDABLE,
572 	EXPANDED,
573 	FOCUSABLE,
574 	FOCUSED,
575 	HORIZONTAL,
576 	ICONIFIED,
577 	MODAL,
578 	MULTI_LINE,
579 	MULTISELECTABLE,
580 	OPAQUE,
581 	PRESSED,
582 	RESIZABLE,
583 	SELECTABLE,
584 	SELECTED,
585 	SENSITIVE,
586 	SHOWING,
587 	SINGLE_LINE,
588 	STALE,
589 	TRANSIENT,
590 	VERTICAL,
591 	VISIBLE,
592 	MANAGES_DESCENDANTS,
593 	INDETERMINATE,
594 	TRUNCATED,
595 	REQUIRED,
596 	INVALID_ENTRY,
597 	SUPPORTS_AUTOCOMPLETION,
598 	SELECTABLE_TEXT,
599 	DEFAULT,
600 	ANIMATED,
601 	VISITED,
602 	LAST_DEFINED
603 }
604 /**
605  * Text boundary types used for specifying boundaries for regions of text
606  * ATK_TEXT_BOUNDARY_CHAR
607  * Boundary is the boundary between characters
608  * (including non-printing characters)
609  * ATK_TEXT_BOUNDARY_WORD_START
610  * Boundary is the start (i.e. first character) of a word.
611  * ATK_TEXT_BOUNDARY_WORD_END
612  * Boundary is the end (i.e. last character) of a word.
613  * ATK_TEXT_BOUNDARY_SENTENCE_START
614  * Boundary is the first character in a sentence.
615  * ATK_TEXT_BOUNDARY_SENTENCE_END
616  * Boundary is the last (terminal) character in a sentence;
617  * in languages which use "sentence stop" punctuation such as English, the boundary is thus the
618  * '.', '?', or similar terminal punctuation character.
619  * ATK_TEXT_BOUNDARY_LINE_START
620  * Boundary is the initial character of the content or a
621  * character immediately following a newline, linefeed, or return character.
622  * ATK_TEXT_BOUNDARY_LINE_END
623  * Boundary is the linefeed, or return character.
624  */
625 public enum AtkTextBoundary
626 {
627 	CHAR,
628 	WORD_START,
629 	WORD_END,
630 	SENTENCE_START,
631 	SENTENCE_END,
632 	LINE_START,
633 	LINE_END
634 }
635 /**
636  * Describes the type of clipping required.
637  * ATK_TEXT_CLIP_NONE
638  * No clipping to be done
639  * ATK_TEXT_CLIP_MIN
640  * Text clipped by min coordinate is omitted
641  * ATK_TEXT_CLIP_MAX
642  * Text clipped by max coordinate is omitted
643  * ATK_TEXT_CLIP_BOTH
644  * Only text fully within mix/max bound is retained
645  */
646 public enum AtkTextClipType
647 {
648 	NONE,
649 	MIN,
650 	MAX,
651 	BOTH
652 }
653 /**
654  * Describes the text attributes supported
655  * ATK_TEXT_ATTR_INVALID
656  * Invalid attribute
657  * ATK_TEXT_ATTR_LEFT_MARGIN
658  * The pixel width of the left margin
659  * ATK_TEXT_ATTR_RIGHT_MARGIN
660  * The pixel width of the right margin
661  * ATK_TEXT_ATTR_INDENT
662  * The number of pixels that the text is indented
663  * ATK_TEXT_ATTR_INVISIBLE
664  * Either "true" or "false" indicating whether text is visible or not
665  * ATK_TEXT_ATTR_EDITABLE
666  * Either "true" or "false" indicating whether text is editable or not
667  * ATK_TEXT_ATTR_PIXELS_ABOVE_LINES
668  * Pixels of blank space to leave above each newline-terminated line.
669  * ATK_TEXT_ATTR_PIXELS_BELOW_LINES
670  * Pixels of blank space to leave below each newline-terminated line.
671  * ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP
672  * Pixels of blank space to leave between wrapped lines inside the same newline-terminated line (paragraph).
673  * ATK_TEXT_ATTR_BG_FULL_HEIGHT
674  * "true" or "false" whether to make the background color for each character the height of the highest font used on the current line, or the height of the font used for the current character.
675  * ATK_TEXT_ATTR_RISE
676  * Number of pixels that the characters are risen above the baseline
677  * ATK_TEXT_ATTR_UNDERLINE
678  * "none", "single", "double", "low", or "error"
679  * ATK_TEXT_ATTR_STRIKETHROUGH
680  * "true" or "false" whether the text is strikethrough
681  * ATK_TEXT_ATTR_SIZE
682  * The size of the characters.
683  * ATK_TEXT_ATTR_SCALE
684  * The scale of the characters. The value is a string representation of a double
685  * ATK_TEXT_ATTR_WEIGHT
686  * The weight of the characters.
687  * ATK_TEXT_ATTR_LANGUAGE
688  * The language used
689  * ATK_TEXT_ATTR_FAMILY_NAME
690  * The font family name
691  * ATK_TEXT_ATTR_BG_COLOR
692  * The background color. The value is an RGB value of the format "u,u,u"
693  * ATK_TEXT_ATTR_FG_COLOR
694  * The foreground color. The value is an RGB value of the format "u,u,u"
695  * ATK_TEXT_ATTR_BG_STIPPLE
696  * "true" if a GdkBitmap is set for stippling the background color.
697  * ATK_TEXT_ATTR_FG_STIPPLE
698  * "true" if a GdkBitmap is set for stippling the foreground color.
699  * ATK_TEXT_ATTR_WRAP_MODE
700  * The wrap mode of the text, if any. Values are "none", "char", "word", or "word_char".
701  * ATK_TEXT_ATTR_DIRECTION
702  * The direction of the text, if set. Values are "none", "ltr" or "rtl"
703  * ATK_TEXT_ATTR_JUSTIFICATION
704  * The justification of the text, if set. Values are "left", "right", "center" or "fill"
705  * ATK_TEXT_ATTR_STRETCH
706  * The stretch of the text, if set. Values are "ultra_condensed", "extra_condensed", "condensed", "semi_condensed", "normal", "semi_expanded", "expanded", "extra_expanded" or "ultra_expanded"
707  * ATK_TEXT_ATTR_VARIANT
708  * The capitalization variant of the text, if set. Values are "normal" or "small_caps"
709  * ATK_TEXT_ATTR_STYLE
710  * The slant style of the text, if set. Values are "normal", "oblique" or "italic"
711  * ATK_TEXT_ATTR_LAST_DEFINED
712  * not a valid text attribute, used for finding end of enumeration
713  */
714 public enum AtkTextAttribute
715 {
716 	INVALID = 0,
717 	LEFT_MARGIN,
718 	RIGHT_MARGIN,
719 	INDENT,
720 	INVISIBLE,
721 	EDITABLE,
722 	PIXELS_ABOVE_LINES,
723 	PIXELS_BELOW_LINES,
724 	PIXELS_INSIDE_WRAP,
725 	BG_FULL_HEIGHT,
726 	RISE,
727 	UNDERLINE,
728 	STRIKETHROUGH,
729 	SIZE,
730 	SCALE,
731 	WEIGHT,
732 	LANGUAGE,
733 	FAMILY_NAME,
734 	BG_COLOR,
735 	FG_COLOR,
736 	BG_STIPPLE,
737 	FG_STIPPLE,
738 	WRAP_MODE,
739 	DIRECTION,
740 	JUSTIFICATION,
741 	STRETCH,
742 	VARIANT,
743 	STYLE,
744 	LAST_DEFINED
745 }
746 /**
747  * Specifies how xy coordinates are to be interpreted. Used by functions such
748  * as atk_component_get_position() and atk_text_get_character_extents()
749  * ATK_XY_SCREEN
750  * specifies xy coordinates relative to the screen
751  * ATK_XY_WINDOW
752  * specifies xy coordinates relative to the widget's
753  * top-level window
754  */
755 public enum AtkCoordType
756 {
757 	XY_SCREEN,
758 	XY_WINDOW
759 }
760 /**
761  * Specifies the type of a keyboard evemt.
762  * ATK_KEY_EVENT_PRESS
763  * specifies a key press event
764  * ATK_KEY_EVENT_RELEASE
765  * specifies a key release event
766  * ATK_KEY_EVENT_LAST_DEFINED
767  * Not a valid value; specifies end of enumeration
768  */
769 public enum AtkKeyEventType
770 {
771 	PRESS,
772 	RELEASE,
773 	LAST_DEFINED
774 }
775 
776 /**
777  * Main Gtk struct.
778  * The AtkAction structure does not contain any fields.
779  */
780 public struct AtkAction{}
781 
782 
783 /**
784  * Main Gtk struct.
785  * The AtkComponent structure does not contain any fields.
786  */
787 public struct AtkComponent{}
788 
789 
790 /**
791  * Main Gtk struct.
792  * The AtkDocument structure does not contain any fields.
793  */
794 public struct AtkDocument{}
795 
796 
797 /**
798  * Main Gtk struct.
799  * The AtkEditableText structure does not contain any fields.
800  */
801 public struct AtkEditableText{}
802 
803 
804 /**
805  * Main Gtk struct.
806  * The AtkGObjectAccessible structure should not be accessed directly.
807  */
808 public struct AtkGObjectAccessible{}
809 
810 
811 /**
812  * Main Gtk struct.
813  * The AtkHyperlink structure should not be accessed directly.
814  */
815 public struct AtkHyperlink{}
816 
817 
818 /**
819  * Main Gtk struct.
820  * The AtkHypertext structure does not contain any fields.
821  */
822 public struct AtkHypertext{}
823 
824 
825 /**
826  * Main Gtk struct.
827  * The AtkImage structure does not contain any fields.
828  */
829 public struct AtkImage{}
830 
831 
832 /**
833  * Main Gtk struct.
834  * The AtkNoOpObject structure should not be accessed directly.
835  */
836 public struct AtkNoOpObject{}
837 
838 
839 /**
840  * Main Gtk struct.
841  * The AtkNoOpObjectFactory structure should not be accessed directly.
842  */
843 public struct AtkNoOpObjectFactory{}
844 
845 
846 /**
847  * Main Gtk struct.
848  * The AtkObject structure should not be accessed directly.
849  */
850 public struct AtkObject{}
851 
852 
853 /**
854  * The AtkImplementor interface is implemented by objects for which AtkObject peers may be obtained via calls to iface->(ref_accessible)(implementor);
855  */
856 public struct AtkImplementor{}
857 
858 
859 /**
860  * note: For most properties the old_value field of AtkPropertyValues will
861  * not contain a valid value.
862  * Currently, the only property for which old_value is used is
863  * accessible-state; for instance if there is a focus state the
864  * property change handler will be called for the object which lost the focus
865  * with the old_value containing an AtkState value corresponding to focused
866  * and the property change handler will be called for the object which
867  * received the focus with the new_value containing an AtkState value
868  * corresponding to focused.
869  * The Atk PropertyValue structure is used when notifying a change in property.
870  * Currently, the only property for which old_value is used is
871  * accessible-state; for instance if there is a focus change the
872  * property change handler will be called for the object which lost the focus
873  * with the old_value containing the AtkState value corresponding to focused
874  * and the property change handler will be called for the object which
875  * received the focus with the new_value containing the AtkState value
876  * corresponding to focused.
877  * const gchar *property_name;
878  * The name of the ATK property which is being presented or which has been changed.
879  * GValue old_value;
880  * The old property value, NULL; in some contexts this value is undefined (see note below).
881  * GValue new_value;
882  * The new value of the named property.
883  */
884 public struct AtkPropertyValues
885 {
886 	char *propertyName;
887 	GValue oldValue;
888 	GValue newValue;
889 }
890 
891 
892 /**
893  * Main Gtk struct.
894  * The AtkObjectFactory structure should not be accessed directly.
895  */
896 public struct AtkObjectFactory{}
897 
898 
899 /**
900  * Main Gtk struct.
901  * The AtkRegistry structure should not be accessed directly.
902  */
903 public struct AtkRegistry{}
904 
905 
906 /**
907  * Main Gtk struct.
908  * The AtkRelation structure should not be accessed directly.
909  */
910 public struct AtkRelation{}
911 
912 
913 /**
914  * Main Gtk struct.
915  * The AtkRelationSet structure should not be accessed directly.
916  */
917 public struct AtkRelationSet{}
918 
919 
920 /**
921  * Main Gtk struct.
922  * The AtkAction structure does not contain any fields.
923  */
924 public struct AtkSelection{}
925 
926 
927 /**
928  * Main Gtk struct.
929  */
930 public struct AtkStateSet{}
931 
932 
933 /**
934  * Main Gtk struct.
935  * The AtkStreamableContent structure does not contain any fields.
936  */
937 public struct AtkStreamableContent{}
938 
939 
940 /**
941  * Main Gtk struct.
942  * The AtkTable structure does not contain any fields.
943  */
944 public struct AtkTable{}
945 
946 
947 /**
948  * Main Gtk struct.
949  * The AtkText structure does not contain any fields.
950  */
951 public struct AtkText{}
952 
953 
954 /**
955  * A structure used to describe a text range.
956  * AtkTextRectangle bounds;
957  * A rectangle giving the bounds of the text range
958  * gint start_offset;
959  * The start offset of a AtkTextRange
960  * gint end_offset;
961  * The end offset of a AtkTextRange
962  * gchar *content;
963  * The text in the text range
964  */
965 public struct AtkTextRange
966 {
967 	AtkTextRectangle bounds;
968 	int startOffset;
969 	int endOffset;
970 	char* content;
971 }
972 
973 
974 /**
975  * A structure used to store a rectangle used by AtkText.
976  * gint x;
977  * The horizontal coordinate of a rectangle
978  * gint y;
979  * The vertical coordinate of a rectangle
980  * gint width;
981  * The width of a rectangle
982  * gint height;
983  * The height of a rectangle
984  */
985 public struct AtkTextRectangle
986 {
987 	int x;
988 	int y;
989 	int width;
990 	int height;
991 }
992 
993 
994 /**
995  * A string name/value pair representing a text attribute.
996  * gchar *name;
997  * The attribute name. Call atk_text_attr_get_name()
998  * gchar *value;
999  * the value of the attribute, represented as a string.
1000  * Call atk_text_attr_get_value() for those which are strings.
1001  * For values which are numbers, the string representation of the number
1002  * is in value.
1003  */
1004 public struct AtkAttribute
1005 {
1006 	char* name;
1007 	char* value;
1008 }
1009 
1010 
1011 /**
1012  * The AtkUtil struct does not contain any fields.
1013  */
1014 public struct AtkUtil{}
1015 
1016 
1017 /**
1018  * Encapsulates information about a key event.
1019  * gint type;
1020  * An AtkKeyEventType, generally one of ATK_KEY_EVENT_PRESS or ATK_KEY_EVENT_RELEASE
1021  * guint state;
1022  * A bitmask representing the state of the modifier keys immediately after the event takes place.
1023  * The meaning of the bits is currently defined to match the bitmask used by GDK in
1024  * GdkEventType.state, see
1025  * http://developer.gnome.org/doc/API/2.0/gdk/gdk-Event-Structures.htmlGdkEventKey
1026  * guint keyval;
1027  * A guint representing a keysym value corresponding to those used by GDK and X11: see
1028  * /usr/X11/include/keysymdef.h.
1029  * gint length;
1030  * The length of member string.
1031  * gchar *string;
1032  * A string containing one of the following: either a string approximating the text that would
1033  * result from this keypress, if the key is a control or graphic character, or a symbolic name for this keypress.
1034  * Alphanumeric and printable keys will have the symbolic key name in this string member, for instance "A". "0",
1035  * "semicolon", "aacute". Keypad keys have the prefix "KP".
1036  * guint16 keycode;
1037  * The raw hardware code that generated the key event. This field is raraly useful.
1038  * guint32 timestamp;
1039  * A timestamp in milliseconds indicating when the event occurred.
1040  * These timestamps are relative to a starting point which should be considered arbitrary,
1041  * and only used to compare the dispatch times of events to one another.
1042  */
1043 public struct AtkKeyEventStruct
1044 {
1045 	int type;
1046 	uint state;
1047 	uint keyval;
1048 	int length;
1049 	char *string;
1050 	ushort keycode;
1051 	uint timestamp;
1052 }
1053 
1054 
1055 /**
1056  * Main Gtk struct.
1057  * The AtkValue structure does not contain any fields.
1058  */
1059 public struct AtkValue{}
1060 
1061 
1062 /*
1063  * A convenience macro for type ATK implementations, which declares a class
1064  * initialization function, an instance initialization function (see GTypeInfo
1065  * for information about these) and a static variable named
1066  * t_n _parent_class pointing to the parent class. Furthermore, it
1067  * defines a _get_type() function.
1068  * TN :
1069  * The name of the new type, in Camel case.
1070  * t_n :
1071  * The name of the new type, in lowercase, with words separated by '_'.
1072  * T_P :
1073  * The GType of the parent type.
1074  * Since 1.22
1075  */
1076 // TODO
1077 // #define ATK_DEFINE_TYPE(TN, t_n, T_P)			 ATK_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, 0, {})
1078 
1079 /*
1080  * The most general convenience macro for ATK type implementations, on which
1081  * ATK_DEFINE_TYPE(), etc are based.
1082  * TN :
1083  * The name of the new type, in Camel case.
1084  * t_n :
1085  * The name of the new type, in lowercase, with words separated by '_'.
1086  * T_P :
1087  * The GType of the parent type.
1088  * _f_ :
1089  * GTypeFlags to pass to g_type_register_static()
1090  * _C_ :
1091  * Custom code that gets inserted in the _get_type() function.
1092  * Since 1.22
1093  */
1094 // TODO
1095 // #define ATK_DEFINE_TYPE_EXTENDED(TN, t_n, T_P, _f_, _C_) _ATK_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, _f_) {_C_;} _ATK_DEFINE_TYPE_EXTENDED_END()
1096 
1097 /*
1098  * A convenience macro for ATK type implementations.
1099  * Similar to ATK_DEFINE_TYPE(), but allows you to insert custom code into the
1100  * _get_type() function, e.g. interface implementations via G_IMPLEMENT_INTERFACE().
1101  * TN :
1102  * The name of the new type, in Camel case.
1103  * t_n :
1104  * The name of the new type in lowercase, with words separated by '_'.
1105  * T_P :
1106  * The GType of the parent type.
1107  * _C_ :
1108  * Custom code that gets inserted in the _get_type() function.
1109  * Since 1.22
1110  */
1111 // TODO
1112 // #define ATK_DEFINE_TYPE_WITH_CODE(TN, t_n, T_P, _C_)	 _ATK_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, 0) {_C_;} _ATK_DEFINE_TYPE_EXTENDED_END()
1113 
1114 /*
1115  * A convenience macro for ATK type implementations.
1116  * Similar to ATK_DEFINE_TYPE(), but defines an abstract type.
1117  * TN :
1118  * The name of the new type, in Camel case.
1119  * t_n :
1120  * The name of the new type, in lowercase, with words separated by '_'.
1121  * T_P :
1122  * The GType of the parent type.
1123  * Since 1.22
1124  */
1125 // TODO
1126 // #define ATK_DEFINE_ABSTRACT_TYPE(TN, t_n, T_P)		 ATK_DEFINE_TYPE_EXTENDED (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT, {})
1127 
1128 /*
1129  * A convenience macro for ATK type implementations.
1130  * Similar to ATK_DEFINE_TYPE_WITH_CODE(), but defines an abstract type.
1131  * TN :
1132  * The name of the new type, in Camel case.
1133  * t_n :
1134  * The name of the new type, in lowercase, with words separated by '_'.
1135  * T_P :
1136  * The GType of the parent type.
1137  * _C_ :
1138  * Custom code that gets inserted in the _get_type() function.
1139  * Since 1.22
1140  */
1141 // TODO
1142 // #define ATK_DEFINE_ABSTRACT_TYPE_WITH_CODE(TN, t_n, T_P, _C_) _ATK_DEFINE_TYPE_EXTENDED_BEGIN (TN, t_n, T_P, G_TYPE_FLAG_ABSTRACT) {_C_;} _ATK_DEFINE_TYPE_EXTENDED_END()
1143 
1144 /*
1145  * An AtkFunction is a function definition used for padding which has been added
1146  * to class and interface structures to allow for expansion in the future.
1147  * data :
1148  * a gpointer to parameter data.
1149  * Returns :
1150  * Nothing useful, this is only a dummy prototype.
1151  */
1152 // gboolean (*AtkFunction) (gpointer data);
1153 public alias extern(C) int function(void* data) AtkFunction;
1154 
1155 /*
1156  * An AtkPropertyChangeHandler is a function which is executed when an AtkObject's property changes value. It is specified in a call to
1157  * atk_object_connect_property_change_handler().
1158  * Param1 :
1159  * an AtkObject
1160  * Param2 :
1161  * an AtkPropertyValues
1162  */
1163 // void (*AtkPropertyChangeHandler) (AtkObject *Param1,  AtkPropertyValues *Param2);
1164 public alias extern(C) void function(AtkObject* Param1, AtkPropertyValues* Param2) AtkPropertyChangeHandler;
1165 
1166 /*
1167  * A function which is called when an object emits a matching event,
1168  * as used in atk_add_focus_tracker.
1169  * Currently the only events for which object-specific handlers are
1170  * supported are events of type "focus:". Most clients of ATK will prefer to
1171  * attach signal handlers for the various ATK signals instead.
1172  * see atk_add_focus_tracker.
1173  * obj :
1174  * An AtkObject instance for whom the callback will be called when
1175  * the specified event (e.g. 'focus:') takes place.
1176  */
1177 // void (*AtkEventListener) (AtkObject *obj);
1178 public alias extern(C) void function(AtkObject* obj) AtkEventListener;
1179 
1180 /*
1181  * An AtkEventListenerInit function is a special function that is
1182  * called in order to initialize the per-object event registration system
1183  * used by AtkEventListener, if any preparation is required.
1184  * see atk_focus_tracker_init.
1185  */
1186 // void (*AtkEventListenerInit) (void);
1187 public alias extern(C) void function() AtkEventListenerInit;
1188 
1189 /*
1190  * An AtkKeySnoopFunc is a type of callback which is called whenever a key event occurs,
1191  * if registered via atk_add_key_event_listener. It allows for pre-emptive
1192  * interception of key events via the return code as described below.
1193  * event :
1194  * an AtkKeyEventStruct containing information about the key event for which
1195  * notification is being given.
1196  * func_data :
1197  * a block of data which will be passed to the event listener, on notification.
1198  * Returns :
1199  * TRUE (nonzero) if the event emission should be stopped and the event
1200  * discarded without being passed to the normal GUI recipient; FALSE (zero) if the
1201  * event dispatch to the client application should proceed as normal.
1202  * see atk_add_key_event_listener.
1203  */
1204 // gint (*AtkKeySnoopFunc) (AtkKeyEventStruct *event,  gpointer func_data);
1205 public alias extern(C) int function(AtkKeyEventStruct* event, void* funcData) AtkKeySnoopFunc;