<?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="AtkRegistry">
<refmeta>
<refentrytitle role="top_of_page" id="AtkRegistry.top_of_page">AtkRegistry</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>ATK Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>AtkRegistry</refname>
<refpurpose>An object used to store the GType of the
factories used to create an accessible object for an object of a
particular GType.</refpurpose>
</refnamediv>

<refsect1 id="AtkRegistry.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"><link linkend="atk-registry-set-factory-type">atk_registry_set_factory_type</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-registry-get-factory-type">atk_registry_get_factory_type</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkObjectFactory"><returnvalue>AtkObjectFactory</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-registry-get-factory">atk_registry_get_factory</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkRegistry"><returnvalue>AtkRegistry</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-get-default-registry">atk_get_default_registry</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

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

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="AtkRegistry.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> AtkRegistry
</screen>
</refsect1>


<refsect1 id="AtkRegistry.description" role="desc">
<title role="desc.title">Description</title>
<para>The AtkRegistry is normally used to create appropriate ATK "peers"
for user interface components.  Application developers usually need
only interact with the AtkRegistry by associating appropriate ATK
implementation classes with GObject classes via the
atk_registry_set_factory_type call, passing the appropriate GType
for application custom widget classes.</para>

</refsect1>
<refsect1 id="AtkRegistry.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="atk-registry-set-factory-type" role="function">
<title>atk_registry_set_factory_type&#160;()</title>
<indexterm zone="atk-registry-set-factory-type"><primary>atk_registry_set_factory_type</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_registry_set_factory_type (<parameter><link linkend="AtkRegistry"><type>AtkRegistry</type></link> *registry</parameter>,
                               <parameter><link linkend="GType"><type>GType</type></link> type</parameter>,
                               <parameter><link linkend="GType"><type>GType</type></link> factory_type</parameter>);</programlisting>
<para>Associate an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> subclass with a <link linkend="GType"><type>GType</type></link>. Note:
The associated <parameter>factory_type</parameter>
 will thereafter be responsible for
the creation of new <link linkend="AtkObject"><type>AtkObject</type></link> implementations for instances
appropriate for <parameter>type</parameter>
.</para>
<refsect3 id="atk-registry-set-factory-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>registry</para></entry>
<entry role="parameter_description"><para>the <link linkend="AtkRegistry"><type>AtkRegistry</type></link> in which to register the type association</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>type</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkObject"><type>AtkObject</type></link> type </para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>factory_type</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> type to associate with <parameter>type</parameter>
.  Must
implement AtkObject appropriate for <parameter>type</parameter>
.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-registry-get-factory-type" role="function">
<title>atk_registry_get_factory_type&#160;()</title>
<indexterm zone="atk-registry-get-factory-type"><primary>atk_registry_get_factory_type</primary></indexterm>
<programlisting language="C"><link linkend="GType"><returnvalue>GType</returnvalue></link>
atk_registry_get_factory_type (<parameter><link linkend="AtkRegistry"><type>AtkRegistry</type></link> *registry</parameter>,
                               <parameter><link linkend="GType"><type>GType</type></link> type</parameter>);</programlisting>
<para>Provides a <link linkend="GType"><type>GType</type></link> indicating the <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> subclass
associated with <parameter>type</parameter>
.</para>
<refsect3 id="atk-registry-get-factory-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>registry</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkRegistry"><type>AtkRegistry</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>type</para></entry>
<entry role="parameter_description"><para>a <link linkend="GType"><type>GType</type></link> with which to look up the associated <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link>
subclass</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-registry-get-factory-type.returns" role="returns">
<title>Returns</title>
<para> a <link linkend="GType"><type>GType</type></link> associated with type <parameter>type</parameter>
</para>
</refsect3></refsect2>
<refsect2 id="atk-registry-get-factory" role="function">
<title>atk_registry_get_factory&#160;()</title>
<indexterm zone="atk-registry-get-factory"><primary>atk_registry_get_factory</primary></indexterm>
<programlisting language="C"><link linkend="AtkObjectFactory"><returnvalue>AtkObjectFactory</returnvalue></link>&#160;*
atk_registry_get_factory (<parameter><link linkend="AtkRegistry"><type>AtkRegistry</type></link> *registry</parameter>,
                          <parameter><link linkend="GType"><type>GType</type></link> type</parameter>);</programlisting>
<para>Gets an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> appropriate for creating <link linkend="AtkObjects"><type>AtkObjects</type></link>
appropriate for <parameter>type</parameter>
.</para>
<refsect3 id="atk-registry-get-factory.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>registry</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkRegistry"><type>AtkRegistry</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>type</para></entry>
<entry role="parameter_description"><para>a <link linkend="GType"><type>GType</type></link> with which to look up the associated <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-registry-get-factory.returns" role="returns">
<title>Returns</title>
<para>an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> appropriate for creating
<link linkend="AtkObjects"><type>AtkObjects</type></link> appropriate for <parameter>type</parameter>
. </para>
<para><emphasis role="annotation">[<acronym>transfer none</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="atk-get-default-registry" role="function">
<title>atk_get_default_registry&#160;()</title>
<indexterm zone="atk-get-default-registry"><primary>atk_get_default_registry</primary></indexterm>
<programlisting language="C"><link linkend="AtkRegistry"><returnvalue>AtkRegistry</returnvalue></link>&#160;*
atk_get_default_registry (<parameter><type>void</type></parameter>);</programlisting>
<para>Gets a default implementation of the <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link>/type
registry.
Note: For most toolkit maintainers, this will be the correct
registry for registering new <link linkend="AtkObject"><type>AtkObject</type></link> factories. Following
a call to this function, maintainers may call <link linkend="atk-registry-set-factory-type"><function>atk_registry_set_factory_type()</function></link>
to associate an <link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link> subclass with the GType of objects
for whom accessibility information will be provided.</para>
<refsect3 id="atk-get-default-registry.returns" role="returns">
<title>Returns</title>
<para>a default implementation of the
<link linkend="AtkObjectFactory"><type>AtkObjectFactory</type></link>/type registry. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>

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

</refsect1>

</refentry>
