+2001-12-10 Michael Meeks <michael@ximian.com>
+
+ * configure.in: use cspi/libspi.pc.in instead.
+
+ * Makefile.am (pkgconfig_DATA): upd. to match.
+
+ * test/simple-at.c (report_focus_event): kill hacks around
+ bad return values, use putenv not setenv
+
+ * libspi/desktop.c (impl_desktop_get_child_at_index): don't
+ fire ChildGone - I killed it.
+
+ * libspi/component.c
+ (impl_accessibility_component_get_extents): remove
+ bogus return.
+
+ * idl/Accessible.idl: kill ChildGone exception.
+
+ * cspi/*.[ch]: kill int return from ref / unref.
+
+ * cspi/spi_main.c (cspi_object_add_check): fold into
+ (cspi_object_add): here.
+
+ * cspi/spi_component.c (AccessibleComponent_getExtents):
+ handle exceptions elegantly.
+
+ * cspi/spi-private.h (cspi_check_ev_return),
+ (cspi_return_if_fail): impl.
+
+ * cspi/spi_accessible.c: use extensively.
+ (AccessibleStateSet_equals): add direct compare check.
+
+ * cspi/spi_selection.c: tolerate NULL objs, and check
+ exceptions before return.
+
+ * cspi/spi-util.c (cspi_warn_ev): rename to
+ (cspi_check_ev): this & don't pass ev in; no point.
+
+2001-12-10 Michael Meeks <michael@ximian.com>
+
+ * test/test-simple.c: use putenv not setenv
+ (get_environment_vars): more chatty if you're not using
+ the fun bits.
+
+ * test/simple-at.c: do the setenv so more people see the
+ nice demo easily.
+
2001-12-10 Bill Haneman <bill.haneman@sun.com>
* libspi/registry.c:
SUBDIRS = docs idl libspi registryd at-bridge cspi util test
pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = at-spi-1.0.pc
+pkgconfig_DATA = libspi-1.0.pc cspi-1.0.pc
EXTRA_DIST = \
xml-i18n-extract.in \
AC_OUTPUT([
Makefile
-at-spi-1.0.pc
+libspi-1.0.pc
+cspi-1.0.pc
docs/Makefile
docs/reference/Makefile
docs/reference/idl/Makefile
--- /dev/null
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+idldir=@datadir@/idl/at-spi-1.0
+
+Name: cspi
+Description: Accessibility Technology software simple client library
+Requires: libspi-1.0
+Version: @VERSION@
+Libs: -L${libdir} -lcspi
+Cflags: -I${includedir}/at-spi-1.0
AccessibleEvent aevent;
Accessible *source;
- source = cspi_object_add_check (bonobo_object_dup_ref (event->source, cspi_ev ()));
+ source = cspi_object_add (bonobo_object_dup_ref (event->source, cspi_ev ()));
aevent.type = event->type;
aevent.source = source;
AccessibleEvent aevent;
Accessible *source;
- source = cspi_object_add_check (bonobo_object_dup_ref (event->source, cspi_ev ()));
+ source = cspi_object_add (bonobo_object_dup_ref (event->source, cspi_ev ()));
aevent.type = event->type;
aevent.source = source;
SPIBoolean cspi_exception (void);
Accessibility_Registry cspi_registry (void);
Accessible *cspi_object_add (CORBA_Object corba_object);
-Accessible *cspi_object_add_check (CORBA_Object corba_object);
void cspi_object_ref (Accessible *accessible);
void cspi_object_unref (Accessible *accessible);
SPIBoolean cspi_accessible_is_a (Accessible *obj,
const char *interface_name);
-SPIBoolean cspi_warn_ev (CORBA_Environment *ev,
- const char *error_string);
-void cspi_check_ev (CORBA_Environment *ev,
- const char *error_string);
+SPIBoolean cspi_check_ev (const char *error_string);
+
+#define cspi_return_if_fail(val) \
+ if (!(val)) \
+ return
+#define cspi_return_val_if_fail(val, ret) \
+ if (!(val)) \
+ return (ret)
+
+#define cspi_return_if_ev(err) \
+ if (!cspi_check_ev (err)) \
+ return;
+#define cspi_return_val_if_ev(err, ret) \
+ if (!cspi_check_ev (err)) \
+ return (ret);
#endif /* _SPI_PRIVATE_H_ */
}
SPIBoolean
-cspi_warn_ev (CORBA_Environment *ev, const char *error_string)
+cspi_check_ev (const char *error_string)
{
+ CORBA_Environment *ev = cspi_ev ();
+
if (ev->_major != CORBA_NO_EXCEPTION)
{
char *err;
return TRUE;
}
}
-
-void
-cspi_check_ev (CORBA_Environment *ev, const char *error_string)
-{
- if (ev->_major != CORBA_NO_EXCEPTION)
- {
- char *err;
-
- err = bonobo_exception_get_text (ev);
-
- g_warning ("AT-SPI error: %s: %s\n", error_string, err);
-
- g_free (err);
-
- CORBA_exception_free (ev);
- }
-}
/* Accessible function prototypes */
-int Accessible_ref (Accessible *obj);
-int Accessible_unref (Accessible *obj);
+void Accessible_ref (Accessible *obj);
+void Accessible_unref (Accessible *obj);
char * Accessible_getName (Accessible *obj);
char * Accessible_getDescription (Accessible *obj);
Accessible * Accessible_getParent (Accessible *obj);
* AccessibleAction function prototypes
*/
-int
-AccessibleAction_ref (AccessibleAction *obj);
-
-int
-AccessibleAction_unref (AccessibleAction *obj);
-
+void AccessibleAction_ref (AccessibleAction *obj);
+void AccessibleAction_unref (AccessibleAction *obj);
long
AccessibleAction_getNActions (AccessibleAction *obj);
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleApplication_ref (AccessibleApplication *obj);
/**
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleApplication_unref (AccessibleApplication *obj);
/**
*
*/
-int
+void
AccessibleComponent_ref (AccessibleComponent *obj);
-int
+void
AccessibleComponent_unref (AccessibleComponent *obj);
SPIBoolean
*
*/
-int
+void
AccessibleEditableText_ref (AccessibleEditableText *obj);
-int
+void
AccessibleEditableText_unref (AccessibleEditableText *obj);
SPIBoolean
*
*/
-int
+void
AccessibleHypertext_ref (AccessibleHypertext *obj);
-int
+void
AccessibleHypertext_unref (AccessibleHypertext *obj);
long
*
*/
-int
+void
AccessibleImage_ref (AccessibleImage *obj);
-int
+void
AccessibleImage_unref (AccessibleImage *obj);
char *
*
*/
-int
-AccessibleRelation_ref (AccessibleRelation *obj);
-
-int
-AccessibleRelation_unref (AccessibleRelation *obj);
+void AccessibleRelation_ref (AccessibleRelation *obj);
+void AccessibleRelation_unref (AccessibleRelation *obj);
AccessibleRelationType
AccessibleRelation_getRelationType (AccessibleRelation *obj);
*
*/
-int
-AccessibleSelection_ref (AccessibleSelection *obj);
-
-int
-AccessibleSelection_unref (AccessibleSelection *obj);
+void AccessibleSelection_ref (AccessibleSelection *obj);
+void AccessibleSelection_unref (AccessibleSelection *obj);
long
AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
*
*/
-int
-AccessibleStateSet_ref (AccessibleStateSet *obj);
-
-int
-AccessibleStateSet_unref (AccessibleStateSet *obj);
+void AccessibleStateSet_ref (AccessibleStateSet *obj);
+void AccessibleStateSet_unref (AccessibleStateSet *obj);
SPIBoolean
AccessibleStateSet_contains (AccessibleStateSet *obj,
*
*/
-int
-AccessibleTable_ref (AccessibleTable *obj);
-
-int
-AccessibleTable_unref (AccessibleTable *obj);
+void AccessibleTable_ref (AccessibleTable *obj);
+void AccessibleTable_unref (AccessibleTable *obj);
Accessible *
AccessibleTable_getCaption (AccessibleTable *obj);
*
*/
-int
-AccessibleText_ref (AccessibleText *obj);
-
-int
-AccessibleText_unref (AccessibleText *obj);
+void AccessibleText_ref (AccessibleText *obj);
+void AccessibleText_unref (AccessibleText *obj);
long
AccessibleText_getCharacterCount (AccessibleText *obj);
*
*/
-int
-AccessibleValue_ref (AccessibleValue *obj);
-
-int
-AccessibleValue_unref (AccessibleValue *obj);
+void AccessibleValue_ref (AccessibleValue *obj);
+void AccessibleValue_unref (AccessibleValue *obj);
float
AccessibleValue_getMinimumValue (AccessibleValue *obj);
* Returns: (no return code implemented yet).
*
**/
-int
+void
Accessible_ref (Accessible *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
*
* Decrement the reference count for an #Accessible object.
*
- * Returns: (no return code implemented yet).
- *
**/
-int
+void
Accessible_unref (Accessible *obj)
{
cspi_object_unref (obj);
- return 0;
}
/**
* Get the name of an #Accessible object.
*
* Returns: a UTF-8 string indicating the name of the #Accessible object.
- *
+ * or NULL on exception
**/
char *
Accessible_getName (Accessible *obj)
{
- char *retval =
- (char *)
+ char *retval;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ retval = (char *)
Accessibility_Accessible__get_name (CSPI_OBJREF (obj), cspi_ev ());
- cspi_check_ev (cspi_ev (), "getName");
+
+ cspi_return_val_if_ev ("getName", NULL);
+
return retval;
}
* Get the description of an #Accessible object.
*
* Returns: a UTF-8 string describing the #Accessible object.
- *
+ * or NULL on exception
**/
char *
Accessible_getDescription (Accessible *obj)
{
- char *retval = (char *)
- Accessibility_Accessible__get_description (CSPI_OBJREF (obj), cspi_ev ());
- cspi_check_ev (cspi_ev (), "getDescription");
+ char *retval;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ retval = (char *)
+ Accessibility_Accessible__get_description (CSPI_OBJREF (obj),
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("getDescription", NULL);
+
return retval;
}
Accessible *
Accessible_getParent (Accessible *obj)
{
- Accessible *retval =
- cspi_object_add (Accessibility_Accessible__get_parent (CSPI_OBJREF (obj), cspi_ev ()));
- cspi_check_ev (cspi_ev (), "getParent");
+ Accessible *retval;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ retval = cspi_object_add (
+ Accessibility_Accessible__get_parent (CSPI_OBJREF (obj),
+ cspi_ev ()));
+
+ cspi_return_val_if_ev ("getParent", NULL);
+
return retval;
}
* Get the number of children contained by an #Accessible object.
*
* Returns: a #long indicating the number of #Accessible children
- * contained by an #Accessible object.
+ * contained by an #Accessible object. or -1 on exception
*
**/
long
Accessible_getChildCount (Accessible *obj)
{
- long retval = (long) Accessibility_Accessible__get_childCount (CSPI_OBJREF (obj), cspi_ev ());
- cspi_check_ev (cspi_ev (), "getChildCount");
+ long retval;
+
+ cspi_return_val_if_fail (obj != NULL, -1);
+
+ retval = (long)
+ Accessibility_Accessible__get_childCount (CSPI_OBJREF (obj),
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("getChildCount", -1);
+
return retval;
}
* Get the #Accessible child of an #Accessible object at a given index.
*
* Returns: a pointer to the #Accessible child object at index
- * @childIndex.
- *
+ * @childIndex. or NULL on exception
**/
Accessible *
Accessible_getChildAtIndex (Accessible *obj,
- long int childIndex)
+ long int childIndex)
{
- Accessible *retval = cspi_object_add_check (Accessibility_Accessible_getChildAtIndex (CSPI_OBJREF (obj), childIndex, cspi_ev ()));
+ Accessible *retval;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ retval = cspi_object_add (
+ Accessibility_Accessible_getChildAtIndex (CSPI_OBJREF (obj),
+ childIndex, cspi_ev ()));
+
return retval;
}
*
* Returns: a #long indicating the index of the #Accessible object
* in its parent (i.e. containing) #Accessible instance,
- * or -1 if @obj has no containing parent.
- *
+ * or -1 if @obj has no containing parent or on exception.
**/
long
Accessible_getIndexInParent (Accessible *obj)
{
- long retval = (long) Accessibility_Accessible_getIndexInParent (CSPI_OBJREF (obj), cspi_ev ());
- cspi_check_ev (cspi_ev (), "getIndexInParent");
+ long retval;
+
+ cspi_return_val_if_fail (obj != NULL, -1);
+
+ retval = (long)
+ Accessibility_Accessible_getIndexInParent (CSPI_OBJREF (obj), cspi_ev ());
+
+ cspi_return_val_if_ev ("getIndexInparent", -1);
return retval;
}
* Get the set of #AccessibleRelation objects which describe this #Accessible object's
* relationships with other #Accessible objects.
*
- * Returns: an array of #AccessibleRelation pointers.
- *
+ * Returns: an array of #AccessibleRelation pointers. or NULL on exception
**/
AccessibleRelation **
Accessible_getRelationSet (Accessible *obj)
{
- AccessibleRelation **relations;
- int n_relations;
int i;
- Accessibility_RelationSet *relation_set =
- Accessibility_Accessible_getRelationSet (CSPI_OBJREF (obj), cspi_ev ());
+ int n_relations;
+ AccessibleRelation **relations;
+ Accessibility_RelationSet *relation_set;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ relation_set =
+ Accessibility_Accessible_getRelationSet (CSPI_OBJREF (obj), cspi_ev ());
+
+ cspi_return_val_if_ev ("getRelationSet", NULL);
/* this looks hack-ish, but it's based on the CORBA C bindings spec */
n_relations = relation_set->_length;
relations = malloc (sizeof (AccessibleRelation *) * n_relations);
- for (i=0; i<n_relations; ++i)
+ for (i = 0; i < n_relations; ++i)
{
- relations[i] = cspi_object_add (CORBA_Object_duplicate (relation_set->_buffer[i], cspi_ev ()));
+ relations[i] = cspi_object_add (CORBA_Object_duplicate (
+ relation_set->_buffer[i], cspi_ev ()));
}
relations[i] = CORBA_OBJECT_NIL;
const char *
Accessible_getRole (Accessible *obj)
{
- const char *retval = AccessibleRole_getName (
- Accessibility_Accessible_getRole (CSPI_OBJREF (obj), cspi_ev ()));
- cspi_check_ev (cspi_ev (), "getRole");
+ const char *retval;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ retval = AccessibleRole_getName (
+ Accessibility_Accessible_getRole (CSPI_OBJREF (obj), cspi_ev ()));
+
+ cspi_return_val_if_ev ("getRole", NULL);
+
return retval;
}
interface_name,
cspi_ev ());
+
+ cspi_return_val_if_ev ("queryInterface", NULL);
+
/*
* FIXME: we need to be fairly sure that references are going
* to mach up if we are going to expose QueryInterface, ie. we
* Increment the reference count for an #AccessibleRelation object.
*
* Returns: (no return code implemented yet).
- *
**/
-int
+void
AccessibleRelation_ref (AccessibleRelation *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
* Decrement the reference count for an #AccessibleRelation object.
*
* Returns: (no return code implemented yet).
- *
**/
-int
+void
AccessibleRelation_unref (AccessibleRelation *obj)
{
cspi_object_unref (obj);
- return 0;
}
/**
AccessibleRelationType
AccessibleRelation_getRelationType (AccessibleRelation *obj)
{
+ cspi_return_val_if_fail (obj != NULL, -1);
return 0;
}
int
AccessibleRelation_getNTargets (AccessibleRelation *obj)
{
+ cspi_return_val_if_fail (obj != NULL, -1);
return 0;
}
Accessible *
AccessibleRelation_getTarget (AccessibleRelation *obj, int i)
{
+ cspi_return_val_if_fail (obj != NULL, NULL);
return NULL;
}
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleStateSet_ref (AccessibleStateSet *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleStateSet_unref (AccessibleStateSet *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
/**
* AccessibleStateSet_contains:
* @obj: a pointer to the #AccessibleStateSet object on which to operate.
AccessibleStateSet_contains (AccessibleStateSet *obj,
AccessibleState state)
{
- CORBA_boolean retval = Accessibility_StateSet_contains (CSPI_OBJREF (obj), state, cspi_ev ());
- cspi_check_ev (cspi_ev (), "contains");
+ CORBA_boolean retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
+ retval = Accessibility_StateSet_contains (CSPI_OBJREF (obj),
+ state, cspi_ev ());
+
+ cspi_return_val_if_ev ("contains", FALSE);
+
return (SPIBoolean) retval;
}
AccessibleStateSet_add (AccessibleStateSet *obj,
AccessibleState state)
{
+ cspi_return_if_fail (obj != NULL);
+
Accessibility_StateSet_add (CSPI_OBJREF (obj), state, cspi_ev ());
- cspi_check_ev (cspi_ev (), "contains");
+ cspi_check_ev ("add");
}
-
/**
* AccessibleStateSet_remove:
* @obj: a pointer to the #AccessibleStateSet object on which to operate.
AccessibleStateSet_remove (AccessibleStateSet *obj,
AccessibleState state)
{
+ cspi_return_if_fail (obj != NULL);
+
Accessibility_StateSet_remove (CSPI_OBJREF (obj), state, cspi_ev ());
- cspi_check_ev (cspi_ev (), "contains");
+ cspi_check_ev ("remove");
}
/**
AccessibleStateSet_equals (AccessibleStateSet *obj,
AccessibleStateSet *obj2)
{
- return Accessibility_StateSet_equals (CSPI_OBJREF (obj), CSPI_OBJREF (obj2), cspi_ev ());
+ if (obj == obj2)
+ {
+ return TRUE;
+ }
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+ cspi_return_val_if_fail (obj2 != NULL, FALSE);
+
+ return Accessibility_StateSet_equals (CSPI_OBJREF (obj),
+ CSPI_OBJREF (obj2), cspi_ev ());
}
/**
AccessibleStateSet_compare (AccessibleStateSet *obj,
AccessibleStateSet *obj2)
{
+ cspi_return_val_if_fail (obj != NULL, NULL);
+ cspi_return_val_if_fail (obj2 != NULL, NULL);
return NULL;
}
SPIBoolean
AccessibleStateSet_isEmpty (AccessibleStateSet *obj)
{
+ cspi_return_val_if_fail (obj != NULL, FALSE);
return TRUE;
/* return Accessibility_StateSet_isEmpty (CSPI_OBJREF (obj), cspi_ev ());*/
}
-
-
* Returns: 0 (no return code implemented yet).
*
**/
-int
+void
AccessibleAction_ref (AccessibleAction *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
* Returns: 0 (no return code implemented yet).
*
**/
-int
+void
AccessibleAction_unref (AccessibleAction *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
-
/**
* AccessibleAction_getNActions:
* @obj: a pointer to the #AccessibleAction to query.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleApplication_ref (AccessibleApplication *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleApplication_unref (AccessibleApplication *obj)
{
cspi_object_unref (obj);
- return 0;
}
/**
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleComponent_ref (AccessibleComponent *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleComponent_unref (AccessibleComponent *obj)
{
cspi_object_unref (obj);
- return 0;
}
/**
long int y,
AccessibleCoordType ctype)
{
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
return Accessibility_Component_contains (CSPI_OBJREF (obj),
(CORBA_long) x,
(CORBA_long) y,
{
Accessibility_Accessible child;
- child = Accessibility_Component_getAccessibleAtPoint(CSPI_OBJREF (obj),
- (CORBA_long) x,
- (CORBA_long) y,
- ctype,
- cspi_ev ());
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ child = Accessibility_Component_getAccessibleAtPoint (CSPI_OBJREF (obj),
+ (CORBA_long) x,
+ (CORBA_long) y,
+ ctype,
+ cspi_ev ());
return cspi_object_add (child);
}
AccessibleCoordType ctype)
{
Accessibility_BoundingBox bbox;
+
+ cspi_return_if_fail (obj != NULL);
+
bbox = Accessibility_Component_getExtents (CSPI_OBJREF (obj),
ctype,
cspi_ev ());
- cspi_warn_ev (cspi_ev (), "AccessibleComponent_getExtents");
- *x = bbox.x;
- *y = bbox.y;
- *width = bbox.width;
- *height = bbox.height;
+ if (cspi_check_ev ("AccessibleComponent_getExtents"))
+ {
+ *x = *y = *width = *height = 0;
+ }
+ else
+ {
+ *x = bbox.x;
+ *y = bbox.y;
+ *width = bbox.width;
+ *height = bbox.height;
+ }
}
/**
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleEditableText_ref (AccessibleEditableText *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
-
/**
* AccessibleEditableText_unref:
* @obj: a pointer to the #AccessibleEditableText object on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleEditableText_unref (AccessibleEditableText *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
-
/**
* AccessibleEditableText_setAttributes:
* @obj: a pointer to the #AccessibleEditableText object to modify.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleHypertext_ref (AccessibleHypertext *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
/**
* AccessibleHypertext_unref:
* @obj: a pointer to the #AccessibleHypertext object on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleHypertext_unref (AccessibleHypertext *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
-
/**
* AccessibleHypertext_getNLinks:
* @obj: a pointer to the #AccessibleHypertext implementor on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleImage_ref (AccessibleImage *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
-
/**
* AccessibleImage_unref:
* @obj: a pointer to the #AccessibleImage implementor on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleImage_unref (AccessibleImage *obj)
{
cspi_object_unref (obj);
- return 0;
}
{
ref = NULL;
}
+ else if (!cspi_check_ev ("pre method check"))
+ {
+ ref = NULL;
+ }
else
{
if ((ref = g_hash_table_lookup (get_live_refs (), corba_object)))
return ref;
}
-Accessible *
-cspi_object_add_check (CORBA_Object corba_object)
-{
- Accessible *retval;
-
- if (ev._major == CORBA_USER_EXCEPTION &&
- !strcmp (ev._id, ex_Accessibility_ChildGone))
- {
- retval = NULL;
- }
- else if (ev._major != CORBA_NO_EXCEPTION)
- {
- cspi_check_ev (cspi_ev (), "pre method check");
- retval = NULL;
- }
- else
- {
- retval = cspi_object_add (corba_object);
-
- cspi_check_ev (cspi_ev (), "post method check");
- }
-
- return retval;
-}
-
void
cspi_object_ref (Accessible *accessible)
{
int
getDesktopCount ()
{
- return Accessibility_Registry_getDesktopCount (cspi_registry (), cspi_ev ());
+ int retval;
+
+ retval = Accessibility_Registry_getDesktopCount (
+ cspi_registry (), cspi_ev ());
+
+ cspi_return_val_if_ev ("getDesktopCount", -1);
+
+ return retval;
}
/**
Accessible*
getDesktop (int i)
{
- return cspi_object_add_check (Accessibility_Registry_getDesktop (cspi_registry (),
- (CORBA_short) i,
- cspi_ev ()));
+ return cspi_object_add (Accessibility_Registry_getDesktop (cspi_registry (),
+ (CORBA_short) i,
+ cspi_ev ()));
}
/**
device_event_controller =
Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
- g_return_if_fail (cspi_warn_ev (cspi_ev (), "getting event controller"));
+ cspi_return_if_ev ("getting event controller");
/* copy the keyval filter values from the C api into the CORBA KeySet */
if (keys)
device_event_controller =
Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
- g_return_if_fail (cspi_warn_ev (cspi_ev (), "getting event controller"));
+ cspi_return_if_ev ("getting keystroke listener");
controller_event_mask.value = (CORBA_unsigned_long) modmask;
controller_event_mask.refcount = (CORBA_unsigned_short) 1;
Accessibility_DeviceEventController device_event_controller =
Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
- g_return_if_fail (cspi_warn_ev (cspi_ev (), "getting event controller"));
+ cspi_return_if_ev ("getting event controller");
Accessibility_DeviceEventController_generateKeyEvent (device_event_controller,
keyval,
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleSelection_ref (AccessibleSelection *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
/**
* AccessibleSelection_unref:
* @obj: a pointer to the #AccessibleSelection implementor on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleSelection_unref (AccessibleSelection *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
-
/**
* AccessibleSelection_getNSelectedChildren:
* @obj: a pointer to the #AccessibleSelection implementor on which to operate.
long
AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj)
{
- return (long)
- Accessibility_Selection__get_nSelectedChildren (CSPI_OBJREF (obj), cspi_ev ());
-}
+ long retval;
+
+ cspi_return_val_if_fail (obj != NULL, -1);
+ retval =
+ Accessibility_Selection__get_nSelectedChildren (CSPI_OBJREF (obj),
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("getNSelectedChildren", -1);
+
+ return retval;
+}
/**
* AccessibleSelection_getSelectedChild:
AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
long int selectedChildIndex)
{
- Accessibility_Accessible child =
- Accessibility_Selection_getSelectedChild (CSPI_OBJREF (obj),
- (CORBA_long) selectedChildIndex, cspi_ev ());
- cspi_warn_ev (cspi_ev (), "getSelectedChild");
+ Accessibility_Accessible child;
+
+ cspi_return_val_if_fail (obj != NULL, NULL);
+
+ child = Accessibility_Selection_getSelectedChild (
+ CSPI_OBJREF (obj),
+ (CORBA_long) selectedChildIndex, cspi_ev ());
return (Accessible *) cspi_object_add (child);
}
* selection.
*
* Returns: #TRUE if the child was successfully selected, #FALSE otherwise.
- *
**/
SPIBoolean
AccessibleSelection_selectChild (AccessibleSelection *obj,
long int childIndex)
{
- return (SPIBoolean)
+ SPIBoolean retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
+ retval =
Accessibility_Selection_selectChild (CSPI_OBJREF (obj),
(CORBA_long) childIndex, cspi_ev ());
-}
+ cspi_return_val_if_ev ("selectChild", FALSE);
+
+ return retval;
+}
/**
* AccessibleSelection_deselectSelectedChild:
* are asymmettric.
*
* Returns: #TRUE if the child was successfully deselected, #FALSE otherwise.
- *
**/
SPIBoolean
AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
long int selectedChildIndex)
{
- return Accessibility_Selection_deselectSelectedChild (
- CSPI_OBJREF (obj), (CORBA_long) selectedChildIndex, cspi_ev ());
-}
+ SPIBoolean retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+ retval = Accessibility_Selection_deselectSelectedChild (
+ CSPI_OBJREF (obj), (CORBA_long) selectedChildIndex, cspi_ev ());
+ cspi_return_val_if_ev ("deselectSelectedChild", FALSE);
+
+ return retval;
+}
/**
* AccessibleSelection_isChildSelected:
*
* Returns: #TRUE if the specified child is currently selected,
* #FALSE otherwise.
- *
**/
SPIBoolean
AccessibleSelection_isChildSelected (AccessibleSelection *obj,
long int childIndex)
{
- return (SPIBoolean)
- Accessibility_Selection_isChildSelected (CSPI_OBJREF (obj),
- (CORBA_long) childIndex, cspi_ev ());
-}
+ SPIBoolean retval;
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+ retval = Accessibility_Selection_isChildSelected (
+ CSPI_OBJREF (obj),
+ (CORBA_long) childIndex, cspi_ev ());
+
+ cspi_return_val_if_ev ("isChildSelected", FALSE);
+
+ return (SPIBoolean) retval;
+}
/**
* AccessibleSelection_selectAll:
SPIBoolean
AccessibleSelection_selectAll (AccessibleSelection *obj)
{
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
Accessibility_Selection_selectAll (CSPI_OBJREF (obj), cspi_ev ());
- return TRUE; /* TODO: change the bonobo method to return SPIBoolean */
-}
+ cspi_check_ev ("selectAll");
+ return TRUE; /* TODO: change the bonobo method to return SPIBoolean */
+}
/**
* AccessibleSelection_clearSelection:
*
* Clear the current selection, removing all selected children from the
* specified #AccessibleSelection implementor's selection list.
- *
**/
void
AccessibleSelection_clearSelection (AccessibleSelection *obj)
{
+ cspi_return_if_fail (obj != NULL);
+
Accessibility_Selection_clearSelection (CSPI_OBJREF (obj), cspi_ev ());
+ cspi_check_ev ("clearSelection");
}
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleTable_ref (AccessibleTable *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
-
/**
* AccessibleTable_unref:
* @obj: a pointer to the #AccessibleTable implementor on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleTable_unref (AccessibleTable *obj)
{
cspi_object_unref (obj);
- return 0;
}
/**
Accessibility_Table__get_caption (CSPI_OBJREF (obj), cspi_ev ());
}
-
-
/**
* AccessibleTable_getSummary:
* @obj: a pointer to the #AccessibleTable implementor on which to operate.
Accessibility_Table__get_summary (CSPI_OBJREF (obj), cspi_ev ());
}
-
-
/**
* AccessibleTable_getNRows:
* @obj: a pointer to the #AccessibleTable implementor on which to operate.
Accessibility_Table__get_nRows (CSPI_OBJREF (obj), cspi_ev ());
}
-
-
/**
* AccessibleTable_getNColumns:
* @obj: a pointer to the #AccessibleTable implementor on which to operate.
Accessibility_Table__get_nColumns (CSPI_OBJREF (obj), cspi_ev ());
}
-
/**
* AccessibleTable_getAccessibleAt:
* @obj: a pointer to the #AccessibleTable implementor on which to operate.
(CORBA_long) row, (CORBA_long) column, cspi_ev ());
}
-
/**
* AccessibleTable_getIndexAt:
* @obj: a pointer to the #AccessibleTable implementor on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleText_ref (AccessibleText *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
-
/**
* AccessibleText_unref:
* @obj: a pointer to the #Accessible object on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleText_unref (AccessibleText *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
/**
* AccessibleText_getCharacterCount:
* @obj: a pointer to the #AccessibleText object to query.
{
long retval;
- CORBA_exception_init (cspi_ev ());
+ cspi_return_val_if_fail (obj != NULL, -1);
+
retval = (long)
Accessibility_Text__get_characterCount (CSPI_OBJREF (obj), cspi_ev ());
- cspi_check_ev (cspi_ev (), "SpiAccessibleText_getCharacterCount");
+ cspi_return_val_if_ev ("_getCharacterCount", -1);
return retval;
}
-
-
/**
* AccessibleText_getText:
* @obj: a pointer to the #AccessibleText object to query.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleValue_ref (AccessibleValue *obj)
{
cspi_object_ref (obj);
- return 0;
}
-
-
/**
* AccessibleValue_unref:
* @obj: a pointer to the #AccessibleValue implementor on which to operate.
* Returns: (no return code implemented yet).
*
**/
-int
+void
AccessibleValue_unref (AccessibleValue *obj)
{
cspi_object_unref (obj);
- return 0;
}
-
-
/**
* AccessibleValue_getMinimumValue:
* @obj: a pointer to the #AccessibleValue implementor on which to operate.
module Accessibility {
typedef sequence<Relation> RelationSet;
- exception ChildGone {} ;
struct BoundingBox {
long x;
*
* Returns: the 'nth' @Accessible child of this object.
**/
- Accessible getChildAtIndex (in long index)
- raises (ChildGone);
+ Accessible getChildAtIndex (in long index);
/**
* getIndexInParent:
module Accessibility {
typedef sequence<Relation> RelationSet;
- exception ChildGone {} ;
struct BoundingBox {
long x;
*
* Returns: the 'nth' @Accessible child of this object.
**/
- Accessible getChildAtIndex (in long index)
- raises (ChildGone);
+ Accessible getChildAtIndex (in long index);
/**
* getIndexInParent:
exec_prefix=@exec_prefix@
libdir=@libdir@
includedir=@includedir@
-idldir=@datadir@/idl/at-spi-2.0
+idldir=@datadir@/idl/at-spi-1.0
-Name: at-spi
-Description: Accessibility Technology software
+Name: libspi
+Description: Accessibility Technology software library
Requires: libbonobo-2.0 atk gtk+-2.0
Version: @VERSION@
Libs: -L${libdir} -lspi
Accessibility_BoundingBox retval;
AtkComponent *component = get_component_from_servant (servant);
- g_return_if_fail (component != NULL);
-
atk_component_get_extents (component, &ix, &iy, &iw, &ih,
(AtkCoordType) coord_type);
retval = bonobo_object_dup_ref (app->ref, ev);
if (BONOBO_EX (ev))
{
- CORBA_exception_free (ev);
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Accessibility_ChildGone, NULL);
retval = CORBA_OBJECT_NIL;
}
}
retval = bonobo_object_dup_ref (app->ref, ev);
if (BONOBO_EX (ev))
{
- CORBA_exception_free (ev);
- CORBA_exception_set (ev, CORBA_USER_EXCEPTION,
- ex_Accessibility_ChildGone, NULL);
retval = CORBA_OBJECT_NIL;
}
}
#include <unistd.h>
#include <sys/socket.h>
#include <sys/un.h>
-#include <cspi/spi.h>
#include "../util/mag_client.h"
#include "../cspi/spi-private.h" /* A hack for now */
int i, j;
int n_desktops;
int n_apps;
+ char *s;
Accessible *desktop;
Accessible *application;
- char *s;
+ const char *modules;
if ((argc > 1) && (!strncmp (argv[1], "-h", 2)))
- {
- printf ("Usage: simple-at\n");
- printf ("\tEnvironment variables used:\n\t\tFESTIVAL\n\t\tMAGNIFIER\n\t\tFESTIVAL_CHATTY\n");
- exit (0);
- }
+ {
+ printf ("Usage: simple-at\n");
+ printf ("\tEnvironment variables used:\n\t\tFESTIVAL\n\t\tMAGNIFIER\n\t\tFESTIVAL_CHATTY\n");
+ exit (0);
+ }
+
+ modules = g_getenv ("GTK_MODULES");
+ if (!modules || modules [0] == '\0')
+ {
+ putenv ("GTK_MODULES=gail:at-bridge");
+ }
+ modules = NULL;
SPI_init ();
fprintf (stderr, "Using magnifier\n");
use_magnifier = TRUE;
}
+ else
+ {
+ fprintf (stderr, "Not using magnifier\n");
+ }
+
+ if (!use_festival)
+ {
+ fprintf (stderr, "No speech output\n");
+ }
}
void
g_return_if_fail (event->source != NULL);
s = Accessible_getName (event->source);
- if (cspi_warn_ev (cspi_ev (), "Report focus event"))
+ if (s)
{
fprintf (stderr, "%s event from %s\n", event->type, s);
SPI_freeString (s);
g_object_unref (G_OBJECT (aobject));
- /* Pull focus away and then back - thus sucks */
return FALSE;
}
{
int leaked;
TestWindow *win;
+ const char *modules, *tmp;
AccessibleEventListener *global_listener;
- setenv ("GTK_MODULES", "gail:at-bridge", FALSE);
+ modules = g_getenv ("GTK_MODULES");
+ if (!modules || modules [0] == '\0')
+ putenv ("GTK_MODULES=gail:at-bridge");
+ modules = NULL;
gtk_init (&argc, &argv);
gtk_main ();
}
- setenv ("AT_BRIDGE_SHUTDOWN", "1", TRUE);
+ putenv ("AT_BRIDGE_SHUTDOWN=1");
return 0;
}