<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"
[
  <!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
  <!ENTITY % gtkdocentities SYSTEM "../xml/gtkdocentities.ent">
  %gtkdocentities;
]>
<refentry id="AtkComponent">
<refmeta>
<refentrytitle role="top_of_page" id="AtkComponent.top_of_page">AtkComponent</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>ATK Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>AtkComponent</refname>
<refpurpose>The ATK interface provided by UI components
which occupy a physical area on the screen.
which the user can activate/interact with.</refpurpose>
</refnamediv>

<refsect1 id="AtkComponent.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><phrase role="c_punctuation">(</phrase><link linkend="AtkFocusHandler">*AtkFocusHandler</link><phrase role="c_punctuation">)</phrase>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="guint"><returnvalue>guint</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-add-focus-handler">atk_component_add_focus_handler</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-contains">atk_component_contains</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-get-extents">atk_component_get_extents</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkLayer"><returnvalue>AtkLayer</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-get-layer">atk_component_get_layer</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gint"><returnvalue>gint</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-get-mdi-zorder">atk_component_get_mdi_zorder</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-get-position">atk_component_get_position</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-get-size">atk_component_get_size</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-grab-focus">atk_component_grab_focus</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkObject"><returnvalue>AtkObject</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-component-ref-accessible-at-point">atk_component_ref_accessible_at_point</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="void"><returnvalue>void</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-remove-focus-handler">atk_component_remove_focus_handler</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-set-extents">atk_component_set_extents</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-set-position">atk_component_set_position</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-set-size">atk_component_set_size</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gdouble"><returnvalue>gdouble</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-get-alpha">atk_component_get_alpha</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-scroll-to">atk_component_scroll_to</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-component-scroll-to-point">atk_component_scroll_to_point</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="AtkComponent.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signal_proto_type" colwidth="150px"/>
<colspec colname="signal_proto_name" colwidth="300px"/>
<colspec colname="signal_proto_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="AtkComponent-bounds-changed">bounds-changed</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<anchor id="AtkRectangle"/><refsect1 id="AtkComponent.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="AtkComponent-struct">AtkComponent</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="AtkComponentIface">AtkComponentIface</link></entry></row>
<row><entry role="datatype_keyword">struct</entry><entry role="function_name"><link linkend="AtkRectangle-struct">AtkRectangle</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="AtkComponent.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GBoxed">GBoxed</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> AtkRectangle
    <link linkend="GInterface">GInterface</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> AtkComponent
</screen>
</refsect1>
<refsect1 id="AtkComponent.implementations" role="implementations">
<title role="implementations.title">Known Implementations</title>
<para>
AtkComponent is implemented by
 <link linkend="AtkNoOpObject">AtkNoOpObject</link>,  <link linkend="AtkPlug">AtkPlug</link> and  <link linkend="AtkSocket">AtkSocket</link>.</para>

</refsect1>


<refsect1 id="AtkComponent.description" role="desc">
<title role="desc.title">Description</title>
<para><link linkend="AtkComponent"><type>AtkComponent</type></link> 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 <link linkend="AtkComponent"><type>AtkComponent</type></link> implementations provided
for their corresponding <link linkend="AtkObject"><type>AtkObject</type></link> class.  In short, only UI
elements which are *not* GUI elements will omit this ATK interface.</para>
<para>A possible exception might be textual information with a
transparent background, in which case text glyph bounding box
information is provided by <link linkend="AtkText"><type>AtkText</type></link>.</para>

</refsect1>
<refsect1 id="AtkComponent.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="AtkFocusHandler" role="function" condition="deprecated">
<title>AtkFocusHandler&#160;()</title>
<indexterm zone="AtkFocusHandler" role="deprecated"><primary>AtkFocusHandler</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
<phrase role="c_punctuation">(</phrase>*AtkFocusHandler<phrase role="c_punctuation">)</phrase> (<parameter><link linkend="AtkObject"><type>AtkObject</type></link> *object</parameter>,
                    <parameter><link linkend="gboolean"><type>gboolean</type></link> focus_in</parameter>);</programlisting>
