<?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="atk-AtkState">
<refmeta>
<refentrytitle role="top_of_page" id="atk-AtkState.top_of_page">AtkState</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>ATK Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>AtkState</refname>
<refpurpose>An AtkState describes a single state of an object.</refpurpose>
</refnamediv>

<refsect1 id="atk-AtkState.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="AtkStateType"><returnvalue>AtkStateType</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-state-type-register">atk_state_type_register</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type">const <link linkend="gchar"><returnvalue>gchar</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="atk-state-type-get-name">atk_state_type_get_name</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>
<row><entry role="function_type"><link linkend="AtkStateType"><returnvalue>AtkStateType</returnvalue></link>
</entry><entry role="function_name"><link linkend="atk-state-type-for-name">atk_state_type_for_name</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="atk-AtkState.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">enum</entry><entry role="function_name"><link linkend="AtkStateType">AtkStateType</link></entry></row>
<row><entry role="typedef_keyword">typedef</entry><entry role="function_name"><link linkend="AtkState">AtkState</link></entry></row>

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


<refsect1 id="atk-AtkState.description" role="desc">
<title role="desc.title">Description</title>
<para>An AtkState describes a single state of an object. The full set of states
that apply to an object at a given time are contained in its <link linkend="AtkStateSet"><type>AtkStateSet</type></link>.
See also <link linkend="atk-object-ref-state-set"><type>atk_object_ref_state_set</type></link> and <link linkend="atk-object-notify-state-change"><type>atk_object_notify_state_change</type></link>.</para>

