/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/*
*
* AccessibleComponent function implementations
*
* @obj: a pointer to an object implementing #AccessibleComponent on which to operate.
*
* Increment the reference count for an #AccessibleComponent.
- *
- * Returns: (no return code implemented yet).
- *
**/
-int
+void
AccessibleComponent_ref (AccessibleComponent *obj)
{
cspi_object_ref (obj);
- return 0;
}
/**
* @obj: a pointer to the object implementing #AccessibleComponent on which to operate.
*
* Decrement the reference count for an #AccessibleComponent.
- *
- * Returns: (no return code implemented yet).
- *
**/
-int
+void
AccessibleComponent_unref (AccessibleComponent *obj)
{
cspi_object_unref (obj);
- return 0;
}
/**
long int y,
AccessibleCoordType ctype)
{
- return Accessibility_Component_contains (CSPI_OBJREF (obj),
- (CORBA_long) x,
- (CORBA_long) y,
- ctype,
- cspi_ev ());
+ SPIBoolean retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
+ retval = Accessibility_Component_contains (CSPI_OBJREF (obj),
+ x,
+ y,
+ ctype,
+ cspi_ev ());
+ cspi_return_val_if_ev ("contains", FALSE);
+
+ return retval;
}
/**
{
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),
+ x,
+ 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 ("getExtents"))
+ {
+ *x = *y = *width = *height = 0;
+ }
+ else
+ {
+ *x = bbox.x;
+ *y = bbox.y;
+ *width = bbox.width;
+ *height = bbox.height;
+ }
}
/**
long int *y,
AccessibleCoordType ctype)
{
+ CORBA_long cx, cy;
+
+ cspi_return_if_fail (obj != NULL);
+
Accessibility_Component_getPosition (CSPI_OBJREF (obj),
- (CORBA_long *) x,
- (CORBA_long *) y,
- ctype,
- cspi_ev ());
+ &cx, &cy, ctype, cspi_ev ());
+
+ if (!cspi_check_ev ("getPosition"))
+ {
+ *x = *y = 0;
+ }
+ else
+ {
+ *x = cx;
+ *y = cy;
+ }
}
/**
long int *width,
long int *height)
{
+ CORBA_long cw, ch;
+
+ cspi_return_if_fail (obj != NULL);
+
Accessibility_Component_getSize (CSPI_OBJREF (obj),
- (CORBA_long *) width,
- (CORBA_long *) height,
+ &cw,
+ &ch,
cspi_ev ());
+ if (cspi_check_ev ("getSize"))
+ {
+ *width = *height = 0;
+ }
+ else
+ {
+ *width = cw;
+ *height = ch;
+ }
}
/**
AccessibleComponentLayer
AccessibleComponent_getLayer (AccessibleComponent *obj)
{
+ AccessibleComponentLayer retval;
Accessibility_ComponentLayer zlayer;
- AccessibleComponentLayer retval;
-
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
zlayer = Accessibility_Component_getLayer (CSPI_OBJREF (obj),
- cspi_ev ());
- switch (retval)
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("getLayer", SPI_LAYER_INVALID);
+
+ switch (zlayer)
{
case Accessibility_LAYER_BACKGROUND:
retval = SPI_LAYER_BACKGROUND;
case Accessibility_LAYER_OVERLAY:
retval = SPI_LAYER_OVERLAY;
break;
+ case Accessibility_LAYER_WINDOW:
+ retval = SPI_LAYER_WINDOW;
+ break;
default:
retval = SPI_LAYER_INVALID;
+ break;
}
+
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)
+ * Query the z stacking order of a component which is in the MDI or window
+ * 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 ());
+ short retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
+ retval = Accessibility_Component_getMDIZOrder (CSPI_OBJREF (obj),
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("getMDIZOrder", FALSE);
+
+ return retval;
}
/**
* Attempt to set the keyboard input focus to the specified
* #AccessibleComponent.
*
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ *
**/
-void
+SPIBoolean
AccessibleComponent_grabFocus (AccessibleComponent *obj)
{
- ;
+ SPIBoolean retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
+ retval = Accessibility_Component_grabFocus (CSPI_OBJREF (obj),
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("grabFocus", FALSE);
+
+ return retval;
+}
+
+/**
+ * AccessibleComponent_getAlpha:
+ * @obj: The #AccessibleComponent to be queried.
+ *
+ * Get the opacity/alpha value of a component, if alpha blending is in use.
+ *
+ * Returns: the opacity value of a component, as a double between 0.0 and 1.0.
+ **/
+double
+AccessibleComponent_getAlpha (AccessibleComponent *obj)
+{
+ SPIBoolean retval;
+
+ cspi_return_val_if_fail (obj != NULL, 1.0);
+
+ retval = Accessibility_Component_getAlpha (CSPI_OBJREF (obj),
+ cspi_ev ());
+
+ cspi_return_val_if_ev ("getAlpha", 1.0);
+
+ return retval;
}