7fd1ec0d4869ec5370f4f971e8aa398219d87151
[platform/core/uifw/at-spi2-atk.git] / cspi / spi.h
1
2 #ifndef _SPI_H
3 #define _SPI_H
4
5 #include "spi-impl.h"
6
7 /* definitions for ACCESSIBLE_STATE */
8 #include "spi-roletypes.h"
9 #include "spi-statetypes.h"
10 #include "spi-listener.h"
11
12 /*
13  *
14  * Enumerated type for text boundary types
15  *
16  */
17
18 typedef enum
19 {
20   TEXT_BOUNDARY_CHAR,
21   TEXT_BOUNDARY_CURSOR_POS,
22   TEXT_BOUNDARY_WORD_START,
23   TEXT_BOUNDARY_WORD_END,
24   TEXT_BOUNDARY_SENTENCE_START,
25   TEXT_BOUNDARY_SENTENCE_END,
26   TEXT_BOUNDARY_LINE_START,
27   TEXT_BOUNDARY_LINE_END,
28   TEXT_BOUNDARY_ATTRIBUTE_RANGE
29 } TEXT_BOUNDARY_TYPE;
30
31
32
33 /*
34  *
35  * Enumerated type for relation types
36  *
37  */
38
39 typedef enum
40 {
41   RELATION_LABEL_FOR,
42   RELATION_LABELED_BY,
43   RELATION_CONTROLLER_FOR,
44   RELATION_CONTROLLED_BY,
45   RELATION_MEMBER_OF
46 } RELATION_TYPE;
47
48
49
50 typedef enum _AccessibleCoordType {
51   COORD_TYPE_WINDOW,
52   COORD_TYPE_SCREEN
53 } AccessibleCoordType;
54
55
56 /*
57  *
58  * Basic SPI initialization and event loop function prototypes
59  *
60  */
61
62 int
63 SPI_init (void);
64
65 void
66 SPI_event_main (boolean isGNOMEApp);
67
68 boolean
69 SPI_eventIsReady ();
70
71 AccessibleEvent *
72 SPI_nextEvent (boolean waitForEvent);
73
74 void
75 SPI_exit (void);
76
77 /*
78  * Event Listener creation and support.
79  */
80
81 AccessibleEventListener *
82 createEventListener (AccessibleEventListenerCB callback);
83
84 boolean
85 EventListener_addCallback (AccessibleEventListener *listener,
86                            AccessibleEventListenerCB callback);
87
88 boolean
89 EventListener_removeCallback (AccessibleEventListener *listener,
90                               AccessibleEventListenerCB callback);
91
92 /*
93  *
94  * Global functions serviced by the registry
95  *
96  */
97
98 boolean
99 RegisterGlobalEventListener (AccessibleEventListener *listener,
100                              char *eventType);
101
102 int
103 GetDesktopCount ();
104
105 Accessible
106 *getDesktop (int n);
107
108 int
109 getDesktopList (Accessible **list);
110
111 void
112 registerKeystrokeListener (KeystrokeListener *listener);
113
114 void
115 generateKeyEvent (long keyCode, long meta);
116
117 void
118 generateMouseEvent (long x, long y, char *name);
119
120 /*
121  *
122  * Accessible function prototypes
123  *
124  */
125
126 int
127 Accessible_ref (Accessible *obj);
128
129 int
130 Accessible_unref (Accessible *obj);
131
132 char *
133 Accessible_getName (Accessible *obj);
134
135 char *
136 Accessible_getDescription (Accessible *obj);
137
138 Accessible *
139 Accessible_getParent (Accessible *obj);
140
141 long
142 Accessible_getChildCount (Accessible *obj);
143
144 Accessible *
145 Accessible_getChildAtIndex (Accessible *obj,
146                             long childIndex);
147
148 long
149 Accessible_getIndexInParent (Accessible *obj);
150
151 AccessibleRelation **
152 Accessible_getRelationSet (Accessible *obj);
153
154 char *
155 Accessible_getRole (Accessible *obj);
156
157 AccessibleStateSet *
158 Accessible_getStateSet (Accessible *obj);
159
160
161 /*
162  *
163  * AccessibleAction function prototypes
164  *
165  */
166
167 int
168 AccessibleAction_ref (
169                       AccessibleAction *obj);
170
171 int
172 AccessibleAction_unref (AccessibleAction *obj);
173
174 long
175 AccessibleAction_getNActions (AccessibleAction *obj);
176
177 char *
178 AccessibleAction_getDescription (AccessibleAction *obj,
179                                  long index);
180
181 void
182 AccessibleAction_doAction (AccessibleAction *obj,
183                            long index);
184
185 char *
186 AccessibleAction_getKeyBinding (AccessibleAction *obj,
187                                 long index);
188
189 /*
190  *
191  * AccessibleApplication function prototypes
192  *
193  */
194
195 int
196 AccessibleApplication_ref (AccessibleApplication *obj);
197
198 int
199 AccessibleApplication_unref (AccessibleApplication *obj);
200
201 char *
202 AccessibleApplication_getToolkitName (AccessibleApplication *obj);
203
204 char *
205 AccessibleApplication_getVersion (AccessibleApplication *obj);
206
207 long
208 AccessibleApplication_getID (AccessibleApplication *obj);
209
210 boolean
211 AccessibleApplication_pause (AccessibleApplication *obj);
212
213 boolean
214 AccessibleApplication_resume (AccessibleApplication *obj);
215
216 /*
217  *
218  * AccessibleComponent function prototypes
219  *
220  */
221
222 int
223 AccessibleComponent_ref (AccessibleComponent *obj);
224
225 int
226 AccessibleComponent_unref (AccessibleComponent *obj);
227
228 boolean
229 AccessibleComponent_contains (AccessibleComponent *obj,
230                               long x,
231                               long y,
232                               AccessibleCoordType ctype);
233
234 Accessible *
235 AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
236                                           long x,
237                                           long y,
238                                           AccessibleCoordType ctype);
239
240 void
241 AccessibleComponent_getExtents (AccessibleComponent *obj,
242                                 long *x,
243                                 long *y,
244                                 long *width,
245                                 long *height,
246                                 AccessibleCoordType ctype);
247
248 void
249 AccessibleComponent_getPosition (AccessibleComponent *obj,
250                                  long *x,
251                                  long *y,
252                                  AccessibleCoordType ctype);
253
254 void
255 AccessibleComponent_getSize (AccessibleComponent *obj,
256                              long *width,
257                              long *height);
258
259 void
260 AccessibleComponent_grabFocus (AccessibleComponent *obj);
261
262 /*
263  *
264  * AccessibleEditableText function prototypes
265  *
266  */
267
268 int
269 AccessibleEditableText_ref (AccessibleEditableText *obj);
270
271 int
272 AccessibleEditableText_unref (AccessibleEditableText *obj);
273
274 void
275 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
276                                         char *newContents);
277
278 void
279 AccessibleEditableText_insertText (AccessibleEditableText *obj,
280                                    long position,
281                                    char *text,
282                                    long length);
283
284 boolean
285 AccessibleEditableText_selectText (AccessibleEditableText *obj,
286                                    long startPos,
287                                    long endPos);
288
289 boolean
290 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
291                                       long startPos,
292                                       long endPos,
293                                       char *attributes);
294
295 void
296 AccessibleEditableText_copyText (AccessibleText *obj,
297                                  long startPos,
298                                  long endPos);
299
300 void
301 AccessibleEditableText_cutText (AccessibleEditableText *obj,
302                                 long startPos,
303                                 long endPos);
304
305 void
306 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
307                                    long startPos,
308                                    long endPos);
309
310 void
311 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
312                                   long position);
313
314 /*
315  *
316  * AccessibleHyperlink function prototypes
317  *
318  */
319
320 int
321 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
322
323 int
324 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
325
326 long
327 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
328
329 char *
330 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
331                             long i);
332
333 Accessible
334 AccessibleHyperlink_getAnchor (AccessibleHyperlink *obj,
335                                long i);
336
337 void
338 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
339                                    long *startIndex,
340                                    long *endIndex);
341
342 boolean
343 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
344
345 /*
346  *
347  * AccessibleHypertext function prototypes
348  *
349  */
350
351 int
352 AccessibleHypertext_ref (AccessibleHypertext *obj);
353
354 int
355 AccessibleHypertext_unref (AccessibleHypertext *obj);
356
357 long
358 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
359
360 AccessibleHyperlink *
361 AccessibleHyperText_getLink (AccessibleHypertext *obj,
362                              long linkIndex);
363
364 long
365 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
366                                   long characterIndex);
367
368 /*
369  *
370  * AccessibleImage function prototypes
371  *
372  */
373
374 int
375 AccessibleImage_ref (AccessibleImage *obj);
376
377 int
378 AccessibleImage_unref (AccessibleImage *obj);
379
380 char *
381 AccessibleImage_getImageDescription (AccessibleImage *obj);
382
383 void
384 AccessibleImage_getImageSize (AccessibleImage *obj,
385                               long *width,
386                               long *height,
387                               AccessibleCoordType ctype);
388 void
389 AccessibleImage_getImagePosition (AccessibleImage *obj,
390                                   long *x,
391                                   long *y,
392                                   AccessibleCoordType ctype);
393
394 /*
395  *
396  * AccessibleRelation function prototypes
397  *
398  */
399
400 int
401 AccessibleRelation_ref (AccessibleRelation *obj);
402
403 int
404 AccessibleRelation_unref (AccessibleRelation *obj);
405
406 RELATION_TYPE
407 AccessibleRelation_getRelationType (AccessibleRelation *obj);
408
409 Accessible *
410 AccessibleRelation_getTarget (AccessibleRelation *obj);
411
412
413
414 /*
415  *
416  * AccessibleSelection function prototypes
417  *
418  */
419
420 int
421 AccessibleSelection_ref (AccessibleSelection *obj);
422
423 int
424 AccessibleSelection_unref (AccessibleSelection *obj);
425
426 long
427 AccessibleSelwection_getNSelectedChildren (AccessibleSelection *obj);
428
429 Accessible *
430 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
431                                       long selectedChildIndex);
432
433 boolean
434 AccessibleSelection_selectChild (AccessibleSelection *obj,
435                                  long childIndex);
436
437 boolean
438 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
439                                            long selectedChildIndex);
440
441 boolean
442 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
443                                      long childIndex);
444
445 void
446 AccessibleSelection_selectAll (AccessibleSelection *obj);
447
448 void
449 AccessibleSelection_clearSelection (AccessibleSelection *obj);
450
451
452 /*
453  *
454  * AccessibleStateSet function prototypes
455  *
456  */
457
458 int
459 AccessibleStateSet_ref (AccessibleStateSet *obj);
460
461 int
462 AccessibleStateSet_unref (AccessibleStateSet *obj);
463
464 boolean
465 AccessibleStateSet_contains (AccessibleStateSet *obj,
466                              ACCESSIBLE_STATE state);
467
468 void
469 AccessibleStateSet_add (AccessibleStateSet *obj,
470                         ACCESSIBLE_STATE state);
471
472 void
473 AccessibleStateSet_remove (AccessibleStateSet *obj,
474                            ACCESSIBLE_STATE state);
475
476 boolean
477 AccessibleStateSet_equals (AccessibleStateSet *obj,
478                            AccessibleStateSet *obj2);
479
480 void
481 AccessibleStateSet_compare (AccessibleStateSet *obj,
482                             AccessibleStateSet *obj2,
483                             AccessibleStateSet **differenceSet);
484
485 boolean
486 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
487
488
489 /*
490  *
491  * AccessibleTable function prototypes
492  *
493  */
494
495 int
496 AccessibleTable_ref (AccessibleTable *obj);
497
498 int
499 AccessibleTable_unref (AccessibleTable *obj);
500
501 Accessible *
502 AccessibleTable_getCaption (AccessibleTable *obj);
503
504 Accessible *
505 AccessibleTable_getSummary (AccessibleTable *obj);
506
507 long
508 AccessibleTable_getNRows (AccessibleTable *obj);
509
510 long
511 AccessibleTable_getNColumns (AccessibleTable *obj);
512
513 Accessible *
514 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
515                                  long row,
516                                  long column);
517
518 long
519 AccessibleTable_getIndexAt (AccessibleTable *obj,
520                             long row,
521                             long column);
522
523 long
524 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
525                                long index);
526
527 long
528 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
529                                   long index);
530
531 char *
532 AccessibleTable_getRowDescription (AccessibleTable *obj);
533
534 char *
535 AccessibleTable_getColumnDescription (AccessibleTable *obj);
536
537 long
538 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
539                                 long row,
540                                 long column);
541
542 long
543 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
544                                    long row,
545                                    long column);
546
547 AccessibleTable *
548 AccessibleTable_getRowHeaders (AccessibleTable *obj);
549
550 AccessibleTable *
551 AccessibleTable_getColumnHeaders (AccessibleTable *obj);
552
553 long
554 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
555
556 void
557 AccessibleTable_getSelectedRows (AccessibleTable *obj,
558                                  long **selectedRows);
559
560 long
561 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
562
563 void
564 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
565                                     long **selectedColumns);
566
567 boolean
568 AccessibleTable_isRowSelected (AccessibleTable *obj,
569                                long row);
570
571 boolean
572 AccessibleTable_isColumnSelected (AccessibleTable *obj,
573                                   long column);
574
575 boolean
576 AccessibleTable_isSelected (AccessibleTable *obj,
577                             long row,
578                             long column);
579
580 /*
581  *
582  * AccessibleText function prototypes
583  *
584  */
585
586 int
587 AccessibleText_ref (AccessibleText *obj);
588
589 int
590 AccessibleText_unref (AccessibleText *obj);
591
592 long
593 AccessibleText_getCharacterCount (AccessibleText *obj);
594
595 char *
596 AccessibleText_getText (AccessibleText *obj,
597                         long startOffset,
598                         long endOffset);
599
600 long
601 AccessibleText_getCaretOffset (AccessibleText *obj);
602
603 boolean
604 AccessibleText_setCaretOffset (AccessibleText *obj,
605                                long newOffset);
606
607 char *
608 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
609                                     long offset,
610                                     TEXT_BOUNDARY_TYPE type);
611
612 char *
613 AccessibleText_getTextAtOffset (Accessible *obj,
614                                 long offset,
615                                 TEXT_BOUNDARY_TYPE type);
616
617 char *
618 AccessibleText_getTextAfterOffset (AccessibleText *obj,
619                                    long offset,
620                                    TEXT_BOUNDARY_TYPE type);
621
622 char
623 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
624                                      long offset);
625
626 char *
627 AccessibleText_getAttributes (AccessibleText *obj,
628                               long startOffset,
629                               long endOffset);
630
631 boolean
632 AccessibleText_getCharacterExtents (AccessibleText *obj,
633                                     long offset,
634                                     long *x,
635                                     long *y,
636                                     long *width,
637                                     long *height);
638
639 long
640 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
641                                  long x,
642                                  long y);
643
644 char *
645 AccessibleText_getSelectedText (AccessibleText *obj);
646
647 void
648 AccessibleText_getSelectionBounds (AccessibleText *obj,
649                                    long *startOffset,
650                                    long *endOffset);
651
652 boolean
653 AccessibleText_setSelectionBounds (AccessibleText *obj,
654                                    long startOffset,
655                                    long endOffset);
656
657 /*
658  *
659  * AccessibleValue Function Prototypes:
660  *
661  */
662
663 float
664 AccessibleValue_getMinimumValue (AccessibleValue *value);
665
666 float
667 AccessibleValue_getCurrentValue (AccessibleValue *value);
668
669 float
670 AccessibleValue_getMaximumValue (AccessibleValue *value);
671
672 boolean
673 AccessibleValue_setCurrentValue (AccessibleValue *value,
674                                  float newValue);
675
676 #endif