2 * AT-SPI - Assistive Technology Service Provider Interface
3 * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
5 * Copyright 2001, 2002 Sun Microsystems Inc.,
6 * Copyright 2001, 2002 Ximian, Inc.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the
20 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 * Boston, MA 02111-1307, USA.
27 #include <cspi/spi-impl.h>
29 * Definitions for AccessibleRole, AccessibleState,
30 * and event listeners.
32 #include <cspi/spi-roletypes.h>
33 #include <cspi/spi-statetypes.h>
34 #include <cspi/spi-listener.h>
37 * Auxiliary typedefs and mask definitions
39 #include <libspi/keymasks.h>
46 *AccessibleTextBoundaryType:
47 *@SPI_TEXT_BOUNDARY_CHAR:
48 *@SPI_TEXT_BOUNDARY_CURSOR_POS:
49 *@SPI_TEXT_BOUNDARY_WORD_START:
50 *@SPI_TEXT_BOUNDARY_WORD_END:
51 *@SPI_TEXT_BOUNDARY_SENTENCE_START:
52 *@SPI_TEXT_BOUNDARY_SENTENCE_END:
53 *@SPI_TEXT_BOUNDARY_LINE_START:
54 *@SPI_TEXT_BOUNDARY_LINE_END:
55 *@SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE:
57 *Text boundary types used for specifying boundaries for regions of text
61 SPI_TEXT_BOUNDARY_CHAR,
62 SPI_TEXT_BOUNDARY_CURSOR_POS,
63 SPI_TEXT_BOUNDARY_WORD_START,
64 SPI_TEXT_BOUNDARY_WORD_END,
65 SPI_TEXT_BOUNDARY_SENTENCE_START,
66 SPI_TEXT_BOUNDARY_SENTENCE_END,
67 SPI_TEXT_BOUNDARY_LINE_START,
68 SPI_TEXT_BOUNDARY_LINE_END,
69 SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE
70 } AccessibleTextBoundaryType;
73 *AccessibleTextClipType
74 *@SPI_TEXT_CLIP_NONE: No clipping to be done
75 *@SPI_TEXT_CLIP_MIN: Text clipped by min coordinate is omitted
76 *@SPI_TEXT_CLIP_MAX: Text clipped by max coordinate is omitted
77 *@SPI_TEXT_CLIP_BOTH: Only text fully within mix/max bound is retained
79 *Describes the type of clipping required.
87 } AccessibleTextClipType;
90 *AccessibleRelationType:
92 *@SPI_RELATION_LABEL_FOR: Indicates an object is a label for one or more target objects.
93 *@SPI_RELATION_LABELED_BY: Indicates an object is labelled by one or more target objects.
94 *@SPI_RELATION_CONTROLLED_BY: Indicates an object controlled by one or more target objects.
95 *@SPI_RELATION_CONTROLLER_FOR: Indicates an object is an controller for one or more target objects.
96 *@SPI_RELATION_MEMBER_OF: Indicates an object is a member of a group of one or
98 *@SPI_RELATION_NODE_CHILD_OF: 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.
99 *@SPI_RELATION_EXTENDED:
100 *@SPI_RELATION_FLOWS_TO: Indicates that the object has content that flows logically to another
101 * AtkObject in a sequential way, (for instance text-flow).
102 *@SPI_RELATION_FLOWS_FROM: Indicates that the object has content that flows logically from
103 * another AtkObject in a sequential way, (for instance text-flow).
104 *@SPI_RELATION_SUBWINDOW_OF: Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component.
105 *@SPI_RELATION_EMBEDS: Indicates that the object visually embeds
106 * another object's content, i.e. this object's content flows around
108 *@SPI_RELATION_EMBEDDED_BY: Inverse of %SPI_RELATION_EMBEDS, indicates that
109 * this object's content is visualy embedded in another object.
110 *@SPI_RELATION_POPUP_FOR: Indicates that an object is a popup for another objec
112 *@SPI_RELATION_LAST_DEFINED:
114 *Describes the type of the relation
119 SPI_RELATION_LABEL_FOR,
120 SPI_RELATION_LABELED_BY,
121 SPI_RELATION_CONTROLLER_FOR,
122 SPI_RELATION_CONTROLLED_BY,
123 SPI_RELATION_MEMBER_OF,
124 SPI_RELATION_NODE_CHILD_OF,
125 SPI_RELATION_EXTENDED,
126 SPI_RELATION_FLOWS_TO,
127 SPI_RELATION_FLOWS_FROM,
128 SPI_RELATION_SUBWINDOW_OF,
130 SPI_RELATION_EMBEDDED_BY,
131 SPI_RELATION_POPUP_FOR,
132 SPI_RELATION_LAST_DEFINED
133 } AccessibleRelationType;
136 /* don't change the order of these ! */
138 *AccessibleCoordType:
139 *@SPI_COORD_TYPE_SCREEN: specifies xy coordinates relative to the screen
140 *@SPI_COORD_TYPE_WINDOW: specifies xy coordinates relative to an object's
143 *Specifies how xy coordinates are to be interpreted. Used by functions such
144 *as AccessibleComponent_getPosition() and AccessibleText_getCharacterExtents()
147 SPI_COORD_TYPE_SCREEN,
148 SPI_COORD_TYPE_WINDOW
149 } AccessibleCoordType;
152 *AccessibleKeySynthType:
155 *@SPI_KEY_PRESSRELEASE:
159 *Specified the type of a generated event.
164 SPI_KEY_PRESSRELEASE,
167 } AccessibleKeySynthType;
170 *AccessibleKeyListenerSyncType:
171 *@SPI_KEYLISTENER_NOSYNC:
172 *@SPI_KEYLISTENER_SYNCHRONOUS:
173 *@SPI_KEYLISTENER_CANCONSUME:
174 *@SPI_KEYLISTENER_ALL_WINDOWS:
176 *Specified the tyupe of a key listener event.
179 SPI_KEYLISTENER_NOSYNC = 0,
180 SPI_KEYLISTENER_SYNCHRONOUS = 1,
181 SPI_KEYLISTENER_CANCONSUME = 2,
182 SPI_KEYLISTENER_ALL_WINDOWS = 4
183 } AccessibleKeyListenerSyncType;
187 *AccessibleStreamableContentSeekType
188 *@SPI_STREAM_SEEK_SET: seek from the 'top' of the streamable
189 *@SPI_STREAM_SEEK_CUR: seek from the current position in the stream
190 *@SPI_STREAM_SEEK_END: seek from the end of the stream (if known)
192 *The seek type for a specified offset in AccessibleStreamableContent_seek.
199 } AccessibleStreamableContentSeekType;
201 typedef struct _SPIException SPIException;
204 (* SPIExceptionHandler) (SPIException *err, SPIBoolean is_fatal);
207 SPI_EXCEPTION_UNSPECIFIED,
208 SPI_EXCEPTION_DISCONNECT,
209 SPI_EXCEPTION_NO_IMPL,
211 SPI_EXCEPTION_BAD_DATA
215 SPI_EXCEPTION_SOURCE_UNSPECIFIED,
216 SPI_EXCEPTION_SOURCE_ACCESSIBLE,
217 SPI_EXCEPTION_SOURCE_REGISTRY,
218 SPI_EXCEPTION_SOURCE_DEVICE
221 typedef unsigned long AccessibleKeyEventMask;
222 typedef unsigned long AccessibleDeviceEventMask;
232 *AccessibleComponentLayer:
233 *@SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
234 *@SPI_LAYER_BACKGROUND: Component belongs to the destop background.
235 *@SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
236 *@SPI_LAYER_WIDGET: Component is a 'normal' widget.
237 *@SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
238 * Z-information relative to other MDI-layer components.
239 *@SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
241 *@SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
243 *@SPI_LAYER_WINDOW: Component is in the window layer and have valid Z-information
244 * relative to other window-layer components.
245 *@SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
246 * should not be encountered.
248 * Describes the layer of a component.
250 * These enumerated "layer values" are used when determining which UI
251 * rendering layer a component is drawn into, which can help in making
252 * determinations of when components occlude one another.
256 SPI_LAYER_BACKGROUND,
263 SPI_LAYER_LAST_DEFINED
264 } AccessibleComponentLayer;
268 * AccessibleTextRange:
269 * @start: the first nominal character position within the range.
270 * @end: the first nominal character position following the range.
271 * @content: The actual text content between @start and @end, as a UTF-8 string.
273 * Structure which encapsulates a text range - must be associated with an
274 * AccessibleText-implementing object.
276 typedef struct _AccessibleTextRange
281 } AccessibleTextRange;
289 * Structure containing identifying information about a set of keycode or
292 typedef struct _AccessibleKeySet
294 unsigned long *keysyms;
295 unsigned short *keycodes;
301 * A special value for an AccessibleKeySet type, which tacitly
302 * includes all keycodes and keyvals for the specified modifier set.
304 #define SPI_KEYSET_ALL_KEYS NULL
306 typedef unsigned long AccessibleModifierMaskType;
308 *AccessibleKeyMaskType:
310 *AccessibleKeyMaskType is a mask which is a set of key event modifiers
311 *which is specified in SPI_registerAccessibleKeystrokeListener.
314 typedef AccessibleModifierMaskType AccessibleKeyMaskType;
316 typedef struct _AccessibleAttributeSet
320 } AccessibleAttributeSet;
322 /* Basic SPI initialization and event loop function prototypes */
325 void SPI_event_main (void);
326 void SPI_event_quit (void);
327 SPIBoolean SPI_eventIsReady (void);
328 AccessibleEvent *SPI_nextEvent (SPIBoolean waitForEvent);
331 /* Event Listener creation and support. */
333 void SPI_freeAccessibleKeySet (
334 AccessibleKeySet *keyset);
335 AccessibleKeySet * SPI_createAccessibleKeySet (
339 const char **keystrings);
340 AccessibleEventListener * SPI_createAccessibleEventListener (
341 AccessibleEventListenerCB callback,
343 SPIBoolean AccessibleEventListener_addCallback (
344 AccessibleEventListener *listener,
345 AccessibleEventListenerCB callback,
347 SPIBoolean AccessibleEventListener_removeCallback (
348 AccessibleEventListener *listener,
349 AccessibleEventListenerCB callback);
350 void AccessibleEventListener_unref (
351 AccessibleEventListener *listener);
353 /* Device Event Listener creation and support. */
355 /* First four are deprecated in favor of the last four; really just a re-name */
357 AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
358 AccessibleKeystrokeListenerCB callback,
360 SPIBoolean AccessibleKeystrokeListener_addCallback (
361 AccessibleKeystrokeListener *listener,
362 AccessibleKeystrokeListenerCB callback,
364 SPIBoolean AccessibleKeystrokeListener_removeCallback (
365 AccessibleKeystrokeListener *listener,
366 AccessibleKeystrokeListenerCB callback);
367 void AccessibleKeystrokeListener_unref (
368 AccessibleKeystrokeListener *listener);
370 AccessibleDeviceListener * SPI_createAccessibleDeviceListener (
371 AccessibleDeviceListenerCB callback,
373 SPIBoolean AccessibleDeviceListener_addCallback (
374 AccessibleDeviceListener *listener,
375 AccessibleDeviceListenerCB callback,
377 SPIBoolean AccessibleDeviceListener_removeCallback (
378 AccessibleDeviceListener *listener,
379 AccessibleDeviceListenerCB callback);
380 void AccessibleDeviceListener_unref (
381 AccessibleDeviceListener *listener);
383 /* Global functions serviced by the registry */
385 SPIBoolean SPI_registerGlobalEventListener (
386 AccessibleEventListener *listener,
387 const char *eventType);
388 SPIBoolean SPI_deregisterGlobalEventListener (
389 AccessibleEventListener *listener,
390 const char *eventType);
391 SPIBoolean SPI_deregisterGlobalEventListenerAll (
392 AccessibleEventListener *listener);
393 SPIBoolean SPI_registerAccessibleKeystrokeListener (
394 AccessibleKeystrokeListener *listener,
395 AccessibleKeySet *keys,
396 AccessibleKeyMaskType modmask,
397 AccessibleKeyEventMask eventmask,
398 AccessibleKeyListenerSyncType sync_type);
399 SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
400 AccessibleKeystrokeListener *listener,
401 AccessibleKeyMaskType modmask);
403 SPIBoolean SPI_registerDeviceEventListener (
404 AccessibleDeviceListener *listener,
405 AccessibleDeviceEventMask eventmask,
407 SPIBoolean SPI_deregisterDeviceEventListener (
408 AccessibleDeviceListener *listener,
411 int SPI_getDesktopCount (void);
412 Accessible *SPI_getDesktop (int i);
413 int SPI_getDesktopList (Accessible ***desktop_list);
414 void SPI_freeDesktopList (Accessible **desktop_list);
416 SPIBoolean SPI_generateKeyboardEvent (long int keyval,
418 AccessibleKeySynthType synth_type);
420 SPIBoolean SPI_generateMouseEvent (long int x, long int y, char *name);
422 /* Accessible function prototypes */
424 void Accessible_ref (Accessible *obj);
425 void Accessible_unref (Accessible *obj);
426 char * Accessible_getName (Accessible *obj);
427 char * Accessible_getDescription (Accessible *obj);
428 Accessible * Accessible_getParent (Accessible *obj);
429 long Accessible_getChildCount (Accessible *obj);
430 Accessible * Accessible_getChildAtIndex (Accessible *obj,
431 long int childIndex);
432 long Accessible_getIndexInParent (Accessible *obj);
433 AccessibleRelation **Accessible_getRelationSet (Accessible *obj);
434 AccessibleRole Accessible_getRole (Accessible *obj);
435 char * Accessible_getRoleName (Accessible *obj);
436 char * Accessible_getLocalizedRoleName (Accessible *obj);
437 AccessibleStateSet * Accessible_getStateSet (Accessible *obj);
438 AccessibleAttributeSet *Accessible_getAttributes (Accessible *obj);
439 AccessibleApplication *Accessible_getHostApplication (Accessible *obj);
441 /* Interface query methods */
443 SPIBoolean Accessible_isAction (Accessible *obj);
444 SPIBoolean Accessible_isApplication (Accessible *obj);
445 SPIBoolean Accessible_isComponent (Accessible *obj);
446 SPIBoolean Accessible_isEditableText (Accessible *obj);
447 SPIBoolean Accessible_isHypertext (Accessible *obj);
448 SPIBoolean Accessible_isImage (Accessible *obj);
449 SPIBoolean Accessible_isSelection (Accessible *obj);
450 SPIBoolean Accessible_isStreamableContent (Accessible *obj);
451 SPIBoolean Accessible_isTable (Accessible *obj);
452 SPIBoolean Accessible_isText (Accessible *obj);
453 SPIBoolean Accessible_isValue (Accessible *obj);
455 AccessibleAction * Accessible_getAction (Accessible *obj);
456 AccessibleApplication * Accessible_getApplication (Accessible *obj);
457 AccessibleComponent * Accessible_getComponent (Accessible *obj);
458 AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
459 AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
460 AccessibleImage * Accessible_getImage (Accessible *obj);
461 AccessibleSelection * Accessible_getSelection (Accessible *obj);
462 AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
463 AccessibleTable * Accessible_getTable (Accessible *obj);
464 AccessibleText * Accessible_getText (Accessible *obj);
465 AccessibleValue * Accessible_getValue (Accessible *obj);
466 AccessibleUnknown * Accessible_queryInterface (Accessible *obj,
467 const char *interface_name);
469 /* AccessibleAction function prototypes */
471 void AccessibleAction_ref (AccessibleAction *obj);
472 void AccessibleAction_unref (AccessibleAction *obj);
473 long AccessibleAction_getNActions (AccessibleAction *obj);
474 char *AccessibleAction_getName (AccessibleAction *obj,
476 char *AccessibleAction_getDescription (AccessibleAction *obj,
478 SPIBoolean AccessibleAction_doAction (AccessibleAction *obj,
480 char *AccessibleAction_getKeyBinding (AccessibleAction *obj,
483 /* AccessibleApplication function prototypes */
485 void AccessibleApplication_ref (AccessibleApplication *obj);
486 void AccessibleApplication_unref (AccessibleApplication *obj);
487 char *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
488 char *AccessibleApplication_getVersion (AccessibleApplication *obj);
489 long AccessibleApplication_getID (AccessibleApplication *obj);
490 char *AccessibleApplication_getLocale (AccessibleApplication *obj, int lc_category);
491 SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
492 SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
494 /* AccessibleComponent function prototypes */
496 void AccessibleComponent_ref (AccessibleComponent *obj);
497 void AccessibleComponent_unref (AccessibleComponent *obj);
498 SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj,
501 AccessibleCoordType ctype);
502 Accessible *AccessibleComponent_getAccessibleAtPoint (
503 AccessibleComponent *obj,
506 AccessibleCoordType ctype);
507 void AccessibleComponent_getExtents (AccessibleComponent *obj,
512 AccessibleCoordType ctype);
513 void AccessibleComponent_getPosition (AccessibleComponent *obj,
516 AccessibleCoordType ctype);
517 void AccessibleComponent_getSize (AccessibleComponent *obj,
520 AccessibleComponentLayer
521 AccessibleComponent_getLayer (AccessibleComponent *obj);
522 SPIBoolean AccessibleComponent_grabFocus (AccessibleComponent *obj);
523 short AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
524 double AccessibleComponent_getAlpha (AccessibleComponent *obj);
526 /* AccessibleEditableText function prototypes */
529 AccessibleEditableText_ref (AccessibleEditableText *obj);
532 AccessibleEditableText_unref (AccessibleEditableText *obj);
535 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
536 const char *attributes,
537 long int startOffset,
541 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
542 const char *newContents);
545 AccessibleEditableText_insertText (AccessibleEditableText *obj,
551 AccessibleEditableText_copyText (AccessibleText *obj,
556 AccessibleEditableText_cutText (AccessibleEditableText *obj,
561 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
566 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
571 * AccessibleHyperlink function prototypes
575 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
577 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
580 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
583 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
587 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
591 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
592 long int *startIndex,
596 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
600 * AccessibleHypertext function prototypes
605 AccessibleHypertext_ref (AccessibleHypertext *obj);
608 AccessibleHypertext_unref (AccessibleHypertext *obj);
611 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
613 AccessibleHyperlink *
614 AccessibleHypertext_getLink (AccessibleHypertext *obj,
618 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
619 long int characterOffset);
623 * AccessibleImage function prototypes
628 AccessibleImage_ref (AccessibleImage *obj);
631 AccessibleImage_unref (AccessibleImage *obj);
634 AccessibleImage_getImageDescription (AccessibleImage *obj);
637 AccessibleImage_getImageSize (AccessibleImage *obj,
642 AccessibleImage_getImagePosition (AccessibleImage *obj,
645 AccessibleCoordType ctype);
648 AccessibleImage_getImageExtents (AccessibleImage *obj,
653 AccessibleCoordType ctype);
655 AccessibleImage_getImageLocale (AccessibleImage *obj);
659 * AccessibleRelation function prototypes
663 void AccessibleRelation_ref (AccessibleRelation *obj);
664 void AccessibleRelation_unref (AccessibleRelation *obj);
666 AccessibleRelationType
667 AccessibleRelation_getRelationType (AccessibleRelation *obj);
670 AccessibleRelation_getNTargets (AccessibleRelation *obj);
673 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
678 * AccessibleSelection function prototypes
682 void AccessibleSelection_ref (AccessibleSelection *obj);
683 void AccessibleSelection_unref (AccessibleSelection *obj);
686 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
689 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
690 long int selectedChildIndex);
693 AccessibleSelection_selectChild (AccessibleSelection *obj,
694 long int childIndex);
697 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
698 long int selectedChildIndex);
701 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
702 long int childIndex);
705 AccessibleSelection_selectAll (AccessibleSelection *obj);
708 AccessibleSelection_clearSelection (AccessibleSelection *obj);
713 * AccessibleStateSet function prototypes
717 void AccessibleStateSet_ref (AccessibleStateSet *obj);
718 void AccessibleStateSet_unref (AccessibleStateSet *obj);
721 AccessibleStateSet_contains (AccessibleStateSet *obj,
722 AccessibleState state);
725 AccessibleStateSet_add (AccessibleStateSet *obj,
726 AccessibleState state);
729 AccessibleStateSet_remove (AccessibleStateSet *obj,
730 AccessibleState state);
733 AccessibleStateSet_equals (AccessibleStateSet *obj,
734 AccessibleStateSet *obj2);
737 AccessibleStateSet_compare (AccessibleStateSet *obj,
738 AccessibleStateSet *obj2);
741 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
744 AccessibleStreamableContent_ref (AccessibleStreamableContent *obj);
746 AccessibleStreamableContent_unref (AccessibleStreamableContent *obj);
748 AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj);
750 AccessibleStreamableContent_freeContentTypeList (AccessibleStreamableContent *obj,
753 AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
754 const char *content_type);
756 AccessibleStreamableContent_close (AccessibleStreamableContent *obj);
759 AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
761 AccessibleStreamableContentSeekType seek_type);
763 AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
766 unsigned int read_type);
769 * AccessibleTable function prototypes
773 void AccessibleTable_ref (AccessibleTable *obj);
774 void AccessibleTable_unref (AccessibleTable *obj);
777 AccessibleTable_getCaption (AccessibleTable *obj);
780 AccessibleTable_getSummary (AccessibleTable *obj);
783 AccessibleTable_getNRows (AccessibleTable *obj);
786 AccessibleTable_getNColumns (AccessibleTable *obj);
789 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
794 AccessibleTable_getIndexAt (AccessibleTable *obj,
799 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
803 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
807 AccessibleTable_getRowDescription (AccessibleTable *obj,
811 AccessibleTable_getColumnDescription (AccessibleTable *obj,
815 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
820 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
825 AccessibleTable_getRowHeader (AccessibleTable *obj,
829 AccessibleTable_getColumnHeader (AccessibleTable *obj,
833 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
836 AccessibleTable_getSelectedRows (AccessibleTable *obj,
837 long int **selectedRows);
840 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
843 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
844 long int **selectedColumns);
847 AccessibleTable_isRowSelected (AccessibleTable *obj,
851 AccessibleTable_isColumnSelected (AccessibleTable *obj,
855 AccessibleTable_isSelected (AccessibleTable *obj,
860 AccessibleTable_addRowSelection (AccessibleTable *obj,
863 AccessibleTable_addColumnSelection (AccessibleTable *obj,
867 AccessibleTable_removeRowSelection (AccessibleTable *obj,
870 AccessibleTable_removeColumnSelection (AccessibleTable *obj,
875 * AccessibleText function prototypes
879 void AccessibleText_ref (AccessibleText *obj);
880 void AccessibleText_unref (AccessibleText *obj);
883 AccessibleText_getCharacterCount (AccessibleText *obj);
886 AccessibleText_getText (AccessibleText *obj,
887 long int startOffset,
891 AccessibleText_getCaretOffset (AccessibleText *obj);
894 AccessibleText_getAttributes (AccessibleText *obj,
896 long int *startOffset,
897 long int *endOffset);
900 AccessibleText_getDefaultAttributes (AccessibleText *obj);
903 AccessibleText_setCaretOffset (AccessibleText *obj,
907 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
909 AccessibleTextBoundaryType type,
910 long int *startOffset,
911 long int *endOffset);
914 AccessibleText_getTextAtOffset (AccessibleText *obj,
916 AccessibleTextBoundaryType type,
917 long int *startOffset,
918 long int *endOffset);
921 AccessibleText_getTextAfterOffset (AccessibleText *obj,
923 AccessibleTextBoundaryType type,
924 long int *startOffset,
925 long int *endOffset);
928 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
932 AccessibleText_getCharacterExtents (AccessibleText *obj,
938 AccessibleCoordType type);
941 AccessibleText_getRangeExtents (AccessibleText *obj,
942 long int startOffset,
948 AccessibleCoordType type);
950 AccessibleTextRange **
951 AccessibleText_getBoundedRanges (AccessibleText *obj,
956 AccessibleCoordType type,
957 AccessibleTextClipType clipTypeX,
958 AccessibleTextClipType clipTypeY);
961 AccessibleTextRange_freeRanges (AccessibleTextRange **ranges);
964 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
967 AccessibleCoordType type);
970 AccessibleText_getNSelections (AccessibleText *obj);
973 AccessibleText_getSelection (AccessibleText *obj,
974 long int selectionNum,
975 long int *startOffset,
976 long int *endOffset);
980 AccessibleText_addSelection (AccessibleText *obj,
981 long int startOffset,
985 AccessibleText_removeSelection (AccessibleText *obj,
986 long int selectionNum);
989 AccessibleText_setSelection (AccessibleText *obj,
990 long int selectionNum,
991 long int startOffset,
994 /* AccessibleValue Function Prototypes: */
996 void AccessibleValue_ref (AccessibleValue *obj);
997 void AccessibleValue_unref (AccessibleValue *obj);
998 double AccessibleValue_getMinimumValue (AccessibleValue *obj);
999 double AccessibleValue_getCurrentValue (AccessibleValue *obj);
1000 double AccessibleValue_getMaximumValue (AccessibleValue *obj);
1001 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
1004 /* Persistance and lifecycle control for AccessibleEvents. */
1005 SPIBoolean AccessibleEvent_ref (const AccessibleEvent *e);
1006 void AccessibleEvent_unref (const AccessibleEvent *e);
1009 * Prototypes for accessor functions, to obtain context
1010 * information for accessible events.
1013 char* AccessibleEvent_getSourceName (const AccessibleEvent *e);
1014 AccessibleRole AccessibleEvent_getSourceRole (const AccessibleEvent *e);
1015 AccessibleApplication* AccessibleEvent_getSourceApplication (const AccessibleEvent *e);
1016 SPIBoolean AccessibleEvent_getSourceDetails (const AccessibleEvent *e, char **name,
1017 AccessibleRole *role,
1018 AccessibleApplication **app);
1020 char* AccessibleTextChangedEvent_getChangeString (const AccessibleEvent *e);
1021 Accessible * AccessibleChildChangedEvent_getChildAccessible (const AccessibleEvent *e);
1023 Accessible * AccessibleParentChangedEvent_getParentAccessible (const AccessibleEvent *e);
1025 char* AccessibleTextSelectionChangedEvent_getSelectionString (const AccessibleEvent *e);
1027 char* AccessibleWindowEvent_getTitleString (const AccessibleEvent *e);
1029 Accessible * AccessibleActiveDescendantChangedEvent_getActiveDescendant (const AccessibleEvent *e);
1031 Accessible * AccessibleTableSummaryChangedEvent_getSummaryAccessible (const AccessibleEvent *e);
1033 Accessible * AccessibleTableHeaderChangedEvent_getHeaderAccessible (const AccessibleEvent *e);
1035 char * AccessibleTableCaptionChangedEvent_getCaptionString (const AccessibleEvent *e);
1037 char * AccessibleTableRowDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
1039 char * AccessibleTableColumnDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
1041 char * AccessibleDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
1043 char * AccessibleNameChangedEvent_getNameString (const AccessibleEvent *e);
1044 SPIRect * AccessibleBoundsChangedEvent_getNewBounds (const AccessibleEvent *e);
1046 /* Misc methods and error handling */
1047 void SPI_freeString (char *s);
1049 char* SPI_dupString (char *s);
1051 void SPI_freeRect (SPIRect *rect);
1053 SPIBoolean SPI_exceptionHandlerPush (SPIExceptionHandler *handler);
1055 SPIExceptionHandler* SPI_exceptionHandlerPop (void);
1057 SPIExceptionType SPIException_getSourceType (SPIException *err);
1059 SPIExceptionCode SPIException_getExceptionCode (SPIException *err);
1061 Accessible* SPIAccessibleException_getSource (SPIException *err);
1063 char* SPIException_getDescription (SPIException *err);