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:
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_LAST_DEFINED:
112 *Describes the type of the relation
117 SPI_RELATION_LABEL_FOR,
118 SPI_RELATION_LABELED_BY,
119 SPI_RELATION_CONTROLLER_FOR,
120 SPI_RELATION_CONTROLLED_BY,
121 SPI_RELATION_MEMBER_OF,
122 SPI_RELATION_NODE_CHILD_OF,
123 SPI_RELATION_EXTENDED,
124 SPI_RELATION_FLOWS_TO,
125 SPI_RELATION_FLOWS_FROM,
126 SPI_RELATION_SUBWINDOW_OF,
128 SPI_RELATION_EMBEDDED_BY,
129 SPI_RELATION_LAST_DEFINED
130 } AccessibleRelationType;
133 /* don't change the order of these ! */
135 *AccessibleCoordType:
136 *@SPI_COORD_TYPE_SCREEN: specifies xy coordinates relative to the screen
137 *@SPI_COORD_TYPE_WINDOW: specifies xy coordinates relative to an object's
140 *Specifies how xy coordinates are to be interpreted. Used by functions such
141 *as AccessibleComponent_getPosition() and AccessibleText_getCharacterExtents()
144 SPI_COORD_TYPE_SCREEN,
145 SPI_COORD_TYPE_WINDOW
146 } AccessibleCoordType;
149 *AccessibleKeySynthType:
152 *@SPI_KEY_PRESSRELEASE:
156 *Specified the type of a generated event.
161 SPI_KEY_PRESSRELEASE,
164 } AccessibleKeySynthType;
167 *AccessibleKeyListenerSyncType:
168 *@SPI_KEYLISTENER_NOSYNC:
169 *@SPI_KEYLISTENER_SYNCHRONOUS:
170 *@SPI_KEYLISTENER_CANCONSUME:
171 *@SPI_KEYLISTENER_ALL_WINDOWS:
173 *Specified the tyupe of a key listener event.
176 SPI_KEYLISTENER_NOSYNC = 0,
177 SPI_KEYLISTENER_SYNCHRONOUS = 1,
178 SPI_KEYLISTENER_CANCONSUME = 2,
179 SPI_KEYLISTENER_ALL_WINDOWS = 4
180 } AccessibleKeyListenerSyncType;
182 typedef unsigned long AccessibleKeyEventMask;
183 typedef unsigned long AccessibleDeviceEventMask;
186 *AccessibleComponentLayer:
187 *@SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
188 *@SPI_LAYER_BACKGROUND: Component belongs to the destop background.
189 *@SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
190 *@SPI_LAYER_WIDGET: Component is a 'normal' widget.
191 *@SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
192 * Z-information relative to other MDI-layer components.
193 *@SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
195 *@SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
197 *@SPI_LAYER_WINDOW: Component is in the window layer and have valid Z-information
198 * relative to other window-layer components.
199 *@SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
200 * should not be encountered.
202 * Describes the layer of a component.
204 * These enumerated "layer values" are used when determining which UI
205 * rendering layer a component is drawn into, which can help in making
206 * determinations of when components occlude one another.
210 SPI_LAYER_BACKGROUND,
217 SPI_LAYER_LAST_DEFINED
218 } AccessibleComponentLayer;
222 * AccessibleTextRange:
223 * @start: the first nominal character position within the range.
224 * @end: the first nominal character position following the range.
225 * @content: The actual text content between @start and @end, as a UTF-8 string.
227 * Structure which encapsulates a text range - must be associated with an
228 * AccessibleText-implementing object.
230 typedef struct _AccessibleTextRange
235 } AccessibleTextRange;
243 * Structure containing identifying information about a set of keycode or
246 typedef struct _AccessibleKeySet
248 unsigned long *keysyms;
249 unsigned short *keycodes;
255 * A special value for an AccessibleKeySet type, which tacitly
256 * includes all keycodes and keyvals for the specified modifier set.
258 #define SPI_KEYSET_ALL_KEYS NULL
260 typedef unsigned long AccessibleModifierMaskType;
262 *AccessibleKeyMaskType:
264 *AccessibleKeyMaskType is a mask which is a set of key event modifiers
265 *which is specified in SPI_registerAccessibleKeystrokeListener.
268 typedef AccessibleModifierMaskType AccessibleKeyMaskType;
270 /* Basic SPI initialization and event loop function prototypes */
273 void SPI_event_main (void);
274 void SPI_event_quit (void);
275 SPIBoolean SPI_eventIsReady (void);
276 AccessibleEvent *SPI_nextEvent (SPIBoolean waitForEvent);
279 /* Event Listener creation and support. */
281 void SPI_freeAccessibleKeySet (
282 AccessibleKeySet *keyset);
283 AccessibleKeySet * SPI_createAccessibleKeySet (
287 const char **keystrings);
288 AccessibleEventListener * SPI_createAccessibleEventListener (
289 AccessibleEventListenerCB callback,
291 SPIBoolean AccessibleEventListener_addCallback (
292 AccessibleEventListener *listener,
293 AccessibleEventListenerCB callback,
295 SPIBoolean AccessibleEventListener_removeCallback (
296 AccessibleEventListener *listener,
297 AccessibleEventListenerCB callback);
298 void AccessibleEventListener_unref (
299 AccessibleEventListener *listener);
301 /* Device Event Listener creation and support. */
303 /* First four are deprecated in favor of the last four; really just a re-name */
305 AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
306 AccessibleKeystrokeListenerCB callback,
308 SPIBoolean AccessibleKeystrokeListener_addCallback (
309 AccessibleKeystrokeListener *listener,
310 AccessibleKeystrokeListenerCB callback,
312 SPIBoolean AccessibleKeystrokeListener_removeCallback (
313 AccessibleKeystrokeListener *listener,
314 AccessibleKeystrokeListenerCB callback);
315 void AccessibleKeystrokeListener_unref (
316 AccessibleKeystrokeListener *listener);
318 AccessibleDeviceListener * SPI_createAccessibleDeviceListener (
319 AccessibleDeviceListenerCB callback,
321 SPIBoolean AccessibleDeviceListener_addCallback (
322 AccessibleDeviceListener *listener,
323 AccessibleDeviceListenerCB callback,
325 SPIBoolean AccessibleDeviceListener_removeCallback (
326 AccessibleDeviceListener *listener,
327 AccessibleDeviceListenerCB callback);
328 void AccessibleDeviceListener_unref (
329 AccessibleDeviceListener *listener);
331 /* Global functions serviced by the registry */
333 SPIBoolean SPI_registerGlobalEventListener (
334 AccessibleEventListener *listener,
335 const char *eventType);
336 SPIBoolean SPI_deregisterGlobalEventListener (
337 AccessibleEventListener *listener,
338 const char *eventType);
339 SPIBoolean SPI_deregisterGlobalEventListenerAll (
340 AccessibleEventListener *listener);
341 SPIBoolean SPI_registerAccessibleKeystrokeListener (
342 AccessibleKeystrokeListener *listener,
343 AccessibleKeySet *keys,
344 AccessibleKeyMaskType modmask,
345 AccessibleKeyEventMask eventmask,
346 AccessibleKeyListenerSyncType sync_type);
347 SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
348 AccessibleKeystrokeListener *listener,
349 AccessibleKeyMaskType modmask);
351 SPIBoolean SPI_registerDeviceEventListener (
352 AccessibleDeviceListener *listener,
353 AccessibleDeviceEventMask eventmask,
355 SPIBoolean SPI_deregisterDeviceEventListener (
356 AccessibleDeviceListener *listener,
359 int SPI_getDesktopCount (void);
360 Accessible *SPI_getDesktop (int i);
361 int SPI_getDesktopList (Accessible ***desktop_list);
362 void SPI_freeDesktopList (Accessible **desktop_list);
364 SPIBoolean SPI_generateKeyboardEvent (long int keyval,
366 AccessibleKeySynthType synth_type);
368 SPIBoolean SPI_generateMouseEvent (long int x, long int y, char *name);
370 /* Accessible function prototypes */
372 void Accessible_ref (Accessible *obj);
373 void Accessible_unref (Accessible *obj);
374 char * Accessible_getName (Accessible *obj);
375 char * Accessible_getDescription (Accessible *obj);
376 Accessible * Accessible_getParent (Accessible *obj);
377 long Accessible_getChildCount (Accessible *obj);
378 Accessible * Accessible_getChildAtIndex (Accessible *obj,
379 long int childIndex);
380 long Accessible_getIndexInParent (Accessible *obj);
381 AccessibleRelation **Accessible_getRelationSet (Accessible *obj);
382 AccessibleRole Accessible_getRole (Accessible *obj);
383 char * Accessible_getRoleName (Accessible *obj);
384 AccessibleStateSet * Accessible_getStateSet (Accessible *obj);
386 /* Interface query methods */
388 SPIBoolean Accessible_isAction (Accessible *obj);
389 SPIBoolean Accessible_isApplication (Accessible *obj);
390 SPIBoolean Accessible_isComponent (Accessible *obj);
391 SPIBoolean Accessible_isEditableText (Accessible *obj);
392 SPIBoolean Accessible_isHypertext (Accessible *obj);
393 SPIBoolean Accessible_isImage (Accessible *obj);
394 SPIBoolean Accessible_isSelection (Accessible *obj);
395 SPIBoolean Accessible_isStreamableContent (Accessible *obj);
396 SPIBoolean Accessible_isTable (Accessible *obj);
397 SPIBoolean Accessible_isText (Accessible *obj);
398 SPIBoolean Accessible_isValue (Accessible *obj);
400 AccessibleAction * Accessible_getAction (Accessible *obj);
401 AccessibleApplication * Accessible_getApplication (Accessible *obj);
402 AccessibleComponent * Accessible_getComponent (Accessible *obj);
403 AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
404 AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
405 AccessibleImage * Accessible_getImage (Accessible *obj);
406 AccessibleSelection * Accessible_getSelection (Accessible *obj);
407 AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
408 AccessibleTable * Accessible_getTable (Accessible *obj);
409 AccessibleText * Accessible_getText (Accessible *obj);
410 AccessibleValue * Accessible_getValue (Accessible *obj);
411 AccessibleUnknown * Accessible_queryInterface (Accessible *obj,
412 const char *interface_name);
414 /* AccessibleAction function prototypes */
416 void AccessibleAction_ref (AccessibleAction *obj);
417 void AccessibleAction_unref (AccessibleAction *obj);
418 long AccessibleAction_getNActions (AccessibleAction *obj);
419 char *AccessibleAction_getName (AccessibleAction *obj,
421 char *AccessibleAction_getDescription (AccessibleAction *obj,
423 SPIBoolean AccessibleAction_doAction (AccessibleAction *obj,
425 char *AccessibleAction_getKeyBinding (AccessibleAction *obj,
428 /* AccessibleApplication function prototypes */
430 void AccessibleApplication_ref (AccessibleApplication *obj);
431 void AccessibleApplication_unref (AccessibleApplication *obj);
432 char *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
433 char *AccessibleApplication_getVersion (AccessibleApplication *obj);
434 long AccessibleApplication_getID (AccessibleApplication *obj);
435 SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
436 SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
438 /* AccessibleComponent function prototypes */
440 void AccessibleComponent_ref (AccessibleComponent *obj);
441 void AccessibleComponent_unref (AccessibleComponent *obj);
442 SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj,
445 AccessibleCoordType ctype);
446 Accessible *AccessibleComponent_getAccessibleAtPoint (
447 AccessibleComponent *obj,
450 AccessibleCoordType ctype);
451 void AccessibleComponent_getExtents (AccessibleComponent *obj,
456 AccessibleCoordType ctype);
457 void AccessibleComponent_getPosition (AccessibleComponent *obj,
460 AccessibleCoordType ctype);
461 void AccessibleComponent_getSize (AccessibleComponent *obj,
464 AccessibleComponentLayer
465 AccessibleComponent_getLayer (AccessibleComponent *obj);
466 SPIBoolean AccessibleComponent_grabFocus (AccessibleComponent *obj);
467 short AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
469 /* AccessibleEditableText function prototypes */
472 AccessibleEditableText_ref (AccessibleEditableText *obj);
475 AccessibleEditableText_unref (AccessibleEditableText *obj);
478 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
479 const char *attributes,
480 long int startOffset,
484 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
485 const char *newContents);
488 AccessibleEditableText_insertText (AccessibleEditableText *obj,
494 AccessibleEditableText_copyText (AccessibleText *obj,
499 AccessibleEditableText_cutText (AccessibleEditableText *obj,
504 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
509 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
514 * AccessibleHyperlink function prototypes
518 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
520 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
523 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
526 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
530 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
534 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
535 long int *startIndex,
539 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
543 * AccessibleHypertext function prototypes
548 AccessibleHypertext_ref (AccessibleHypertext *obj);
551 AccessibleHypertext_unref (AccessibleHypertext *obj);
554 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
556 AccessibleHyperlink *
557 AccessibleHypertext_getLink (AccessibleHypertext *obj,
561 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
562 long int characterOffset);
566 * AccessibleImage function prototypes
571 AccessibleImage_ref (AccessibleImage *obj);
574 AccessibleImage_unref (AccessibleImage *obj);
577 AccessibleImage_getImageDescription (AccessibleImage *obj);
580 AccessibleImage_getImageSize (AccessibleImage *obj,
585 AccessibleImage_getImagePosition (AccessibleImage *obj,
588 AccessibleCoordType ctype);
591 AccessibleImage_getImageExtents (AccessibleImage *obj,
596 AccessibleCoordType ctype);
599 * AccessibleRelation function prototypes
603 void AccessibleRelation_ref (AccessibleRelation *obj);
604 void AccessibleRelation_unref (AccessibleRelation *obj);
606 AccessibleRelationType
607 AccessibleRelation_getRelationType (AccessibleRelation *obj);
610 AccessibleRelation_getNTargets (AccessibleRelation *obj);
613 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
618 * AccessibleSelection function prototypes
622 void AccessibleSelection_ref (AccessibleSelection *obj);
623 void AccessibleSelection_unref (AccessibleSelection *obj);
626 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
629 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
630 long int selectedChildIndex);
633 AccessibleSelection_selectChild (AccessibleSelection *obj,
634 long int childIndex);
637 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
638 long int selectedChildIndex);
641 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
642 long int childIndex);
645 AccessibleSelection_selectAll (AccessibleSelection *obj);
648 AccessibleSelection_clearSelection (AccessibleSelection *obj);
653 * AccessibleStateSet function prototypes
657 void AccessibleStateSet_ref (AccessibleStateSet *obj);
658 void AccessibleStateSet_unref (AccessibleStateSet *obj);
661 AccessibleStateSet_contains (AccessibleStateSet *obj,
662 AccessibleState state);
665 AccessibleStateSet_add (AccessibleStateSet *obj,
666 AccessibleState state);
669 AccessibleStateSet_remove (AccessibleStateSet *obj,
670 AccessibleState state);
673 AccessibleStateSet_equals (AccessibleStateSet *obj,
674 AccessibleStateSet *obj2);
677 AccessibleStateSet_compare (AccessibleStateSet *obj,
678 AccessibleStateSet *obj2);
681 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
684 AccessibleStreamableContent_ref (AccessibleStreamableContent *obj);
686 AccessibleStreamableContent_unref (AccessibleStreamableContent *obj);
688 AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj);
690 AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
691 const char *content_type);
693 AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
695 unsigned int seek_type);
697 AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
700 unsigned int read_type);
703 * AccessibleTable function prototypes
707 void AccessibleTable_ref (AccessibleTable *obj);
708 void AccessibleTable_unref (AccessibleTable *obj);
711 AccessibleTable_getCaption (AccessibleTable *obj);
714 AccessibleTable_getSummary (AccessibleTable *obj);
717 AccessibleTable_getNRows (AccessibleTable *obj);
720 AccessibleTable_getNColumns (AccessibleTable *obj);
723 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
728 AccessibleTable_getIndexAt (AccessibleTable *obj,
733 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
737 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
741 AccessibleTable_getRowDescription (AccessibleTable *obj,
745 AccessibleTable_getColumnDescription (AccessibleTable *obj,
749 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
754 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
759 AccessibleTable_getRowHeader (AccessibleTable *obj,
763 AccessibleTable_getColumnHeader (AccessibleTable *obj,
767 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
770 AccessibleTable_getSelectedRows (AccessibleTable *obj,
771 long int **selectedRows);
774 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
777 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
778 long int **selectedColumns);
781 AccessibleTable_isRowSelected (AccessibleTable *obj,
785 AccessibleTable_isColumnSelected (AccessibleTable *obj,
789 AccessibleTable_isSelected (AccessibleTable *obj,
795 * AccessibleText function prototypes
799 void AccessibleText_ref (AccessibleText *obj);
800 void AccessibleText_unref (AccessibleText *obj);
803 AccessibleText_getCharacterCount (AccessibleText *obj);
806 AccessibleText_getText (AccessibleText *obj,
807 long int startOffset,
811 AccessibleText_getCaretOffset (AccessibleText *obj);
814 AccessibleText_getAttributes (AccessibleText *obj,
816 long int *startOffset,
817 long int *endOffset);
821 AccessibleText_setCaretOffset (AccessibleText *obj,
825 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
827 AccessibleTextBoundaryType type,
828 long int *startOffset,
829 long int *endOffset);
832 AccessibleText_getTextAtOffset (AccessibleText *obj,
834 AccessibleTextBoundaryType type,
835 long int *startOffset,
836 long int *endOffset);
839 AccessibleText_getTextAfterOffset (AccessibleText *obj,
841 AccessibleTextBoundaryType type,
842 long int *startOffset,
843 long int *endOffset);
846 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
850 AccessibleText_getCharacterExtents (AccessibleText *obj,
856 AccessibleCoordType type);
859 AccessibleText_getRangeExtents (AccessibleText *obj,
860 long int startOffset,
866 AccessibleCoordType type);
868 AccessibleTextRange **
869 AccessibleText_getBoundedRanges (AccessibleText *obj,
874 AccessibleCoordType type,
875 AccessibleTextClipType clipTypeX,
876 AccessibleTextClipType clipTypeY);
879 AccessibleTextRange_freeRanges (AccessibleTextRange **ranges);
882 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
885 AccessibleCoordType type);
888 AccessibleText_getNSelections (AccessibleText *obj);
891 AccessibleText_getSelection (AccessibleText *obj,
892 long int selectionNum,
893 long int *startOffset,
894 long int *endOffset);
898 AccessibleText_addSelection (AccessibleText *obj,
899 long int startOffset,
903 AccessibleText_removeSelection (AccessibleText *obj,
904 long int selectionNum);
907 AccessibleText_setSelection (AccessibleText *obj,
908 long int selectionNum,
909 long int startOffset,
912 /* AccessibleValue Function Prototypes: */
914 void AccessibleValue_ref (AccessibleValue *obj);
915 void AccessibleValue_unref (AccessibleValue *obj);
916 double AccessibleValue_getMinimumValue (AccessibleValue *obj);
917 double AccessibleValue_getCurrentValue (AccessibleValue *obj);
918 double AccessibleValue_getMaximumValue (AccessibleValue *obj);
919 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
922 /* Persistance and lifecycle control for AccessibleEvents. */
923 SPIBoolean AccessibleEvent_ref (const AccessibleEvent *e);
924 void AccessibleEvent_unref (const AccessibleEvent *e);
927 * Prototypes for accessor functions, to obtain context
928 * information for accessible events.
931 char* AccessibleTextChangedEvent_getChangeString (const AccessibleEvent *e);
932 Accessible * AccessibleChildChangedEvent_getChildAccessible (const AccessibleEvent *e);
934 Accessible * AccessibleParentChangedEvent_getParentAccessible (const AccessibleEvent *e);
936 char* AccessibleTextSelectionChangedEvent_getSelectionString (const AccessibleEvent *e);
938 char* AccessibleWindowEvent_getTitleString (const AccessibleEvent *e);
940 Accessible * AccessibleActiveDescendantChangedEvent_getActiveDescendant (const AccessibleEvent *e);
942 Accessible * AccessibleTableSummaryChangedEvent_getSummaryAccessible (const AccessibleEvent *e);
944 Accessible * AccessibleTableHeaderChangedEvent_getHeaderAccessible (const AccessibleEvent *e);
946 char * AccessibleTableCaptionChangedEvent_getCaptionString (const AccessibleEvent *e);
948 char * AccessibleTableRowDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
950 char * AccessibleTableColumnDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
952 char * AccessibleDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
954 char * AccessibleNameChangedEvent_getNameString (const AccessibleEvent *e);
957 void SPI_freeString (char *s);