Added boolean return types for methods in Component, Selection,
[platform/core/uifw/at-spi2-atk.git] / cspi / spi_component.c
index 0ba17b6..cf43b7d 100644 (file)
  * @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;
 }
 
 /**
@@ -27,15 +23,11 @@ AccessibleComponent_ref (AccessibleComponent *obj)
  * @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;
 }
 
 /**
@@ -51,17 +43,24 @@ 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,
                               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),
+                                            (CORBA_long) x,
+                                            (CORBA_long) y,
+                                            ctype,
+                                            cspi_ev ());
+  cspi_return_val_if_ev ("contains", FALSE);
+
+  return retval;
 }
 
 /**
@@ -85,11 +84,13 @@ AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
 {
   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);
 }
 
@@ -114,19 +115,24 @@ AccessibleComponent_getExtents (AccessibleComponent *obj,
                                 long int *height,
                                 AccessibleCoordType ctype)
 {
-  CORBA_long cx, cy, cw, ch;   
-  Accessibility_Component_getExtents (CSPI_OBJREF (obj),
-                                      &cx,
-                                      &cy,
-                                      &cw,
-                                      &ch,
-                                     ctype,
-                                     cspi_ev ());
-  cspi_warn_ev (cspi_ev (), "AccessibleComponent_getExtents");
-  *x = (long) cx;
-  *y = (long) cy;
-  *width = (long) cw;
-  *height = (long) ch;
+  Accessibility_BoundingBox bbox;
+
+  cspi_return_if_fail (obj != NULL);
+
+  bbox = Accessibility_Component_getExtents (CSPI_OBJREF (obj),
+                                            ctype,
+                                            cspi_ev ());
+  if (!cspi_check_ev ("AccessibleComponent_getExtents"))
+    {
+      *x = *y = *width = *height = 0;    
+    }
+  else
+    {
+      *x = bbox.x;
+      *y = bbox.y;
+      *width = bbox.width;
+      *height = bbox.height;
+    }
 }
 
 /**
@@ -146,11 +152,22 @@ AccessibleComponent_getPosition (AccessibleComponent *obj,
                                  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;
+    }
 }
 
 /**
@@ -167,6 +184,8 @@ AccessibleComponent_getSize (AccessibleComponent *obj,
                              long int *width,
                              long int *height)
 {
+  cspi_return_if_fail (obj != NULL);
+
   Accessibility_Component_getSize (CSPI_OBJREF (obj),
                                    (CORBA_long *) width,
                                    (CORBA_long *) height,
@@ -174,15 +193,102 @@ 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)
+{
+  AccessibleComponentLayer     retval;
+  Accessibility_ComponentLayer zlayer;
+
+  cspi_return_val_if_fail (obj != NULL, FALSE);
+
+  zlayer = Accessibility_Component_getLayer (CSPI_OBJREF (obj),
+                                            cspi_ev ());
+
+  cspi_return_val_if_ev ("getLayer", SPI_LAYER_INVALID);
+
+  switch (zlayer)
+    {
+    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;
+      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)
+ *
+ * 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)
+{
+  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;
+}
+
+/**
  * AccessibleComponent_grabFocus:
  * @obj: a pointer to the #AccessibleComponent on which to operate.
  *
  * Attempt to set the keyboard input focus to the specified
  *         #AccessibleComponent.
  *
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ *
  **/
-void
+SPIBoolean
 AccessibleComponent_grabFocus (AccessibleComponent *obj)
 {
-  ;
+  short 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;
 }
+