Completely re-work the protocol definitions.
[platform/upstream/at-spi2-core.git] / idl / table.didl
1
2 namespace org.freestandards.atspi {
3
4         /*
5           An interface used by containers whose data is arranged in a tabular form.
6           Objects within tables are always children of the table object.
7          */
8         interface Table {
9                 read property int32 NRows;
10
11                 read property int32 NColumns;
12                 
13                 read property Reference caption;
14
15                 read property Reference summary;
16
17                 /* Number of rows where all cells are selected. */
18                 read property int32 NSelectedRows;
19
20                 /* Number of columns where all cells are selected. */
21                 read property int32 NSelectedColumns;
22
23                 method GetAccessibleAt {
24                         int32 row;
25                         int32 column;
26                 } reply {
27                         Reference cell;
28                 }
29
30                 /*
31                   Cells in a table are also children of the table in the standard heirarchy.
32                   This method gets the child index of the given cell.
33                  */
34                 method GetIndexAt {
35                         int32 row;
36                         int32 column;
37                 } reply {
38                         int32 index;
39                 }
40
41                 /*
42                   Indicates which row the child specified by index is on.
43                  */
44                 method GetRowAtIndex {
45                         int32 index;
46                 } reply {
47                         int32 row;
48                 }       
49
50                 /*
51                   Indicates which column the child specified by index is on.
52                  */
53                 method GetColumnAtIndex {
54                         int32 index;
55                 } reply {
56                         int32 column;
57                 }
58
59                 /*
60                   Get a textual description of a row.
61                  */ 
62                 method GetRowDescription {
63                         int32 row;
64                 } reply {
65                         string description;
66                 }
67
68                 /*
69                   Get a textual description of a particular column.
70                  */
71                 method GetColumnDescription {
72                         int32 column;
73                 } reply {
74                         string description;
75                 }
76
77                 /*
78                   Get the number of rows spanned by the table cell at the specific row and column.
79                 method GetRowExtentAt {
80                         int32 row;
81                         int32 column;
82                 } reply {
83                         int32 rowspan;
84                 }
85
86                 /*
87                   Get the number of columns spanned by the table cell at the specific row and column.
88                  */
89                 method GetColumnExtentAt {
90                         int32 row;
91                         int32 column;
92                 } reply {
93                         int32 column_span;
94                 }
95
96                 /*
97                   Get the header object associated with a particular table row.
98                  */
99                 method GetRowHeader {   
100                         int32 row;
101                 } reply {
102                         Reference header;
103                 }
104
105                 /*
106                   Get the header object associated with a particular table column.
107                  */
108                 method GetColumnHeader {
109                         int32 column;
110                 } reply {
111                         Reference header;
112                 }
113
114                 /*
115                   Obtain the indicies of all rows which are currently selected.
116                  */
117                 method GetSelectedRows reply {
118                         int32 indicies [];
119                 }
120
121                 /*
122                   Obtain the indicies of all columns which are currently selected.
123                  */
124                 method GetSelectedColumns reply {
125                         int32 indicies [];
126                 }
127
128                 method IsRowSelected {
129                         int32 row;
130                 } reply {
131                         boolean selected;
132                 }
133
134                 method IsColumnSelected {
135                         int32 column;
136                 } reply {
137                         boolean selected;
138                 }
139
140                 method IsSelected {
141                         int32 row;
142                         int32 column;
143                 } reply {
144                         boolean selected;
145                 }
146
147                 method AddRowSelection {
148                         int32 row;
149                 } reply {
150                         boolean success;
151                 }
152
153                 method AddColumnSelection {
154                         int32 column;
155                 } reply {
156                         boolean success;
157                 }
158
159                 method RemoveRowSelection {
160                         int32 row;
161                 } reply {
162                         boolean success;
163                 }
164
165                 method RemoveColumnSelection {
166                         int32 column;
167                 } reply {
168                         boolean success;
169                 }
170
171                 /*
172                   Given a child index determine the row and column indicies and extents
173                   and whether the cell is currently selected.
174                  */
175                 method GetRowColumnExtentsAtIndex {
176                         int32 index;
177                 } reply {
178                         boolean valid;
179                         int32 row;
180                         int32 column;
181                         int32 row_span;
182                         int32 column_span;
183                         boolean selected;
184                 }
185         }
186 }