</refsect1>
<refsect1 id="atk-AtkState.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="atk-state-type-register" role="function">
<title>atk_state_type_register&#160;()</title>
<indexterm zone="atk-state-type-register"><primary>atk_state_type_register</primary></indexterm>
<programlisting language="C"><link linkend="AtkStateType"><returnvalue>AtkStateType</returnvalue></link>
atk_state_type_register (<parameter>const <link linkend="gchar"><type>gchar</type></link> *name</parameter>);</programlisting>
<para>Register a new object state.</para>
<refsect3 id="atk-state-type-register.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>name</para></entry>
<entry role="parameter_description"><para>a character string describing the new state.</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-type-register.returns" role="returns">
<title>Returns</title>
<para> an <link linkend="AtkState"><type>AtkState</type></link> value for the new state.</para>
</refsect3></refsect2>
<refsect2 id="atk-state-type-get-name" role="function">
<title>atk_state_type_get_name&#160;()</title>
<indexterm zone="atk-state-type-get-name"><primary>atk_state_type_get_name</primary></indexterm>
<programlisting language="C">const <link linkend="gchar"><returnvalue>gchar</returnvalue></link>&#160;*
atk_state_type_get_name (<parameter><link linkend="AtkStateType"><type>AtkStateType</type></link> type</parameter>);</programlisting>
<para>Gets the description string describing the <link linkend="AtkStateType"><type>AtkStateType</type></link> <parameter>type</parameter>
.</para>
<refsect3 id="atk-state-type-get-name.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>type</para></entry>
<entry role="parameter_description"><para>The <link linkend="AtkStateType"><type>AtkStateType</type></link> whose name is required</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-type-get-name.returns" role="returns">
<title>Returns</title>
<para> the string describing the AtkStateType</para>
</refsect3></refsect2>
<refsect2 id="atk-state-type-for-name" role="function">
<title>atk_state_type_for_name&#160;()</title>
<indexterm zone="atk-state-type-for-name"><primary>atk_state_type_for_name</primary></indexterm>
<programlisting language="C"><link linkend="AtkStateType"><returnvalue>AtkStateType</returnvalue></link>
atk_state_type_for_name (<parameter>const <link linkend="gchar"><type>gchar</type></link> *name</parameter>);</programlisting>
<para>Gets the <link linkend="AtkStateType"><type>AtkStateType</type></link> corresponding to the description string <parameter>name</parameter>
.</para>
<refsect3 id="atk-state-type-for-name.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>name</para></entry>
<entry role="parameter_description"><para>a character string state name</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><refsect3 id="atk-state-type-for-name.returns" role="returns">
<title>Returns</title>
<para> an <link linkend="AtkStateType"><type>AtkStateType</type></link> corresponding to <parameter>name</parameter>
</para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="atk-AtkState.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="AtkStateType" role="enum">
<title>enum AtkStateType</title>
<indexterm zone="AtkStateType"><primary>AtkStateType</primary></indexterm>
<para>The possible types of states of an object</para>
<refsect3 id="AtkStateType.members" role="enum_members">
<title>Members</title>
<informaltable role="enum_members_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="enum_members_name" colwidth="300px"/>
<colspec colname="enum_members_description"/>
<colspec colname="enum_members_annotations" colwidth="200px"/>
<tbody>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-INVALID:CAPS">ATK_STATE_INVALID</para></entry>
<entry role="enum_member_description"><para>Indicates an invalid state - probably an error condition.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-ACTIVE:CAPS">ATK_STATE_ACTIVE</para></entry>
<entry role="enum_member_description"><para>Indicates a window is currently the active window, or an object is the active subelement within a container or table. ATK_STATE_ACTIVE should not be used for objects which have ATK_STATE_FOCUSABLE or ATK_STATE_SELECTABLE: Those objects should use ATK_STATE_FOCUSED and ATK_STATE_SELECTED respectively. ATK_STATE_ACTIVE is a means to indicate that an object which is not focusable and not selectable is the currently-active item within its parent container.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-ARMED:CAPS">ATK_STATE_ARMED</para></entry>
<entry role="enum_member_description"><para>Indicates that the object is 'armed', i.e. will be activated by if a pointer button-release event occurs within its bounds.  Buttons often enter this state when a pointer click occurs within their bounds, as a precursor to activation. ATK_STATE_ARMED has been deprecated since ATK-2.16 and should not be used in newly-written code.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-BUSY:CAPS">ATK_STATE_BUSY</para></entry>
<entry role="enum_member_description"><para>Indicates the current object is busy, i.e. onscreen representation is in the process of changing, or the object is temporarily unavailable for interaction due to activity already in progress.  This state may be used by implementors of Document to indicate that content loading is underway.  It also may indicate other 'pending' conditions; clients may wish to interrogate this object when the ATK_STATE_BUSY flag is removed.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-CHECKED:CAPS">ATK_STATE_CHECKED</para></entry>
<entry role="enum_member_description"><para>Indicates this object is currently checked, for instance a checkbox is 'non-empty'.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-DEFUNCT:CAPS">ATK_STATE_DEFUNCT</para></entry>
<entry role="enum_member_description"><para>Indicates that this object no longer has a valid backing widget (for instance, if its peer object has been destroyed)</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-EDITABLE:CAPS">ATK_STATE_EDITABLE</para></entry>
<entry role="enum_member_description"><para>Indicates that this object can contain text, and that the
user can change the textual contents of this object by editing those contents
directly. For an object which is expected to be editable due to its type, but
which cannot be edited due to the application or platform preventing the user
from doing so, that object's <link linkend="AtkStateSet"><type>AtkStateSet</type></link> should lack ATK_STATE_EDITABLE and
should contain ATK_STATE_READ_ONLY.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-ENABLED:CAPS">ATK_STATE_ENABLED</para></entry>
<entry role="enum_member_description"><para>Indicates that this object is enabled, i.e. that it currently reflects some application state. Objects that are "greyed out" may lack this state, and may lack the STATE_SENSITIVE if direct user interaction cannot cause them to acquire STATE_ENABLED. See also: ATK_STATE_SENSITIVE</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-EXPANDABLE:CAPS">ATK_STATE_EXPANDABLE</para></entry>
<entry role="enum_member_description"><para>Indicates this object allows progressive disclosure of its children</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-EXPANDED:CAPS">ATK_STATE_EXPANDED</para></entry>
<entry role="enum_member_description"><para>Indicates this object its expanded - see ATK_STATE_EXPANDABLE above</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-FOCUSABLE:CAPS">ATK_STATE_FOCUSABLE</para></entry>
<entry role="enum_member_description"><para>Indicates this object can accept keyboard focus, which means all events resulting from typing on the keyboard will normally be passed to it when it has focus</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-FOCUSED:CAPS">ATK_STATE_FOCUSED</para></entry>
<entry role="enum_member_description"><para>Indicates this object currently has the keyboard focus</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-HORIZONTAL:CAPS">ATK_STATE_HORIZONTAL</para></entry>
<entry role="enum_member_description"><para>Indicates the orientation of this object is horizontal; used, for instance, by objects of ATK_ROLE_SCROLL_BAR.  For objects where vertical/horizontal orientation is especially meaningful.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-ICONIFIED:CAPS">ATK_STATE_ICONIFIED</para></entry>
<entry role="enum_member_description"><para>Indicates this object is minimized and is represented only by an icon</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-MODAL:CAPS">ATK_STATE_MODAL</para></entry>
<entry role="enum_member_description"><para>Indicates something must be done with this object before the user can interact with an object in a different window</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-MULTI-LINE:CAPS">ATK_STATE_MULTI_LINE</para></entry>
<entry role="enum_member_description"><para>Indicates this (text) object can contain multiple lines of text</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-MULTISELECTABLE:CAPS">ATK_STATE_MULTISELECTABLE</para></entry>
<entry role="enum_member_description"><para>Indicates this object allows more than one of its children to be selected at the same time, or in the case of text objects, that the object supports non-contiguous text selections.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-OPAQUE:CAPS">ATK_STATE_OPAQUE</para></entry>
<entry role="enum_member_description"><para>Indicates this object paints every pixel within its rectangular region.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-PRESSED:CAPS">ATK_STATE_PRESSED</para></entry>
<entry role="enum_member_description"><para>Indicates this object is currently pressed.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-RESIZABLE:CAPS">ATK_STATE_RESIZABLE</para></entry>
<entry role="enum_member_description"><para>Indicates the size of this object is not fixed</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SELECTABLE:CAPS">ATK_STATE_SELECTABLE</para></entry>
<entry role="enum_member_description"><para>Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that can be selected</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SELECTED:CAPS">ATK_STATE_SELECTED</para></entry>
<entry role="enum_member_description"><para>Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that has been selected</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SENSITIVE:CAPS">ATK_STATE_SENSITIVE</para></entry>
<entry role="enum_member_description"><para>Indicates this object is sensitive, e.g. to user interaction.

STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable controls,
but may be found in the absence of STATE_ENABLED if the current visible state of the

control is "disconnected" from the application state.  In such cases, direct user interaction
can often result in the object gaining STATE_SENSITIVE, for instance if a user makes

an explicit selection using an object whose current state is ambiguous or undefined.
<parameter>see</parameter>
 STATE_ENABLED, STATE_INDETERMINATE.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SHOWING:CAPS">ATK_STATE_SHOWING</para></entry>
<entry role="enum_member_description"><para>Indicates this object, the object's parent, the object's parent's parent, and so on,

are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose
between this object and the top of the window stack.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SINGLE-LINE:CAPS">ATK_STATE_SINGLE_LINE</para></entry>
<entry role="enum_member_description"><para>Indicates this (text) object can contain only a single line of text</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-STALE:CAPS">ATK_STATE_STALE</para></entry>
<entry role="enum_member_description"><para>Indicates that the information returned for this object may no longer be
synchronized with the application state.  This is implied if the object has STATE_TRANSIENT,
and can also occur towards the end of the object peer's lifecycle. It can also be used to indicate that

the index associated with this object has changed since the user accessed the object (in lieu of
"index-in-parent-changed" events).</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-TRANSIENT:CAPS">ATK_STATE_TRANSIENT</para></entry>
<entry role="enum_member_description"><para>Indicates this object is transient, i.e. a snapshot which may not emit events when its
state changes.  Data from objects with ATK_STATE_TRANSIENT should not be cached, since there may be no
notification given when the cached data becomes obsolete.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-VERTICAL:CAPS">ATK_STATE_VERTICAL</para></entry>
<entry role="enum_member_description"><para>Indicates the orientation of this object is vertical</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-VISIBLE:CAPS">ATK_STATE_VISIBLE</para></entry>
<entry role="enum_member_description"><para>Indicates this object is visible, e.g. has been explicitly marked for exposure to the user.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-MANAGES-DESCENDANTS:CAPS">ATK_STATE_MANAGES_DESCENDANTS</para></entry>
<entry role="enum_member_description"><para>Indicates that "active-descendant-changed" event
is sent when children become 'active' (i.e. are selected or navigated to onscreen).
Used to prevent need to enumerate all children in very large containers, like tables.
The presence of STATE_MANAGES_DESCENDANTS is an indication to the client.
that the children should not, and need not, be enumerated by the client.
Objects implementing this state are expected to provide relevant state
notifications to listening clients, for instance notifications of visibility
changes and activation of their contained child objects, without the client

having previously requested references to those children.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-INDETERMINATE:CAPS">ATK_STATE_INDETERMINATE</para></entry>
<entry role="enum_member_description"><para>Indicates that the value, or some other quantifiable
property, of this AtkObject cannot be fully determined. In the case of a large
data set in which the total number of items in that set is unknown (e.g. 1 of
999+), implementors should expose the currently-known set size (999) along
with this state. In the case of a check box, this state should be used to
indicate that the check box is a tri-state check box which is currently
neither checked nor unchecked.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-TRUNCATED:CAPS">ATK_STATE_TRUNCATED</para></entry>
<entry role="enum_member_description"><para>Indicates that an object is truncated, e.g. a text value in a speradsheet cell.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-REQUIRED:CAPS">ATK_STATE_REQUIRED</para></entry>
<entry role="enum_member_description"><para>Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-INVALID-ENTRY:CAPS">ATK_STATE_INVALID_ENTRY</para></entry>
<entry role="enum_member_description"><para>Indicates that the object has encountered an error condition due to failure of input validation. For instance, a form control may acquire this state in response to invalid or malformed user input.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SUPPORTS-AUTOCOMPLETION:CAPS">ATK_STATE_SUPPORTS_AUTOCOMPLETION</para></entry>
<entry role="enum_member_description"><para>Indicates that the object in question implements some form of ¨typeahead¨ or

