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