2001-12-10 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / idl / Accessibility_Accessible.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_ACCESSIBLE_IDL
24 #define _ACCESSIBILITY_ACCESSIBLE_IDL
25
26 #include <Bonobo_Unknown.idl>
27
28 #include "Relation.idl"
29 #include "State.idl"
30 #include "Role.idl"
31
32 module Accessibility {
33   
34   typedef sequence<Relation> RelationSet;
35
36   struct BoundingBox {
37           long x;
38           long y;
39           long width;
40           long height;
41   };
42
43   interface Accessible : Bonobo::Unknown {
44
45     /**
46      * @name: a (short) #string representing the object's name.
47      **/
48     attribute string name;
49
50     /**
51      * @description: a #string describing the object in more detail than @name.
52      **/
53     attribute string description;
54
55     /**
56      * @parent: an #Accessible object which is this object's containing object.
57      **/
58     readonly attribute Accessible parent;
59
60     /**
61      * @childCount: the number of children contained by this object.
62      **/
63     readonly attribute long     childCount;
64
65     /**
66      * isEqual:
67      * @obj: an #Accessible object reference to compare to
68      *
69      * Determine whether an #Accessible refers to the same object as another
70      *
71      * Returns: a #boolean indicating whether the two object references
72      *         point to the same object. 
73      **/
74     boolean isEqual (in Accessible obj);
75
76     /**
77      * getChildAtIndex:
78      * @index: an in parameter indicating which child is requested (zero-indexed).
79      *
80      * Get the accessible child of this object at index @index.
81      *
82      * Returns: the 'nth' @Accessible child of this object.
83      **/
84     Accessible  getChildAtIndex (in long index);
85
86     /**
87      * getIndexInParent:
88      *
89      * Get the index of this object in its parent's child list.
90      *
91      * Returns: a long integer indicating this object's index in the parent's list.
92      **/
93     long                getIndexInParent ();
94
95     /**
96      * getRelationSet:
97      *
98      * Get a set defining this object's relationship to other accessible objects.
99      *
100      * Returns: a @RelationSet defining this object's relationships.
101      **/
102     RelationSet getRelationSet ();
103
104     /**
105      * getRole:
106      * Get the @Role indicating the type of UI role played by this object.
107      *
108      * Returns: a @Role indicating the type of UI role played by this object.
109      **/
110     Role                getRole ();
111
112     /**
113      * getState:
114      *
115      * Get the current state of the object as a @StateSet.
116      * Returns: a @StateSet encapsulating the currently true states of the object.
117      **/
118     StateSet    getState ();
119   };
120 };
121
122 #endif
123