<warning><para><literal>AtkFocusHandler</literal> has been deprecated since version 2.9.4 and should not be used in newly-written code.</para> <para>Deprecated with <link linkend="atk-component-add-focus-handler"><function>atk_component_add_focus_handler()</function></link>
and <link linkend="atk-component-remove-focus-handler"><function>atk_component_remove_focus_handler()</function></link>. See those
methods for more information.</para>
</warning>
<para>The type of callback function used for
<link linkend="atk-component-add-focus-handler"><function>atk_component_add_focus_handler()</function></link> and
<link linkend="atk-component-remove-focus-handler"><function>atk_component_remove_focus_handler()</function></link></para>
<refsect3 id="AtkFocusHandler.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>object</para></entry>
<entry role="parameter_description"><para>the <link linkend="AtkObject"><type>AtkObject</type></link> that receives/lose the focus</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>focus_in</para></entry>
<entry role="parameter_description"><para>TRUE if the object receives the focus</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-component-add-focus-handler" role="function" condition="deprecated">
<title>atk_component_add_focus_handler&#160;()</title>
<indexterm zone="atk-component-add-focus-handler" role="deprecated"><primary>atk_component_add_focus_handler</primary></indexterm>
<programlisting language="C"><link linkend="guint"><returnvalue>guint</returnvalue></link>
atk_component_add_focus_handler (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                                 <parameter><link linkend="AtkFocusHandler"><type>AtkFocusHandler</type></link> handler</parameter>);</programlisting>
<warning><para><literal>atk_component_add_focus_handler</literal> has been deprecated since version 2.9.4 and should not be used in newly-written code.</para> <para>If you need to track when an object gains or
lose the focus, use the <link linkend="AtkObject-state-change"><type>“state-change”</type></link> "focused" notification instead.</para>
</warning>
<para>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</para>

<para><emphasis role="annotation">[<acronym>skip</acronym>]</emphasis></para><refsect3 id="atk-component-add-focus-handler.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>The <link linkend="AtkComponent"><type>AtkComponent</type></link> to attach the <parameter>handler</parameter>
to</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>handler</para></entry>
<entry role="parameter_description"><para>The <link linkend="AtkFocusHandler"><type>AtkFocusHandler</type></link> to be attached to <parameter>component</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-add-focus-handler.returns" role="returns">
<title>Returns</title>
<para> a handler id which can be used in <link linkend="atk-component-remove-focus-handler"><function>atk_component_remove_focus_handler()</function></link>
or zero if the handler was already added.</para>
</refsect3></refsect2>
<refsect2 id="atk-component-contains" role="function">
<title>atk_component_contains&#160;()</title>
<indexterm zone="atk-component-contains"><primary>atk_component_contains</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_contains (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                        <parameter><link linkend="gint"><type>gint</type></link> x</parameter>,
                        <parameter><link linkend="gint"><type>gint</type></link> y</parameter>,
                        <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coord_type</parameter>);</programlisting>
<para>Checks whether the specified point is within the extent of the <parameter>component</parameter>
.</para>
<para>Toolkit implementor note: ATK provides a default implementation for
this virtual method. In general there are little reason to
re-implement it.</para>
<refsect3 id="atk-component-contains.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>the <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>x coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>y coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>coord_type</para></entry>
<entry role="parameter_description"><para>specifies whether the coordinates are relative to the screen
or to the components top level window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-contains.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> indicating whether the specified point is within
the extent of the <parameter>component</parameter>
or not</para>
</refsect3></refsect2>
<refsect2 id="atk-component-get-extents" role="function">
<title>atk_component_get_extents&#160;()</title>
<indexterm zone="atk-component-get-extents"><primary>atk_component_get_extents</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_component_get_extents (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> *x</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> *y</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> *width</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> *height</parameter>,
                           <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coord_type</parameter>);</programlisting>
