Minor cleanup of initial checkin.
[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
27 #include <Bonobo.idl>
28
29 #if !defined(__ACCESSIBILITY_ACCESSIBLE_COMPILATION) && defined(__ORBIT_IDL__)
30 %{
31 #pragma include_defs Accessible.h
32 %}
33 #pragma inhibit push
34 #endif
35
36 #include "Relation.idl"
37 #include "State.idl"
38 #include "Role.idl"
39
40 module Accessibility {
41   
42   typedef sequence<Relation> RelationSet;
43
44   interface Accessible : Bonobo::Unknown {
45
46     /**
47      * #attribute description: a (short) @string representing the object's name.
48      **/
49     attribute string name;
50
51     /**
52      * #attribute description: a @string describing the object in more detail than @name.
53      **/
54     attribute string description;
55
56     /**
57      * #attribute parent: an @Accessible object which is this object's containing object.
58      **/
59     readonly attribute Accessible parent;
60
61     /**
62      * getChildCount:
63      * return values: the number of children contained by this object (zero if none).
64      *
65      * Get the number of children contained by this object.
66      *
67      **/
68     readonly attribute long     childCount;
69
70     /**
71      * getChildAtIndex:
72      * @index: an in parameter indicating which child is requested (zero-indexed).
73      * return values: the 'nth' @Accessible child of this object.
74      *
75      * Get the accessible child of this object at index @index.
76      *
77      **/
78     Accessible  getChildAtIndex (in long index);
79
80     /**
81      * getIndexInParent:
82      * return values: a long integer indicating this object's index in the parent's list.
83      *
84      * Get the index of this object in its parent's child list.
85      *
86      **/
87     long                getIndexInParent ();
88
89     /**
90      * getRelationSet:
91      * return values: a @RelationSet defining this object's relationships.
92      *
93      * Get a set defining this object's relationship to other accessible objects.
94      *
95      **/
96     RelationSet getRelationSet ();
97
98     /**
99      * getRole:
100      * return values: the @Role of this object.
101      *
102      * Get the @Role indicating the type of UI role played by this object.
103      *
104      **/
105     Role                getRole ();
106
107     /**
108      * getState:
109      * return values: a @StateSet encapsulating the currently true states of the object.
110      *
111      * Get the current state of the object as a @StateSet.
112      **/
113     StateSet    getState ();
114   };
115 };
116
117 #if !defined(__ACCESSIBILITY_ACCESSIBLE_COMPILATION) && defined(__ORBIT_IDL__)
118 #pragma inhibit pop
119 #endif
120
121 #endif
122