<?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="AtkObjectFactory">
<refmeta>
<refentrytitle role="top_of_page" id="AtkObjectFactory.top_of_page">AtkObjectFactory</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>ATK Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>AtkObjectFactory</refname>
<refpurpose>The base object class for a factory used to
create accessible objects for objects of a specific GType.</refpurpose>
</refnamediv>

<refsect1 id="AtkObjectFactory.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="AtkObject"><returnvalue>AtkObject</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-object-factory-create-accessible">atk_object_factory_create_accessible</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="GType"><returnvalue>GType</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-object-factory-get-accessible-type">atk_object_factory_get_accessible_type</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-object-factory-invalidate">atk_object_factory_invalidate</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="AtkObjectFactory.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">struct</entry><entry role="function_name"><link linkend="AtkObjectFactory-struct">AtkObjectFactory</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="AtkObjectFactory.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> AtkObjectFactory
        <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="AtkNoOpObjectFactory">AtkNoOpObjectFactory</link>
</screen>
</refsect1>


<refsect1 id="AtkObjectFactory.description" role="desc">
<title role="desc.title">Description</title>
<para>This class is the base object class for a factory used to create an
accessible object for a specific GType. The function
<link linkend="atk-registry-set-factory-type"><function>atk_registry_set_factory_type()</function></link> is normally called to store in the
registry the factory type to be used to create an accessible of a
particular GType.</para>

</refsect1>
<refsect1 id="AtkObjectFactory.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="atk-object-factory-create-accessible" role="function">
<title>atk_object_factory_create_accessible&#160;()</title>
<indexterm zone="atk-object-factory-create-accessible"><primary>atk_object_factory_create_accessible</primary></indexterm>
<programlisting language="C"><link linkend="AtkObject"><returnvalue>AtkObject</returnvalue></link>&#160;*
atk_object_factory_create_accessible (<parameter><link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> *factory</parameter>,
                                      <parameter><link linkend="GObject"><type>GObject</type></link> *obj</parameter>);</programlisting>
<para>Provides an <link linkend="AtkObject"><type>AtkObject</type></link> that implements an accessibility interface 
on behalf of <parameter>obj</parameter>
</para>
<refsect3 id="atk-object-factory-create-accessible.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>factory</para></entry>
<entry role="parameter_description"><para>The <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> associated with <parameter>obj</parameter>
's
object type</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>obj</para></entry>
<entry role="parameter_description"><para>a <link linkend="GObject"><type>GObject</type></link> </para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-object-factory-create-accessible.returns" role="returns">
<title>Returns</title>
<para>an <link linkend="AtkObject"><type>AtkObject</type></link> that implements an accessibility
interface on behalf of <parameter>obj</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="atk-object-factory-get-accessible-type" role="function">
<title>atk_object_factory_get_accessible_type&#160;()</title>
<indexterm zone="atk-object-factory-get-accessible-type"><primary>atk_object_factory_get_accessible_type</primary></indexterm>
<programlisting language="C"><link linkend="GType"><returnvalue>GType</returnvalue></link>
atk_object_factory_get_accessible_type
                               (<parameter><link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> *factory</parameter>);</programlisting>
<para>Gets the GType of the accessible which is created by the factory.</para>
<refsect3 id="atk-object-factory-get-accessible-type.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>factory</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> </para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-object-factory-get-accessible-type.returns" role="returns">
<title>Returns</title>
<para> the type of the accessible which is created by the <parameter>factory</parameter>
.
The value G_TYPE_INVALID is returned if no type if found.</para>
</refsect3></refsect2>
<refsect2 id="atk-object-factory-invalidate" role="function">
<title>atk_object_factory_invalidate&#160;()</title>
<indexterm zone="atk-object-factory-invalidate"><primary>atk_object_factory_invalidate</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_object_factory_invalidate (<parameter><link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> *factory</parameter>);</programlisting>
<para>Inform <parameter>factory</parameter>
 that it is no longer being used to create
accessibles. When called, <parameter>factory</parameter>
 may need to inform
<link linkend="AtkObjects"><type>AtkObjects</type></link> which it has created that they need to be re-instantiated.
Note: primarily used for runtime replacement of <link linkend="AtkObjectFactorys"><type>AtkObjectFactorys</type></link>
in object registries.</para>
<refsect3 id="atk-object-factory-invalidate.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>factory</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> to invalidate</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>
<refsect1 id="AtkObjectFactory.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="AtkObjectFactory-struct" role="struct">
<title>struct AtkObjectFactory</title>
<indexterm zone="AtkObjectFactory-struct"><primary>AtkObjectFactory</primary></indexterm>
<programlisting language="C">struct AtkObjectFactory;</programlisting>
</refsect2>

</refsect1>

</refentry>