<para>Gets the rectangle which gives the extent of the <parameter>component</parameter>
.</para>
<refsect3 id="atk-component-get-extents.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put x coordinate. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put y coordinate. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put width. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put height. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>coord_type</para></entry>
<entry role="parameter_description"><para>specifies whether the coordinates are relative to the screen
or to the components top level window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-component-get-layer" role="function">
<title>atk_component_get_layer&#160;()</title>
<indexterm zone="atk-component-get-layer"><primary>atk_component_get_layer</primary></indexterm>
<programlisting language="C"><link linkend="AtkLayer"><returnvalue>AtkLayer</returnvalue></link>
atk_component_get_layer (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>);</programlisting>
<para>Gets the layer of the component.</para>
<refsect3 id="atk-component-get-layer.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-get-layer.returns" role="returns">
<title>Returns</title>
<para> an <link linkend="AtkLayer"><type>AtkLayer</type></link> which is the layer of the component</para>
</refsect3></refsect2>
<refsect2 id="atk-component-get-mdi-zorder" role="function">
<title>atk_component_get_mdi_zorder&#160;()</title>
<indexterm zone="atk-component-get-mdi-zorder"><primary>atk_component_get_mdi_zorder</primary></indexterm>
<programlisting language="C"><link linkend="gint"><returnvalue>gint</returnvalue></link>
atk_component_get_mdi_zorder (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>);</programlisting>
<para>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.</para>
<refsect3 id="atk-component-get-mdi-zorder.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-get-mdi-zorder.returns" role="returns">
<title>Returns</title>
<para> 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.</para>
</refsect3></refsect2>
<refsect2 id="atk-component-get-position" role="function" condition="deprecated:Since 2.12. Use atk_component_get_extents() instead.">
<title>atk_component_get_position&#160;()</title>
<indexterm zone="atk-component-get-position" role="deprecated"><primary>atk_component_get_position</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_component_get_position (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                            <parameter><link linkend="gint"><type>gint</type></link> *x</parameter>,
                            <parameter><link linkend="gint"><type>gint</type></link> *y</parameter>,
                            <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coord_type</parameter>);</programlisting>
<warning><para><literal>atk_component_get_position</literal> is deprecated and should not be used in newly-written code.</para> <para>Since 2.12. Use <link linkend="atk-component-get-extents"><function>atk_component_get_extents()</function></link> instead.</para>
</warning>
<para>Gets the position of <parameter>component</parameter>
 in the form of 
a point specifying <parameter>component</parameter>
's top-left corner.</para>
<refsect3 id="atk-component-get-position.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put x coordinate position. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put y coordinate position. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>coord_type</para></entry>
<entry role="parameter_description"><para>specifies whether the coordinates are relative to the screen
or to the components top level window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-component-get-size" role="function" condition="deprecated:Since 2.12. Use atk_component_get_extents() instead.">
<title>atk_component_get_size&#160;()</title>
<indexterm zone="atk-component-get-size" role="deprecated"><primary>atk_component_get_size</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_component_get_size (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                        <parameter><link linkend="gint"><type>gint</type></link> *width</parameter>,
                        <parameter><link linkend="gint"><type>gint</type></link> *height</parameter>);</programlisting>
<warning><para><literal>atk_component_get_size</literal> is deprecated and should not be used in newly-written code.</para> <para>Since 2.12. Use <link linkend="atk-component-get-extents"><function>atk_component_get_extents()</function></link> instead.</para>
</warning>
<para>Gets the size of the <parameter>component</parameter>
 in terms of width and height.</para>
<refsect3 id="atk-component-get-size.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put width of <parameter>component</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>address of <link linkend="gint"><type>gint</type></link> to put height of <parameter>component</parameter>
. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>out</acronym>][<acronym>optional</acronym>]</emphasis></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-component-grab-focus" role="function">
<title>atk_component_grab_focus&#160;()</title>
<indexterm zone="atk-component-grab-focus"><primary>atk_component_grab_focus</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_grab_focus (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>);</programlisting>
<para>Grabs focus for this <parameter>component</parameter>
.</para>
<refsect3 id="atk-component-grab-focus.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-grab-focus.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if successful, <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> otherwise.</para>
</refsect3></refsect2>
<refsect2 id="atk-component-ref-accessible-at-point" role="function">
<title>atk_component_ref_accessible_at_point&#160;()</title>
<indexterm zone="atk-component-ref-accessible-at-point"><primary>atk_component_ref_accessible_at_point</primary></indexterm>
<programlisting language="C"><link linkend="AtkObject"><returnvalue>AtkObject</returnvalue></link>&#160;*
atk_component_ref_accessible_at_point (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                                       <parameter><link linkend="gint"><type>gint</type></link> x</parameter>,
                                       <parameter><link linkend="gint"><type>gint</type></link> y</parameter>,
                                       <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coord_type</parameter>);</programlisting>
