* Boston, MA 02111-1307, USA.
*/
+#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
#endif
typedef struct _AtkComponentIface AtkComponentIface;
-typedef void (*AtkFocusHandler) (AtkObject*, gboolean);
+/**
+ * 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: 2.9.4: Deprecated with atk_component_add_focus_handler()
+ * and atk_component_remove_focus_handler(). See those
+ * methods for more information.
+ */
+typedef void (*AtkFocusHandler) (AtkObject* object, gboolean focus_in);
+typedef struct _AtkRectangle AtkRectangle;
+
+/**
+ * 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;
+};
+
+ATK_AVAILABLE_IN_ALL
+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.
+ * @get_position: This virtual function is deprecated since 2.12 and
+ * it should not be overriden. Use @get_extents instead.
+ * @get_size: This virtual function is deprecated since 2.12 and it
+ * should not be overriden. Use @get_extents instead.
+ * @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);
+ gboolean (* grab_highlight) (AtkComponent *component);
+ gboolean (* clear_highlight) (AtkComponent *component);
+ gint (* get_highlight_index) (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 ();
+ATK_AVAILABLE_IN_ALL
+GType atk_component_get_type (void);
/* convenience functions */
-
+ATK_DEPRECATED_IN_2_10
guint atk_component_add_focus_handler (AtkComponent *component,
AtkFocusHandler handler);
+ATK_AVAILABLE_IN_ALL
gboolean atk_component_contains (AtkComponent *component,
gint x,
- gint y);
-AtkObject* atk_component_get_accessible_at_point(AtkComponent *component,
+ gint y,
+ AtkCoordType coord_type);
+ATK_AVAILABLE_IN_ALL
+AtkObject* atk_component_ref_accessible_at_point(AtkComponent *component,
gint x,
- gint y);
+ gint y,
+ AtkCoordType coord_type);
+ATK_AVAILABLE_IN_ALL
void atk_component_get_extents (AtkComponent *component,
gint *x,
gint *y,
gint *width,
- gint *height);
+ gint *height,
+ AtkCoordType coord_type);
+ATK_DEPRECATED_IN_2_12_FOR(atk_component_get_extents)
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);
+ATK_DEPRECATED_IN_2_12_FOR(atk_component_get_extents)
void atk_component_get_size (AtkComponent *component,
gint *width,
gint *height);
-void atk_component_grab_focus (AtkComponent *component);
+ATK_AVAILABLE_IN_ALL
+AtkLayer atk_component_get_layer (AtkComponent *component);
+ATK_AVAILABLE_IN_ALL
+gint atk_component_get_mdi_zorder (AtkComponent *component);
+ATK_AVAILABLE_IN_ALL
+gboolean atk_component_grab_focus (AtkComponent *component);
+ATK_AVAILABLE_IN_ALL
+gboolean atk_component_grab_highlight (AtkComponent *component);
+ATK_AVAILABLE_IN_ALL
+gboolean atk_component_clear_highlight (AtkComponent *component);
+ATK_AVAILABLE_IN_ALL
+gint atk_component_get_highlight_index (AtkComponent *component);
+ATK_DEPRECATED_IN_2_10
void atk_component_remove_focus_handler (AtkComponent *component,
guint handler_id);
-void atk_component_set_extents (AtkComponent *component,
+ATK_AVAILABLE_IN_ALL
+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);
+ATK_AVAILABLE_IN_ALL
+gboolean atk_component_set_position (AtkComponent *component,
gint x,
- gint y);
-void atk_component_set_size (AtkComponent *component,
+ gint y,
+ AtkCoordType coord_type);
+ATK_AVAILABLE_IN_ALL
+gboolean atk_component_set_size (AtkComponent *component,
gint width,
gint height);
+ATK_AVAILABLE_IN_ALL
+gdouble atk_component_get_alpha (AtkComponent *component);
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+G_END_DECLS
#endif /* __ATK_COMPONENT_H__ */