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;
121 * SPI_KEYSET_ALL_KEYS:
122 * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
123 * includes all keycodes and keyvals for the specified modifier set.
125 #define SPI_KEYSET_ALL_KEYS NULL
127 typedef unsigned long AccessibleKeyMaskType;
130 /* Basic SPI initialization and event loop function prototypes */
133 void SPI_event_main (void);
134 void SPI_event_quit (void);
135 SPIBoolean SPI_eventIsReady (void);
136 AccessibleEvent *SPI_nextEvent (SPIBoolean waitForEvent);
139 /* Event Listener creation and support. */
141 void SPI_freeAccessibleKeySet (
142 AccessibleKeySet *keyset);
143 AccessibleKeySet * SPI_createAccessibleKeySet (
147 const char **keystrings);
148 AccessibleEventListener * SPI_createAccessibleEventListener (
149 AccessibleEventListenerCB callback,
151 SPIBoolean AccessibleEventListener_addCallback (
152 AccessibleEventListener *listener,
153 AccessibleEventListenerCB callback,
155 SPIBoolean AccessibleEventListener_removeCallback (
156 AccessibleEventListener *listener,
157 AccessibleEventListenerCB callback);
158 void AccessibleEventListener_unref (
159 AccessibleEventListener *listener);
161 /* Keystroke Listener creation and support. */
163 AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
164 AccessibleKeystrokeListenerCB callback,
166 SPIBoolean AccessibleKeystrokeListener_addCallback (
167 AccessibleKeystrokeListener *listener,
168 AccessibleKeystrokeListenerCB callback,
170 SPIBoolean AccessibleKeystrokeListener_removeCallback (
171 AccessibleKeystrokeListener *listener,
172 AccessibleKeystrokeListenerCB callback);
173 void AccessibleKeystrokeListener_unref (
174 AccessibleKeystrokeListener *listener);
176 /* Global functions serviced by the registry */
178 SPIBoolean SPI_registerGlobalEventListener (
179 AccessibleEventListener *listener,
180 const char *eventType);
181 SPIBoolean SPI_deregisterGlobalEventListener (
182 AccessibleEventListener *listener,
183 const char *eventType);
184 SPIBoolean SPI_deregisterGlobalEventListenerAll (
185 AccessibleEventListener *listener);
186 SPIBoolean SPI_registerAccessibleKeystrokeListener (
187 AccessibleKeystrokeListener *listener,
188 AccessibleKeySet *keys,
189 AccessibleKeyMaskType modmask,
190 AccessibleKeyEventMask eventmask,
191 AccessibleKeyListenerSyncType sync_type);
192 SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
193 AccessibleKeystrokeListener *listener,
194 AccessibleKeyMaskType modmask);
196 int SPI_getDesktopCount (void);
197 Accessible *SPI_getDesktop (int i);
198 int SPI_getDesktopList (Accessible **list);
200 SPIBoolean SPI_generateKeyEvent (long int keyval,
201 AccessibleKeySynthType synth_type);
202 SPIBoolean SPI_generateMouseEvent (long int x, long int y, char *name);
204 /* Accessible function prototypes */
206 void Accessible_ref (Accessible *obj);
207 void Accessible_unref (Accessible *obj);
208 char * Accessible_getName (Accessible *obj);
209 char * Accessible_getDescription (Accessible *obj);
210 Accessible * Accessible_getParent (Accessible *obj);
211 long Accessible_getChildCount (Accessible *obj);
212 Accessible * Accessible_getChildAtIndex (Accessible *obj,
213 long int childIndex);
214 long Accessible_getIndexInParent (Accessible *obj);
215 AccessibleRelation **Accessible_getRelationSet (Accessible *obj);
216 AccessibleRole Accessible_getRole (Accessible *obj);
217 char * Accessible_getRoleName (Accessible *obj);
218 AccessibleStateSet * Accessible_getStateSet (Accessible *obj);
220 /* Interface query methods */
222 SPIBoolean Accessible_isAction (Accessible *obj);
223 SPIBoolean Accessible_isApplication (Accessible *obj);
224 SPIBoolean Accessible_isComponent (Accessible *obj);
225 SPIBoolean Accessible_isEditableText (Accessible *obj);
226 SPIBoolean Accessible_isHypertext (Accessible *obj);
227 SPIBoolean Accessible_isImage (Accessible *obj);
228 SPIBoolean Accessible_isSelection (Accessible *obj);
229 SPIBoolean Accessible_isTable (Accessible *obj);
230 SPIBoolean Accessible_isText (Accessible *obj);
231 SPIBoolean Accessible_isValue (Accessible *obj);
233 AccessibleAction * Accessible_getAction (Accessible *obj);
234 AccessibleApplication * Accessible_getApplication (Accessible *obj);
235 AccessibleComponent * Accessible_getComponent (Accessible *obj);
236 AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
237 AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
238 AccessibleImage * Accessible_getImage (Accessible *obj);
239 AccessibleSelection * Accessible_getSelection (Accessible *obj);
240 AccessibleTable * Accessible_getTable (Accessible *obj);
241 AccessibleText * Accessible_getText (Accessible *obj);
242 AccessibleValue * Accessible_getValue (Accessible *obj);
243 AccessibleUnknown * Accessible_queryInterface (Accessible *obj,
244 const char *interface_name);
246 /* AccessibleAction function prototypes */
248 void AccessibleAction_ref (AccessibleAction *obj);
249 void AccessibleAction_unref (AccessibleAction *obj);
250 long AccessibleAction_getNActions (AccessibleAction *obj);
251 char *AccessibleAction_getName (AccessibleAction *obj,
253 char *AccessibleAction_getDescription (AccessibleAction *obj,
255 SPIBoolean AccessibleAction_doAction (AccessibleAction *obj,
257 char *AccessibleAction_getKeyBinding (AccessibleAction *obj,
260 /* AccessibleApplication function prototypes */
262 void AccessibleApplication_ref (AccessibleApplication *obj);
263 void AccessibleApplication_unref (AccessibleApplication *obj);
264 char *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
265 char *AccessibleApplication_getVersion (AccessibleApplication *obj);
266 long AccessibleApplication_getID (AccessibleApplication *obj);
267 SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
268 SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
270 /* AccessibleComponent function prototypes */
272 void AccessibleComponent_ref (AccessibleComponent *obj);
273 void AccessibleComponent_unref (AccessibleComponent *obj);
274 SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj,
277 AccessibleCoordType ctype);
278 Accessible *AccessibleComponent_getAccessibleAtPoint (
279 AccessibleComponent *obj,
282 AccessibleCoordType ctype);
283 void AccessibleComponent_getExtents (AccessibleComponent *obj,
288 AccessibleCoordType ctype);
289 void AccessibleComponent_getPosition (AccessibleComponent *obj,
292 AccessibleCoordType ctype);
293 void AccessibleComponent_getSize (AccessibleComponent *obj,
296 AccessibleComponentLayer
297 AccessibleComponent_getLayer (AccessibleComponent *obj);
298 void AccessibleComponent_grabFocus (AccessibleComponent *obj);
299 short AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
301 /* AccessibleEditableText function prototypes */
304 AccessibleEditableText_ref (AccessibleEditableText *obj);
307 AccessibleEditableText_unref (AccessibleEditableText *obj);
310 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
311 const char *attributes,
312 long int startOffset,
316 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
317 const char *newContents);
320 AccessibleEditableText_insertText (AccessibleEditableText *obj,
326 AccessibleEditableText_copyText (AccessibleText *obj,
331 AccessibleEditableText_cutText (AccessibleEditableText *obj,
336 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
341 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
346 * AccessibleHyperlink function prototypes
350 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
352 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
355 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
358 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
362 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
366 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
367 long int *startIndex,
371 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
375 * AccessibleHypertext function prototypes
380 AccessibleHypertext_ref (AccessibleHypertext *obj);
383 AccessibleHypertext_unref (AccessibleHypertext *obj);
386 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
388 AccessibleHyperlink *
389 AccessibleHypertext_getLink (AccessibleHypertext *obj,
393 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
394 long int characterOffset);
398 * AccessibleImage function prototypes
403 AccessibleImage_ref (AccessibleImage *obj);
406 AccessibleImage_unref (AccessibleImage *obj);
409 AccessibleImage_getImageDescription (AccessibleImage *obj);
412 AccessibleImage_getImageSize (AccessibleImage *obj,
417 AccessibleImage_getImagePosition (AccessibleImage *obj,
420 AccessibleCoordType ctype);
423 AccessibleImage_getImageExtents (AccessibleImage *obj,
428 AccessibleCoordType ctype);
431 * AccessibleRelation function prototypes
435 void AccessibleRelation_ref (AccessibleRelation *obj);
436 void AccessibleRelation_unref (AccessibleRelation *obj);
438 AccessibleRelationType
439 AccessibleRelation_getRelationType (AccessibleRelation *obj);
442 AccessibleRelation_getNTargets (AccessibleRelation *obj);
445 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
450 * AccessibleSelection function prototypes
454 void AccessibleSelection_ref (AccessibleSelection *obj);
455 void AccessibleSelection_unref (AccessibleSelection *obj);
458 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
461 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
462 long int selectedChildIndex);
465 AccessibleSelection_selectChild (AccessibleSelection *obj,
466 long int childIndex);
469 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
470 long int selectedChildIndex);
473 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
474 long int childIndex);
477 AccessibleSelection_selectAll (AccessibleSelection *obj);
480 AccessibleSelection_clearSelection (AccessibleSelection *obj);
485 * AccessibleStateSet function prototypes
489 void AccessibleStateSet_ref (AccessibleStateSet *obj);
490 void AccessibleStateSet_unref (AccessibleStateSet *obj);
493 AccessibleStateSet_contains (AccessibleStateSet *obj,
494 AccessibleState state);
497 AccessibleStateSet_add (AccessibleStateSet *obj,
498 AccessibleState state);
501 AccessibleStateSet_remove (AccessibleStateSet *obj,
502 AccessibleState state);
505 AccessibleStateSet_equals (AccessibleStateSet *obj,
506 AccessibleStateSet *obj2);
509 AccessibleStateSet_compare (AccessibleStateSet *obj,
510 AccessibleStateSet *obj2);
513 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
518 * AccessibleTable function prototypes
522 void AccessibleTable_ref (AccessibleTable *obj);
523 void AccessibleTable_unref (AccessibleTable *obj);
526 AccessibleTable_getCaption (AccessibleTable *obj);
529 AccessibleTable_getSummary (AccessibleTable *obj);
532 AccessibleTable_getNRows (AccessibleTable *obj);
535 AccessibleTable_getNColumns (AccessibleTable *obj);
538 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
543 AccessibleTable_getIndexAt (AccessibleTable *obj,
548 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
552 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
556 AccessibleTable_getRowDescription (AccessibleTable *obj,
560 AccessibleTable_getColumnDescription (AccessibleTable *obj,
564 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
569 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
574 AccessibleTable_getRowHeader (AccessibleTable *obj,
578 AccessibleTable_getColumnHeader (AccessibleTable *obj,
582 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
585 AccessibleTable_getSelectedRows (AccessibleTable *obj,
586 long int **selectedRows);
589 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
592 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
593 long int **selectedColumns);
596 AccessibleTable_isRowSelected (AccessibleTable *obj,
600 AccessibleTable_isColumnSelected (AccessibleTable *obj,
604 AccessibleTable_isSelected (AccessibleTable *obj,
610 * AccessibleText function prototypes
614 void AccessibleText_ref (AccessibleText *obj);
615 void AccessibleText_unref (AccessibleText *obj);
618 AccessibleText_getCharacterCount (AccessibleText *obj);
621 AccessibleText_getText (AccessibleText *obj,
622 long int startOffset,
626 AccessibleText_getCaretOffset (AccessibleText *obj);
629 AccessibleText_getAttributes (AccessibleText *obj,
631 long int *startOffset,
632 long int *endOffset);
636 AccessibleText_setCaretOffset (AccessibleText *obj,
640 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
642 AccessibleTextBoundaryType type,
643 long int *startOffset,
644 long int *endOffset);
647 AccessibleText_getTextAtOffset (AccessibleText *obj,
649 AccessibleTextBoundaryType type,
650 long int *startOffset,
651 long int *endOffset);
654 AccessibleText_getTextAfterOffset (AccessibleText *obj,
656 AccessibleTextBoundaryType type,
657 long int *startOffset,
658 long int *endOffset);
661 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
665 AccessibleText_getCharacterExtents (AccessibleText *obj,
671 AccessibleCoordType type);
674 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
677 AccessibleCoordType type);
680 AccessibleText_getNSelections (AccessibleText *obj);
683 AccessibleText_getSelection (AccessibleText *obj,
684 long int selectionNum,
685 long int *startOffset,
686 long int *endOffset);
690 AccessibleText_addSelection (AccessibleText *obj,
691 long int startOffset,
695 AccessibleText_removeSelection (AccessibleText *obj,
696 long int selectionNum);
699 AccessibleText_setSelection (AccessibleText *obj,
700 long int selectionNum,
701 long int startOffset,
704 /* AccessibleValue Function Prototypes: */
706 void AccessibleValue_ref (AccessibleValue *obj);
707 void AccessibleValue_unref (AccessibleValue *obj);
708 double AccessibleValue_getMinimumValue (AccessibleValue *obj);
709 double AccessibleValue_getCurrentValue (AccessibleValue *obj);
710 double AccessibleValue_getMaximumValue (AccessibleValue *obj);
711 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
715 void SPI_freeString (char *s);