4 #include <cspi/spi-impl.h>
6 * Definitions for AccessibleRole, AccessibleState,
7 * AccessibleEvent, and event listeners.
9 #include <cspi/spi-roletypes.h>
10 #include <cspi/spi-statetypes.h>
11 #include <cspi/spi-listener.h>
14 * Auxiliary typedefs and mask definitions
16 #include <libspi/keymasks.h>
23 * Enumerated type for text boundary types
27 SPI_TEXT_BOUNDARY_CHAR,
28 SPI_TEXT_BOUNDARY_CURSOR_POS,
29 SPI_TEXT_BOUNDARY_WORD_START,
30 SPI_TEXT_BOUNDARY_WORD_END,
31 SPI_TEXT_BOUNDARY_SENTENCE_START,
32 SPI_TEXT_BOUNDARY_SENTENCE_END,
33 SPI_TEXT_BOUNDARY_LINE_START,
34 SPI_TEXT_BOUNDARY_LINE_END,
35 SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE
36 } AccessibleTextBoundaryType;
40 * Enumerated type for relation types
47 SPI_RELATION_LABEL_FOR,
48 SPI_RELATION_LABELED_BY,
49 SPI_RELATION_CONTROLLER_FOR,
50 SPI_RELATION_CONTROLLED_BY,
51 SPI_RELATION_MEMBER_OF,
52 SPI_RELATION_NODE_CHILD_OF,
53 SPI_RELATION_EXTENDED,
54 SPI_RELATION_LAST_DEFINED
55 } AccessibleRelationType;
58 /* don't change the order of these ! */
60 SPI_COORD_TYPE_SCREEN,
62 } AccessibleCoordType;
70 } AccessibleKeySynthType;
73 SPI_KEYLISTENER_NOSYNC = 0,
74 SPI_KEYLISTENER_SYNCHRONOUS = 1,
75 SPI_KEYLISTENER_CANCONSUME = 2,
76 SPI_KEYLISTENER_ALL_WINDOWS = 4
77 } AccessibleKeyListenerSyncType;
79 typedef unsigned long AccessibleKeyEventMask;
82 * AccessibleComponentLayer:
83 * @SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
84 * @SPI_LAYER_BACKGROUND: Component belongs to the destop background.
85 * @SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
86 * @SPI_LAYER_WIDGET: Component is a 'normal' widget.
87 * @SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
88 * Z-information relative to other MDI-layer components.
89 * @SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
91 * @SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
93 * @SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
94 * should not be encountered.
104 SPI_LAYER_LAST_DEFINED
105 } AccessibleComponentLayer;
114 * Structure containing identifying information about a set of keycode or
117 typedef struct _AccessibleKeySet
119 unsigned long *keysyms;
120 unsigned short *keycodes;
126 * SPI_KEYSET_ALL_KEYS:
127 * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
128 * includes all keycodes and keyvals for the specified modifier set.
130 #define SPI_KEYSET_ALL_KEYS NULL
132 typedef unsigned long AccessibleKeyMaskType;
135 /* Basic SPI initialization and event loop function prototypes */
138 void SPI_event_main (void);
139 void SPI_event_quit (void);
140 SPIBoolean SPI_eventIsReady (void);
141 AccessibleEvent *SPI_nextEvent (SPIBoolean waitForEvent);
144 /* Event Listener creation and support. */
146 void SPI_freeAccessibleKeySet (
147 AccessibleKeySet *keyset);
148 AccessibleKeySet * SPI_createAccessibleKeySet (
152 const char **keystrings);
153 AccessibleEventListener * SPI_createAccessibleEventListener (
154 AccessibleEventListenerCB callback,
156 SPIBoolean AccessibleEventListener_addCallback (
157 AccessibleEventListener *listener,
158 AccessibleEventListenerCB callback,
160 SPIBoolean AccessibleEventListener_removeCallback (
161 AccessibleEventListener *listener,
162 AccessibleEventListenerCB callback);
163 void AccessibleEventListener_unref (
164 AccessibleEventListener *listener);
166 /* Keystroke Listener creation and support. */
168 AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
169 AccessibleKeystrokeListenerCB callback,
171 SPIBoolean AccessibleKeystrokeListener_addCallback (
172 AccessibleKeystrokeListener *listener,
173 AccessibleKeystrokeListenerCB callback,
175 SPIBoolean AccessibleKeystrokeListener_removeCallback (
176 AccessibleKeystrokeListener *listener,
177 AccessibleKeystrokeListenerCB callback);
178 void AccessibleKeystrokeListener_unref (
179 AccessibleKeystrokeListener *listener);
181 /* Global functions serviced by the registry */
183 SPIBoolean SPI_registerGlobalEventListener (
184 AccessibleEventListener *listener,
185 const char *eventType);
186 SPIBoolean SPI_deregisterGlobalEventListener (
187 AccessibleEventListener *listener,
188 const char *eventType);
189 SPIBoolean SPI_deregisterGlobalEventListenerAll (
190 AccessibleEventListener *listener);
191 SPIBoolean SPI_registerAccessibleKeystrokeListener (
192 AccessibleKeystrokeListener *listener,
193 AccessibleKeySet *keys,
194 AccessibleKeyMaskType modmask,
195 AccessibleKeyEventMask eventmask,
196 AccessibleKeyListenerSyncType sync_type);
197 SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
198 AccessibleKeystrokeListener *listener,
199 AccessibleKeyMaskType modmask);
201 int SPI_getDesktopCount (void);
202 Accessible *SPI_getDesktop (int i);
203 int SPI_getDesktopList (Accessible ***desktop_list);
204 void SPI_freeDesktopList (Accessible **desktop_list);
206 SPIBoolean SPI_generateKeyboardEvent (long int keyval,
208 AccessibleKeySynthType synth_type);
210 SPIBoolean SPI_generateMouseEvent (long int x, long int y, char *name);
212 /* Accessible function prototypes */
214 void Accessible_ref (Accessible *obj);
215 void Accessible_unref (Accessible *obj);
216 char * Accessible_getName (Accessible *obj);
217 char * Accessible_getDescription (Accessible *obj);
218 Accessible * Accessible_getParent (Accessible *obj);
219 long Accessible_getChildCount (Accessible *obj);
220 Accessible * Accessible_getChildAtIndex (Accessible *obj,
221 long int childIndex);
222 long Accessible_getIndexInParent (Accessible *obj);
223 AccessibleRelation **Accessible_getRelationSet (Accessible *obj);
224 AccessibleRole Accessible_getRole (Accessible *obj);
225 char * Accessible_getRoleName (Accessible *obj);
226 AccessibleStateSet * Accessible_getStateSet (Accessible *obj);
228 /* Interface query methods */
230 SPIBoolean Accessible_isAction (Accessible *obj);
231 SPIBoolean Accessible_isApplication (Accessible *obj);
232 SPIBoolean Accessible_isComponent (Accessible *obj);
233 SPIBoolean Accessible_isEditableText (Accessible *obj);
234 SPIBoolean Accessible_isHypertext (Accessible *obj);
235 SPIBoolean Accessible_isImage (Accessible *obj);
236 SPIBoolean Accessible_isSelection (Accessible *obj);
237 SPIBoolean Accessible_isStreamableContent (Accessible *obj);
238 SPIBoolean Accessible_isTable (Accessible *obj);
239 SPIBoolean Accessible_isText (Accessible *obj);
240 SPIBoolean Accessible_isValue (Accessible *obj);
242 AccessibleAction * Accessible_getAction (Accessible *obj);
243 AccessibleApplication * Accessible_getApplication (Accessible *obj);
244 AccessibleComponent * Accessible_getComponent (Accessible *obj);
245 AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
246 AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
247 AccessibleImage * Accessible_getImage (Accessible *obj);
248 AccessibleSelection * Accessible_getSelection (Accessible *obj);
249 AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
250 AccessibleTable * Accessible_getTable (Accessible *obj);
251 AccessibleText * Accessible_getText (Accessible *obj);
252 AccessibleValue * Accessible_getValue (Accessible *obj);
253 AccessibleUnknown * Accessible_queryInterface (Accessible *obj,
254 const char *interface_name);
256 /* AccessibleAction function prototypes */
258 void AccessibleAction_ref (AccessibleAction *obj);
259 void AccessibleAction_unref (AccessibleAction *obj);
260 long AccessibleAction_getNActions (AccessibleAction *obj);
261 char *AccessibleAction_getName (AccessibleAction *obj,
263 char *AccessibleAction_getDescription (AccessibleAction *obj,
265 SPIBoolean AccessibleAction_doAction (AccessibleAction *obj,
267 char *AccessibleAction_getKeyBinding (AccessibleAction *obj,
270 /* AccessibleApplication function prototypes */
272 void AccessibleApplication_ref (AccessibleApplication *obj);
273 void AccessibleApplication_unref (AccessibleApplication *obj);
274 char *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
275 char *AccessibleApplication_getVersion (AccessibleApplication *obj);
276 long AccessibleApplication_getID (AccessibleApplication *obj);
277 SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
278 SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
280 /* AccessibleComponent function prototypes */
282 void AccessibleComponent_ref (AccessibleComponent *obj);
283 void AccessibleComponent_unref (AccessibleComponent *obj);
284 SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj,
287 AccessibleCoordType ctype);
288 Accessible *AccessibleComponent_getAccessibleAtPoint (
289 AccessibleComponent *obj,
292 AccessibleCoordType ctype);
293 void AccessibleComponent_getExtents (AccessibleComponent *obj,
298 AccessibleCoordType ctype);
299 void AccessibleComponent_getPosition (AccessibleComponent *obj,
302 AccessibleCoordType ctype);
303 void AccessibleComponent_getSize (AccessibleComponent *obj,
306 AccessibleComponentLayer
307 AccessibleComponent_getLayer (AccessibleComponent *obj);
308 void AccessibleComponent_grabFocus (AccessibleComponent *obj);
309 short AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
311 /* AccessibleEditableText function prototypes */
314 AccessibleEditableText_ref (AccessibleEditableText *obj);
317 AccessibleEditableText_unref (AccessibleEditableText *obj);
320 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
321 const char *attributes,
322 long int startOffset,
326 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
327 const char *newContents);
330 AccessibleEditableText_insertText (AccessibleEditableText *obj,
336 AccessibleEditableText_copyText (AccessibleText *obj,
341 AccessibleEditableText_cutText (AccessibleEditableText *obj,
346 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
351 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
356 * AccessibleHyperlink function prototypes
360 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
362 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
365 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
368 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
372 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
376 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
377 long int *startIndex,
381 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
385 * AccessibleHypertext function prototypes
390 AccessibleHypertext_ref (AccessibleHypertext *obj);
393 AccessibleHypertext_unref (AccessibleHypertext *obj);
396 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
398 AccessibleHyperlink *
399 AccessibleHypertext_getLink (AccessibleHypertext *obj,
403 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
404 long int characterOffset);
408 * AccessibleImage function prototypes
413 AccessibleImage_ref (AccessibleImage *obj);
416 AccessibleImage_unref (AccessibleImage *obj);
419 AccessibleImage_getImageDescription (AccessibleImage *obj);
422 AccessibleImage_getImageSize (AccessibleImage *obj,
427 AccessibleImage_getImagePosition (AccessibleImage *obj,
430 AccessibleCoordType ctype);
433 AccessibleImage_getImageExtents (AccessibleImage *obj,
438 AccessibleCoordType ctype);
441 * AccessibleRelation function prototypes
445 void AccessibleRelation_ref (AccessibleRelation *obj);
446 void AccessibleRelation_unref (AccessibleRelation *obj);
448 AccessibleRelationType
449 AccessibleRelation_getRelationType (AccessibleRelation *obj);
452 AccessibleRelation_getNTargets (AccessibleRelation *obj);
455 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
460 * AccessibleSelection function prototypes
464 void AccessibleSelection_ref (AccessibleSelection *obj);
465 void AccessibleSelection_unref (AccessibleSelection *obj);
468 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
471 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
472 long int selectedChildIndex);
475 AccessibleSelection_selectChild (AccessibleSelection *obj,
476 long int childIndex);
479 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
480 long int selectedChildIndex);
483 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
484 long int childIndex);
487 AccessibleSelection_selectAll (AccessibleSelection *obj);
490 AccessibleSelection_clearSelection (AccessibleSelection *obj);
495 * AccessibleStateSet function prototypes
499 void AccessibleStateSet_ref (AccessibleStateSet *obj);
500 void AccessibleStateSet_unref (AccessibleStateSet *obj);
503 AccessibleStateSet_contains (AccessibleStateSet *obj,
504 AccessibleState state);
507 AccessibleStateSet_add (AccessibleStateSet *obj,
508 AccessibleState state);
511 AccessibleStateSet_remove (AccessibleStateSet *obj,
512 AccessibleState state);
515 AccessibleStateSet_equals (AccessibleStateSet *obj,
516 AccessibleStateSet *obj2);
519 AccessibleStateSet_compare (AccessibleStateSet *obj,
520 AccessibleStateSet *obj2);
523 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
526 AccessibleStreamableContent_ref (AccessibleStreamableContent *obj);
528 AccessibleStreamableContent_unref (AccessibleStreamableContent *obj);
530 AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj);
532 AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
533 const char *content_type);
535 AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
538 AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
541 unsigned int read_type);
544 * AccessibleTable function prototypes
548 void AccessibleTable_ref (AccessibleTable *obj);
549 void AccessibleTable_unref (AccessibleTable *obj);
552 AccessibleTable_getCaption (AccessibleTable *obj);
555 AccessibleTable_getSummary (AccessibleTable *obj);
558 AccessibleTable_getNRows (AccessibleTable *obj);
561 AccessibleTable_getNColumns (AccessibleTable *obj);
564 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
569 AccessibleTable_getIndexAt (AccessibleTable *obj,
574 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
578 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
582 AccessibleTable_getRowDescription (AccessibleTable *obj,
586 AccessibleTable_getColumnDescription (AccessibleTable *obj,
590 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
595 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
600 AccessibleTable_getRowHeader (AccessibleTable *obj,
604 AccessibleTable_getColumnHeader (AccessibleTable *obj,
608 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
611 AccessibleTable_getSelectedRows (AccessibleTable *obj,
612 long int **selectedRows);
615 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
618 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
619 long int **selectedColumns);
622 AccessibleTable_isRowSelected (AccessibleTable *obj,
626 AccessibleTable_isColumnSelected (AccessibleTable *obj,
630 AccessibleTable_isSelected (AccessibleTable *obj,
636 * AccessibleText function prototypes
640 void AccessibleText_ref (AccessibleText *obj);
641 void AccessibleText_unref (AccessibleText *obj);
644 AccessibleText_getCharacterCount (AccessibleText *obj);
647 AccessibleText_getText (AccessibleText *obj,
648 long int startOffset,
652 AccessibleText_getCaretOffset (AccessibleText *obj);
655 AccessibleText_getAttributes (AccessibleText *obj,
657 long int *startOffset,
658 long int *endOffset);
662 AccessibleText_setCaretOffset (AccessibleText *obj,
666 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
668 AccessibleTextBoundaryType type,
669 long int *startOffset,
670 long int *endOffset);
673 AccessibleText_getTextAtOffset (AccessibleText *obj,
675 AccessibleTextBoundaryType type,
676 long int *startOffset,
677 long int *endOffset);
680 AccessibleText_getTextAfterOffset (AccessibleText *obj,
682 AccessibleTextBoundaryType type,
683 long int *startOffset,
684 long int *endOffset);
687 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
691 AccessibleText_getCharacterExtents (AccessibleText *obj,
697 AccessibleCoordType type);
700 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
703 AccessibleCoordType type);
706 AccessibleText_getNSelections (AccessibleText *obj);
709 AccessibleText_getSelection (AccessibleText *obj,
710 long int selectionNum,
711 long int *startOffset,
712 long int *endOffset);
716 AccessibleText_addSelection (AccessibleText *obj,
717 long int startOffset,
721 AccessibleText_removeSelection (AccessibleText *obj,
722 long int selectionNum);
725 AccessibleText_setSelection (AccessibleText *obj,
726 long int selectionNum,
727 long int startOffset,
730 /* AccessibleValue Function Prototypes: */
732 void AccessibleValue_ref (AccessibleValue *obj);
733 void AccessibleValue_unref (AccessibleValue *obj);
734 double AccessibleValue_getMinimumValue (AccessibleValue *obj);
735 double AccessibleValue_getCurrentValue (AccessibleValue *obj);
736 double AccessibleValue_getMaximumValue (AccessibleValue *obj);
737 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
741 void SPI_freeString (char *s);