From 2b8f4365c549962de1f20418ca00dd503d6e28bc Mon Sep 17 00:00:00 2001 From: billh Date: Tue, 4 Dec 2001 00:25:41 +0000 Subject: [PATCH] Added methods for Component Layer and MDI Z-Order information (see recent additions to ATK). Changed typedef 'boolean' to 'SPIBoolean', to avoid C++ clash. git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@130 e2bd861d-eb25-0410-b326-f6ed22b6b98c --- cspi/spi-impl.h | 2 +- cspi/spi-listener.h | 5 +- cspi/spi-private.h | 4 +- cspi/spi-util.c | 2 +- cspi/spi.h | 142 ++++++++++++++++++--------- cspi/spi_accessible.c | 38 +++---- cspi/spi_action.c | 4 +- cspi/spi_application.c | 4 +- cspi/spi_component.c | 62 +++++++++++- cspi/spi_editabletext.c | 16 +-- cspi/spi_event.c | 8 +- cspi/spi_hyperlink.c | 4 +- cspi/spi_main.c | 18 ++-- cspi/spi_registry.c | 8 +- cspi/spi_selection.c | 12 +-- cspi/spi_table.c | 12 +-- cspi/spi_text.c | 16 +-- cspi/spi_value.c | 2 +- docs/reference/cspi/at-spi-cspi-sections.txt | 2 + docs/reference/cspi/tmpl/spi_component.sgml | 18 ++++ idl/Accessibility_Component.idl | 13 +++ idl/Component.idl | 13 +++ libspi/deviceeventcontroller.c | 2 +- registryd/deviceeventcontroller.c | 2 +- test/keysynth-demo.c | 18 ++-- test/simple-at.c | 22 ++--- 26 files changed, 304 insertions(+), 145 deletions(-) diff --git a/cspi/spi-impl.h b/cspi/spi-impl.h index bc39c4a..5f6ff70 100644 --- a/cspi/spi-impl.h +++ b/cspi/spi-impl.h @@ -24,6 +24,6 @@ typedef Accessible GenericInterface; typedef struct _CSpiEventListener AccessibleEventListener; typedef struct _CSpiKeystrokeListener AccessibleKeystrokeListener; -typedef unsigned int boolean; +typedef unsigned int SPIBoolean; #endif diff --git a/cspi/spi-listener.h b/cspi/spi-listener.h index e69a2e7..a9677dc 100644 --- a/cspi/spi-listener.h +++ b/cspi/spi-listener.h @@ -20,6 +20,7 @@ typedef enum { SPI_KEY_RELEASED = 1<<1 } AccessibleKeyEventType; + typedef struct { long keyID; short keycode; @@ -35,10 +36,10 @@ typedef struct { * usage: signatures should be * void (*AccessibleEventListenerCB) (AccessibleEvent *event); * - * boolean (*AccessibleKeystrokeListenerCB) (AccessibleKeystrokeEvent *Event); + * SPIBoolean (*AccessibleKeystrokeListenerCB) (AccessibleKeystrokeEvent *Event); */ typedef void (*AccessibleEventListenerCB) (AccessibleEvent *event); -typedef boolean (*AccessibleKeystrokeListenerCB) (AccessibleKeystroke *stroke); +typedef SPIBoolean (*AccessibleKeystrokeListenerCB) (AccessibleKeystroke *stroke); G_END_DECLS diff --git a/cspi/spi-private.h b/cspi/spi-private.h index 8bb4c16..7f564a0 100644 --- a/cspi/spi-private.h +++ b/cspi/spi-private.h @@ -19,12 +19,12 @@ struct _Accessible { #define CSPI_OBJREF(a) (((Accessible *)(a))->objref) CORBA_Environment *cspi_ev (void); -boolean cspi_exception (void); +SPIBoolean cspi_exception (void); Accessibility_Registry cspi_registry (void); Accessible *cspi_object_add (CORBA_Object corba_object); void cspi_object_ref (Accessible *accessible); void cspi_object_unref (Accessible *accessible); -boolean cspi_warn_ev (CORBA_Environment *ev, +SPIBoolean cspi_warn_ev (CORBA_Environment *ev, const char *error_string); void cspi_check_ev (CORBA_Environment *ev, const char *error_string); diff --git a/cspi/spi-util.c b/cspi/spi-util.c index cc63fea..64a52be 100644 --- a/cspi/spi-util.c +++ b/cspi/spi-util.c @@ -16,7 +16,7 @@ SPI_freeString (char *s) CORBA_free (s); } -boolean +SPIBoolean cspi_warn_ev (CORBA_Environment *ev, const char *error_string) { if (ev->_major != CORBA_NO_EXCEPTION) diff --git a/cspi/spi.h b/cspi/spi.h index cfaa790..a38cb1c 100644 --- a/cspi/spi.h +++ b/cspi/spi.h @@ -73,6 +73,32 @@ typedef enum { typedef unsigned long AccessibleKeyEventMask; +/** + * AccessibleComponentLayer: + * @SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined. + * @SPI_LAYER_BACKGROUND: Component belongs to the destop background. + * @SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area. + * @SPI_LAYER_WIDGET: Component is a 'normal' widget. + * @SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid + * Z-information relative to other MDI-layer components. + * @SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and + * MDI components. + * @SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved + * for future use. + * @SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum, + * should not be encountered. + **/ +typedef enum { + SPI_LAYER_INVALID, + SPI_LAYER_BACKGROUND, + SPI_LAYER_CANVAS, + SPI_LAYER_WIDGET, + SPI_LAYER_MDI, + SPI_LAYER_POPUP, + SPI_LAYER_OVERLAY, + SPI_LAYER_LAST_DEFINED +} AccessibleComponentLayer; + /** * AccessibleKeySet: @@ -117,7 +143,7 @@ SPI_init (void); /** * SPI_event_main: - * @isGNOMEApp: a #boolean indicating whether the client of the SPI + * @isGNOMEApp: a #SPIBoolean indicating whether the client of the SPI * will use the Gnome event loop or not. * * Starts/enters the main event loop for the SPI services. @@ -127,7 +153,7 @@ SPI_init (void); * **/ void -SPI_event_main (boolean isGNOMEApp); +SPI_event_main (SPIBoolean isGNOMEApp); /** * SPI_event_is_ready: @@ -139,7 +165,7 @@ SPI_event_main (boolean isGNOMEApp); * Returns: #TRUE if an event is waiting, otherwise #FALSE. * **/ -boolean +SPIBoolean SPI_eventIsReady (); /** @@ -154,7 +180,7 @@ SPI_eventIsReady (); * **/ AccessibleEvent * -SPI_nextEvent (boolean waitForEvent); +SPI_nextEvent (SPIBoolean waitForEvent); /** * SPI_exit: @@ -192,7 +218,7 @@ createAccessibleEventListener (AccessibleEventListenerCB callback); * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEventListener_addCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback); @@ -206,7 +232,7 @@ AccessibleEventListener_addCallback (AccessibleEventListener *listener, * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEventListener_removeCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback); @@ -232,7 +258,7 @@ createAccessibleKeystrokeListener (AccessibleKeystrokeListenerCB callback); * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleKeystrokeListener_addCallback (AccessibleKeystrokeListener *listener, AccessibleKeystrokeListenerCB callback); @@ -246,7 +272,7 @@ AccessibleKeystrokeListener_addCallback (AccessibleKeystrokeListener *listener, * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleKeystrokeListener_removeCallback (AccessibleKeystrokeListener *listener, AccessibleKeystrokeListenerCB callback); @@ -277,13 +303,13 @@ AccessibleKeystrokeListener_removeCallback (AccessibleKeystrokeListener *listene * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean registerGlobalEventListener (AccessibleEventListener *listener, char *eventType); -boolean +SPIBoolean deregisterGlobalEventListener (AccessibleEventListener *listener, char *eventType); -boolean +SPIBoolean deregisterGlobalEventListenerAll (AccessibleEventListener *listener); @@ -538,7 +564,7 @@ Accessible_getStateSet (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleAction interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isAction (Accessible *obj); /** @@ -550,7 +576,7 @@ Accessible_isAction (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleComponent interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isComponent (Accessible *obj); /** @@ -562,7 +588,7 @@ Accessible_isComponent (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleEditableText interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isEditableText (Accessible *obj); /** @@ -574,7 +600,7 @@ Accessible_isEditableText (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleHypertext interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isHypertext (Accessible *obj); /** @@ -586,7 +612,7 @@ Accessible_isHypertext (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleImage interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isImage (Accessible *obj); /** @@ -598,7 +624,7 @@ Accessible_isImage (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleSelection interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isSelection (Accessible *obj); /** @@ -610,7 +636,7 @@ Accessible_isSelection (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleTable interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isTable (Accessible *obj); /** @@ -622,7 +648,7 @@ Accessible_isTable (Accessible *obj); * Returns: #TRUE if @obj implements the #AccessibleText interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isText (Accessible *obj); AccessibleAction * @@ -752,7 +778,7 @@ char * AccessibleAction_getDescription (AccessibleAction *obj, long int i); -boolean +SPIBoolean AccessibleAction_doAction (AccessibleAction *obj, long int i); @@ -854,7 +880,7 @@ AccessibleApplication_getID (AccessibleApplication *obj); * Returns: #TRUE if the application was paused successfully, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj); /** @@ -867,7 +893,7 @@ AccessibleApplication_pause (AccessibleApplication *obj); * Returns: #TRUE if application processing resumed successfully, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj); /* @@ -882,7 +908,7 @@ AccessibleComponent_ref (AccessibleComponent *obj); int AccessibleComponent_unref (AccessibleComponent *obj); -boolean +SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj, long int x, long int y, @@ -926,6 +952,30 @@ AccessibleComponent_getSize (AccessibleComponent *obj, long int *width, long int *height); +/** + * AccessibleComponent_getLayer: + * @obj: a pointer to the #AccessibleComponent to query. + * + * Query which layer the component is painted into, to help determine its + * visibility in terms of stacking order. + * + * Returns: the #AccessibleComponentLayer into which this component is painted. + **/ +AccessibleComponentLayer +AccessibleComponent_getLayer (AccessibleComponent *obj); + +/** + * AccessibleComponent_getMDIZOrder: + * @obj: a pointer to the #AccessibleComponent to query. + * + * Query the z stacking order of a component which is in the MDI layer. + * + * Returns: a short integer indicating the stacking order of the component + * in the MDI layer, or -1 if the component is not in the MDI layer. + **/ +short +AccessibleComponent_getMDIZOrder (AccessibleComponent *obj); + void AccessibleComponent_grabFocus (AccessibleComponent *obj); @@ -941,38 +991,38 @@ AccessibleEditableText_ref (AccessibleEditableText *obj); int AccessibleEditableText_unref (AccessibleEditableText *obj); -boolean +SPIBoolean AccessibleEditableText_setAttributes (AccessibleEditableText *obj, const char *attributes, long int startOffset, long int endOffset); -boolean +SPIBoolean AccessibleEditableText_setTextContents (AccessibleEditableText *obj, const char *newContents); -boolean +SPIBoolean AccessibleEditableText_insertText (AccessibleEditableText *obj, long int position, char *text, long int length); -boolean +SPIBoolean AccessibleEditableText_copyText (AccessibleText *obj, long int startPos, long int endPos); -boolean +SPIBoolean AccessibleEditableText_cutText (AccessibleEditableText *obj, long int startPos, long int endPos); -boolean +SPIBoolean AccessibleEditableText_deleteText (AccessibleEditableText *obj, long int startPos, long int endPos); -boolean +SPIBoolean AccessibleEditableText_pasteText (AccessibleEditableText *obj, long int position); @@ -998,7 +1048,7 @@ AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj, long int *startIndex, long int *endIndex); -boolean +SPIBoolean AccessibleHyperlink_isValid (AccessibleHyperlink *obj); /* @@ -1091,19 +1141,19 @@ Accessible * AccessibleSelection_getSelectedChild (AccessibleSelection *obj, long int selectedChildIndex); -boolean +SPIBoolean AccessibleSelection_selectChild (AccessibleSelection *obj, long int childIndex); -boolean +SPIBoolean AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj, long int selectedChildIndex); -boolean +SPIBoolean AccessibleSelection_isChildSelected (AccessibleSelection *obj, long int childIndex); -boolean +SPIBoolean AccessibleSelection_selectAll (AccessibleSelection *obj); void @@ -1122,7 +1172,7 @@ AccessibleStateSet_ref (AccessibleStateSet *obj); int AccessibleStateSet_unref (AccessibleStateSet *obj); -boolean +SPIBoolean AccessibleStateSet_contains (AccessibleStateSet *obj, AccessibleState state); @@ -1134,7 +1184,7 @@ void AccessibleStateSet_remove (AccessibleStateSet *obj, AccessibleState state); -boolean +SPIBoolean AccessibleStateSet_equals (AccessibleStateSet *obj, AccessibleStateSet *obj2); @@ -1143,7 +1193,7 @@ AccessibleStateSet_compare (AccessibleStateSet *obj, AccessibleStateSet *obj2, AccessibleStateSet **differenceSet); -boolean +SPIBoolean AccessibleStateSet_isEmpty (AccessibleStateSet *obj); @@ -1229,15 +1279,15 @@ long AccessibleTable_getSelectedColumns (AccessibleTable *obj, long int **selectedColumns); -boolean +SPIBoolean AccessibleTable_isRowSelected (AccessibleTable *obj, long int row); -boolean +SPIBoolean AccessibleTable_isColumnSelected (AccessibleTable *obj, long int column); -boolean +SPIBoolean AccessibleTable_isSelected (AccessibleTable *obj, long int row, long int column); @@ -1272,7 +1322,7 @@ AccessibleText_getAttributes (AccessibleText *obj, long int *endOffset); -boolean +SPIBoolean AccessibleText_setCaretOffset (AccessibleText *obj, long int newOffset); @@ -1326,16 +1376,16 @@ AccessibleText_getSelection (AccessibleText *obj, long int *endOffset); -boolean +SPIBoolean AccessibleText_addSelection (AccessibleText *obj, long int startOffset, long int endOffset); -boolean +SPIBoolean AccessibleText_removeSelection (AccessibleText *obj, long int selectionNum); -boolean +SPIBoolean AccessibleText_setSelection (AccessibleText *obj, long int selectionNum, long int startOffset, @@ -1362,7 +1412,7 @@ AccessibleValue_getCurrentValue (AccessibleValue *obj); float AccessibleValue_getMaximumValue (AccessibleValue *obj); -boolean +SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj, float newValue); diff --git a/cspi/spi_accessible.c b/cspi/spi_accessible.c index 9074be5..fbd399a 100644 --- a/cspi/spi_accessible.c +++ b/cspi/spi_accessible.c @@ -85,12 +85,15 @@ static char *role_names [MAX_ROLES] = char* AccessibleRole_getName (AccessibleRole role) { + /* + * TODO: replace with implementation linked to ATK, which + * now supports Role/Name mapping + */ + if (role < MAX_ROLES) return role_names [(int) role]; else return ""; } - - /** * Accessible_ref: * @obj: a pointer to the #Accessible object on which to operate. @@ -107,7 +110,6 @@ Accessible_ref (Accessible *obj) return 0; } - /** * Accessible_unref: * @obj: a pointer to the #Accessible object on which to operate. @@ -303,11 +305,11 @@ Accessible_getStateSet (Accessible *obj) /* Interface query methods */ -static boolean +static SPIBoolean cspi_accessible_is_a (Accessible *obj, const char *interface_name) { - boolean retval; + SPIBoolean retval; Bonobo_Unknown unknown; unknown = Bonobo_Unknown_queryInterface (CSPI_OBJREF (obj), @@ -342,7 +344,7 @@ cspi_accessible_is_a (Accessible *obj, * Returns: #TRUE if @obj implements the #AccessibleAction interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isAction (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -358,7 +360,7 @@ Accessible_isAction (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleComponent interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isComponent (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -374,7 +376,7 @@ Accessible_isComponent (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleEditableText interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isEditableText (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -390,7 +392,7 @@ Accessible_isEditableText (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleHypertext interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isHypertext (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -406,7 +408,7 @@ Accessible_isHypertext (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleImage interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isImage (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -422,7 +424,7 @@ Accessible_isImage (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleSelection interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isSelection (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -438,7 +440,7 @@ Accessible_isSelection (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleTable interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isTable (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -454,7 +456,7 @@ Accessible_isTable (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleText interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isText (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -470,7 +472,7 @@ Accessible_isText (Accessible *obj) * Returns: #TRUE if @obj implements the #AccessibleValue interface, * #FALSE otherwise. **/ -boolean +SPIBoolean Accessible_isValue (Accessible *obj) { return cspi_accessible_is_a (obj, @@ -796,13 +798,13 @@ AccessibleStateSet_unref (AccessibleStateSet *obj) * otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleStateSet_contains (AccessibleStateSet *obj, AccessibleState state) { CORBA_boolean retval = Accessibility_StateSet_contains (CSPI_OBJREF (obj), state, cspi_ev ()); cspi_check_ev (cspi_ev (), "contains"); - return (boolean) retval; + return (SPIBoolean) retval; } /** @@ -855,7 +857,7 @@ AccessibleStateSet_remove (AccessibleStateSet *obj, * otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleStateSet_equals (AccessibleStateSet *obj, AccessibleStateSet *obj2) { @@ -894,7 +896,7 @@ AccessibleStateSet_compare (AccessibleStateSet *obj, * otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleStateSet_isEmpty (AccessibleStateSet *obj) { return TRUE; diff --git a/cspi/spi_action.c b/cspi/spi_action.c index 1d4d382..fffb068 100644 --- a/cspi/spi_action.c +++ b/cspi/spi_action.c @@ -128,11 +128,11 @@ AccessibleAction_getName (AccessibleAction *obj, * Returns: #TRUE if the action is successfully invoked, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleAction_doAction (AccessibleAction *obj, long int i) { - return (boolean) + return (SPIBoolean) Accessibility_Action_doAction (CSPI_OBJREF (obj), (CORBA_long) i, cspi_ev ()); diff --git a/cspi/spi_application.c b/cspi/spi_application.c index 052f7a1..983b6dd 100644 --- a/cspi/spi_application.c +++ b/cspi/spi_application.c @@ -99,7 +99,7 @@ AccessibleApplication_getID (AccessibleApplication *obj) * Returns: #TRUE if the application was paused successfully, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj) { return FALSE; @@ -115,7 +115,7 @@ AccessibleApplication_pause (AccessibleApplication *obj) * Returns: #TRUE if application processing resumed successfully, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj) { return FALSE; diff --git a/cspi/spi_component.c b/cspi/spi_component.c index 0ba17b6..103a69f 100644 --- a/cspi/spi_component.c +++ b/cspi/spi_component.c @@ -51,7 +51,7 @@ AccessibleComponent_unref (AccessibleComponent *obj) * Returns: a #TRUE if the specified component contains the point (@x, @y), * otherwise #FALSE. **/ -boolean +SPIBoolean AccessibleComponent_contains (AccessibleComponent *obj, long int x, long int y, @@ -174,6 +174,66 @@ AccessibleComponent_getSize (AccessibleComponent *obj, } /** + * AccessibleComponent_getLayer: + * @obj: a pointer to the #AccessibleComponent to query. + * + * Query which layer the component is painted into, to help determine its + * visibility in terms of stacking order. + * + * Returns: the #AccessibleComponentLayer into which this component is painted. + **/ +AccessibleComponentLayer +AccessibleComponent_getLayer (AccessibleComponent *obj) +{ + Accessibility_ComponentLayer zlayer; + AccessibleComponentLayer retval; + + zlayer = Accessibility_Component_getLayer (CSPI_OBJREF (obj), + cspi_ev ()); + switch (retval) + { + case Accessibility_LAYER_BACKGROUND: + retval = SPI_LAYER_BACKGROUND; + break; + case Accessibility_LAYER_CANVAS: + retval = SPI_LAYER_CANVAS; + break; + case Accessibility_LAYER_WIDGET: + retval = SPI_LAYER_WIDGET; + break; + case Accessibility_LAYER_MDI: + retval = SPI_LAYER_MDI; + break; + case Accessibility_LAYER_POPUP: + retval = SPI_LAYER_POPUP; + break; + case Accessibility_LAYER_OVERLAY: + retval = SPI_LAYER_OVERLAY; + break; + default: + retval = SPI_LAYER_INVALID; + } + return retval; +} + +/** + * AccessibleComponent_getMDIZOrder: + * @obj: a pointer to the #AccessibleComponent to query. + * + * Query the z stacking order of a component which is in the MDI layer. + * (Bigger z-order numbers mean nearer the top) + * + * Returns: a short integer indicating the stacking order of the component + * in the MDI layer, or -1 if the component is not in the MDI layer. + **/ +short +AccessibleComponent_getMDIZOrder (AccessibleComponent *obj) +{ + return (short) Accessibility_Component_getMDIZOrder (CSPI_OBJREF (obj), + cspi_ev ()); +} + +/** * AccessibleComponent_grabFocus: * @obj: a pointer to the #AccessibleComponent on which to operate. * diff --git a/cspi/spi_editabletext.c b/cspi/spi_editabletext.c index 9ef0a5a..23b973e 100644 --- a/cspi/spi_editabletext.c +++ b/cspi/spi_editabletext.c @@ -54,13 +54,13 @@ AccessibleEditableText_unref (AccessibleEditableText *obj) * Returns: #TRUE if the operation was successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEditableText_setAttributes (AccessibleEditableText *obj, const char *attributes, long int startPos, long int endPos) { - return (boolean) + return (SPIBoolean) Accessibility_EditableText_setAttributes (CSPI_OBJREF (obj), (CORBA_char *) attributes, (CORBA_long) startPos, @@ -80,7 +80,7 @@ AccessibleEditableText_setAttributes (AccessibleEditableText *obj, * Returns: #TRUE if the operation was successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEditableText_setTextContents (AccessibleEditableText *obj, const char *newContents) { @@ -107,7 +107,7 @@ AccessibleEditableText_setTextContents (AccessibleEditableText *obj, * Returns: #TRUE if the operation was successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEditableText_insertText (AccessibleEditableText *obj, long int position, char *text, @@ -136,7 +136,7 @@ AccessibleEditableText_insertText (AccessibleEditableText *obj, * Returns: #TRUE if the operation was successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEditableText_copyText (AccessibleText *obj, long int startPos, long int endPos) @@ -163,7 +163,7 @@ AccessibleEditableText_copyText (AccessibleText *obj, * Returns: #TRUE if operation was successful, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleEditableText_cutText (AccessibleEditableText *obj, long int startPos, long int endPos) @@ -191,7 +191,7 @@ AccessibleEditableText_cutText (AccessibleEditableText *obj, * Returns: #TRUE if the operation was successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEditableText_deleteText (AccessibleEditableText *obj, long startPos, long endPos) @@ -217,7 +217,7 @@ AccessibleEditableText_deleteText (AccessibleEditableText *obj, * Returns: #TRUE if the operation was successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEditableText_pasteText (AccessibleEditableText *obj, long int position) { diff --git a/cspi/spi_event.c b/cspi/spi_event.c index 808b4dd..bc8a355 100644 --- a/cspi/spi_event.c +++ b/cspi/spi_event.c @@ -58,7 +58,7 @@ createAccessibleEventListener (AccessibleEventListenerCB callback) * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEventListener_addCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback) { @@ -76,7 +76,7 @@ AccessibleEventListener_addCallback (AccessibleEventListener *listener, * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleEventListener_removeCallback (AccessibleEventListener *listener, AccessibleEventListenerCB callback) { @@ -114,7 +114,7 @@ createAccessibleKeystrokeListener (AccessibleKeystrokeListenerCB callback) * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleKeystrokeListener_addCallback (AccessibleKeystrokeListener *listener, AccessibleKeystrokeListenerCB callback) { @@ -132,7 +132,7 @@ AccessibleKeystrokeListener_addCallback (AccessibleKeystrokeListener *listener, * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean AccessibleKeystrokeListener_removeCallback (AccessibleKeystrokeListener *listener, AccessibleKeystrokeListenerCB callback) { diff --git a/cspi/spi_hyperlink.c b/cspi/spi_hyperlink.c index 34c5480..a49f5ab 100644 --- a/cspi/spi_hyperlink.c +++ b/cspi/spi_hyperlink.c @@ -131,10 +131,10 @@ AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj, * to its originating #AccessibleHypertext object, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleHyperlink_isValid (AccessibleHyperlink *obj) { - return (boolean) + return (SPIBoolean) Accessibility_Hyperlink_isValid (CSPI_OBJREF (obj), cspi_ev ()); } diff --git a/cspi/spi_main.c b/cspi/spi_main.c index cfbcfbf..fba7fed 100644 --- a/cspi/spi_main.c +++ b/cspi/spi_main.c @@ -9,7 +9,7 @@ static CORBA_Environment ev = { 0 }; static Accessibility_Registry registry = CORBA_OBJECT_NIL; -static boolean is_gnome_app = FALSE; +static SPIBoolean is_gnome_app = FALSE; static GSList *live_refs = NULL; CORBA_Environment * @@ -25,16 +25,16 @@ cspi_registry (void) return registry; } -boolean +SPIBoolean cspi_is_gnome_app (void) { return is_gnome_app; } -boolean +SPIBoolean cspi_exception (void) { - boolean retval; + SPIBoolean retval; if (BONOBO_EX (&ev)) { @@ -178,7 +178,7 @@ SPI_init (void) /** * SPI_event_main: - * @isGNOMEApp: a #boolean indicating whether the client of the SPI + * @isGNOMEApp: a #SPIBoolean indicating whether the client of the SPI * will use the Gnome event loop or not. Clients that have * their own GUIS will usually specify #TRUE here, and must * do so if they use Gnome GUI components. @@ -190,7 +190,7 @@ SPI_init (void) * **/ void -SPI_event_main (boolean isGNOMEApp) +SPI_event_main (SPIBoolean isGNOMEApp) { is_gnome_app = isGNOMEApp; if (isGNOMEApp) @@ -217,7 +217,7 @@ SPI_event_main (boolean isGNOMEApp) * Returns: #TRUE if an event is waiting, otherwise #FALSE. * **/ -boolean +SPIBoolean SPI_eventIsReady () { return FALSE; @@ -225,7 +225,7 @@ SPI_eventIsReady () /** * SPI_nextEvent: - * @waitForEvent: a #boolean indicating whether to block or not. + * @waitForEvent: a #SPIBoolean indicating whether to block or not. * * Gets the next event in the SPI event queue; blocks if no event * is pending and @waitForEvent is #TRUE. @@ -236,7 +236,7 @@ SPI_eventIsReady () * Returns: the next #AccessibleEvent in the SPI event queue. **/ AccessibleEvent * -SPI_nextEvent (boolean waitForEvent) +SPI_nextEvent (SPIBoolean waitForEvent) { return NULL; } diff --git a/cspi/spi_registry.c b/cspi/spi_registry.c index b3ba478..cd7bdbc 100644 --- a/cspi/spi_registry.c +++ b/cspi/spi_registry.c @@ -91,11 +91,11 @@ static Display *display = NULL; * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean registerGlobalEventListener (AccessibleEventListener *listener, char *eventType) { - boolean retval; + SPIBoolean retval; Accessibility_Registry_registerGlobalEventListener ( cspi_registry (), @@ -121,7 +121,7 @@ registerGlobalEventListener (AccessibleEventListener *listener, * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean deregisterGlobalEventListenerAll (AccessibleEventListener *listener) { Accessibility_Registry_deregisterGlobalEventListenerAll ( @@ -151,7 +151,7 @@ deregisterGlobalEventListenerAll (AccessibleEventListener *listener) * Returns: #TRUE if successful, otherwise #FALSE. * **/ -boolean +SPIBoolean deregisterGlobalEventListener (AccessibleEventListener *listener, char *eventType) { diff --git a/cspi/spi_selection.c b/cspi/spi_selection.c index 1b98704..dd663ee 100644 --- a/cspi/spi_selection.c +++ b/cspi/spi_selection.c @@ -97,11 +97,11 @@ AccessibleSelection_getSelectedChild (AccessibleSelection *obj, * Returns: #TRUE if the child was successfully selected, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleSelection_selectChild (AccessibleSelection *obj, long int childIndex) { - return (boolean) + return (SPIBoolean) Accessibility_Selection_selectChild (CSPI_OBJREF (obj), (CORBA_long) childIndex, cspi_ev ()); } @@ -122,7 +122,7 @@ AccessibleSelection_selectChild (AccessibleSelection *obj, * Returns: #TRUE if the child was successfully deselected, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj, long int selectedChildIndex) { @@ -145,11 +145,11 @@ AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj, * #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleSelection_isChildSelected (AccessibleSelection *obj, long int childIndex) { - return (boolean) + return (SPIBoolean) Accessibility_Selection_isChildSelected (CSPI_OBJREF (obj), (CORBA_long) childIndex, cspi_ev ()); } @@ -166,7 +166,7 @@ AccessibleSelection_isChildSelected (AccessibleSelection *obj, * Returns: #TRUE if successful, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleSelection_selectAll (AccessibleSelection *obj) { Accessibility_Selection_selectAll (CSPI_OBJREF (obj), cspi_ev ()); diff --git a/cspi/spi_table.c b/cspi/spi_table.c index b59dae1..8ae601c 100644 --- a/cspi/spi_table.c +++ b/cspi/spi_table.c @@ -455,11 +455,11 @@ AccessibleTable_getSelectedColumns (AccessibleTable *obj, * Returns: #TRUE if the specified row is currently selected, #FALSE if not. * **/ -boolean +SPIBoolean AccessibleTable_isRowSelected (AccessibleTable *obj, long int row) { - return (boolean) + return (SPIBoolean) Accessibility_Table_isRowSelected (CSPI_OBJREF (obj), (CORBA_long) row, cspi_ev ()); } @@ -477,11 +477,11 @@ AccessibleTable_isRowSelected (AccessibleTable *obj, * Returns: #TRUE if the specified column is currently selected, #FALSE if not. * **/ -boolean +SPIBoolean AccessibleTable_isColumnSelected (AccessibleTable *obj, long int column) { - return (boolean) + return (SPIBoolean) Accessibility_Table_isColumnSelected (CSPI_OBJREF (obj), (CORBA_long) column, cspi_ev ()); } @@ -499,12 +499,12 @@ AccessibleTable_isColumnSelected (AccessibleTable *obj, * Returns: #TRUE if the specified cell is currently selected, #FALSE if not. * **/ -boolean +SPIBoolean AccessibleTable_isSelected (AccessibleTable *obj, long int row, long int column) { - return (boolean) + return (SPIBoolean) Accessibility_Table_isSelected (CSPI_OBJREF (obj), (CORBA_long) row, (CORBA_long) column, cspi_ev ()); } diff --git a/cspi/spi_text.c b/cspi/spi_text.c index d3ff995..974c850 100644 --- a/cspi/spi_text.c +++ b/cspi/spi_text.c @@ -149,11 +149,11 @@ AccessibleText_getAttributes (AccessibleText *obj, * Returns: #TRUE if successful, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleText_setCaretOffset (AccessibleText *obj, long int newOffset) { - return (boolean) + return (SPIBoolean) Accessibility_Text_setCaretOffset (CSPI_OBJREF (obj), (CORBA_long) newOffset, cspi_ev ()); } @@ -442,11 +442,11 @@ AccessibleText_getSelection (AccessibleText *obj, * Returns: #TRUE if successful, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleText_addSelection (AccessibleText *obj, long int startOffset, long int endOffset) { - return (boolean) + return (SPIBoolean) Accessibility_Text_addSelection (CSPI_OBJREF (obj), (CORBA_long) startOffset, (CORBA_long) endOffset, cspi_ev ()); @@ -464,11 +464,11 @@ AccessibleText_addSelection (AccessibleText *obj, * Returns: #TRUE if successful, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleText_removeSelection (AccessibleText *obj, long int selectionNum) { - return (boolean) + return (SPIBoolean) Accessibility_Text_removeSelection (CSPI_OBJREF (obj), (CORBA_long) selectionNum, cspi_ev ()); } @@ -486,13 +486,13 @@ AccessibleText_removeSelection (AccessibleText *obj, * Returns: #TRUE if successful, #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleText_setSelection (AccessibleText *obj, long int selectionNum, long int startOffset, long int endOffset) { - return (boolean) + return (SPIBoolean) Accessibility_Text_setSelection (CSPI_OBJREF (obj), (CORBA_long) selectionNum, (CORBA_long) startOffset, diff --git a/cspi/spi_value.c b/cspi/spi_value.c index 8d72298..748f12e 100644 --- a/cspi/spi_value.c +++ b/cspi/spi_value.c @@ -101,7 +101,7 @@ AccessibleValue_getMaximumValue (AccessibleValue *obj) * #FALSE otherwise. * **/ -boolean +SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj, float newValue) { diff --git a/docs/reference/cspi/at-spi-cspi-sections.txt b/docs/reference/cspi/at-spi-cspi-sections.txt index b385029..eae6b82 100644 --- a/docs/reference/cspi/at-spi-cspi-sections.txt +++ b/docs/reference/cspi/at-spi-cspi-sections.txt @@ -117,6 +117,8 @@ AccessibleComponent_getAccessibleAtPoint AccessibleComponent_getExtents AccessibleComponent_getPosition AccessibleComponent_getSize +AccessibleComponent_getLayer +AccessibleComponent_getMDIZOrder AccessibleComponent_grabFocus diff --git a/docs/reference/cspi/tmpl/spi_component.sgml b/docs/reference/cspi/tmpl/spi_component.sgml index 08cd3bc..a1d35dc 100644 --- a/docs/reference/cspi/tmpl/spi_component.sgml +++ b/docs/reference/cspi/tmpl/spi_component.sgml @@ -98,6 +98,24 @@ AccessibleComponent Interface @height: + + + + + +@obj: +@Returns: + + + + + + + +@obj: +@Returns: + + diff --git a/idl/Accessibility_Component.idl b/idl/Accessibility_Component.idl index 59a9c75..4900684 100644 --- a/idl/Accessibility_Component.idl +++ b/idl/Accessibility_Component.idl @@ -24,6 +24,17 @@ module Accessibility { + enum ComponentLayer { + LAYER_INVALID, + LAYER_BACKGROUND, + LAYER_CANVAS, + LAYER_WIDGET, + LAYER_MDI, + LAYER_POPUP, + LAYER_OVERLAY, + LAYER_LAST_DEFINED + }; + interface Component : Bonobo::Unknown { boolean contains (in long x, in long y, in short coord_type); @@ -31,6 +42,8 @@ module Accessibility { void getExtents (out long x, out long y, out long width, out long height, in short coord_type); void getPosition (out long x, out long y, in short coord_type); void getSize (out long width, out long height); + ComponentLayer getLayer (); + short getMDIZOrder (); void grabFocus (); void registerFocusHandler (in EventListener handler); void deregisterFocusHandler (in EventListener handler); diff --git a/idl/Component.idl b/idl/Component.idl index 59a9c75..4900684 100644 --- a/idl/Component.idl +++ b/idl/Component.idl @@ -24,6 +24,17 @@ module Accessibility { + enum ComponentLayer { + LAYER_INVALID, + LAYER_BACKGROUND, + LAYER_CANVAS, + LAYER_WIDGET, + LAYER_MDI, + LAYER_POPUP, + LAYER_OVERLAY, + LAYER_LAST_DEFINED + }; + interface Component : Bonobo::Unknown { boolean contains (in long x, in long y, in short coord_type); @@ -31,6 +42,8 @@ module Accessibility { void getExtents (out long x, out long y, out long width, out long height, in short coord_type); void getPosition (out long x, out long y, in short coord_type); void getSize (out long width, out long height); + ComponentLayer getLayer (); + short getMDIZOrder (); void grabFocus (); void registerFocusHandler (in EventListener handler); void deregisterFocusHandler (in EventListener handler); diff --git a/libspi/deviceeventcontroller.c b/libspi/deviceeventcontroller.c index ae6d471..785f4a0 100644 --- a/libspi/deviceeventcontroller.c +++ b/libspi/deviceeventcontroller.c @@ -235,7 +235,7 @@ controller_deregister_device_listener (SpiDeviceEventController *controller, #endif controller->key_listeners = g_list_remove_link (controller->key_listeners, list_ptr); - dec_key_listener_free (dec_listener, ev); + dec_key_listener_free ((DEControllerKeyListener *) dec_listener, ev); } break; case SPI_DEVICE_TYPE_MOUSE: diff --git a/registryd/deviceeventcontroller.c b/registryd/deviceeventcontroller.c index ae6d471..785f4a0 100644 --- a/registryd/deviceeventcontroller.c +++ b/registryd/deviceeventcontroller.c @@ -235,7 +235,7 @@ controller_deregister_device_listener (SpiDeviceEventController *controller, #endif controller->key_listeners = g_list_remove_link (controller->key_listeners, list_ptr); - dec_key_listener_free (dec_listener, ev); + dec_key_listener_free ((DEControllerKeyListener *) dec_listener, ev); } break; case SPI_DEVICE_TYPE_MOUSE: diff --git a/test/keysynth-demo.c b/test/keysynth-demo.c index 59d0dc1..f7bed15 100644 --- a/test/keysynth-demo.c +++ b/test/keysynth-demo.c @@ -40,8 +40,8 @@ static AccessibleKeystrokeListener *key_listener; static AccessibleKeystrokeListener *switch_listener; -static boolean shift_latched = False; -static boolean caps_lock = False; +static gboolean shift_latched = False; +static gboolean caps_lock = False; static GtkButton **buttons[MAX_ROWS]; typedef enum { @@ -226,7 +226,7 @@ scan_stop (unsigned int timestamp) } static void -label_buttons(boolean shifted) +label_buttons(gboolean shifted) { int i, j; KeySym keysym; @@ -265,7 +265,7 @@ label_buttons(boolean shifted) } static void -show_shift (GtkButton *button, boolean *is_shifted) +show_shift (GtkButton *button, gboolean *is_shifted) { label_buttons (*is_shifted ^ caps_lock); } @@ -314,7 +314,7 @@ button_exit(GtkButton *notused, void *alsonotused) keysynth_exit(); } -static boolean +static SPIBoolean is_command_key (AccessibleKeystroke *key) { switch (key->keyID) @@ -327,10 +327,10 @@ is_command_key (AccessibleKeystroke *key) return FALSE; } -static boolean +static SPIBoolean switch_callback (AccessibleKeystroke *key) { - static boolean is_down = FALSE; + static gboolean is_down = FALSE; if (key->type == SPI_KEY_RELEASED) { g_print ("spacebar up\n"); @@ -380,8 +380,8 @@ create_vkbd() GtkWidget *window, *container, *hbox; int i, j; KeyCode *keycodeptr, keycode = MIN_KEYCODE; - static boolean true_val = True; - static boolean false_val = False; + static gboolean true_val = True; + static gboolean false_val = False; window = g_object_connect (gtk_widget_new (gtk_window_get_type (), "user_data", NULL, diff --git a/test/simple-at.c b/test/simple-at.c index 09c7ac6..a7baca9 100644 --- a/test/simple-at.c +++ b/test/simple-at.c @@ -31,17 +31,17 @@ static void report_focus_event (AccessibleEvent *event); static void report_button_press (AccessibleEvent *event); static void check_property_change (AccessibleEvent *event); -static boolean report_command_key_event (AccessibleKeystroke *stroke); -static boolean report_ordinary_key_event (AccessibleKeystroke *stroke); +static SPIBoolean report_command_key_event (AccessibleKeystroke *stroke); +static SPIBoolean report_ordinary_key_event (AccessibleKeystroke *stroke); static void get_environment_vars (void); static int _festival_init (); -static void _festival_say (const char *text, const char *voice, boolean shutup); +static void _festival_say (const char *text, const char *voice, SPIBoolean shutup); static void _festival_write (const char *buff, int fd); -static boolean use_magnifier = FALSE; -static boolean use_festival = FALSE; -static boolean festival_chatty = FALSE; +static SPIBoolean use_magnifier = FALSE; +static SPIBoolean use_festival = FALSE; +static SPIBoolean festival_chatty = FALSE; static AccessibleEventListener *focus_listener; static AccessibleEventListener *property_listener; @@ -142,7 +142,7 @@ get_environment_vars() } void -report_focussed_accessible (Accessible *obj, boolean shutup_previous_speech) +report_focussed_accessible (Accessible *obj, SPIBoolean shutup_previous_speech) { char *s; int len; @@ -257,7 +257,7 @@ simple_at_exit() SPI_exit (); } -static boolean +static SPIBoolean is_command_key (AccessibleKeystroke *key) { switch (key->keyID) @@ -279,7 +279,7 @@ is_command_key (AccessibleKeystroke *key) } } -static boolean +static SPIBoolean report_command_key_event (AccessibleKeystroke *key) { fprintf (stderr, "Command KeyEvent %s%c (keycode %d)\n", @@ -291,7 +291,7 @@ report_command_key_event (AccessibleKeystroke *key) } -static boolean +static SPIBoolean report_ordinary_key_event (AccessibleKeystroke *key) { fprintf (stderr, "Received key event:\tsym %ld\n\tmods %x\n\tcode %d\n\ttime %ld\n", @@ -326,7 +326,7 @@ static int _festival_init () return fd; } -static void _festival_say (const char *text, const char *voice, boolean shutup) +static void _festival_say (const char *text, const char *voice, SPIBoolean shutup) { static int fd = 0; gchar *quoted; -- 2.7.4