2002-11-15 Darren Kenny <darren.kenny@sun.com>
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_State.idl
index 5d0b1c9..be5f398 100644 (file)
@@ -1,13 +1,28 @@
+/* 
+ * AT-SPI - Assistive Technology Service Provider Interface 
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
 #ifndef _ACCESSIBILITY_STATE_IDL
 #define _ACCESSIBILITY_STATE_IDL
 
-#if !defined(__ACCESSIBILITY_STATE_COMPILATION) && defined(__ORBIT_IDL__)
-%{
-#pragma include_defs State.h
-%}
-#pragma inhibit push
-#endif
-
 module Accessibility {
 
   enum StateType {
@@ -22,8 +37,12 @@ module Accessibility {
   STATE_CHECKED,
   /* Indicates this object is collapsed */
   STATE_COLLAPSED,
+  /* Indicates that this object no longer contains a backing widget */
+  STATE_DEFUNCT,
   /* Indicates the user can change the contents of this object */
   STATE_EDITABLE,
+  /* Indicates that this object is enabled */
+  STATE_ENABLED,
   /* Indicates this object allows progressive disclosure of its children */
   STATE_EXPANDABLE,
   /* Indicates this object its expanded */
@@ -36,6 +55,8 @@ module Accessibility {
   STATE_FOCUSABLE,
   /* Indicates this object currently has the keyboard focus */
   STATE_FOCUSED,
+  /* Indicates that the object has an associated tooltip */
+  STATE_HAS_TOOLTIP,
   /* Indicates the orientation of thsi object is horizontal */
   STATE_HORIZONTAL,
   /* Indicates this object is minimized and is represented only by an icon */
@@ -79,25 +100,47 @@ module Accessibility {
   STATE_SHOWING,
   /* Indicates this (text) object can contain only a single line of text */
   STATE_SINGLE_LINE,
+  /* Indicates that this object's index within parent information may be invalid */
+  STATE_STALE,
   /* Indicates this object is transient */
   STATE_TRANSIENT,
   /* Indicates the orientation of this object is vertical */
   STATE_VERTICAL,
   /* Indicates this object is visible */
   STATE_VISIBLE,
+  /*
+   * 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.
+   */
+  STATE_MANAGES_DESCENDANTS,
+
   STATE_LAST_DEFINED
   };
 
-  interface StateSet {
+  typedef sequence <StateType> StateSeq;
+
+  interface StateSet : Bonobo::Unknown {
     boolean            contains (in StateType state);
     void               add (in StateType state);
     void               remove (in StateType state);
     boolean            equals (in StateSet stateSet);
-    void               compare (in StateSet compareState, out StateSet differenceSet);
+    /* returns a 'difference set' */
+    StateSet            compare (in StateSet compareState);
     boolean            isEmpty ();
+
+    /* Private */
+    StateSeq getStates ();
+
+    /**
+     * unImplemented:
+     *
+     * placeholders for future expansion.
+     */
+    void unImplemented ();
+    void unImplemented2 ();
   };
 };
-#if !defined(__ACCESSIBILITY_STATE_COMPILATION) && defined(__ORBIT_IDL__)
-#pragma inhibit pop
-#endif
+
 #endif