2001-12-10 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / cspi / spi_selection.c
index dbef7ef..e8c4e0c 100644 (file)
-int
+#include <cspi/spi-private.h>
+
+/**
+ * AccessibleSelection_ref:
+ * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
+ *
+ * Increment the reference count for an #AccessibleSelection object.
+ *
+ * Returns: (no return code implemented yet).
+ *
+ **/
+void
 AccessibleSelection_ref (AccessibleSelection *obj)
 {
-  Accessibility_Selection_ref (*obj, &ev);
-  return 0;
+  cspi_object_ref (obj);
 }
 
-
-
-int
+/**
+ * AccessibleSelection_unref:
+ * @obj: a pointer to the #AccessibleSelection implementor on which to operate. 
+ *
+ * Decrement the reference count for an #Accessible object.
+ *
+ * Returns: (no return code implemented yet).
+ *
+ **/
+void
 AccessibleSelection_unref (AccessibleSelection *obj)
 {
-  Accessibility_Selection_unref (*obj, &ev);
-  return 0;
+  cspi_object_unref (obj);
 }
 
-
-
+/**
+ * AccessibleSelection_getNSelectedChildren:
+ * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
+ *
+ * Get the number of children of an #AccessibleSelection implementor which are
+ *        currently selected.
+ *
+ * Returns: a #long indicating the number of #Accessible children
+ *        of the #AccessibleSelection implementor which are currently selected.
+ *
+ **/
 long
 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj)
 {
-  return (long)
-    Accessibility_Selection__get_nSelectedChildren (*obj, &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:
+ * @obj: a pointer to the #AccessibleSelection on which to operate.
+ * @selectedChildIndex: a #long indicating which of the selected
+ *      children is specified.
+ *
+ * Get the i-th selected #Accessible child of an #AccessibleSelection.
+ *      Note that @childIndex refers to the index in the list of 'selected'
+ *      children and generally differs from that used in
+ *      #Accessible_getChildAtIndex() or returned by
+ *      #Accessible_getIndexInParent(). @selectedChildIndex must lie between 0
+ *      and #AccessibleSelection_getNSelectedChildren()-1, inclusive.
+ *
+ * Returns: a pointer to a selected #Accessible child object,
+ *          specified by @childIndex.
+ *
+ **/
 Accessible *
 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
-                                      long selectedChildIndex)
+                                      long int selectedChildIndex)
 {
-  Accessibility_Accessible child = 
-    Accessibility_Selection_getSelectedChild (*obj,
-                                             (CORBA_long) selectedChildIndex, &ev);
-  spi_warn_ev (&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 *) ((CORBA_Object_is_nil (child, &ev)) ? NULL : Obj_Add (child));
+  return (Accessible *) cspi_object_add (child);
 }
 
-boolean
+/**
+ * AccessibleSelection_selectChild:
+ * @obj: a pointer to the #AccessibleSelection on which to operate.
+ * @childIndex: a #long indicating which child of the #Accessible
+ *              is to be selected.
+ *
+ * Add a child to the selected children list of an #AccessibleSelection.
+ *         For #AccessibleSelection implementors that only allow
+ *         single selections, this may replace the (single) current
+ *         selection.
+ *
+ * Returns: #TRUE if the child was successfully selected, #FALSE otherwise.
+ **/
+SPIBoolean
 AccessibleSelection_selectChild (AccessibleSelection *obj,
-                                 long childIndex)
+                                 long int childIndex)
 {
-  return (boolean)
-    Accessibility_Selection_selectChild (*obj,
-                                        (CORBA_long) childIndex, &ev);
-}
+  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;
+}
 
-boolean
+/**
+ * AccessibleSelection_deselectSelectedChild:
+ * @obj: a pointer to the #AccessibleSelection on which to operate.
+ * @selectedChildIndex: a #long indicating which of the selected children
+ *              of the #Accessible is to be selected.
+ *
+ * Remove a child to the selected children list of an #AccessibleSelection.
+ *          Note that @childIndex is the index in the selected-children list,
+ *          not the index in the parent container.  @selectedChildIndex in this
+ *          method, and @childIndex in #AccessibleSelection_selectChild
+ *          are asymmettric.
+ *
+ * Returns: #TRUE if the child was successfully deselected, #FALSE otherwise.
+ **/
+SPIBoolean
 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
-                                           long selectedChildIndex)
+                                           long int selectedChildIndex)
 {
-  Accessibility_Selection_deselectSelectedChild (*obj,
-                                                (CORBA_long) selectedChildIndex, &ev);
-}
+  SPIBoolean retval;
 
+  cspi_return_val_if_fail (obj != NULL, FALSE);
 
+  retval = Accessibility_Selection_deselectSelectedChild (
+    CSPI_OBJREF (obj), (CORBA_long) selectedChildIndex, cspi_ev ());
 
-boolean
+  cspi_return_val_if_ev ("deselectSelectedChild", FALSE);
+
+  return retval;
+}
+
+/**
+ * AccessibleSelection_isChildSelected:
+ * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
+ * @childIndex: an index into the #AccessibleSelection's list of children.
+ *
+ * Determine whether a particular child of an #AccessibleSelection implementor
+ *        is currently selected.  Note that @childIndex is the index into the
+ *        standard #Accessible container's list of children.
+ *
+ * Returns: #TRUE if the specified child is currently selected,
+ *          #FALSE otherwise.
+ **/
+SPIBoolean
 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
-                                     long childIndex)
+                                     long int childIndex)
 {
-  return (boolean)
-    Accessibility_Selection_isChildSelected (*obj,
-                                            (CORBA_long) childIndex, &ev);
-}
+  SPIBoolean retval;
 
+  cspi_return_val_if_fail (obj != NULL, FALSE);
 
+  retval = Accessibility_Selection_isChildSelected (
+    CSPI_OBJREF (obj),
+    (CORBA_long) childIndex, cspi_ev ());
 
-void
+  cspi_return_val_if_ev ("isChildSelected", FALSE);
+
+  return (SPIBoolean) retval;
+}
+
+/**
+ * AccessibleSelection_selectAll:
+ * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
+ *
+ * Attempt to select all of the children of an #AccessibleSelection implementor.
+ * Not all #AccessibleSelection implementors support this operation.
+ *
+ * Returns: #TRUE if successful, #FALSE otherwise.
+ *
+ **/
+SPIBoolean
 AccessibleSelection_selectAll (AccessibleSelection *obj)
 {
-  Accessibility_Selection_selectAll (*obj, &ev);
-}
+  cspi_return_val_if_fail (obj != NULL, FALSE);
 
+  Accessibility_Selection_selectAll (CSPI_OBJREF (obj), cspi_ev ());
 
+  cspi_check_ev ("selectAll");
 
+  return TRUE; /* TODO: change the bonobo method to return SPIBoolean */
+}
+
+/**
+ * AccessibleSelection_clearSelection:
+ * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
+ *
+ * Clear the current selection, removing all selected children from the
+ *       specified #AccessibleSelection implementor's selection list.
+ **/
 void
 AccessibleSelection_clearSelection (AccessibleSelection *obj)
 {
-  Accessibility_Selection_clearSelection (*obj, &ev);
+  cspi_return_if_fail (obj != NULL);
+
+  Accessibility_Selection_clearSelection (CSPI_OBJREF (obj), cspi_ev ());
+  cspi_check_ev ("clearSelection");
 }