* 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
{
guint (* add_focus_handler) (AtkComponent *component,
AtkFocusHandler handler);
+
gboolean (* contains) (AtkComponent *component,
gint x,
gint y,
gint *width,
gint *height);
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);
gboolean (* set_extents) (AtkComponent *component,
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);
};
+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,
AtkCoordType coord_type);
+ATK_AVAILABLE_IN_ALL
AtkObject* atk_component_ref_accessible_at_point(AtkComponent *component,
gint x,
gint y,
AtkCoordType coord_type);
+ATK_AVAILABLE_IN_ALL
void atk_component_get_extents (AtkComponent *component,
gint *x,
gint *y,
gint *width,
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,
AtkCoordType coord_type);
+ATK_DEPRECATED_IN_2_12_FOR(atk_component_get_extents)
void atk_component_get_size (AtkComponent *component,
gint *width,
gint *height);
+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);
+ATK_AVAILABLE_IN_ALL
gboolean atk_component_set_extents (AtkComponent *component,
gint x,
gint y,
gint width,
gint height,
AtkCoordType coord_type);
+ATK_AVAILABLE_IN_ALL
gboolean atk_component_set_position (AtkComponent *component,
gint x,
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__ */