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;
66 } AccessibleKeySynthType;
69 SPI_KEYLISTENER_NOSYNC = 0,
70 SPI_KEYLISTENER_SYNCHRONOUS = 1,
71 SPI_KEYLISTENER_CANCONSUME = 2,
72 SPI_KEYLISTENER_ALL_WINDOWS = 4
73 } AccessibleKeyListenerSyncType;
75 typedef unsigned long AccessibleKeyEventMask;
78 * AccessibleComponentLayer:
79 * @SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
80 * @SPI_LAYER_BACKGROUND: Component belongs to the destop background.
81 * @SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
82 * @SPI_LAYER_WIDGET: Component is a 'normal' widget.
83 * @SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
84 * Z-information relative to other MDI-layer components.
85 * @SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
87 * @SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
89 * @SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
90 * should not be encountered.
100 SPI_LAYER_LAST_DEFINED
101 } AccessibleComponentLayer;
110 * Structure containing identifying information about a set of keycode or
113 typedef struct _AccessibleKeySet
115 unsigned long *keysyms;
116 unsigned short *keycodes;
122 * SPI_KEYSET_ALL_KEYS:
123 * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
124 * includes all keycodes and keyvals for the specified modifier set.
126 #define SPI_KEYSET_ALL_KEYS NULL
128 typedef unsigned long AccessibleKeyMaskType;
131 /* Basic SPI initialization and event loop function prototypes */
134 void SPI_event_main (void);
135 void SPI_event_quit (void);
136 SPIBoolean SPI_eventIsReady (void);
137 AccessibleEvent *SPI_nextEvent (SPIBoolean waitForEvent);
140 /* Event Listener creation and support. */
142 void SPI_freeAccessibleKeySet (
143 AccessibleKeySet *keyset);
144 AccessibleKeySet * SPI_createAccessibleKeySet (
148 const char **keystrings);
149 AccessibleEventListener * SPI_createAccessibleEventListener (
150 AccessibleEventListenerCB callback,
152 SPIBoolean AccessibleEventListener_addCallback (
153 AccessibleEventListener *listener,
154 AccessibleEventListenerCB callback,
156 SPIBoolean AccessibleEventListener_removeCallback (
157 AccessibleEventListener *listener,
158 AccessibleEventListenerCB callback);
159 void AccessibleEventListener_unref (
160 AccessibleEventListener *listener);
162 /* Keystroke Listener creation and support. */
164 AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
165 AccessibleKeystrokeListenerCB callback,
167 SPIBoolean AccessibleKeystrokeListener_addCallback (
168 AccessibleKeystrokeListener *listener,
169 AccessibleKeystrokeListenerCB callback,
171 SPIBoolean AccessibleKeystrokeListener_removeCallback (
172 AccessibleKeystrokeListener *listener,
173 AccessibleKeystrokeListenerCB callback);
174 void AccessibleKeystrokeListener_unref (
175 AccessibleKeystrokeListener *listener);
177 /* Global functions serviced by the registry */
179 SPIBoolean SPI_registerGlobalEventListener (
180 AccessibleEventListener *listener,
181 const char *eventType);
182 SPIBoolean SPI_deregisterGlobalEventListener (
183 AccessibleEventListener *listener,
184 const char *eventType);
185 SPIBoolean SPI_deregisterGlobalEventListenerAll (
186 AccessibleEventListener *listener);
187 SPIBoolean SPI_registerAccessibleKeystrokeListener (
188 AccessibleKeystrokeListener *listener,
189 AccessibleKeySet *keys,
190 AccessibleKeyMaskType modmask,
191 AccessibleKeyEventMask eventmask,
192 AccessibleKeyListenerSyncType sync_type);
193 SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
194 AccessibleKeystrokeListener *listener,
195 AccessibleKeyMaskType modmask);
197 int SPI_getDesktopCount (void);
198 Accessible *SPI_getDesktop (int i);
199 int SPI_getDesktopList (Accessible **list);
201 SPIBoolean SPI_generateKeyboardEvent (long int keyval,
203 AccessibleKeySynthType synth_type);
205 SPIBoolean SPI_generateMouseEvent (long int x, long int y, char *name);
207 /* Accessible function prototypes */
209 void Accessible_ref (Accessible *obj);
210 void Accessible_unref (Accessible *obj);
211 char * Accessible_getName (Accessible *obj);
212 char * Accessible_getDescription (Accessible *obj);
213 Accessible * Accessible_getParent (Accessible *obj);
214 long Accessible_getChildCount (Accessible *obj);
215 Accessible * Accessible_getChildAtIndex (Accessible *obj,
216 long int childIndex);
217 long Accessible_getIndexInParent (Accessible *obj);
218 AccessibleRelation **Accessible_getRelationSet (Accessible *obj);
219 AccessibleRole Accessible_getRole (Accessible *obj);
220 char * Accessible_getRoleName (Accessible *obj);
221 AccessibleStateSet * Accessible_getStateSet (Accessible *obj);
223 /* Interface query methods */
225 SPIBoolean Accessible_isAction (Accessible *obj);
226 SPIBoolean Accessible_isApplication (Accessible *obj);
227 SPIBoolean Accessible_isComponent (Accessible *obj);
228 SPIBoolean Accessible_isEditableText (Accessible *obj);
229 SPIBoolean Accessible_isHypertext (Accessible *obj);
230 SPIBoolean Accessible_isImage (Accessible *obj);
231 SPIBoolean Accessible_isSelection (Accessible *obj);
232 SPIBoolean Accessible_isStreamableContent (Accessible *obj);
233 SPIBoolean Accessible_isTable (Accessible *obj);
234 SPIBoolean Accessible_isText (Accessible *obj);
235 SPIBoolean Accessible_isValue (Accessible *obj);
237 AccessibleAction * Accessible_getAction (Accessible *obj);
238 AccessibleApplication * Accessible_getApplication (Accessible *obj);
239 AccessibleComponent * Accessible_getComponent (Accessible *obj);
240 AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
241 AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
242 AccessibleImage * Accessible_getImage (Accessible *obj);
243 AccessibleSelection * Accessible_getSelection (Accessible *obj);
244 AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
245 AccessibleTable * Accessible_getTable (Accessible *obj);
246 AccessibleText * Accessible_getText (Accessible *obj);
247 AccessibleValue * Accessible_getValue (Accessible *obj);
248 AccessibleUnknown * Accessible_queryInterface (Accessible *obj,
249 const char *interface_name);
251 /* AccessibleAction function prototypes */
253 void AccessibleAction_ref (AccessibleAction *obj);
254 void AccessibleAction_unref (AccessibleAction *obj);
255 long AccessibleAction_getNActions (AccessibleAction *obj);
256 char *AccessibleAction_getName (AccessibleAction *obj,
258 char *AccessibleAction_getDescription (AccessibleAction *obj,
260 SPIBoolean AccessibleAction_doAction (AccessibleAction *obj,
262 char *AccessibleAction_getKeyBinding (AccessibleAction *obj,
265 /* AccessibleApplication function prototypes */
267 void AccessibleApplication_ref (AccessibleApplication *obj);
268 void AccessibleApplication_unref (AccessibleApplication *obj);
269 char *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
270 char *AccessibleApplication_getVersion (AccessibleApplication *obj);
271 long AccessibleApplication_getID (AccessibleApplication *obj);
272 SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
273 SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
275 /* AccessibleComponent function prototypes */
277 void AccessibleComponent_ref (AccessibleComponent *obj);
278 void AccessibleComponent_unref (AccessibleComponent *obj);
279 SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj,
282 AccessibleCoordType ctype);
283 Accessible *AccessibleComponent_getAccessibleAtPoint (
284 AccessibleComponent *obj,
287 AccessibleCoordType ctype);
288 void AccessibleComponent_getExtents (AccessibleComponent *obj,
293 AccessibleCoordType ctype);
294 void AccessibleComponent_getPosition (AccessibleComponent *obj,
297 AccessibleCoordType ctype);
298 void AccessibleComponent_getSize (AccessibleComponent *obj,
301 AccessibleComponentLayer
302 AccessibleComponent_getLayer (AccessibleComponent *obj);
303 void AccessibleComponent_grabFocus (AccessibleComponent *obj);
304 short AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
306 /* AccessibleEditableText function prototypes */
309 AccessibleEditableText_ref (AccessibleEditableText *obj);
312 AccessibleEditableText_unref (AccessibleEditableText *obj);
315 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
316 const char *attributes,
317 long int startOffset,
321 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
322 const char *newContents);
325 AccessibleEditableText_insertText (AccessibleEditableText *obj,
331 AccessibleEditableText_copyText (AccessibleText *obj,
336 AccessibleEditableText_cutText (AccessibleEditableText *obj,
341 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
346 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
351 * AccessibleHyperlink function prototypes
355 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
357 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
360 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
363 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
367 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
371 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
372 long int *startIndex,
376 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
380 * AccessibleHypertext function prototypes
385 AccessibleHypertext_ref (AccessibleHypertext *obj);
388 AccessibleHypertext_unref (AccessibleHypertext *obj);
391 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
393 AccessibleHyperlink *
394 AccessibleHypertext_getLink (AccessibleHypertext *obj,
398 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
399 long int characterOffset);
403 * AccessibleImage function prototypes
408 AccessibleImage_ref (AccessibleImage *obj);
411 AccessibleImage_unref (AccessibleImage *obj);
414 AccessibleImage_getImageDescription (AccessibleImage *obj);
417 AccessibleImage_getImageSize (AccessibleImage *obj,
422 AccessibleImage_getImagePosition (AccessibleImage *obj,
425 AccessibleCoordType ctype);
428 AccessibleImage_getImageExtents (AccessibleImage *obj,
433 AccessibleCoordType ctype);
436 * AccessibleRelation function prototypes
440 void AccessibleRelation_ref (AccessibleRelation *obj);
441 void AccessibleRelation_unref (AccessibleRelation *obj);
443 AccessibleRelationType
444 AccessibleRelation_getRelationType (AccessibleRelation *obj);
447 AccessibleRelation_getNTargets (AccessibleRelation *obj);
450 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
455 * AccessibleSelection function prototypes
459 void AccessibleSelection_ref (AccessibleSelection *obj);
460 void AccessibleSelection_unref (AccessibleSelection *obj);
463 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
466 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
467 long int selectedChildIndex);
470 AccessibleSelection_selectChild (AccessibleSelection *obj,
471 long int childIndex);
474 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
475 long int selectedChildIndex);
478 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
479 long int childIndex);
482 AccessibleSelection_selectAll (AccessibleSelection *obj);
485 AccessibleSelection_clearSelection (AccessibleSelection *obj);
490 * AccessibleStateSet function prototypes
494 void AccessibleStateSet_ref (AccessibleStateSet *obj);
495 void AccessibleStateSet_unref (AccessibleStateSet *obj);
498 AccessibleStateSet_contains (AccessibleStateSet *obj,
499 AccessibleState state);
502 AccessibleStateSet_add (AccessibleStateSet *obj,
503 AccessibleState state);
506 AccessibleStateSet_remove (AccessibleStateSet *obj,
507 AccessibleState state);
510 AccessibleStateSet_equals (AccessibleStateSet *obj,
511 AccessibleStateSet *obj2);
514 AccessibleStateSet_compare (AccessibleStateSet *obj,
515 AccessibleStateSet *obj2);
518 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
521 AccessibleStreamableContent_ref (AccessibleStreamableContent *obj);
523 AccessibleStreamableContent_unref (AccessibleStreamableContent *obj);
525 AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj);
527 AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
528 const char *content_type);
530 AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
533 AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
536 unsigned int read_type);
539 * AccessibleTable function prototypes
543 void AccessibleTable_ref (AccessibleTable *obj);
544 void AccessibleTable_unref (AccessibleTable *obj);
547 AccessibleTable_getCaption (AccessibleTable *obj);
550 AccessibleTable_getSummary (AccessibleTable *obj);
553 AccessibleTable_getNRows (AccessibleTable *obj);
556 AccessibleTable_getNColumns (AccessibleTable *obj);
559 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
564 AccessibleTable_getIndexAt (AccessibleTable *obj,
569 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
573 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
577 AccessibleTable_getRowDescription (AccessibleTable *obj,
581 AccessibleTable_getColumnDescription (AccessibleTable *obj,
585 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
590 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
595 AccessibleTable_getRowHeader (AccessibleTable *obj,
599 AccessibleTable_getColumnHeader (AccessibleTable *obj,
603 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
606 AccessibleTable_getSelectedRows (AccessibleTable *obj,
607 long int **selectedRows);
610 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
613 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
614 long int **selectedColumns);
617 AccessibleTable_isRowSelected (AccessibleTable *obj,
621 AccessibleTable_isColumnSelected (AccessibleTable *obj,
625 AccessibleTable_isSelected (AccessibleTable *obj,
631 * AccessibleText function prototypes
635 void AccessibleText_ref (AccessibleText *obj);
636 void AccessibleText_unref (AccessibleText *obj);
639 AccessibleText_getCharacterCount (AccessibleText *obj);
642 AccessibleText_getText (AccessibleText *obj,
643 long int startOffset,
647 AccessibleText_getCaretOffset (AccessibleText *obj);
650 AccessibleText_getAttributes (AccessibleText *obj,
652 long int *startOffset,
653 long int *endOffset);
657 AccessibleText_setCaretOffset (AccessibleText *obj,
661 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
663 AccessibleTextBoundaryType type,
664 long int *startOffset,
665 long int *endOffset);
668 AccessibleText_getTextAtOffset (AccessibleText *obj,
670 AccessibleTextBoundaryType type,
671 long int *startOffset,
672 long int *endOffset);
675 AccessibleText_getTextAfterOffset (AccessibleText *obj,
677 AccessibleTextBoundaryType type,
678 long int *startOffset,
679 long int *endOffset);
682 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
686 AccessibleText_getCharacterExtents (AccessibleText *obj,
692 AccessibleCoordType type);
695 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
698 AccessibleCoordType type);
701 AccessibleText_getNSelections (AccessibleText *obj);
704 AccessibleText_getSelection (AccessibleText *obj,
705 long int selectionNum,
706 long int *startOffset,
707 long int *endOffset);
711 AccessibleText_addSelection (AccessibleText *obj,
712 long int startOffset,
716 AccessibleText_removeSelection (AccessibleText *obj,
717 long int selectionNum);
720 AccessibleText_setSelection (AccessibleText *obj,
721 long int selectionNum,
722 long int startOffset,
725 /* AccessibleValue Function Prototypes: */
727 void AccessibleValue_ref (AccessibleValue *obj);
728 void AccessibleValue_unref (AccessibleValue *obj);
729 double AccessibleValue_getMinimumValue (AccessibleValue *obj);
730 double AccessibleValue_getCurrentValue (AccessibleValue *obj);
731 double AccessibleValue_getMaximumValue (AccessibleValue *obj);
732 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
736 void SPI_freeString (char *s);