|
||||
File indexing completed on 2025-01-18 09:28:17
0001 /* ATK - Accessibility Toolkit 0002 * Copyright 2001 Sun Microsystems Inc. 0003 * 0004 * This library is free software; you can redistribute it and/or 0005 * modify it under the terms of the GNU Library General Public 0006 * License as published by the Free Software Foundation; either 0007 * version 2 of the License, or (at your option) any later version. 0008 * 0009 * This library is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0012 * Library General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU Library General Public 0015 * License along with this library; if not, write to the 0016 * Free Software Foundation, Inc., 59 Temple Place - Suite 330, 0017 * Boston, MA 02111-1307, USA. 0018 */ 0019 0020 #ifndef __ATK_STATE_H__ 0021 #define __ATK_STATE_H__ 0022 0023 #if defined(ATK_DISABLE_SINGLE_INCLUDES) && !defined(__ATK_H_INSIDE__) && !defined(ATK_COMPILATION) 0024 #error "Only <atk/atk.h> can be included directly." 0025 #endif 0026 0027 #include <atk/atkversion.h> 0028 #include <glib-object.h> 0029 0030 G_BEGIN_DECLS 0031 0032 /** 0033 *AtkStateType: 0034 *@ATK_STATE_INVALID: Indicates an invalid state - probably an error condition. 0035 *@ATK_STATE_ACTIVE: 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. 0036 *@ATK_STATE_ARMED: 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. 0037 *@ATK_STATE_BUSY: 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. 0038 *@ATK_STATE_CHECKED: Indicates this object is currently checked, for instance a checkbox is 'non-empty'. 0039 *@ATK_STATE_DEFUNCT: Indicates that this object no longer has a valid backing widget (for instance, if its peer object has been destroyed) 0040 *@ATK_STATE_EDITABLE: Indicates that this object can contain text, and that the 0041 * user can change the textual contents of this object by editing those contents 0042 * directly. For an object which is expected to be editable due to its type, but 0043 * which cannot be edited due to the application or platform preventing the user 0044 * from doing so, that object's #AtkStateSet should lack ATK_STATE_EDITABLE and 0045 * should contain ATK_STATE_READ_ONLY. 0046 *@ATK_STATE_ENABLED: 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 0047 *@ATK_STATE_EXPANDABLE: Indicates this object allows progressive disclosure of its children 0048 *@ATK_STATE_EXPANDED: Indicates this object its expanded - see ATK_STATE_EXPANDABLE above 0049 *@ATK_STATE_FOCUSABLE: 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 0050 *@ATK_STATE_FOCUSED: Indicates this object currently has the keyboard focus 0051 *@ATK_STATE_HORIZONTAL: 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. 0052 *@ATK_STATE_ICONIFIED: Indicates this object is minimized and is represented only by an icon 0053 *@ATK_STATE_MODAL: Indicates something must be done with this object before the user can interact with an object in a different window 0054 *@ATK_STATE_MULTI_LINE: Indicates this (text) object can contain multiple lines of text 0055 *@ATK_STATE_MULTISELECTABLE: 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. 0056 *@ATK_STATE_OPAQUE: Indicates this object paints every pixel within its rectangular region. 0057 *@ATK_STATE_PRESSED: Indicates this object is currently pressed. 0058 *@ATK_STATE_RESIZABLE: Indicates the size of this object is not fixed 0059 *@ATK_STATE_SELECTABLE: 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 0060 *@ATK_STATE_SELECTED: 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 0061 *@ATK_STATE_SENSITIVE: Indicates this object is sensitive, e.g. to user interaction. 0062 * STATE_SENSITIVE usually accompanies STATE_ENABLED for user-actionable controls, 0063 * but may be found in the absence of STATE_ENABLED if the current visible state of the 0064 * control is "disconnected" from the application state. In such cases, direct user interaction 0065 * can often result in the object gaining STATE_SENSITIVE, for instance if a user makes 0066 * an explicit selection using an object whose current state is ambiguous or undefined. 0067 * @see STATE_ENABLED, STATE_INDETERMINATE. 0068 *@ATK_STATE_SHOWING: Indicates this object, the object's parent, the object's parent's parent, and so on, 0069 * are all 'shown' to the end-user, i.e. subject to "exposure" if blocking or obscuring objects do not interpose 0070 * between this object and the top of the window stack. 0071 *@ATK_STATE_SINGLE_LINE: Indicates this (text) object can contain only a single line of text 0072 *@ATK_STATE_STALE: Indicates that the information returned for this object may no longer be 0073 * synchronized with the application state. This is implied if the object has STATE_TRANSIENT, 0074 * and can also occur towards the end of the object peer's lifecycle. It can also be used to indicate that 0075 * the index associated with this object has changed since the user accessed the object (in lieu of 0076 * "index-in-parent-changed" events). 0077 *@ATK_STATE_TRANSIENT: Indicates this object is transient, i.e. a snapshot which may not emit events when its 0078 * state changes. Data from objects with ATK_STATE_TRANSIENT should not be cached, since there may be no 0079 * notification given when the cached data becomes obsolete. 0080 *@ATK_STATE_VERTICAL: Indicates the orientation of this object is vertical 0081 *@ATK_STATE_VISIBLE: Indicates this object is visible, e.g. has been explicitly marked for exposure to the user. 0082 * **note**: %ATK_STATE_VISIBLE is no guarantee that the object is actually unobscured on the screen, only 0083 * that it is 'potentially' visible, barring obstruction, being scrolled or clipped out of the 0084 * field of view, or having an ancestor container that has not yet made visible. 0085 * A widget is potentially onscreen if it has both %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING. 0086 * The absence of %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING is semantically equivalent to saying 0087 * that an object is 'hidden'. See also %ATK_STATE_TRUNCATED, which applies if an object with 0088 * %ATK_STATE_VISIBLE and %ATK_STATE_SHOWING set lies within a viewport which means that its 0089 * contents are clipped, e.g. a truncated spreadsheet cell or 0090 * an image within a scrolling viewport. Mostly useful for screen-review and magnification 0091 * algorithms. 0092 *@ATK_STATE_MANAGES_DESCENDANTS: Indicates that "active-descendant-changed" event 0093 * is sent when children become 'active' (i.e. are selected or navigated to onscreen). 0094 * Used to prevent need to enumerate all children in very large containers, like tables. 0095 * The presence of STATE_MANAGES_DESCENDANTS is an indication to the client. 0096 * that the children should not, and need not, be enumerated by the client. 0097 * Objects implementing this state are expected to provide relevant state 0098 * notifications to listening clients, for instance notifications of visibility 0099 * changes and activation of their contained child objects, without the client 0100 * having previously requested references to those children. 0101 *@ATK_STATE_INDETERMINATE: Indicates that the value, or some other quantifiable 0102 * property, of this AtkObject cannot be fully determined. In the case of a large 0103 * data set in which the total number of items in that set is unknown (e.g. 1 of 0104 * 999+), implementors should expose the currently-known set size (999) along 0105 * with this state. In the case of a check box, this state should be used to 0106 * indicate that the check box is a tri-state check box which is currently 0107 * neither checked nor unchecked. 0108 *@ATK_STATE_TRUNCATED: Indicates that an object is truncated, e.g. a text value in a speradsheet cell. 0109 *@ATK_STATE_REQUIRED: Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface. 0110 *@ATK_STATE_INVALID_ENTRY: 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. 0111 *@ATK_STATE_SUPPORTS_AUTOCOMPLETION: Indicates that the object in question implements some form of ¨typeahead¨ or 0112 * pre-selection behavior whereby entering the first character of one or more sub-elements 0113 * causes those elements to scroll into view or become selected. Subsequent character input 0114 * may narrow the selection further as long as one or more sub-elements match the string. 0115 * This state is normally only useful and encountered on objects that implement Selection. 0116 * In some cases the typeahead behavior may result in full or partial ¨completion¨ of 0117 * the data in the input field, in which case these input events may trigger text-changed 0118 * events from the AtkText interface. This state supplants @ATK_ROLE_AUTOCOMPLETE. 0119 *@ATK_STATE_SELECTABLE_TEXT: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 @ATK_STATE_SELECTABLE, 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. 0120 *@ATK_STATE_DEFAULT: 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. 0121 *@ATK_STATE_ANIMATED: 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. 0122 * **note**: some applications, notably content viewers, may not be able to detect 0123 * all kinds of animated content. Therefore the absence of this state should not 0124 * be taken as definitive evidence that the object's visual representation is 0125 * static; this state is advisory. 0126 *@ATK_STATE_VISITED: Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited". 0127 *@ATK_STATE_CHECKABLE: Indicates this object has the potential to be 0128 * checked, such as a checkbox or toggle-able table cell. @Since: 0129 * ATK-2.12 0130 *@ATK_STATE_HAS_POPUP: Indicates that the object has a popup context 0131 * menu or sub-level menu which may or may not be showing. This means 0132 * that activation renders conditional content. Note that ordinary 0133 * tooltips are not considered popups in this context. @Since: ATK-2.12 0134 *@ATK_STATE_HAS_TOOLTIP: Indicates this object has a tooltip. @Since: ATK-2.16 0135 *@ATK_STATE_READ_ONLY: Indicates that a widget which is ENABLED and SENSITIVE 0136 * has a value which can be read, but not modified, by the user. Note that this 0137 * state should only be applied to widget types whose value is normally directly 0138 * user modifiable, such as check boxes, radio buttons, spin buttons, text input 0139 * fields, and combo boxes, as a means to convey that the expected interaction 0140 * with that widget is not possible. When the expected interaction with a 0141 * widget does not include modification by the user, as is the case with 0142 * labels and containers, ATK_STATE_READ_ONLY should not be applied. See also 0143 * ATK_STATE_EDITABLE. @Since: ATK-2-16 0144 *@ATK_STATE_COLLAPSED: Indicates this object is collapsed. @Since: ATK-2.38 0145 *@ATK_STATE_LAST_DEFINED: Not a valid state, used for finding end of enumeration 0146 * 0147 *The possible types of states of an object 0148 **/ 0149 typedef enum 0150 { 0151 ATK_STATE_INVALID, 0152 ATK_STATE_ACTIVE, 0153 ATK_STATE_ARMED, 0154 ATK_STATE_BUSY, 0155 ATK_STATE_CHECKED, 0156 ATK_STATE_DEFUNCT, 0157 ATK_STATE_EDITABLE, 0158 ATK_STATE_ENABLED, 0159 ATK_STATE_EXPANDABLE, 0160 ATK_STATE_EXPANDED, 0161 ATK_STATE_FOCUSABLE, 0162 ATK_STATE_FOCUSED, 0163 ATK_STATE_HORIZONTAL, 0164 ATK_STATE_ICONIFIED, 0165 ATK_STATE_MODAL, 0166 ATK_STATE_MULTI_LINE, 0167 ATK_STATE_MULTISELECTABLE, 0168 ATK_STATE_OPAQUE, 0169 ATK_STATE_PRESSED, 0170 ATK_STATE_RESIZABLE, 0171 ATK_STATE_SELECTABLE, 0172 ATK_STATE_SELECTED, 0173 ATK_STATE_SENSITIVE, 0174 ATK_STATE_SHOWING, 0175 ATK_STATE_SINGLE_LINE, 0176 ATK_STATE_STALE, 0177 ATK_STATE_TRANSIENT, 0178 ATK_STATE_VERTICAL, 0179 ATK_STATE_VISIBLE, 0180 ATK_STATE_MANAGES_DESCENDANTS, 0181 ATK_STATE_INDETERMINATE, 0182 ATK_STATE_TRUNCATED, 0183 ATK_STATE_REQUIRED, 0184 ATK_STATE_INVALID_ENTRY, 0185 ATK_STATE_SUPPORTS_AUTOCOMPLETION, 0186 ATK_STATE_SELECTABLE_TEXT, 0187 ATK_STATE_DEFAULT, 0188 ATK_STATE_ANIMATED, 0189 ATK_STATE_VISITED, 0190 ATK_STATE_CHECKABLE, 0191 ATK_STATE_HAS_POPUP, 0192 ATK_STATE_HAS_TOOLTIP, 0193 ATK_STATE_READ_ONLY, 0194 ATK_STATE_COLLAPSED, 0195 ATK_STATE_LAST_DEFINED 0196 } AtkStateType; 0197 0198 typedef guint64 AtkState; 0199 0200 ATK_AVAILABLE_IN_ALL 0201 AtkStateType atk_state_type_register (const gchar *name); 0202 0203 ATK_AVAILABLE_IN_ALL 0204 const gchar *atk_state_type_get_name (AtkStateType type); 0205 ATK_AVAILABLE_IN_ALL 0206 AtkStateType atk_state_type_for_name (const gchar *name); 0207 0208 G_END_DECLS 0209 0210 #endif /* __ATK_STATE_H__ */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |