<?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="AtkStateSet">
<refmeta>
<refentrytitle role="top_of_page" id="AtkStateSet.top_of_page">AtkStateSet</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>ATK Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>AtkStateSet</refname>
<refpurpose>An AtkStateSet contains the states of an object.</refpurpose>
</refnamediv>

<refsect1 id="AtkStateSet.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="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-state-set-new">atk_state_set_new</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-state-set-is-empty">atk_state_set_is_empty</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-state-set-add-state">atk_state_set_add_state</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-state-set-add-states">atk_state_set_add_states</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-state-set-clear-states">atk_state_set_clear_states</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-state-set-contains-state">atk_state_set_contains_state</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-state-set-contains-states">atk_state_set_contains_states</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-state-set-remove-state">atk_state_set_remove_state</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-state-set-and-sets">atk_state_set_and_sets</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-state-set-or-sets">atk_state_set_or_sets</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-state-set-xor-sets">atk_state_set_xor_sets</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

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

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


<refsect1 id="AtkStateSet.description" role="desc">
<title role="desc.title">Description</title>
<para>An AtkStateSet is a read-only representation of the full set of <link linkend="AtkStates"><type>AtkStates</type></link>
that apply to an object at a given time. This set is not meant to be
modified, but rather created when <link linkend="atk-object-ref-state-set"><function><link linkend="atk-object-ref-state-set"><function>atk_object_ref_state_set()</function></link></function></link> is called.</para>

</refsect1>
<refsect1 id="AtkStateSet.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="atk-state-set-new" role="function">
<title>atk_state_set_new&#160;()</title>
<indexterm zone="atk-state-set-new"><primary>atk_state_set_new</primary></indexterm>
<programlisting language="C"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
atk_state_set_new (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a new empty state set.</para>
<refsect3 id="atk-state-set-new.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="AtkStateSet"><type>AtkStateSet</type></link> </para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-is-empty" role="function">
<title>atk_state_set_is_empty&#160;()</title>
<indexterm zone="atk-state-set-is-empty"><primary>atk_state_set_is_empty</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_state_set_is_empty (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>);</programlisting>
<para>Checks whether the state set is empty, i.e. has no states set.</para>
<refsect3 id="atk-state-set-is-empty.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateType"><type>AtkStateType</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-is-empty.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>set</parameter>
has no states set, otherwise <link linkend="FALSE:CAPS"><literal>FALSE</literal></link></para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-add-state" role="function">
<title>atk_state_set_add_state&#160;()</title>
<indexterm zone="atk-state-set-add-state"><primary>atk_state_set_add_state</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_state_set_add_state (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                         <parameter><link linkend="AtkStateType"><type>AtkStateType</type></link> type</parameter>);</programlisting>
<para>Adds the state of the specified type to the state set if it is not already
present.</para>
<para>Note that because an <link linkend="AtkStateSet"><type>AtkStateSet</type></link> is a read-only object, this method should
be used to add a state to a newly-created set which will then be returned by
<link linkend="atk-object-ref-state-set"><type>atk_object_ref_state_set</type></link>. It should not be used to modify the existing state
of an object. See also <link linkend="atk-object-notify-state-change"><type>atk_object_notify_state_change</type></link>.</para>
<refsect3 id="atk-state-set-add-state.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></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="AtkStateType"><type>AtkStateType</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-add-state.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if  the state for <parameter>type</parameter>
is not already in <parameter>set</parameter>
.</para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-add-states" role="function">
<title>atk_state_set_add_states&#160;()</title>
<indexterm zone="atk-state-set-add-states"><primary>atk_state_set_add_states</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_state_set_add_states (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                          <parameter><link linkend="AtkStateType"><type>AtkStateType</type></link> *types</parameter>,
                          <parameter><link linkend="gint"><type>gint</type></link> n_types</parameter>);</programlisting>
<para>Adds the states of the specified types to the state set.</para>
<para>Note that because an <link linkend="AtkStateSet"><type>AtkStateSet</type></link> is a read-only object, this method should
be used to add states to a newly-created set which will then be returned by
<link linkend="atk-object-ref-state-set"><type>atk_object_ref_state_set</type></link>. It should not be used to modify the existing state
of an object. See also <link linkend="atk-object-notify-state-change"><type>atk_object_notify_state_change</type></link>.</para>
<refsect3 id="atk-state-set-add-states.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>types</para></entry>
<entry role="parameter_description"><para>an array of <link linkend="AtkStateType"><type>AtkStateType</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_types]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_types</para></entry>
<entry role="parameter_description"><para>The number of elements in the array</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-state-set-clear-states" role="function">
<title>atk_state_set_clear_states&#160;()</title>
<indexterm zone="atk-state-set-clear-states"><primary>atk_state_set_clear_states</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
atk_state_set_clear_states (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>);</programlisting>
<para>Removes all states from the state set.</para>
<refsect3 id="atk-state-set-clear-states.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="atk-state-set-contains-state" role="function">
<title>atk_state_set_contains_state&#160;()</title>
<indexterm zone="atk-state-set-contains-state"><primary>atk_state_set_contains_state</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_state_set_contains_state (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                              <parameter><link linkend="AtkStateType"><type>AtkStateType</type></link> type</parameter>);</programlisting>
<para>Checks whether the state for the specified type is in the specified set.</para>
<refsect3 id="atk-state-set-contains-state.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></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="AtkStateType"><type>AtkStateType</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-contains-state.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>type</parameter>
is the state type is in <parameter>set</parameter>
.</para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-contains-states" role="function">
<title>atk_state_set_contains_states&#160;()</title>
<indexterm zone="atk-state-set-contains-states"><primary>atk_state_set_contains_states</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_state_set_contains_states (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                               <parameter><link linkend="AtkStateType"><type>AtkStateType</type></link> *types</parameter>,
                               <parameter><link linkend="gint"><type>gint</type></link> n_types</parameter>);</programlisting>