pre-selection behavior whereby entering the first character of one or more sub-elements
causes those elements to scroll into view or become selected.  Subsequent character input
may narrow the selection further as long as one or more sub-elements match the string.
This state is normally only useful and encountered on objects that implement Selection.
In some cases the typeahead behavior may result in full or partial ¨completion¨ of

the data in the input field, in which case these input events may trigger text-changed
events from the AtkText interface.  This state supplants <parameter>ATK_ROLE_AUTOCOMPLETE</parameter>
.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-SELECTABLE-TEXT:CAPS">ATK_STATE_SELECTABLE_TEXT</para></entry>
<entry role="enum_member_description"><para>Indicates that the object in question supports text selection. It should only be exposed on objects which implement the Text interface, in order to distinguish this state from <parameter>ATK_STATE_SELECTABLE</parameter>
, which infers that the object in question is a selectable child of an object which implements Selection. While similar, text selection and subelement selection are distinct operations.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-DEFAULT:CAPS">ATK_STATE_DEFAULT</para></entry>
<entry role="enum_member_description"><para>Indicates that the object is the "default" active component, i.e. the object which is activated by an end-user press of the "Enter" or "Return" key.  Typically a "close" or "submit" button.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-ANIMATED:CAPS">ATK_STATE_ANIMATED</para></entry>
<entry role="enum_member_description"><para>Indicates that the object changes its appearance dynamically as an inherent part of its presentation.  This state may come and go if an object is only temporarily animated on the way to a 'final' onscreen presentation.
<parameter>note</parameter>
 some applications, notably content viewers, may not be able to detect
all kinds of animated content.  Therefore the absence of this state should not
be taken as definitive evidence that the object's visual representation is
static; this state is advisory.</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-VISITED:CAPS">ATK_STATE_VISITED</para></entry>
<entry role="enum_member_description"><para>Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited".</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-CHECKABLE:CAPS">ATK_STATE_CHECKABLE</para></entry>
<entry role="enum_member_description"><para>Indicates this object has the potential to be
checked, such as a checkbox or toggle-able table cell. <parameter>Since</parameter>
:
ATK-2.12</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-HAS-POPUP:CAPS">ATK_STATE_HAS_POPUP</para></entry>
<entry role="enum_member_description"><para>Indicates that the object has a popup context
menu or sub-level menu which may or may not be showing. This means
that activation renders conditional content.  Note that ordinary
tooltips are not considered popups in this context. <parameter>Since</parameter>
: ATK-2.12</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-HAS-TOOLTIP:CAPS">ATK_STATE_HAS_TOOLTIP</para></entry>
<entry role="enum_member_description"><para>Indicates this object has a tooltip. <parameter>Since</parameter>
: ATK-2.16</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-READ-ONLY:CAPS">ATK_STATE_READ_ONLY</para></entry>
<entry role="enum_member_description"><para>Indicates that a widget which is ENABLED and SENSITIVE
has a value which can be read, but not modified, by the user. Note that this
state should only be applied to widget types whose value is normally directly
user modifiable, such as check boxes, radio buttons, spin buttons, text input
fields, and combo boxes, as a means to convey that the expected interaction
with that widget is not possible. When the expected interaction with a
widget does not include modification by the user, as is the case with
labels and containers, ATK_STATE_READ_ONLY should not be applied. See also
ATK_STATE_EDITABLE. <parameter>Since</parameter>
: ATK-2-16</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
<row role="constant"><entry role="enum_member_name"><para id="ATK-STATE-LAST-DEFINED:CAPS">ATK_STATE_LAST_DEFINED</para></entry>
<entry role="enum_member_description"><para>Not a valid state, used for finding end of enumeration</para>
</entry>
<entry role="enum_member_annotations"></entry>
</row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>
<refsect2 id="AtkState" role="typedef">
<title>AtkState</title>
<indexterm zone="AtkState"><primary>AtkState</primary></indexterm>
<programlisting language="C">typedef guint64      AtkState;
</programlisting>
</refsect2>

</refsect1>

</refentry>