<para>Gets a reference to the accessible child, if one exists, at the
coordinate point specified by <parameter>x</parameter>
 and <parameter>y</parameter>
.</para>
<refsect3 id="atk-component-ref-accessible-at-point.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>the <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>x coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>y coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>coord_type</para></entry>
<entry role="parameter_description"><para>specifies whether the coordinates are relative to the screen
or to the components top level window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-ref-accessible-at-point.returns" role="returns">
<title>Returns</title>
<para>a reference to the accessible
child, if one exists. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>][<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="atk-component-remove-focus-handler" role="function" condition="deprecated">
<title>atk_component_remove_focus_handler&#160;()</title>
<indexterm zone="atk-component-remove-focus-handler" role="deprecated"><primary>atk_component_remove_focus_handler</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_component_remove_focus_handler (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                                    <parameter><link linkend="guint"><type>guint</type></link> handler_id</parameter>);</programlisting>
<warning><para><literal>atk_component_remove_focus_handler</literal> has been deprecated since version 2.9.4 and should not be used in newly-written code.</para> <para>If you need to track when an object gains or
lose the focus, use the <link linkend="AtkObject-state-change"><type>“state-change”</type></link> "focused" notification instead.</para>
</warning>
<para>Remove the handler specified by <parameter>handler_id</parameter>
 from the list of
functions to be executed when this object receives focus events 
(in or out).</para>
<refsect3 id="atk-component-remove-focus-handler.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>the <link linkend="AtkComponent"><type>AtkComponent</type></link> to remove the focus handler from</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>handler_id</para></entry>
<entry role="parameter_description"><para>the handler id of the focus handler to be removed
from <parameter>component</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-component-set-extents" role="function">
<title>atk_component_set_extents&#160;()</title>
<indexterm zone="atk-component-set-extents"><primary>atk_component_set_extents</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_set_extents (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> x</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> y</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> width</parameter>,
                           <parameter><link linkend="gint"><type>gint</type></link> height</parameter>,
                           <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coord_type</parameter>);</programlisting>
<para>Sets the extents of <parameter>component</parameter>
.</para>
<refsect3 id="atk-component-set-extents.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>x coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>y coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>width to set for <parameter>component</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>height to set for <parameter>component</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>coord_type</para></entry>
<entry role="parameter_description"><para>specifies whether the coordinates are relative to the screen
or to the components top level window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-set-extents.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> whether the extents were set or not</para>
</refsect3></refsect2>
<refsect2 id="atk-component-set-position" role="function">
<title>atk_component_set_position&#160;()</title>
<indexterm zone="atk-component-set-position"><primary>atk_component_set_position</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_set_position (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                            <parameter><link linkend="gint"><type>gint</type></link> x</parameter>,
                            <parameter><link linkend="gint"><type>gint</type></link> y</parameter>,
                            <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coord_type</parameter>);</programlisting>
<para>Sets the position of <parameter>component</parameter>
.</para>
<para>Contrary to atk_component_scroll_to, this does not trigger any scrolling,
this just moves <parameter>component</parameter>
 in its parent.</para>
<refsect3 id="atk-component-set-position.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>x coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>y coordinate</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>coord_type</para></entry>
<entry role="parameter_description"><para>specifies whether the coordinates are relative to the screen
or to the component's top level window</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-set-position.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> whether or not the position was set or not</para>
</refsect3></refsect2>
<refsect2 id="atk-component-set-size" role="function">
<title>atk_component_set_size&#160;()</title>
<indexterm zone="atk-component-set-size"><primary>atk_component_set_size</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_set_size (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                        <parameter><link linkend="gint"><type>gint</type></link> width</parameter>,
                        <parameter><link linkend="gint"><type>gint</type></link> height</parameter>);</programlisting>
<para>Set the size of the <parameter>component</parameter>
 in terms of width and height.</para>
<refsect3 id="atk-component-set-size.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>width</para></entry>
<entry role="parameter_description"><para>width to set for <parameter>component</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>height</para></entry>
<entry role="parameter_description"><para>height to set for <parameter>component</parameter>
</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-set-size.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> or <link linkend="FALSE:CAPS"><literal>FALSE</literal></link> whether the size was set or not</para>
</refsect3></refsect2>
<refsect2 id="atk-component-get-alpha" role="function" condition="since:1.12">
<title>atk_component_get_alpha&#160;()</title>
<indexterm zone="atk-component-get-alpha" role="1.12"><primary>atk_component_get_alpha</primary></indexterm>
<programlisting language="C"><link linkend="gdouble"><returnvalue>gdouble</returnvalue></link>
atk_component_get_alpha (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>);</programlisting>
<para>Returns the alpha value (i.e. the opacity) for this
<parameter>component</parameter>
, on a scale from 0 (fully transparent) to 1.0
(fully opaque).</para>
<refsect3 id="atk-component-get-alpha.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-get-alpha.returns" role="returns">
<title>Returns</title>
<para> An alpha value from 0 to 1.0, inclusive.</para>
</refsect3><para role="since">Since: <link linkend="api-index-1.12">1.12</link></para></refsect2>
<refsect2 id="atk-component-scroll-to" role="function" condition="since:2.30">
<title>atk_component_scroll_to&#160;()</title>
<indexterm zone="atk-component-scroll-to" role="2.30"><primary>atk_component_scroll_to</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_scroll_to (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                         <parameter><link linkend="AtkScrollType"><type>AtkScrollType</type></link> type</parameter>);</programlisting>
<para>Makes <parameter>component</parameter>
 visible on the screen by scrolling all necessary parents.</para>
<para>Contrary to atk_component_set_position, this does not actually move
<parameter>component</parameter>
 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.</para>
<refsect3 id="atk-component-scroll-to.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>type</para></entry>
<entry role="parameter_description"><para>specify where the object should be made visible.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-scroll-to.returns" role="returns">
<title>Returns</title>
<para> whether scrolling was successful.</para>
</refsect3><para role="since">Since: <link linkend="api-index-2.30">2.30</link></para></refsect2>
<refsect2 id="atk-component-scroll-to-point" role="function" condition="since:2.30">
<title>atk_component_scroll_to_point&#160;()</title>
<indexterm zone="atk-component-scroll-to-point" role="2.30"><primary>atk_component_scroll_to_point</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_component_scroll_to_point (<parameter><link linkend="AtkComponent"><type>AtkComponent</type></link> *component</parameter>,
                               <parameter><link linkend="AtkCoordType"><type>AtkCoordType</type></link> coords</parameter>,
                               <parameter><link linkend="gint"><type>gint</type></link> x</parameter>,
                               <parameter><link linkend="gint"><type>gint</type></link> y</parameter>);</programlisting>
<para>Makes an object visible on the screen at a given position by scrolling all
necessary parents.</para>
<refsect3 id="atk-component-scroll-to-point.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>component</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkComponent"><type>AtkComponent</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>coords</para></entry>
<entry role="parameter_description"><para>specify whether coordinates are relative to the screen or to the
parent object.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>x</para></entry>
<entry role="parameter_description"><para>x-position where to scroll to</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>y</para></entry>
<entry role="parameter_description"><para>y-position where to scroll to</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-component-scroll-to-point.returns" role="returns">
<title>Returns</title>
<para> whether scrolling was successful.</para>
</refsect3><para role="since">Since: <link linkend="api-index-2.30">2.30</link></para></refsect2>

</refsect1>
<refsect1 id="AtkComponent.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="AtkComponent-struct" role="struct">
<title>AtkComponent</title>
<indexterm zone="AtkComponent-struct"><primary>AtkComponent</primary></indexterm>
<programlisting language="C">typedef struct _AtkComponent AtkComponent;</programlisting>
</refsect2>
<refsect2 id="AtkComponentIface" role="struct">
<title>struct AtkComponentIface</title>
<indexterm zone="AtkComponentIface"><primary>AtkComponentIface</primary></indexterm>
<programlisting language="C">struct AtkComponentIface {
  GTypeInterface parent;

  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.
   * Since ATK 2.30
   */
  gboolean                (*scroll_to)          (AtkComponent   *component,
                                                 AtkScrollType   type);

  gboolean                (*scroll_to_point)    (AtkComponent   *component,
                                                 AtkCoordType    coords,
                                                 gint            x,
                                                 gint            y);
};
</programlisting>
<refsect3 id="AtkComponentIface.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="GTypeInterface"><type>GTypeInterface</type></link>&#160;<structfield id="AtkComponentIface.parent">parent</structfield>;</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.add-focus-handler">add_focus_handler</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>This virtual function is deprecated since 2.9.4
and it should not be overriden. See
<link linkend="atk-component-add-focus-handler"><function>atk_component_add_focus_handler()</function></link> for more information.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.contains">contains</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.ref-accessible-at-point">ref_accessible_at_point</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.get-extents">get_extents</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.get-position">get_position</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>This virtual function is deprecated since 2.12 and
it should not be overriden. Use <parameter>get_extents</parameter>
instead.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.get-size">get_size</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>This virtual function is deprecated since 2.12 and it
should not be overriden. Use <parameter>get_extents</parameter>
instead.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.grab-focus">grab_focus</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.remove-focus-handler">remove_focus_handler</structfield>&#160;()</para></entry>
<entry role="struct_member_description"><para>This virtual function is deprecated since
2.9.4 and it should not be overriden. See
<link linkend="atk-component-remove-focus-handler"><function>atk_component_remove_focus_handler()</function></link> for more information.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.set-extents">set_extents</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.set-position">set_position</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.set-size">set_size</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.get-layer">get_layer</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.get-mdi-zorder">get_mdi_zorder</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.bounds-changed">bounds_changed</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.get-alpha">get_alpha</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.scroll-to">scroll_to</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
<row role="member"><entry role="struct_member_name"><para><structfield id="AtkComponentIface.scroll-to-point">scroll_to_point</structfield>&#160;()</para></entry>
<entry /><entry />
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>
<refsect2 id="AtkRectangle-struct" role="struct">
<title>struct AtkRectangle</title>
<indexterm zone="AtkRectangle-struct"><primary>AtkRectangle</primary></indexterm>
<programlisting language="C">struct AtkRectangle {
  gint x;
  gint y;
  gint width;
  gint height;
};
</programlisting>
<para>A data structure for holding a rectangle. Those coordinates are
relative to the component top-level parent.</para>
<refsect3 id="AtkRectangle.members" role="struct_members">
<title>Members</title>
<informaltable role="struct_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="struct_members_name" colwidth="300px"/>
<colspec colname="struct_members_description"/>
<colspec colname="struct_members_annotations" colwidth="200px"/>
<tbody>
<row role="member"><entry role="struct_member_name"><para><link linkend="gint"><type>gint</type></link>&#160;<structfield id="AtkRectangle-struct.x">x</structfield>;</para></entry>
<entry role="struct_member_description"><para>X coordinate of the left side of the rectangle.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gint"><type>gint</type></link>&#160;<structfield id="AtkRectangle-struct.y">y</structfield>;</para></entry>
<entry role="struct_member_description"><para>Y coordinate of the top side of the rectangle.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gint"><type>gint</type></link>&#160;<structfield id="AtkRectangle-struct.width">width</structfield>;</para></entry>
<entry role="struct_member_description"><para>width of the rectangle.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
<row role="member"><entry role="struct_member_name"><para><link linkend="gint"><type>gint</type></link>&#160;<structfield id="AtkRectangle-struct.height">height</structfield>;</para></entry>
<entry role="struct_member_description"><para>height of the rectangle.</para></entry>
<entry role="struct_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3>
</refsect2>

</refsect1>
<refsect1 id="AtkComponent.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="AtkComponent-bounds-changed" role="signal"><title>The <literal>“bounds-changed”</literal> signal</title>
<indexterm zone="AtkComponent-bounds-changed"><primary>AtkComponent::bounds-changed</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="AtkComponent"><type>AtkComponent</type></link> *atkcomponent,
               <link linkend="AtkRectangle"><type>AtkRectangle</type></link> *arg1,
               <link linkend="gpointer"><type>gpointer</type></link>      user_data)</programlisting>
<para>The 'bounds-changed" signal is emitted when the bposition or
size of the component changes.</para>
<refsect3 id="AtkComponent-bounds-changed.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>atkcomponent</para></entry>
<entry role="parameter_description"><para>the object which received the signal.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>arg1</para></entry>
<entry role="parameter_description"><para>The AtkRectangle giving the new position and size.</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2>
</refsect1>

</refentry>
