2001-11-13 Michael Meeks <michael@ximian.com>
[platform/core/uifw/at-spi2-atk.git] / cspi / spi_text.c
1 int
2 SpiAccessibleText_ref (SpiAccessibleText *obj)
3 {
4   Accessibility_Text_ref (*obj, &ev);
5   return 0;
6 }
7
8
9
10 int
11 SpiAccessibleText_unref (SpiAccessibleText *obj)
12 {
13   Accessibility_Text_unref (*obj, &ev);
14   return 0;
15 }
16
17
18
19 long
20 SpiAccessibleText_getCharacterCount (SpiAccessibleText *obj)
21 {
22   long retval;
23
24   CORBA_exception_init (&ev);
25   retval = (long)
26     Accessibility_Text__get_characterCount (*obj, &ev);
27
28   spi_check_ev (&ev, "SpiAccessibleText_getCharacterCount");
29
30   return retval;
31 }
32
33
34
35 char *
36 SpiAccessibleText_getText (SpiAccessibleText *obj,
37                         long startOffset,
38                         long endOffset)
39 {
40   return (char *)
41     Accessibility_Text_getText (*obj,
42                                 (CORBA_long) startOffset, (CORBA_long) endOffset, &ev);
43 }
44
45
46
47
48 long
49 SpiAccessibleText_getCaretOffset (SpiAccessibleText *obj)
50 {
51   return (long)
52     Accessibility_Text__get_caretOffset (*obj, &ev);
53 }
54
55
56
57 char *
58 SpiAccessibleText_getAttributes (SpiAccessibleText *obj,
59                                  long offset,
60                                  long *startOffset,
61                                  long *endOffset)
62 {
63   CORBA_long retStartOffset, retEndOffset;
64   char *retval; 
65   retval = (char *)
66     Accessibility_Text_getAttributes (*obj,
67                                       (CORBA_long) offset,
68                                       &retStartOffset,
69                                       &retEndOffset,
70                                       &ev);
71   *startOffset = (long) retStartOffset;
72   *endOffset = (long) retEndOffset;
73   return retval;
74 }
75
76
77
78 boolean
79 SpiAccessibleText_setCaretOffset (SpiAccessibleText *obj,
80                                long newOffset)
81 {
82   return (boolean)
83     Accessibility_Text_setCaretOffset (*obj,
84                                        (CORBA_long) newOffset, &ev);
85 }
86
87
88
89 char *
90 SpiAccessibleText_getTextBeforeOffset (SpiAccessibleText *obj,
91                                     long offset,
92                                     SPI_TEXT_BOUNDARY_TYPE type,
93                                     long *startOffset, long *endOffset)
94 {
95   char *retval;
96   CORBA_long retStartOffset, retEndOffset;
97   retval = (char *)
98     Accessibility_Text_getTextBeforeOffset (*obj,
99                                            (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type,
100                                            &retStartOffset, &retEndOffset,
101                                            &ev);
102   *startOffset = (long) retStartOffset;
103   *endOffset = (long) retEndOffset;
104   return retval;
105 }
106
107
108
109 char *
110 SpiAccessibleText_getTextAtOffset (SpiAccessibleText *obj,
111                                 long offset,
112                                 SPI_TEXT_BOUNDARY_TYPE type,
113                                 long *startOffset, long *endOffset)
114 {
115   CORBA_long corbaStartOffset;
116   CORBA_long corbaEndOffset;
117   char *retval = "";
118   retval = Accessibility_Text_getTextAtOffset (*obj,
119                                                (CORBA_long) offset,
120                                                (Accessibility_TEXT_BOUNDARY_TYPE) type,
121                                                &corbaStartOffset,
122                                                &corbaEndOffset,
123                                                &ev);
124   *startOffset = (long) corbaStartOffset;
125   *endOffset = (long) corbaEndOffset;
126 #ifdef SPI_DEBUG
127   fprintf (stderr, "text offsets %ld to %ld\n", *startOffset, *endOffset);
128 #endif
129   return retval;
130 }
131
132
133
134 char *
135 SpiAccessibleText_getTextAfterOffset (SpiAccessibleText *obj,
136                                     long offset,
137                                     SPI_TEXT_BOUNDARY_TYPE type,
138                                     long *startOffset, long *endOffset)
139 {
140   char *retval;
141   CORBA_long retStartOffset, retEndOffset;
142   retval = (char *)
143     Accessibility_Text_getTextAfterOffset (*obj,
144                                            (CORBA_long) offset, (Accessibility_TEXT_BOUNDARY_TYPE) type,
145                                            &retStartOffset, &retEndOffset,
146                                            &ev);
147   *startOffset = (long) retStartOffset;
148   *endOffset = (long) retEndOffset;
149   return retval;
150 }
151
152
153
154 unsigned long
155 SpiAccessibleText_getCharacterAtOffset (SpiAccessibleText *obj,
156                                      long offset)
157 {
158   return (unsigned long)
159     Accessibility_Text_getCharacterAtOffset (*obj,
160                                              (CORBA_long) offset, &ev);
161 }
162
163
164
165 void
166 SpiAccessibleText_getCharacterExtents (SpiAccessibleText *obj,
167                                     long offset,
168                                     long *x,
169                                     long *y,
170                                     long *width,
171                                     long *height,
172                                     SpiAccessibleCoordType type)
173 {
174   CORBA_long retX, retY, retWidth, retHeight;
175   Accessibility_Text_getCharacterExtents (*obj,
176                                           (CORBA_long) offset,
177                                           &retX,
178                                           &retY,
179                                           &retWidth,
180                                           &retHeight,
181                                           (CORBA_short) type, &ev);
182   *x = (long) retX;
183   *y = (long) retY;
184   *width = (long) retWidth;
185   *height = (long) retHeight;
186 }
187
188
189
190 long
191 SpiAccessibleText_getOffsetAtPoint (SpiAccessibleText *obj,
192                                  long x,
193                                  long y,
194                                  SpiAccessibleCoordType type)
195 {
196   return (long)
197     Accessibility_Text_getOffsetAtPoint (*obj,
198                                          (CORBA_long) x, (CORBA_long) y, (CORBA_short) type, &ev);
199 }
200
201
202
203 long
204 SpiAccessibleText_getNSelections (SpiAccessibleText *obj)
205 {
206   return (long)
207     Accessibility_Text_getNSelections (*obj, &ev);
208 }
209
210
211
212 void
213 SpiAccessibleText_getSelection (SpiAccessibleText *obj,
214                              long selectionNum, long *startOffset,
215                              long *endOffset)
216 {
217   CORBA_long retStartOffset, retEndOffset;
218   Accessibility_Text_getSelection (*obj,
219                                    (CORBA_long) selectionNum,
220                                    &retStartOffset, &retEndOffset, &ev);
221   
222   *startOffset = (long) retStartOffset;
223   *endOffset = (long) retEndOffset;
224 }
225
226
227
228 boolean
229 SpiAccessibleText_addSelection (SpiAccessibleText *obj,
230                              long startOffset, long endOffset)
231 {
232   return (boolean)
233     Accessibility_Text_addSelection (*obj,
234                                      (CORBA_long) startOffset, (CORBA_long) endOffset,
235                                      &ev);
236 }
237
238
239
240 boolean
241 SpiAccessibleText_removeSelection (SpiAccessibleText *obj,
242                                 long selectionNum)
243 {
244   return (boolean)
245     Accessibility_Text_removeSelection (*obj,
246                                         (CORBA_long) selectionNum, &ev);
247 }
248
249
250
251 boolean
252 SpiAccessibleText_setSelection (SpiAccessibleText *obj,
253                              long selectionNum,
254                              long startOffset,
255                              long endOffset)
256 {
257   return (boolean)
258     Accessibility_Text_setSelection (*obj,
259                                      (CORBA_long) selectionNum,
260                                      (CORBA_long) startOffset,
261                                      (CORBA_long) endOffset, &ev);
262 }
263
264
265