5 /* Implementation private definitions */
9 * Definitions for ACCESSIBLE_STATE , ACCESSIBLE_ROLE, AccessibleEvent,
10 * and event listeners.
13 #include "spi-roletypes.h"
14 #include "spi-statetypes.h"
15 #include "spi-listener.h"
19 * Enumerated type for text boundary types
26 TEXT_BOUNDARY_CURSOR_POS,
27 TEXT_BOUNDARY_WORD_START,
28 TEXT_BOUNDARY_WORD_END,
29 TEXT_BOUNDARY_SENTENCE_START,
30 TEXT_BOUNDARY_SENTENCE_END,
31 TEXT_BOUNDARY_LINE_START,
32 TEXT_BOUNDARY_LINE_END,
33 TEXT_BOUNDARY_ATTRIBUTE_RANGE
40 * Enumerated type for relation types
48 RELATION_CONTROLLER_FOR,
49 RELATION_CONTROLLED_BY,
55 typedef enum _AccessibleCoordType {
58 } AccessibleCoordType;
63 * Basic SPI initialization and event loop function prototypes
70 * Connects to the accessibility registry and initializes the SPI.
72 * Returns: 0 on success, otherwise an integer error code.
79 * @isGNOMEApp: a #boolean indicating whether the client of the SPI
80 * will use the Gnome event loop or not.
82 * Starts/enters the main event loop for the SPI services.
84 * (NOTE: This method does not return control, it is exited via a call to exit()
85 * from within an event handler).
89 SPI_event_main (boolean isGNOMEApp);
94 * Checks to see if an SPI event is waiting in the event queue.
95 * Used by clients that don't wish to use SPI_event_main().
96 * Not Yet Implemented.
98 * Returns: #TRUE if an event is waiting, otherwise #FALSE.
107 * Gets the next event in the SPI event queue; blocks if no event
109 * Used by clients that don't wish to use SPI_event_main().
110 * Not Yet Implemented.
112 * Returns: the next #AccessibleEvent in the SPI event queue.
116 SPI_nextEvent (boolean waitForEvent);
121 * Disconnects from the Accessibility Registry and releases resources.
122 * Not Yet Implemented.
129 * Event Listener creation and support.
133 * createEventListener:
134 * @callback : an #AccessibleEventListenerCB callback function, or NULL.
136 * Create a new #AccessibleEventListener with a specified callback function.
138 * Returns: a pointer to a newly-created #AccessibleEventListener.
141 AccessibleEventListener *
142 createEventListener (AccessibleEventListenerCB callback);
145 * EventListener_addCallback:
146 * @listener: the #AccessibleEventListener instance to modify.
147 * @callback: an #AccessibleEventListenerCB function pointer.
149 * Add an in-process callback function to an existing AccessibleEventListener.
151 * Returns: #TRUE if successful, otherwise #FALSE.
155 EventListener_addCallback (AccessibleEventListener *listener,
156 AccessibleEventListenerCB callback);
159 * EventListener_removeCallback:
160 * @listener: the #AccessibleEventListener instance to modify.
161 * @callback: an #AccessibleEventListenerCB function pointer.
163 * Remove an in-process callback function from an existing AccessibleEventListener.
165 * Returns: #TRUE if successful, otherwise #FALSE.
169 EventListener_removeCallback (AccessibleEventListener *listener,
170 AccessibleEventListenerCB callback);
174 * Global functions serviced by the registry
179 * registerGlobalEventListener:
180 * @listener: the #AccessibleEventListener to be registered against an event type.
181 * @callback: a character string indicating the type of events for which
182 * notification is requested. Format is
183 * EventClass:major_type:minor_type:detail
184 * where all subfields other than EventClass are optional.
185 * EventClasses include "Focus", "Window", "Mouse",
186 * and toolkit events (e.g. "Gtk", "AWT").
187 * Examples: "focus:", "Gtk:GtkWidget:button_press_event".
189 * NOTE: this string may be UTF-8, but should not contain byte value 56 (ascii ':'),
190 * except as a delimiter, since non-UTF-8 string delimiting
191 * functions are used internally. In general, listening to
192 * toolkit-specific events is not recommended.
194 * Add an in-process callback function to an existing AccessibleEventListener.
196 * Returns: #TRUE if successful, otherwise #FALSE.
200 registerGlobalEventListener (AccessibleEventListener *listener,
206 * Get the number of virtual desktops.
207 * NOTE: currently multiple virtual desktops are not implemented, this
208 * function always returns '1'.
210 * Returns: an integer indicating the number of active virtual desktops.
218 * @i: an integer indicating which of the accessible desktops is to be returned.
220 * Get the virtual desktop indicated by index @i.
221 * NOTE: currently multiple virtual desktops are not implemented, this
222 * function always returns '1'.
224 * Returns: a pointer to the 'i-th' virtual desktop's #Accessible representation.
232 * @list: a pointer to an array of #Accessible objects.
234 * Get the list of virtual desktops. On return, @list will point
235 * to a newly-created array of virtual desktop pointers.
236 * It is the responsibility of the caller to free this array when
237 * it is no longer needed.
239 * Not Yet Implemented.
241 * Returns: an integer indicating how many virtual desktops have been
242 * placed in the list pointed to by parameter @list.
245 getDesktopList (Accessible **list);
248 * registerKeystrokeListener:
249 * @listener: a pointer to the #KeystrokeListener for which
250 * keystroke events are requested.
252 * Not Yet Implemented.
256 registerKeystrokeListener (KeystrokeListener *listener);
260 * @keycode: a #long indicating the keycode of the key event
262 * @meta: a #long indicating the key modifiers to be sent
263 * with the event, if any.
265 * Synthesize a keyboard event (as if a hardware keyboard event occurred in the
266 * current UI context).
267 * Not Yet Implemented.
271 generateKeyEvent (long keyCode, long meta);
274 * generateMouseEvent:
275 * @x: a #long indicating the screen x coordinate of the mouse event.
276 * @y: a #long indicating the screen y coordinate of the mouse event.
277 * @name: a string indicating which mouse event to be synthesized
278 * (e.g. "button1", "button2", "mousemove").
280 * Synthesize a mouse event at a specific screen coordinate.
281 * Not Yet Implemented.
285 generateMouseEvent (long x, long y, char *name);
289 * Accessible function prototypes
295 * @obj: a pointer to the #Accessible object on which to operate.
297 * Increment the reference count for an #Accessible object.
299 * Returns: (no return code implemented yet).
303 Accessible_ref (Accessible *obj);
307 * @obj: a pointer to the #Accessible object on which to operate.
309 * Decrement the reference count for an #Accessible object.
311 * Returns: (no return code implemented yet).
315 Accessible_unref (Accessible *obj);
318 * Accessible_getName:
319 * @obj: a pointer to the #Accessible object on which to operate.
321 * Get the name of an #Accessible object.
323 * Returns: a UTF-8 string indicating the name of the #Accessible object.
327 Accessible_getName (Accessible *obj);
330 * Accessible_getDescription:
331 * @obj: a pointer to the #Accessible object on which to operate.
333 * Get the description of an #Accessible object.
335 * Returns: a UTF-8 string describing the #Accessible object.
339 Accessible_getDescription (Accessible *obj);
342 * Accessible_getParent:
343 * @obj: a pointer to the #Accessible object to query.
345 * Get an #Accessible object's parent container.
347 * Returns: a pointer to the #Accessible object which contains the given
348 * #Accessible instance, or NULL if the @obj has no parent container.
352 Accessible_getParent (Accessible *obj);
355 * Accessible_getChildCount:
357 * @obj: a pointer to the #Accessible object on which to operate.
359 * Get the number of children contained by an #Accessible object.
361 * Returns: a #long indicating the number of #Accessible children
362 * contained by an #Accessible object.
366 Accessible_getChildCount (Accessible *obj);
369 * Accessible_getChildAtIndex:
371 * @obj: a pointer to the #Accessible object on which to operate.
372 * @childIndex: a #long indicating which child is specified.
374 * Get the #Accessible child of an #Accessible object at a given index.
376 * Returns: a pointer to the #Accessible child object at index
381 Accessible_getChildAtIndex (Accessible *obj,
385 * Accessible_getIndexInParent:
387 * @obj: a pointer to the #Accessible object on which to operate.
389 * Get the index of an #Accessible object in its containing #Accessible.
391 * Returns: a #long indicating the index of the #Accessible object
392 * in its parent (i.e. containing) #Accessible instance,
393 * or -1 if @obj has no containing parent.
397 Accessible_getIndexInParent (Accessible *obj);
400 * Accessible_getRelationSet:
402 * Not Yet Implemented.
405 AccessibleRelation **
406 Accessible_getRelationSet (Accessible *obj);
409 * Accessible_getRole:
410 * @obj: a pointer to the #Accessible object on which to operate.
412 * Get the UI role of an #Accessible object.
414 * Returns: a UTF-8 string indicating the UI role of the #Accessible object.
418 Accessible_getRole (Accessible *obj);
421 * Accessible_getStateSet:
423 * Not Yet Implemented.
427 Accessible_getStateSet (Accessible *obj);
432 * AccessibleAction function prototypes
437 AccessibleAction_ref (
438 AccessibleAction *obj);
441 AccessibleAction_unref (AccessibleAction *obj);
444 AccessibleAction_getNActions (AccessibleAction *obj);
447 * AccessibleAction_getDescription:
448 * @obj: a pointer to the #AccessibleAction to query.
450 * Get the description of 'i-th' action invokable on an
451 * object implementing #AccessibleAction.
453 * Not Yet Implemented.
455 * Returns: a UTF-8 string describing the 'i-th' invokable action.
459 AccessibleAction_getDescription (AccessibleAction *obj,
463 AccessibleAction_doAction (AccessibleAction *obj,
467 AccessibleAction_getKeyBinding (AccessibleAction *obj,
472 * AccessibleApplication function prototypes
477 * AccessibleApplication_unref:
478 * @obj: a pointer to the #AccessibleApplication on which to operate.
480 * Decrement the reference count for an #AccessibleApplication.
482 * Returns: (no return code implemented yet).
486 AccessibleApplication_ref (AccessibleApplication *obj);
489 * AccessibleApplication_unref:
490 * @obj: a pointer to the #AccessibleApplication object on which to operate.
492 * Decrement the reference count for an #AccessibleApplication.
494 * Returns: (no return code implemented yet).
498 AccessibleApplication_unref (AccessibleApplication *obj);
501 * AccessibleApplication_getToolkitName:
502 * @obj: a pointer to the #AccessibleApplication to query.
504 * Get the name of the UI toolkit used by an #AccessibleApplication.
506 * Returns: a UTF-8 string indicating which UI toolkit is
507 * used by an application.
511 AccessibleApplication_getToolkitName (AccessibleApplication *obj);
514 * AccessibleApplication_getVersion:
515 * @obj: a pointer to the #AccessibleApplication being queried.
517 * Get the version of the at-spi bridge exported by an
518 * #AccessibleApplication instance.
520 * Returns: a UTF-8 string indicating the application's
525 AccessibleApplication_getVersion (AccessibleApplication *obj);
528 * AccessibleApplication_getID:
529 * @obj: a pointer to the #AccessibleApplication being queried.
531 * Get the unique ID assigned by the Registry to an
532 * #AccessibleApplication instance.
533 * (Not Yet Implemented by the registry).
535 * Returns: a unique #long integer associated with the application
536 * by the Registry, or 0 if the application is not registered.
539 AccessibleApplication_getID (AccessibleApplication *obj);
542 * AccessibleApplication_pause:
544 * Attempt to pause the application (used when client event queue is
546 * Not Yet Implemented.
548 * Returns: #TRUE if the application was paused successfully, #FALSE otherwise.
552 AccessibleApplication_pause (AccessibleApplication *obj);
555 * AccessibleApplication_pause:
557 * Attempt to resume the application (used after #AccessibleApplication_pause).
558 * Not Yet Implemented.
560 * Returns: #TRUE if application processing resumed successfully, #FALSE otherwise.
564 AccessibleApplication_resume (AccessibleApplication *obj);
568 * AccessibleComponent function prototypes
573 AccessibleComponent_ref (AccessibleComponent *obj);
576 AccessibleComponent_unref (AccessibleComponent *obj);
579 AccessibleComponent_contains (AccessibleComponent *obj,
582 AccessibleCoordType ctype);
585 AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
588 AccessibleCoordType ctype);
591 AccessibleComponent_getExtents (AccessibleComponent *obj,
596 AccessibleCoordType ctype);
599 AccessibleComponent_getPosition (AccessibleComponent *obj,
602 AccessibleCoordType ctype);
605 AccessibleComponent_getSize (AccessibleComponent *obj,
610 AccessibleComponent_grabFocus (AccessibleComponent *obj);
614 * AccessibleEditableText function prototypes
619 AccessibleEditableText_ref (AccessibleEditableText *obj);
622 AccessibleEditableText_unref (AccessibleEditableText *obj);
625 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
629 AccessibleEditableText_insertText (AccessibleEditableText *obj,
635 AccessibleEditableText_selectText (AccessibleEditableText *obj,
640 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
646 AccessibleEditableText_copyText (AccessibleText *obj,
651 AccessibleEditableText_cutText (AccessibleEditableText *obj,
656 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
661 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
666 * AccessibleHyperlink function prototypes
671 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
674 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
677 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
680 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
684 AccessibleHyperlink_getAnchor (AccessibleHyperlink *obj,
688 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
693 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
697 * AccessibleHypertext function prototypes
702 AccessibleHypertext_ref (AccessibleHypertext *obj);
705 AccessibleHypertext_unref (AccessibleHypertext *obj);
708 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
710 AccessibleHyperlink *
711 AccessibleHyperText_getLink (AccessibleHypertext *obj,
715 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
716 long characterIndex);
720 * AccessibleImage function prototypes
725 AccessibleImage_ref (AccessibleImage *obj);
728 AccessibleImage_unref (AccessibleImage *obj);
731 AccessibleImage_getImageDescription (AccessibleImage *obj);
734 AccessibleImage_getImageSize (AccessibleImage *obj,
737 AccessibleCoordType ctype);
739 AccessibleImage_getImagePosition (AccessibleImage *obj,
742 AccessibleCoordType ctype);
746 * AccessibleRelation function prototypes
751 AccessibleRelation_ref (AccessibleRelation *obj);
754 AccessibleRelation_unref (AccessibleRelation *obj);
757 AccessibleRelation_getRelationType (AccessibleRelation *obj);
760 AccessibleRelation_getTarget (AccessibleRelation *obj);
766 * AccessibleSelection function prototypes
771 AccessibleSelection_ref (AccessibleSelection *obj);
774 AccessibleSelection_unref (AccessibleSelection *obj);
777 AccessibleSelwection_getNSelectedChildren (AccessibleSelection *obj);
780 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
781 long selectedChildIndex);
784 AccessibleSelection_selectChild (AccessibleSelection *obj,
788 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
789 long selectedChildIndex);
792 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
796 AccessibleSelection_selectAll (AccessibleSelection *obj);
799 AccessibleSelection_clearSelection (AccessibleSelection *obj);
804 * AccessibleStateSet function prototypes
809 AccessibleStateSet_ref (AccessibleStateSet *obj);
812 AccessibleStateSet_unref (AccessibleStateSet *obj);
815 AccessibleStateSet_contains (AccessibleStateSet *obj,
816 ACCESSIBLE_STATE state);
819 AccessibleStateSet_add (AccessibleStateSet *obj,
820 ACCESSIBLE_STATE state);
823 AccessibleStateSet_remove (AccessibleStateSet *obj,
824 ACCESSIBLE_STATE state);
827 AccessibleStateSet_equals (AccessibleStateSet *obj,
828 AccessibleStateSet *obj2);
831 AccessibleStateSet_compare (AccessibleStateSet *obj,
832 AccessibleStateSet *obj2,
833 AccessibleStateSet **differenceSet);
836 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
841 * AccessibleTable function prototypes
846 AccessibleTable_ref (AccessibleTable *obj);
849 AccessibleTable_unref (AccessibleTable *obj);
852 AccessibleTable_getCaption (AccessibleTable *obj);
855 AccessibleTable_getSummary (AccessibleTable *obj);
858 AccessibleTable_getNRows (AccessibleTable *obj);
861 AccessibleTable_getNColumns (AccessibleTable *obj);
864 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
869 AccessibleTable_getIndexAt (AccessibleTable *obj,
874 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
878 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
882 AccessibleTable_getRowDescription (AccessibleTable *obj);
885 AccessibleTable_getColumnDescription (AccessibleTable *obj);
888 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
893 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
898 AccessibleTable_getRowHeaders (AccessibleTable *obj);
901 AccessibleTable_getColumnHeaders (AccessibleTable *obj);
904 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
907 AccessibleTable_getSelectedRows (AccessibleTable *obj,
908 long **selectedRows);
911 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
914 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
915 long **selectedColumns);
918 AccessibleTable_isRowSelected (AccessibleTable *obj,
922 AccessibleTable_isColumnSelected (AccessibleTable *obj,
926 AccessibleTable_isSelected (AccessibleTable *obj,
932 * AccessibleText function prototypes
937 AccessibleText_ref (AccessibleText *obj);
940 AccessibleText_unref (AccessibleText *obj);
943 AccessibleText_getCharacterCount (AccessibleText *obj);
946 AccessibleText_getText (AccessibleText *obj,
951 AccessibleText_getCaretOffset (AccessibleText *obj);
954 AccessibleText_setCaretOffset (AccessibleText *obj,
958 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
960 TEXT_BOUNDARY_TYPE type);
963 AccessibleText_getTextAtOffset (Accessible *obj,
965 TEXT_BOUNDARY_TYPE type);
968 AccessibleText_getTextAfterOffset (AccessibleText *obj,
970 TEXT_BOUNDARY_TYPE type);
973 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
977 AccessibleText_getAttributes (AccessibleText *obj,
982 AccessibleText_getCharacterExtents (AccessibleText *obj,
990 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
995 AccessibleText_getSelectedText (AccessibleText *obj);
998 AccessibleText_getSelectionBounds (AccessibleText *obj,
1003 AccessibleText_setSelectionBounds (AccessibleText *obj,
1009 * AccessibleValue Function Prototypes:
1014 AccessibleValue_getMinimumValue (AccessibleValue *value);
1017 AccessibleValue_getCurrentValue (AccessibleValue *value);
1020 AccessibleValue_getMaximumValue (AccessibleValue *value);
1023 AccessibleValue_setCurrentValue (AccessibleValue *value,