Description
AtkComponent should be implemented by most if not all UI elements
with an actual on-screen presence, i.e. components which can be
said to have a screen-coordinate bounding box. Virtually all
widgets will need to have AtkComponent implementations provided
for their corresponding AtkObject class. In short, only UI
elements which are *not* GUI elements will omit this ATK interface.
A possible exception might be textual information with a
transparent background, in which case text glyph bounding box
information is provided by AtkText.
Functions
atk_component_add_focus_handler ()
guint
atk_component_add_focus_handler (AtkComponent *component,
AtkFocusHandler handler);
atk_component_add_focus_handler has been deprecated since version 2.9.4 and should not be used in newly-written code.
If you need to track when an object gains or
lose the focus, use the “state-change” "focused" notification instead.
Add the specified handler to the set of functions to be called
when this object receives focus events (in or out). If the handler is
already added it is not added again
[skip]
atk_component_contains ()
gboolean
atk_component_contains (AtkComponent *component,
gint x,
gint y,
AtkCoordType coord_type);
Checks whether the specified point is within the extent of the component
.
Toolkit implementor note: ATK provides a default implementation for
this virtual method. In general there are little reason to
re-implement it.
Returns
TRUE or FALSE indicating whether the specified point is within
the extent of the component
or not
atk_component_get_extents ()
void
atk_component_get_extents (AtkComponent *component,
gint *x,
gint *y,
gint *width,
gint *height,
AtkCoordType coord_type);
Gets the rectangle which gives the extent of the component
.
If the extent can not be obtained (e.g. a non-embedded plug or missing
support), all of x, y, width, height are set to -1.
atk_component_get_layer ()
AtkLayer
atk_component_get_layer (AtkComponent *component);
Gets the layer of the component.
Returns
an AtkLayer which is the layer of the component
atk_component_get_mdi_zorder ()
gint
atk_component_get_mdi_zorder (AtkComponent *component);
Gets the zorder of the component. The value G_MININT will be returned
if the layer of the component is not ATK_LAYER_MDI or ATK_LAYER_WINDOW.
Returns
a gint which is the zorder of the component, i.e. the depth at
which the component is shown in relation to other components in the same
container.
atk_component_get_position ()
void
atk_component_get_position (AtkComponent *component,
gint *x,
gint *y,
AtkCoordType coord_type);
atk_component_get_position is deprecated and should not be used in newly-written code.
Since 2.12. Use atk_component_get_extents() instead.
Gets the position of component
in the form of
a point specifying component
's top-left corner.
If the position can not be obtained (e.g. a non-embedded plug or missing
support), x and y are set to -1.
atk_component_get_size ()
void
atk_component_get_size (AtkComponent *component,
gint *width,
gint *height);
atk_component_get_size is deprecated and should not be used in newly-written code.
Since 2.12. Use atk_component_get_extents() instead.
Gets the size of the component
in terms of width and height.
If the size can not be obtained (e.g. a non-embedded plug or missing
support), width and height are set to -1.
atk_component_grab_focus ()
gboolean
atk_component_grab_focus (AtkComponent *component);
Grabs focus for this component
.
atk_component_ref_accessible_at_point ()
AtkObject *
atk_component_ref_accessible_at_point (AtkComponent *component,
gint x,
gint y,
AtkCoordType coord_type);
Gets a reference to the accessible child, if one exists, at the
coordinate point specified by x
and y
.
Returns
a reference to the accessible
child, if one exists.
[nullable][transfer full]
atk_component_remove_focus_handler ()
void
atk_component_remove_focus_handler (AtkComponent *component,
guint handler_id);
atk_component_remove_focus_handler has been deprecated since version 2.9.4 and should not be used in newly-written code.
If you need to track when an object gains or
lose the focus, use the “state-change” "focused" notification instead.
Remove the handler specified by handler_id
from the list of
functions to be executed when this object receives focus events
(in or out).
atk_component_set_position ()
gboolean
atk_component_set_position (AtkComponent *component,
gint x,
gint y,
AtkCoordType coord_type);
Sets the position of component
.
Contrary to atk_component_scroll_to, this does not trigger any scrolling,
this just moves component
in its parent.
Returns
TRUE or FALSE whether or not the position was set or not
atk_component_set_size ()
gboolean
atk_component_set_size (AtkComponent *component,
gint width,
gint height);
Set the size of the component
in terms of width and height.
Returns
TRUE or FALSE whether the size was set or not
atk_component_get_alpha ()
gdouble
atk_component_get_alpha (AtkComponent *component);
Returns the alpha value (i.e. the opacity) for this
component
, on a scale from 0 (fully transparent) to 1.0
(fully opaque).
Returns
An alpha value from 0 to 1.0, inclusive.
Since: 1.12
atk_component_scroll_to ()
gboolean
atk_component_scroll_to (AtkComponent *component,
AtkScrollType type);
Makes component
visible on the screen by scrolling all necessary parents.
Contrary to atk_component_set_position, this does not actually move
component
in its parent, this only makes the parents scroll so that the
object shows up on the screen, given its current position within the parents.
Returns
whether scrolling was successful.
Since: 2.30
atk_component_scroll_to_point ()
gboolean
atk_component_scroll_to_point (AtkComponent *component,
AtkCoordType coords,
gint x,
gint y);
Move the top-left of component
to a given position of the screen by
scrolling all necessary parents.
Returns
whether scrolling was successful.
Since: 2.30
Types and Values
AtkComponent
typedef struct _AtkComponent AtkComponent;
struct AtkComponentIface
struct AtkComponentIface {
guint (* add_focus_handler) (AtkComponent *component,
AtkFocusHandler handler);
gboolean (* contains) (AtkComponent *component,
gint x,
gint y,
AtkCoordType coord_type);
AtkObject* (* ref_accessible_at_point) (AtkComponent *component,
gint x,
gint y,
AtkCoordType coord_type);
void (* get_extents) (AtkComponent *component,
gint *x,
gint *y,
gint *width,
gint *height,
AtkCoordType coord_type);
void (* get_position) (AtkComponent *component,
gint *x,
gint *y,
AtkCoordType coord_type);
void (* get_size) (AtkComponent *component,
gint *width,
gint *height);
gboolean (* grab_focus) (AtkComponent *component);
void (* remove_focus_handler) (AtkComponent *component,
guint handler_id);
gboolean (* set_extents) (AtkComponent *component,
gint x,
gint y,
gint width,
gint height,
AtkCoordType coord_type);
gboolean (* set_position) (AtkComponent *component,
gint x,
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);
/*
* Scrolls this object so it becomes visible on the screen.
*
* scroll_to lets the implementation compute an appropriate target
* position on the screen, with type used as a positioning hint.
*
* scroll_to_point lets the client specify a precise target position
* on the screen for the top-left of the object.
*
* Since ATK 2.30
*/
gboolean (*scroll_to) (AtkComponent *component,
AtkScrollType type);
gboolean (*scroll_to_point) (AtkComponent *component,
AtkCoordType coords,
gint x,
gint y);
};
The AtkComponent interface should be supported by any object that is
rendered on the screen. The interface provides the standard mechanism
for an assistive technology to determine and set the graphical
representation of an object.
struct AtkRectangle
struct AtkRectangle {
gint x;
gint y;
gint width;
gint height;
};
A data structure for holding a rectangle. Those coordinates are
relative to the component top-level parent.
enum AtkScrollType
Specifies where an object should be placed on the screen when using scroll_to.
Since: 2.30