2003-05-20 Padraig O'Briain <padraig.obriain@sun.com>
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_State.idl
1 /* 
2  * AT-SPI - Assistive Technology Service Provider Interface 
3  * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
4  *
5  * Copyright 2001 Sun Microsystems Inc.
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Library General Public
9  * License as published by the Free Software Foundation; either
10  * version 2 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Library General Public License for more details.
16  *
17  * You should have received a copy of the GNU Library General Public
18  * License along with this library; if not, write to the
19  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20  * Boston, MA 02111-1307, USA.
21  */
22
23 #ifndef _ACCESSIBILITY_STATE_IDL
24 #define _ACCESSIBILITY_STATE_IDL
25
26 module Accessibility {
27
28   enum StateType {
29   STATE_INVALID,
30   /* Indicates a window is currently the active window */
31   STATE_ACTIVE,
32   /* Indicates that the object is armed */
33   STATE_ARMED,
34   /* Indicates the current object is busy */
35   STATE_BUSY,
36   /* Indicates this object is currently checked */
37   STATE_CHECKED,
38   /* Indicates this object is collapsed */
39   STATE_COLLAPSED,
40   /* Indicates that this object no longer contains a backing widget */
41   STATE_DEFUNCT,
42   /* Indicates the user can change the contents of this object */
43   STATE_EDITABLE,
44   /* Indicates that this object is enabled */
45   STATE_ENABLED,
46   /* Indicates this object allows progressive disclosure of its children */
47   STATE_EXPANDABLE,
48   /* Indicates this object its expanded */
49   STATE_EXPANDED,
50   /*
51    * Indicates this object can accept keyboard focus, which means all
52    * events resulting from typing on the keyboard will normally be passed
53    * to it when it has focus
54    */
55   STATE_FOCUSABLE,
56   /* Indicates this object currently has the keyboard focus */
57   STATE_FOCUSED,
58   /* Indicates that the object has an associated tooltip */
59   STATE_HAS_TOOLTIP,
60   /* Indicates the orientation of thsi object is horizontal */
61   STATE_HORIZONTAL,
62   /* Indicates this object is minimized and is represented only by an icon */
63   STATE_ICONIFIED,
64   /*
65    * Indicates something must be done with this object before the user can
66    * interact with an object in a different window.
67    */
68   STATE_MODAL,
69   /* Indicates this (text) object can contain multiple lines of text */
70   STATE_MULTI_LINE,
71   /*
72    * Indicates this object allows more than one of its children to be
73    * selected at the same time
74    */
75   STATE_MULTISELECTABLE,
76   /* Indicates this object paints every pixel within its rectangular region. */
77   STATE_OPAQUE,
78   /* Indicates this object is currently pressed */
79   STATE_PRESSED,
80   /* Indicates the size of this object is not fixed */
81   STATE_RESIZABLE,
82   /*
83    * Indicates this object is the child of an object that allows its
84    * children to be selected and that this child is one of those children
85    * that can be selected.
86    */
87   STATE_SELECTABLE,
88   /*
89    * Indicates this object is the child of an object that allows its
90    * children to be selected and that this child is one of those children
91    * that has been selected.
92    */
93   STATE_SELECTED,
94   /* Indicates this object is sensitive */
95   STATE_SENSITIVE,
96   /*
97    * Indicates this object, the object's parent, the object's parent's
98    * parent, and so on, are all visible
99    */
100   STATE_SHOWING,
101   /* Indicates this (text) object can contain only a single line of text */
102   STATE_SINGLE_LINE,
103   /* Indicates that this object's index within parent information may be invalid */
104   STATE_STALE,
105   /* Indicates this object is transient */
106   STATE_TRANSIENT,
107   /* Indicates the orientation of this object is vertical */
108   STATE_VERTICAL,
109   /* Indicates this object is visible */
110   STATE_VISIBLE,
111   /*
112    * Indicates that "active-descendant-changed" event is sent when children
113    * become 'active' (i.e. are selected or navigated to onscreen).  Used to
114    * prevent need to enumerate all children in very large containers, like
115    * tables.
116    */
117   STATE_MANAGES_DESCENDANTS,
118   /*
119    * Indicates that a check box is in a state other than checked or not checked.
120    */
121   STATE_INDETERMINATE,
122
123   STATE_LAST_DEFINED
124   };
125
126   typedef sequence <StateType> StateSeq;
127
128   interface StateSet : Bonobo::Unknown {
129     boolean             contains (in StateType state);
130     void                add (in StateType state);
131     void                remove (in StateType state);
132     boolean             equals (in StateSet stateSet);
133     /* returns a 'difference set' */
134     StateSet            compare (in StateSet compareState);
135     boolean             isEmpty ();
136
137     /* Private */
138     StateSeq getStates ();
139
140     /**
141      * unImplemented:
142      *
143      * placeholders for future expansion.
144      */
145     void unImplemented ();
146     void unImplemented2 ();
147     void unImplemented3 ();
148     void unImplemented4 ();
149   };
150 };
151
152 #endif