Updated FSF's address
[platform/upstream/atk.git] / atk / atkcomponent.h
old mode 100755 (executable)
new mode 100644 (file)
index 42c21e5..888ce11
  * 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.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
  */
 
+#if defined(ATK_DISABLE_SINGLE_INCLUDES) && !defined (__ATK_H_INSIDE__) && !defined (ATK_COMPILATION)
+#error "Only <atk/atk.h> can be included directly."
+#endif
+
 #ifndef __ATK_COMPONENT_H__
 #define __ATK_COMPONENT_H__
 
 #include <atk/atkobject.h>
+#include <atk/atkutil.h>
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
 /*
  * The AtkComponent interface should be supported by any object that is 
@@ -42,140 +43,163 @@ extern "C" {
 #define _TYPEDEF_ATK_COMPONENT_
 typedef struct _AtkComponent AtkComponent;
 #endif
+typedef struct _AtkComponentIface  AtkComponentIface;
+
+/**
+ * AtkFocusHandler:
+ * @object: the #AtkObject that receives/lose the focus
+ * @focus_in: TRUE if the object receives the focus
+ *
+ * The type of callback function used for
+ * atk_component_add_focus_handler() and
+ * atk_component_remove_focus_handler()
+ *
+ * Deprecated: This type is deprecated since ATK version 2.9.4. as
+ * atk_component_add_focus_handler() and
+ * atk_component_remove_focus_handler() are deprecated. See those
+ * methods for more information.
+ */
+typedef void (*AtkFocusHandler) (AtkObject* object, gboolean focus_in);
+
+typedef struct _AtkRectangle       AtkRectangle;
 
-typedef void (*AtkFocusHandler) (AtkObject*, gboolean);
+/**
+ * AtkRectangle:
+ * @x: X coordinate of the left side of the rectangle.
+ * @y: Y coordinate of the top side of the rectangle.
+ * @width: width of the rectangle.
+ * @height: height of the rectangle.
+ *
+ * A data structure for holding a rectangle. Those coordinates are
+ * relative to the component top-level parent.
+ */
+struct _AtkRectangle
+{
+  gint x;
+  gint y;
+  gint width;
+  gint height;
+};
 
+GType atk_rectangle_get_type (void);
+
+#define ATK_TYPE_RECTANGLE (atk_rectangle_get_type ())
+
+/**
+ * AtkComponentIface:
+ * @add_focus_handler: This virtual function is deprecated since 2.9.4
+ * and it should not be overriden. See
+ * atk_component_add_focus_handler() for more information.
+ * @remove_focus_handler: This virtual function is deprecated since
+ * 2.9.4 and it should not be overriden. See
+ * atk_component_remove_focus_handler() for more information.
+ */
 
 struct _AtkComponentIface
 {
   GTypeInterface parent;
 
-  /*
-   * Add the specified handler to the set of functions to be called 
-   * when this object receives focus (in or out) events.
-   */
-  guint          (* add_focus_handler)  (AtkComponent    *component,
-                                         AtkFocusHandler handler);
-  /*
-   * Checks whether the specified point is within the extent of the object,
-   * the points x and y coordinates are defined to be relative to the 
-   * coordinate system of the object.
-   */
-  gboolean       (* contains)           (AtkComponent           *component,
+  guint          (* add_focus_handler)  (AtkComponent          *component,
+                                         AtkFocusHandler        handler);
+
+  gboolean       (* contains)           (AtkComponent          *component,
                                          gint                   x,
-                                         gint                   y);
+                                         gint                   y,
+                                         AtkCoordType           coord_type);
 
-  /*
-   * Gets the accessible child, if one exists, contained at the local
-   * coordinate point specified by x and y.
-   */
-  AtkObject*    (* get_accessible_at_point)  (AtkComponent     *component,
+  AtkObject*    (* ref_accessible_at_point)  (AtkComponent     *component,
                                          gint                   x,
-                                         gint                   y);
-  /*
-   * Gets the rectangle which gives the extent of the object.
-   */
+                                         gint                   y,
+                                         AtkCoordType           coord_type);
   void          (* get_extents)         (AtkComponent          *component,
                                          gint                  *x,
                                          gint                  *y,
                                          gint                  *width,
-                                         gint                  *height);
-  /*
-   * Gets the position of the object relative to the parent in the form of 
-   * a point specifying the object's top-left corner in the screen's
-   * coordinate space.
-   */
+                                         gint                  *height,
+                                         AtkCoordType          coord_type);
   void                     (* get_position)     (AtkComponent   *component,
                                                  gint           *x,
-                                                 gint           *y);
-  /*
-   *  Returns the position of the object on the screen
-   */
-  void                     (* get_position_on_screen)   (AtkComponent   *component,
-                                                         gint           *root_x,
-                                                         gint           *root_y);
-  /*
-   *  Returns the size of the object
-   */
+                                                 gint           *y,
+                                                 AtkCoordType   coord_type);
   void                     (* get_size)                 (AtkComponent   *component,
                                                          gint           *width,
                                                          gint           *height);
-  /*
-   * Grabs focus for this object
-   */
-  void                     (* grab_focus)               (AtkComponent   *component);
-  /*
-   * Remove the handler specified by the handler_id from the list of
-   * functions to be executed when this object receives focus (in or out)
-   */
+  gboolean                 (* grab_focus)               (AtkComponent   *component);
   void                     (* remove_focus_handler)      (AtkComponent  *component,
                                                           guint         handler_id);
-  /*
-   * Sets the extents of the object
-   */
-  void                     (* set_extents)      (AtkComponent   *component,
+  gboolean                 (* set_extents)      (AtkComponent   *component,
                                                  gint           x,
                                                  gint           y,
                                                  gint           width,
-                                                 gint           height);
-  /*
-   * Set the position of the object
-   */
-  void                     (* set_position)     (AtkComponent   *component,
+                                                 gint           height,
+                                                 AtkCoordType   coord_type);
+  gboolean                 (* set_position)     (AtkComponent   *component,
                                                  gint           x,
-                                                 gint           y);
-  /*
-   * Set the size of the object
-   */
-  void                     (* set_size)         (AtkComponent   *component,
+                                                 gint           y,
+                                                 AtkCoordType   coord_type);
+  gboolean                 (* set_size)         (AtkComponent   *component,
                                                  gint           width,
                                                  gint           height);
+       
+  AtkLayer                 (* get_layer)        (AtkComponent   *component);
+  gint                     (* get_mdi_zorder)   (AtkComponent   *component);
+
+  /*
+   * signal handlers
+   */
+  void                     (* bounds_changed)   (AtkComponent   *component,
+                                                 AtkRectangle   *bounds);
+  gdouble                  (* get_alpha)        (AtkComponent   *component);
 };
 
-GType atk_component_get_type ();
+GType atk_component_get_type (void);
 
 /* convenience functions */
-
+G_DEPRECATED
 guint                atk_component_add_focus_handler      (AtkComponent    *component,
                                                            AtkFocusHandler handler);
 gboolean              atk_component_contains               (AtkComponent    *component,
                                                             gint            x,
-                                                            gint            y);
-AtkObject*            atk_component_get_accessible_at_point(AtkComponent    *component,
+                                                            gint            y,
+                                                            AtkCoordType    coord_type);
+AtkObject*            atk_component_ref_accessible_at_point(AtkComponent    *component,
                                                             gint            x,
-                                                            gint            y);
+                                                            gint            y,
+                                                            AtkCoordType    coord_type);
 void                  atk_component_get_extents            (AtkComponent    *component,
                                                             gint            *x,
                                                             gint            *y,
                                                             gint            *width,
-                                                            gint            *height);
+                                                            gint            *height,
+                                                            AtkCoordType    coord_type);
 void                  atk_component_get_position           (AtkComponent    *component,
                                                             gint            *x,
-                                                            gint            *y);
-void                  atk_component_get_position_on_screen (AtkComponent    *component,
-                                                            gint            *x,
-                                                            gint            *y);
+                                                            gint            *y,
+                                                            AtkCoordType    coord_type);
 void                  atk_component_get_size               (AtkComponent    *component,
                                                             gint            *width,
                                                             gint            *height);
-void                  atk_component_grab_focus             (AtkComponent    *component);
+AtkLayer              atk_component_get_layer              (AtkComponent    *component);
+gint                  atk_component_get_mdi_zorder         (AtkComponent    *component);
+gboolean              atk_component_grab_focus             (AtkComponent    *component);
+G_DEPRECATED
 void                  atk_component_remove_focus_handler   (AtkComponent    *component,
                                                             guint           handler_id);
-void                  atk_component_set_extents            (AtkComponent    *component,
+gboolean              atk_component_set_extents            (AtkComponent    *component,
                                                             gint            x,
                                                             gint            y,
                                                             gint            width,
-                                                            gint            height);
-void                  atk_component_set_position           (AtkComponent    *component,
+                                                            gint            height,
+                                                            AtkCoordType    coord_type);
+gboolean              atk_component_set_position           (AtkComponent    *component,
                                                             gint            x,
-                                                            gint            y);
-void                  atk_component_set_size               (AtkComponent    *component,
+                                                            gint            y,
+                                                            AtkCoordType    coord_type);
+gboolean              atk_component_set_size               (AtkComponent    *component,
                                                             gint            width,
                                                             gint            height);
+gdouble               atk_component_get_alpha              (AtkComponent    *component);
 
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+G_END_DECLS
 
 #endif /* __ATK_COMPONENT_H__ */