<para>Checks whether the states for all the specified types are in the 
specified set.</para>
<refsect3 id="atk-state-set-contains-states.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>types</para></entry>
<entry role="parameter_description"><para>an array of <link linkend="AtkStateType"><type>AtkStateType</type></link>. </para></entry>
<entry role="parameter_annotations"><emphasis role="annotation">[<acronym>array</acronym> length=n_types]</emphasis></entry></row>
<row><entry role="parameter_name"><para>n_types</para></entry>
<entry role="parameter_description"><para>The number of elements in the array</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-contains-states.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if all the states for <parameter>type</parameter>
are in <parameter>set</parameter>
.</para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-remove-state" role="function">
<title>atk_state_set_remove_state&#160;()</title>
<indexterm zone="atk-state-set-remove-state"><primary>atk_state_set_remove_state</primary></indexterm>
<programlisting language="C"><link linkend="gboolean"><returnvalue>gboolean</returnvalue></link>
atk_state_set_remove_state (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                            <parameter><link linkend="AtkStateType"><type>AtkStateType</type></link> type</parameter>);</programlisting>
<para>Removes the state for the specified type from the state set.</para>
<para>Note that because an <link linkend="AtkStateSet"><type>AtkStateSet</type></link> is a read-only object, this method should
be used to remove a state to a newly-created set which will then be returned
by <link linkend="atk-object-ref-state-set"><type>atk_object_ref_state_set</type></link>. It should not be used to modify the existing
state of an object. See also <link linkend="atk-object-notify-state-change"><type>atk_object_notify_state_change</type></link>.</para>
<refsect3 id="atk-state-set-remove-state.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></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="AtkType"><type>AtkType</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-remove-state.returns" role="returns">
<title>Returns</title>
<para> <link linkend="TRUE:CAPS"><literal>TRUE</literal></link> if <parameter>type</parameter>
was the state type is in <parameter>set</parameter>
.</para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-and-sets" role="function">
<title>atk_state_set_and_sets&#160;()</title>
<indexterm zone="atk-state-set-and-sets"><primary>atk_state_set_and_sets</primary></indexterm>
<programlisting language="C"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
atk_state_set_and_sets (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                        <parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *compare_set</parameter>);</programlisting>
<para>Constructs the intersection of the two sets, returning <link linkend="NULL:CAPS"><literal>NULL</literal></link> if the
intersection is empty.</para>
<refsect3 id="atk-state-set-and-sets.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>compare_set</para></entry>
<entry role="parameter_description"><para>another <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-and-sets.returns" role="returns">
<title>Returns</title>
<para>a new <link linkend="AtkStateSet"><type>AtkStateSet</type></link> which is the intersection of
the two sets. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-or-sets" role="function">
<title>atk_state_set_or_sets&#160;()</title>
<indexterm zone="atk-state-set-or-sets"><primary>atk_state_set_or_sets</primary></indexterm>
<programlisting language="C"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
atk_state_set_or_sets (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                       <parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *compare_set</parameter>);</programlisting>
<para>Constructs the union of the two sets.</para>
<refsect3 id="atk-state-set-or-sets.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>compare_set</para></entry>
<entry role="parameter_description"><para>another <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-or-sets.returns" role="returns">
<title>Returns</title>
<para>a new <link linkend="AtkStateSet"><type>AtkStateSet</type></link> which is
the union of the two sets, returning <link linkend="NULL:CAPS"><literal>NULL</literal></link> is empty. </para>
<para><emphasis role="annotation">[<acronym>nullable</acronym>][<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>
<refsect2 id="atk-state-set-xor-sets" role="function">
<title>atk_state_set_xor_sets&#160;()</title>
<indexterm zone="atk-state-set-xor-sets"><primary>atk_state_set_xor_sets</primary></indexterm>
<programlisting language="C"><link linkend="AtkStateSet"><returnvalue>AtkStateSet</returnvalue></link>&#160;*
atk_state_set_xor_sets (<parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *set</parameter>,
                        <parameter><link linkend="AtkStateSet"><type>AtkStateSet</type></link> *compare_set</parameter>);</programlisting>
<para>Constructs the exclusive-or of the two sets, returning <link linkend="NULL:CAPS"><literal>NULL</literal></link> is empty.
The set returned by this operation contains the states in exactly
one of the two sets.</para>
<refsect3 id="atk-state-set-xor-sets.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>set</para></entry>
<entry role="parameter_description"><para>an <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>compare_set</para></entry>
<entry role="parameter_description"><para>another <link linkend="AtkStateSet"><type>AtkStateSet</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-set-xor-sets.returns" role="returns">
<title>Returns</title>
<para>a new <link linkend="AtkStateSet"><type>AtkStateSet</type></link> which contains the states
which are in exactly one of the two sets. </para>
<para><emphasis role="annotation">[<acronym>transfer full</acronym>]</emphasis></para>
</refsect3></refsect2>

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

</refsect1>

</refentry>
