Added Li Yuan <li.yuan@sun.com> to MAINTAINERS list for atk, gail,
[platform/core/uifw/at-spi2-atk.git] / cspi / spi_component.c
index 8e746e4..11202b0 100644 (file)
@@ -1,4 +1,27 @@
 /*
+ * 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
  *
@@ -54,8 +77,8 @@ AccessibleComponent_contains (AccessibleComponent *obj,
   cspi_return_val_if_fail (obj != NULL, FALSE);
 
   retval = Accessibility_Component_contains (CSPI_OBJREF (obj),
-                                            (CORBA_long) x,
-                                            (CORBA_long) y,
+                                            x,
+                                            y,
                                             ctype,
                                             cspi_ev ());
   cspi_return_val_if_ev ("contains", FALSE);
@@ -87,8 +110,8 @@ AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
   cspi_return_val_if_fail (obj != NULL, NULL);
 
   child = Accessibility_Component_getAccessibleAtPoint (CSPI_OBJREF (obj),
-                                                       (CORBA_long) x,
-                                                       (CORBA_long) y,
+                                                       x,
+                                                       y,
                                                        ctype,
                                                        cspi_ev ());
   return cspi_object_add (child);
@@ -122,7 +145,7 @@ AccessibleComponent_getExtents (AccessibleComponent *obj,
   bbox = Accessibility_Component_getExtents (CSPI_OBJREF (obj),
                                             ctype,
                                             cspi_ev ());
-  if (!cspi_check_ev ("AccessibleComponent_getExtents"))
+  if (!cspi_check_ev ("getExtents"))
     {
       *x = *y = *width = *height = 0;    
     }
@@ -184,12 +207,23 @@ AccessibleComponent_getSize (AccessibleComponent *obj,
                              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;
+  }
 }
 
 /**
@@ -234,6 +268,9 @@ AccessibleComponent_getLayer (AccessibleComponent *obj)
     case Accessibility_LAYER_OVERLAY:    
       retval = SPI_LAYER_OVERLAY;
       break;
+    case Accessibility_LAYER_WINDOW:     
+      retval = SPI_LAYER_WINDOW;
+      break;
     default:
       retval = SPI_LAYER_INVALID;
       break;
@@ -246,8 +283,8 @@ 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.
- *       (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.
@@ -273,8 +310,44 @@ AccessibleComponent_getMDIZOrder (AccessibleComponent *obj)
  *
  * 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;
 }