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
46 SPI_RELATION_LABEL_FOR,
47 SPI_RELATION_LABELED_BY,
48 SPI_RELATION_CONTROLLER_FOR,
49 SPI_RELATION_CONTROLLED_BY,
50 SPI_RELATION_MEMBER_OF
51 } AccessibleRelationType;
54 /* don't change the order of these ! */
56 SPI_COORD_TYPE_SCREEN,
58 } AccessibleCoordType;
65 } AccessibleKeySynthType;
68 SPI_KEYLISTENER_NOSYNC = 0,
69 SPI_KEYLISTENER_SYNCHRONOUS = 1,
70 SPI_KEYLISTENER_CANCONSUME = 2,
71 SPI_KEYLISTENER_ALL_WINDOWS = 4
72 } AccessibleKeyListenerSyncType;
74 typedef unsigned long AccessibleKeyEventMask;
77 * AccessibleComponentLayer:
78 * @SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
79 * @SPI_LAYER_BACKGROUND: Component belongs to the destop background.
80 * @SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
81 * @SPI_LAYER_WIDGET: Component is a 'normal' widget.
82 * @SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
83 * Z-information relative to other MDI-layer components.
84 * @SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
86 * @SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
88 * @SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
89 * should not be encountered.
99 SPI_LAYER_LAST_DEFINED
100 } AccessibleComponentLayer;
109 * Structure containing identifying information about a set of keycode or
112 typedef struct _AccessibleKeySet
114 unsigned long *keysyms;
115 unsigned short *keycodes;
120 * SPI_KEYSET_ALL_KEYS:
121 * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
122 * includes all keycodes and keyvals for the specified modifier set.
124 #define SPI_KEYSET_ALL_KEYS NULL
126 typedef unsigned long AccessibleKeyMaskType;
129 /* Basic SPI initialization and event loop function prototypes */
132 void SPI_event_main (void);
133 void SPI_event_quit (void);
134 SPIBoolean SPI_eventIsReady (void);
135 AccessibleEvent *SPI_nextEvent (SPIBoolean waitForEvent);
138 /* Event Listener creation and support. */
140 AccessibleEventListener *
141 createAccessibleEventListener (AccessibleEventListenerCB callback,
143 SPIBoolean AccessibleEventListener_addCallback (AccessibleEventListener *listener,
144 AccessibleEventListenerCB callback,
146 SPIBoolean AccessibleEventListener_removeCallback (AccessibleEventListener *listener,
147 AccessibleEventListenerCB callback);
148 void AccessibleEventListener_unref (AccessibleEventListener *listener);
150 /* Keystroke Listener creation and support. */
152 AccessibleKeystrokeListener *
153 createAccessibleKeystrokeListener (AccessibleKeystrokeListenerCB callback,
155 SPIBoolean AccessibleKeystrokeListener_addCallback (AccessibleKeystrokeListener *listener,
156 AccessibleKeystrokeListenerCB callback,
158 SPIBoolean AccessibleKeystrokeListener_removeCallback (AccessibleKeystrokeListener *listener,
159 AccessibleKeystrokeListenerCB callback);
160 void AccessibleKeystrokeListener_unref (AccessibleKeystrokeListener *listener);
162 /* Global functions serviced by the registry */
164 SPIBoolean registerGlobalEventListener (AccessibleEventListener *listener,
165 const char *eventType);
166 SPIBoolean deregisterGlobalEventListener (AccessibleEventListener *listener,
167 const char *eventType);
168 SPIBoolean deregisterGlobalEventListenerAll (AccessibleEventListener *listener);
170 SPIBoolean registerAccessibleKeystrokeListener (
171 AccessibleKeystrokeListener *listener,
172 AccessibleKeySet *keys,
173 AccessibleKeyMaskType modmask,
174 AccessibleKeyEventMask eventmask,
175 AccessibleKeyListenerSyncType sync_type);
176 SPIBoolean deregisterAccessibleKeystrokeListener (
177 AccessibleKeystrokeListener *listener,
178 AccessibleKeyMaskType modmask);
180 int getDesktopCount (void);
181 Accessible *getDesktop (int i);
182 int getDesktopList (Accessible **list);
184 SPIBoolean generateKeyEvent (long int keyval,
185 AccessibleKeySynthType synth_type);
186 SPIBoolean generateMouseEvent (long int x, long int y, char *name);
188 /* Accessible function prototypes */
190 void Accessible_ref (Accessible *obj);
191 void Accessible_unref (Accessible *obj);
192 char * Accessible_getName (Accessible *obj);
193 char * Accessible_getDescription (Accessible *obj);
194 Accessible * Accessible_getParent (Accessible *obj);
195 long Accessible_getChildCount (Accessible *obj);
196 Accessible * Accessible_getChildAtIndex (Accessible *obj,
197 long int childIndex);
198 long Accessible_getIndexInParent (Accessible *obj);
199 AccessibleRelation **Accessible_getRelationSet (Accessible *obj);
200 AccessibleRole Accessible_getRole (Accessible *obj);
201 char * Accessible_getRoleName (Accessible *obj);
202 AccessibleStateSet * Accessible_getStateSet (Accessible *obj);
204 /* Interface query methods */
206 SPIBoolean Accessible_isAction (Accessible *obj);
207 SPIBoolean Accessible_isApplication (Accessible *obj);
208 SPIBoolean Accessible_isComponent (Accessible *obj);
209 SPIBoolean Accessible_isEditableText (Accessible *obj);
210 SPIBoolean Accessible_isHypertext (Accessible *obj);
211 SPIBoolean Accessible_isImage (Accessible *obj);
212 SPIBoolean Accessible_isSelection (Accessible *obj);
213 SPIBoolean Accessible_isTable (Accessible *obj);
214 SPIBoolean Accessible_isText (Accessible *obj);
215 SPIBoolean Accessible_isValue (Accessible *obj);
217 AccessibleAction * Accessible_getAction (Accessible *obj);
218 AccessibleApplication * Accessible_getApplication (Accessible *obj);
219 AccessibleComponent * Accessible_getComponent (Accessible *obj);
220 AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
221 AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
222 AccessibleImage * Accessible_getImage (Accessible *obj);
223 AccessibleSelection * Accessible_getSelection (Accessible *obj);
224 AccessibleTable * Accessible_getTable (Accessible *obj);
225 AccessibleText * Accessible_getText (Accessible *obj);
226 AccessibleValue * Accessible_getValue (Accessible *obj);
227 AccessibleUnknown * Accessible_queryInterface (Accessible *obj,
228 const char *interface_name);
230 /* AccessibleAction function prototypes */
232 void AccessibleAction_ref (AccessibleAction *obj);
233 void AccessibleAction_unref (AccessibleAction *obj);
234 long AccessibleAction_getNActions (AccessibleAction *obj);
235 char *AccessibleAction_getName (AccessibleAction *obj,
237 char *AccessibleAction_getDescription (AccessibleAction *obj,
239 SPIBoolean AccessibleAction_doAction (AccessibleAction *obj,
241 char *AccessibleAction_getKeyBinding (AccessibleAction *obj,
244 /* AccessibleApplication function prototypes */
246 void AccessibleApplication_ref (AccessibleApplication *obj);
247 void AccessibleApplication_unref (AccessibleApplication *obj);
248 char *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
249 char *AccessibleApplication_getVersion (AccessibleApplication *obj);
250 long AccessibleApplication_getID (AccessibleApplication *obj);
251 SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
252 SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
254 /* AccessibleComponent function prototypes */
256 void AccessibleComponent_ref (AccessibleComponent *obj);
257 void AccessibleComponent_unref (AccessibleComponent *obj);
258 SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj,
261 AccessibleCoordType ctype);
262 Accessible *AccessibleComponent_getAccessibleAtPoint (
263 AccessibleComponent *obj,
266 AccessibleCoordType ctype);
267 void AccessibleComponent_getExtents (AccessibleComponent *obj,
272 AccessibleCoordType ctype);
273 void AccessibleComponent_getPosition (AccessibleComponent *obj,
276 AccessibleCoordType ctype);
277 void AccessibleComponent_getSize (AccessibleComponent *obj,
280 AccessibleComponentLayer
281 AccessibleComponent_getLayer (AccessibleComponent *obj);
282 void AccessibleComponent_grabFocus (AccessibleComponent *obj);
283 short AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
285 /* AccessibleEditableText function prototypes */
288 AccessibleEditableText_ref (AccessibleEditableText *obj);
291 AccessibleEditableText_unref (AccessibleEditableText *obj);
294 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
295 const char *attributes,
296 long int startOffset,
300 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
301 const char *newContents);
304 AccessibleEditableText_insertText (AccessibleEditableText *obj,
310 AccessibleEditableText_copyText (AccessibleText *obj,
315 AccessibleEditableText_cutText (AccessibleEditableText *obj,
320 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
325 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
330 * AccessibleHyperlink function prototypes
334 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
336 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
339 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
342 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
346 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
350 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
351 long int *startIndex,
355 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
359 * AccessibleHypertext function prototypes
364 AccessibleHypertext_ref (AccessibleHypertext *obj);
367 AccessibleHypertext_unref (AccessibleHypertext *obj);
370 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
372 AccessibleHyperlink *
373 AccessibleHypertext_getLink (AccessibleHypertext *obj,
377 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
378 long int characterOffset);
382 * AccessibleImage function prototypes
387 AccessibleImage_ref (AccessibleImage *obj);
390 AccessibleImage_unref (AccessibleImage *obj);
393 AccessibleImage_getImageDescription (AccessibleImage *obj);
396 AccessibleImage_getImageSize (AccessibleImage *obj,
401 AccessibleImage_getImagePosition (AccessibleImage *obj,
404 AccessibleCoordType ctype);
407 AccessibleImage_getImageExtents (AccessibleImage *obj,
412 AccessibleCoordType ctype);
415 * AccessibleRelation function prototypes
419 void AccessibleRelation_ref (AccessibleRelation *obj);
420 void AccessibleRelation_unref (AccessibleRelation *obj);
422 AccessibleRelationType
423 AccessibleRelation_getRelationType (AccessibleRelation *obj);
426 AccessibleRelation_getNTargets (AccessibleRelation *obj);
429 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
434 * AccessibleSelection function prototypes
438 void AccessibleSelection_ref (AccessibleSelection *obj);
439 void AccessibleSelection_unref (AccessibleSelection *obj);
442 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
445 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
446 long int selectedChildIndex);
449 AccessibleSelection_selectChild (AccessibleSelection *obj,
450 long int childIndex);
453 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
454 long int selectedChildIndex);
457 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
458 long int childIndex);
461 AccessibleSelection_selectAll (AccessibleSelection *obj);
464 AccessibleSelection_clearSelection (AccessibleSelection *obj);
469 * AccessibleStateSet function prototypes
473 void AccessibleStateSet_ref (AccessibleStateSet *obj);
474 void AccessibleStateSet_unref (AccessibleStateSet *obj);
477 AccessibleStateSet_contains (AccessibleStateSet *obj,
478 AccessibleState state);
481 AccessibleStateSet_add (AccessibleStateSet *obj,
482 AccessibleState state);
485 AccessibleStateSet_remove (AccessibleStateSet *obj,
486 AccessibleState state);
489 AccessibleStateSet_equals (AccessibleStateSet *obj,
490 AccessibleStateSet *obj2);
493 AccessibleStateSet_compare (AccessibleStateSet *obj,
494 AccessibleStateSet *obj2);
497 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
502 * AccessibleTable function prototypes
506 void AccessibleTable_ref (AccessibleTable *obj);
507 void AccessibleTable_unref (AccessibleTable *obj);
510 AccessibleTable_getCaption (AccessibleTable *obj);
513 AccessibleTable_getSummary (AccessibleTable *obj);
516 AccessibleTable_getNRows (AccessibleTable *obj);
519 AccessibleTable_getNColumns (AccessibleTable *obj);
522 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
527 AccessibleTable_getIndexAt (AccessibleTable *obj,
532 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
536 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
540 AccessibleTable_getRowDescription (AccessibleTable *obj,
544 AccessibleTable_getColumnDescription (AccessibleTable *obj,
548 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
553 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
558 AccessibleTable_getRowHeader (AccessibleTable *obj,
562 AccessibleTable_getColumnHeader (AccessibleTable *obj,
566 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
569 AccessibleTable_getSelectedRows (AccessibleTable *obj,
570 long int **selectedRows);
573 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
576 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
577 long int **selectedColumns);
580 AccessibleTable_isRowSelected (AccessibleTable *obj,
584 AccessibleTable_isColumnSelected (AccessibleTable *obj,
588 AccessibleTable_isSelected (AccessibleTable *obj,
594 * AccessibleText function prototypes
598 void AccessibleText_ref (AccessibleText *obj);
599 void AccessibleText_unref (AccessibleText *obj);
602 AccessibleText_getCharacterCount (AccessibleText *obj);
605 AccessibleText_getText (AccessibleText *obj,
606 long int startOffset,
610 AccessibleText_getCaretOffset (AccessibleText *obj);
613 AccessibleText_getAttributes (AccessibleText *obj,
615 long int *startOffset,
616 long int *endOffset);
620 AccessibleText_setCaretOffset (AccessibleText *obj,
624 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
626 AccessibleTextBoundaryType type,
627 long int *startOffset,
628 long int *endOffset);
631 AccessibleText_getTextAtOffset (AccessibleText *obj,
633 AccessibleTextBoundaryType type,
634 long int *startOffset,
635 long int *endOffset);
638 AccessibleText_getTextAfterOffset (AccessibleText *obj,
640 AccessibleTextBoundaryType type,
641 long int *startOffset,
642 long int *endOffset);
645 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
649 AccessibleText_getCharacterExtents (AccessibleText *obj,
655 AccessibleCoordType type);
658 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
661 AccessibleCoordType type);
664 AccessibleText_getNSelections (AccessibleText *obj);
667 AccessibleText_getSelection (AccessibleText *obj,
668 long int selectionNum,
669 long int *startOffset,
670 long int *endOffset);
674 AccessibleText_addSelection (AccessibleText *obj,
675 long int startOffset,
679 AccessibleText_removeSelection (AccessibleText *obj,
680 long int selectionNum);
683 AccessibleText_setSelection (AccessibleText *obj,
684 long int selectionNum,
685 long int startOffset,
688 /* AccessibleValue Function Prototypes: */
690 void AccessibleValue_ref (AccessibleValue *obj);
691 void AccessibleValue_unref (AccessibleValue *obj);
692 double AccessibleValue_getMinimumValue (AccessibleValue *obj);
693 double AccessibleValue_getCurrentValue (AccessibleValue *obj);
694 double AccessibleValue_getMaximumValue (AccessibleValue *obj);
695 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
699 void SPI_freeString (char *s);