* cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h
[platform/core/uifw/at-spi2-atk.git] / cspi / spi.h
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 _SPI_H
24 #define _SPI_H
25
26 #include <cspi/spi-impl.h>
27 /*
28  * Definitions for AccessibleRole, AccessibleState,
29  * AccessibleEvent, and event listeners.
30  */
31 #include <cspi/spi-roletypes.h>
32 #include <cspi/spi-statetypes.h>
33 #include <cspi/spi-listener.h>
34
35 /*
36  * Auxiliary typedefs and mask definitions
37  */
38 #include <libspi/keymasks.h>
39
40 #ifdef  __cplusplus
41 extern "C" {
42 #endif
43
44 /*
45  * Enumerated type for text boundary types
46  */
47 typedef enum
48 {
49   SPI_TEXT_BOUNDARY_CHAR,
50   SPI_TEXT_BOUNDARY_CURSOR_POS,
51   SPI_TEXT_BOUNDARY_WORD_START,
52   SPI_TEXT_BOUNDARY_WORD_END,
53   SPI_TEXT_BOUNDARY_SENTENCE_START,
54   SPI_TEXT_BOUNDARY_SENTENCE_END,
55   SPI_TEXT_BOUNDARY_LINE_START,
56   SPI_TEXT_BOUNDARY_LINE_END,
57   SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE
58 } AccessibleTextBoundaryType;
59
60 /*
61  *
62  * Enumerated type for relation types
63  *
64  */
65
66 typedef enum
67 {
68   SPI_RELATION_NULL,
69   SPI_RELATION_LABEL_FOR,
70   SPI_RELATION_LABELED_BY,
71   SPI_RELATION_CONTROLLER_FOR,
72   SPI_RELATION_CONTROLLED_BY,
73   SPI_RELATION_MEMBER_OF,
74   SPI_RELATION_NODE_CHILD_OF,
75   SPI_RELATION_EXTENDED,
76   SPI_RELATION_LAST_DEFINED
77 } AccessibleRelationType;
78
79
80 /* don't change the order of these ! */
81 typedef enum {
82   SPI_COORD_TYPE_SCREEN,
83   SPI_COORD_TYPE_WINDOW
84 } AccessibleCoordType;
85
86 typedef enum {
87   SPI_KEY_PRESS,
88   SPI_KEY_RELEASE, 
89   SPI_KEY_PRESSRELEASE,
90   SPI_KEY_SYM,
91   SPI_KEY_STRING
92 } AccessibleKeySynthType;
93
94 typedef enum {
95   SPI_KEYLISTENER_NOSYNC = 0,
96   SPI_KEYLISTENER_SYNCHRONOUS = 1,
97   SPI_KEYLISTENER_CANCONSUME = 2,
98   SPI_KEYLISTENER_ALL_WINDOWS = 4
99 } AccessibleKeyListenerSyncType;
100
101 typedef unsigned long AccessibleKeyEventMask;
102
103 /**
104  * AccessibleComponentLayer:
105  * @SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
106  * @SPI_LAYER_BACKGROUND: Component belongs to the destop background.
107  * @SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
108  * @SPI_LAYER_WIDGET: Component is a 'normal' widget.
109  * @SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
110  *                          Z-information relative to other MDI-layer components.
111  * @SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
112  *                          MDI components.
113  * @SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
114  *                          for future use.
115  * @SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
116  *                          should not be encountered.  
117  **/
118 typedef enum {
119     SPI_LAYER_INVALID,
120     SPI_LAYER_BACKGROUND,
121     SPI_LAYER_CANVAS,
122     SPI_LAYER_WIDGET,
123     SPI_LAYER_MDI,
124     SPI_LAYER_POPUP,
125     SPI_LAYER_OVERLAY,
126     SPI_LAYER_LAST_DEFINED      
127 } AccessibleComponentLayer;
128
129
130 /**
131  * AccessibleKeySet:
132  * @keysyms:
133  * @keycodes:
134  * @len:
135  *
136  * Structure containing identifying information about a set of keycode or
137  *        keysyms.
138  **/
139 typedef struct _AccessibleKeySet
140 {
141   unsigned long  *keysyms;
142   unsigned short *keycodes;
143   char          **keystrings;
144   short           len;
145 } AccessibleKeySet;
146
147 /**
148  * SPI_KEYSET_ALL_KEYS:
149  * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
150  *                       includes all keycodes and keyvals for the specified modifier set.
151  **/
152 #define SPI_KEYSET_ALL_KEYS NULL
153
154 typedef unsigned long AccessibleKeyMaskType;
155
156
157 /* Basic SPI initialization and event loop function prototypes */
158
159 int              SPI_init         (void);
160 void             SPI_event_main   (void);
161 void             SPI_event_quit   (void);
162 SPIBoolean       SPI_eventIsReady (void);
163 AccessibleEvent *SPI_nextEvent    (SPIBoolean waitForEvent);
164 int              SPI_exit         (void);
165
166 /* Event Listener creation and support.  */
167
168 void                      SPI_freeAccessibleKeySet (
169                                                    AccessibleKeySet         *keyset);
170 AccessibleKeySet        * SPI_createAccessibleKeySet (
171                                                    int                       len,
172                                                    const char               *keysyms,
173                                                    short                    *keycodes,
174                                                    const char              **keystrings);
175 AccessibleEventListener * SPI_createAccessibleEventListener (
176                                                    AccessibleEventListenerCB callback,
177                                                    void                     *user_data);
178 SPIBoolean                AccessibleEventListener_addCallback (
179                                                    AccessibleEventListener  *listener,
180                                                    AccessibleEventListenerCB callback,
181                                                    void                     *user_data);
182 SPIBoolean                AccessibleEventListener_removeCallback (
183                                                    AccessibleEventListener  *listener,
184                                                    AccessibleEventListenerCB callback);
185 void                      AccessibleEventListener_unref (
186                                                    AccessibleEventListener  *listener);
187
188 /* Keystroke Listener creation and support.  */
189
190 AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
191                                         AccessibleKeystrokeListenerCB callback,
192                                         void                         *user_data);
193 SPIBoolean                    AccessibleKeystrokeListener_addCallback (
194                                         AccessibleKeystrokeListener  *listener,
195                                         AccessibleKeystrokeListenerCB callback,
196                                         void                         *user_data);
197 SPIBoolean                    AccessibleKeystrokeListener_removeCallback (
198                                         AccessibleKeystrokeListener *listener,
199                                         AccessibleKeystrokeListenerCB callback);
200 void                          AccessibleKeystrokeListener_unref (
201                                         AccessibleKeystrokeListener *listener);
202
203 /* Global functions serviced by the registry */
204
205 SPIBoolean SPI_registerGlobalEventListener           (
206                                        AccessibleEventListener *listener,
207                                        const char              *eventType);
208 SPIBoolean SPI_deregisterGlobalEventListener         (
209                                        AccessibleEventListener *listener,
210                                        const char              *eventType);
211 SPIBoolean SPI_deregisterGlobalEventListenerAll      (
212                                        AccessibleEventListener *listener);
213 SPIBoolean SPI_registerAccessibleKeystrokeListener   (
214                                        AccessibleKeystrokeListener *listener,
215                                        AccessibleKeySet             *keys,
216                                        AccessibleKeyMaskType         modmask,
217                                        AccessibleKeyEventMask        eventmask,
218                                        AccessibleKeyListenerSyncType sync_type);
219 SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
220                                        AccessibleKeystrokeListener *listener,
221                                        AccessibleKeyMaskType        modmask);
222
223 int         SPI_getDesktopCount                  (void);
224 Accessible *SPI_getDesktop                       (int i);
225 int         SPI_getDesktopList                   (Accessible ***desktop_list);
226 void        SPI_freeDesktopList                  (Accessible  **desktop_list);
227
228 SPIBoolean  SPI_generateKeyboardEvent            (long int                    keyval,
229                                                   char                       *keystring,
230                                                   AccessibleKeySynthType      synth_type);
231
232 SPIBoolean  SPI_generateMouseEvent               (long int x, long int y, char *name);
233
234 /* Accessible function prototypes  */
235
236 void                 Accessible_ref              (Accessible *obj);
237 void                 Accessible_unref            (Accessible *obj);
238 char *               Accessible_getName          (Accessible *obj);
239 char *               Accessible_getDescription   (Accessible *obj);
240 Accessible *         Accessible_getParent        (Accessible *obj);
241 long                 Accessible_getChildCount    (Accessible *obj);
242 Accessible *         Accessible_getChildAtIndex  (Accessible *obj,
243                                                   long int    childIndex);
244 long                 Accessible_getIndexInParent (Accessible *obj);
245 AccessibleRelation **Accessible_getRelationSet   (Accessible *obj);
246 AccessibleRole       Accessible_getRole          (Accessible *obj);
247 char *               Accessible_getRoleName      (Accessible *obj);
248 AccessibleStateSet * Accessible_getStateSet      (Accessible *obj);
249
250 /* Interface query methods */
251
252 SPIBoolean Accessible_isAction            (Accessible *obj);
253 SPIBoolean Accessible_isApplication       (Accessible *obj);
254 SPIBoolean Accessible_isComponent         (Accessible *obj);
255 SPIBoolean Accessible_isEditableText      (Accessible *obj);
256 SPIBoolean Accessible_isHypertext         (Accessible *obj);
257 SPIBoolean Accessible_isImage             (Accessible *obj);
258 SPIBoolean Accessible_isSelection         (Accessible *obj);
259 SPIBoolean Accessible_isStreamableContent (Accessible *obj);
260 SPIBoolean Accessible_isTable             (Accessible *obj);
261 SPIBoolean Accessible_isText              (Accessible *obj);
262 SPIBoolean Accessible_isValue             (Accessible *obj);
263
264 AccessibleAction *            Accessible_getAction            (Accessible *obj);
265 AccessibleApplication *       Accessible_getApplication       (Accessible *obj);
266 AccessibleComponent *         Accessible_getComponent         (Accessible *obj);
267 AccessibleEditableText *      Accessible_getEditableText      (Accessible *obj);
268 AccessibleHypertext *         Accessible_getHypertext         (Accessible *obj);
269 AccessibleImage *             Accessible_getImage             (Accessible *obj);
270 AccessibleSelection *         Accessible_getSelection         (Accessible *obj);
271 AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
272 AccessibleTable *             Accessible_getTable             (Accessible *obj);
273 AccessibleText *              Accessible_getText              (Accessible *obj);
274 AccessibleValue *             Accessible_getValue             (Accessible *obj);
275 AccessibleUnknown *           Accessible_queryInterface       (Accessible *obj,
276                                                    const char *interface_name);
277
278 /* AccessibleAction function prototypes  */
279
280 void       AccessibleAction_ref            (AccessibleAction *obj);
281 void       AccessibleAction_unref          (AccessibleAction *obj);
282 long       AccessibleAction_getNActions    (AccessibleAction *obj);
283 char      *AccessibleAction_getName        (AccessibleAction *obj,
284                                             long int          i);
285 char      *AccessibleAction_getDescription (AccessibleAction *obj,
286                                             long int          i);
287 SPIBoolean AccessibleAction_doAction       (AccessibleAction *obj,
288                                             long int          i);
289 char      *AccessibleAction_getKeyBinding  (AccessibleAction *obj,
290                                             long int          i);
291
292 /* AccessibleApplication function prototypes  */
293
294 void       AccessibleApplication_ref            (AccessibleApplication *obj);
295 void       AccessibleApplication_unref          (AccessibleApplication *obj);
296 char      *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
297 char      *AccessibleApplication_getVersion     (AccessibleApplication *obj);
298 long       AccessibleApplication_getID          (AccessibleApplication *obj);
299 SPIBoolean AccessibleApplication_pause          (AccessibleApplication *obj);
300 SPIBoolean AccessibleApplication_resume         (AccessibleApplication *obj);
301
302 /* AccessibleComponent function prototypes */
303
304 void        AccessibleComponent_ref         (AccessibleComponent *obj);
305 void        AccessibleComponent_unref       (AccessibleComponent *obj);
306 SPIBoolean  AccessibleComponent_contains    (AccessibleComponent *obj,
307                                              long int             x,
308                                              long int             y,
309                                              AccessibleCoordType  ctype);
310 Accessible *AccessibleComponent_getAccessibleAtPoint (
311                                              AccessibleComponent *obj,
312                                              long int             x,
313                                              long int             y,
314                                              AccessibleCoordType  ctype);
315 void        AccessibleComponent_getExtents  (AccessibleComponent *obj,
316                                              long int            *x,
317                                              long int            *y,
318                                              long int            *width,
319                                              long int            *height,
320                                              AccessibleCoordType  ctype);
321 void        AccessibleComponent_getPosition (AccessibleComponent *obj,
322                                              long int            *x,
323                                              long int            *y,
324                                              AccessibleCoordType  ctype);
325 void        AccessibleComponent_getSize     (AccessibleComponent *obj,
326                                              long int            *width,
327                                              long int            *height);
328 AccessibleComponentLayer
329             AccessibleComponent_getLayer    (AccessibleComponent *obj);
330 SPIBoolean  AccessibleComponent_grabFocus   (AccessibleComponent *obj);
331 short       AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
332
333 /* AccessibleEditableText function prototypes  */
334
335 void
336 AccessibleEditableText_ref (AccessibleEditableText *obj);
337
338 void
339 AccessibleEditableText_unref (AccessibleEditableText *obj);
340
341 SPIBoolean
342 AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
343                                       const char *attributes,
344                                       long int startOffset,
345                                       long int endOffset);
346
347 SPIBoolean
348 AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
349                                         const char *newContents);
350
351 SPIBoolean
352 AccessibleEditableText_insertText (AccessibleEditableText *obj,
353                                    long int position,
354                                    const char *text,
355                                    long int length);
356
357 SPIBoolean
358 AccessibleEditableText_copyText (AccessibleText *obj,
359                                  long int startPos,
360                                  long int endPos);
361
362 SPIBoolean
363 AccessibleEditableText_cutText (AccessibleEditableText *obj,
364                                 long int startPos,
365                                 long int endPos);
366
367 SPIBoolean
368 AccessibleEditableText_deleteText (AccessibleEditableText *obj,
369                                    long int startPos,
370                                    long int endPos);
371
372 SPIBoolean
373 AccessibleEditableText_pasteText (AccessibleEditableText *obj,
374                                   long int position);
375
376 /*
377  *
378  * AccessibleHyperlink function prototypes
379  *
380  */
381 void
382 AccessibleHyperlink_ref (AccessibleHyperlink *obj);
383 void
384 AccessibleHyperlink_unref (AccessibleHyperlink *obj);
385
386 long
387 AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
388
389 char *
390 AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
391                             long int i);
392
393 Accessible *
394 AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
395                                long int i);
396
397 void
398 AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
399                                    long int *startIndex,
400                                    long int *endIndex);
401
402 SPIBoolean
403 AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
404
405 /*
406  *
407  * AccessibleHypertext function prototypes
408  *
409  */
410
411 void
412 AccessibleHypertext_ref (AccessibleHypertext *obj);
413
414 void
415 AccessibleHypertext_unref (AccessibleHypertext *obj);
416
417 long
418 AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
419
420 AccessibleHyperlink *
421 AccessibleHypertext_getLink (AccessibleHypertext *obj,
422                              long int linkIndex);
423
424 long
425 AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
426                                   long int characterOffset);
427
428 /*
429  *
430  * AccessibleImage function prototypes
431  *
432  */
433
434 void
435 AccessibleImage_ref (AccessibleImage *obj);
436
437 void
438 AccessibleImage_unref (AccessibleImage *obj);
439
440 char *
441 AccessibleImage_getImageDescription (AccessibleImage *obj);
442
443 void
444 AccessibleImage_getImageSize (AccessibleImage *obj,
445                               long int *width,
446                               long int *height);
447
448 void
449 AccessibleImage_getImagePosition (AccessibleImage *obj,
450                                   long int *x,
451                                   long int *y,
452                                   AccessibleCoordType ctype);
453
454 void
455 AccessibleImage_getImageExtents (AccessibleImage *obj,
456                                  long int *x,
457                                  long int *y,
458                                  long int *width,
459                                  long int *height,
460                                  AccessibleCoordType ctype);
461 /*
462  *
463  * AccessibleRelation function prototypes
464  *
465  */
466
467 void AccessibleRelation_ref   (AccessibleRelation *obj);
468 void AccessibleRelation_unref (AccessibleRelation *obj);
469
470 AccessibleRelationType
471 AccessibleRelation_getRelationType (AccessibleRelation *obj);
472
473 int
474 AccessibleRelation_getNTargets (AccessibleRelation *obj);
475
476 Accessible *
477 AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
478
479
480 /*
481  *
482  * AccessibleSelection function prototypes
483  *
484  */
485
486 void AccessibleSelection_ref   (AccessibleSelection *obj);
487 void AccessibleSelection_unref (AccessibleSelection *obj);
488
489 long
490 AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
491
492 Accessible *
493 AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
494                                       long int selectedChildIndex);
495
496 SPIBoolean
497 AccessibleSelection_selectChild (AccessibleSelection *obj,
498                                  long int childIndex);
499
500 SPIBoolean
501 AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
502                                            long int selectedChildIndex);
503
504 SPIBoolean
505 AccessibleSelection_isChildSelected (AccessibleSelection *obj,
506                                      long int childIndex);
507
508 SPIBoolean
509 AccessibleSelection_selectAll (AccessibleSelection *obj);
510
511 SPIBoolean
512 AccessibleSelection_clearSelection (AccessibleSelection *obj);
513
514
515 /*
516  *
517  * AccessibleStateSet function prototypes
518  *
519  */
520
521 void AccessibleStateSet_ref   (AccessibleStateSet *obj);
522 void AccessibleStateSet_unref (AccessibleStateSet *obj);
523
524 SPIBoolean
525 AccessibleStateSet_contains (AccessibleStateSet *obj,
526                              AccessibleState state);
527
528 void
529 AccessibleStateSet_add (AccessibleStateSet *obj,
530                         AccessibleState state);
531
532 void
533 AccessibleStateSet_remove (AccessibleStateSet *obj,
534                            AccessibleState state);
535
536 SPIBoolean
537 AccessibleStateSet_equals (AccessibleStateSet *obj,
538                            AccessibleStateSet *obj2);
539
540 AccessibleStateSet *
541 AccessibleStateSet_compare (AccessibleStateSet *obj,
542                             AccessibleStateSet *obj2);
543
544 SPIBoolean
545 AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
546
547 void
548 AccessibleStreamableContent_ref (AccessibleStreamableContent *obj);
549 void
550 AccessibleStreamableContent_unref (AccessibleStreamableContent *obj);
551 char **
552 AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj);
553 SPIBoolean
554 AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
555                                   const char *content_type);
556 SPIBoolean
557 AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
558                                   long int offset,
559                                   unsigned int seek_type);
560 SPIBoolean
561 AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
562                                   void *buff,
563                                   long int nbytes,
564                                   unsigned int read_type);
565 /*
566  *
567  * AccessibleTable function prototypes
568  *
569  */
570
571 void AccessibleTable_ref   (AccessibleTable *obj);
572 void AccessibleTable_unref (AccessibleTable *obj);
573
574 Accessible *
575 AccessibleTable_getCaption (AccessibleTable *obj);
576
577 Accessible *
578 AccessibleTable_getSummary (AccessibleTable *obj);
579
580 long
581 AccessibleTable_getNRows (AccessibleTable *obj);
582
583 long
584 AccessibleTable_getNColumns (AccessibleTable *obj);
585
586 Accessible *
587 AccessibleTable_getAccessibleAt (AccessibleTable *obj,
588                                  long int row,
589                                  long int column);
590
591 long
592 AccessibleTable_getIndexAt (AccessibleTable *obj,
593                             long int row,
594                             long int column);
595
596 long
597 AccessibleTable_getRowAtIndex (AccessibleTable *obj,
598                                long int index);
599
600 long
601 AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
602                                   long int index);
603
604 char *
605 AccessibleTable_getRowDescription (AccessibleTable *obj,
606                                    long int row);
607
608 char *
609 AccessibleTable_getColumnDescription (AccessibleTable *obj,
610                                       long int column);
611
612 long
613 AccessibleTable_getRowExtentAt (AccessibleTable *obj,
614                                 long int row,
615                                 long int column);
616
617 long
618 AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
619                                    long int row,
620                                    long int column);
621
622 Accessible *
623 AccessibleTable_getRowHeader (AccessibleTable *obj,
624                               long int row);
625
626 Accessible *
627 AccessibleTable_getColumnHeader (AccessibleTable *obj,
628                                  long int column);
629
630 long
631 AccessibleTable_getNSelectedRows (AccessibleTable *obj);
632
633 long
634 AccessibleTable_getSelectedRows (AccessibleTable *obj,
635                                  long int **selectedRows);
636
637 long
638 AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
639
640 long
641 AccessibleTable_getSelectedColumns (AccessibleTable *obj,
642                                     long int **selectedColumns);
643
644 SPIBoolean
645 AccessibleTable_isRowSelected (AccessibleTable *obj,
646                                long int row);
647
648 SPIBoolean
649 AccessibleTable_isColumnSelected (AccessibleTable *obj,
650                                   long int column);
651
652 SPIBoolean
653 AccessibleTable_isSelected (AccessibleTable *obj,
654                             long int row,
655                             long int column);
656
657 /*
658  *
659  * AccessibleText function prototypes
660  *
661  */
662
663 void AccessibleText_ref   (AccessibleText *obj);
664 void AccessibleText_unref (AccessibleText *obj);
665
666 long
667 AccessibleText_getCharacterCount (AccessibleText *obj);
668
669 char *
670 AccessibleText_getText (AccessibleText *obj,
671                         long int startOffset,
672                         long int endOffset);
673
674 long
675 AccessibleText_getCaretOffset (AccessibleText *obj);
676
677 char *
678 AccessibleText_getAttributes (AccessibleText *obj,
679                                  long int offset,
680                                  long int *startOffset,
681                                  long int *endOffset);
682
683
684 SPIBoolean
685 AccessibleText_setCaretOffset (AccessibleText *obj,
686                                long int newOffset);
687
688 char *
689 AccessibleText_getTextBeforeOffset (AccessibleText *obj,
690                                     long int offset,
691                                     AccessibleTextBoundaryType type,
692                                     long int *startOffset,
693                                     long int *endOffset);
694
695 char *
696 AccessibleText_getTextAtOffset (AccessibleText *obj,
697                                 long int offset,
698                                 AccessibleTextBoundaryType type,
699                                 long int *startOffset,
700                                 long int *endOffset);
701
702 char *
703 AccessibleText_getTextAfterOffset (AccessibleText *obj,
704                                    long int offset,
705                                    AccessibleTextBoundaryType type,
706                                    long int *startOffset,
707                                    long int *endOffset);
708
709 unsigned long
710 AccessibleText_getCharacterAtOffset (AccessibleText *obj,
711                                      long int offset);
712
713 void
714 AccessibleText_getCharacterExtents (AccessibleText *obj,
715                                     long int offset,
716                                     long int *x,
717                                     long int *y,
718                                     long int *width,
719                                     long int *height,
720                                     AccessibleCoordType type);
721
722 long
723 AccessibleText_getOffsetAtPoint (AccessibleText *obj,
724                                  long int x,
725                                  long int y,
726                                  AccessibleCoordType type);
727
728 long
729 AccessibleText_getNSelections (AccessibleText *obj);
730
731 void
732 AccessibleText_getSelection (AccessibleText *obj,
733                              long int selectionNum,
734                              long int *startOffset,
735                              long int *endOffset);
736
737
738 SPIBoolean
739 AccessibleText_addSelection (AccessibleText *obj,
740                              long int startOffset,
741                              long int endOffset);
742
743 SPIBoolean
744 AccessibleText_removeSelection (AccessibleText *obj,
745                                 long int selectionNum);
746
747 SPIBoolean
748 AccessibleText_setSelection (AccessibleText *obj,
749                              long int selectionNum,
750                              long int startOffset,
751                              long int endOffset);
752
753 /* AccessibleValue Function Prototypes:  */
754
755 void       AccessibleValue_ref             (AccessibleValue *obj);
756 void       AccessibleValue_unref           (AccessibleValue *obj);
757 double     AccessibleValue_getMinimumValue (AccessibleValue *obj);
758 double     AccessibleValue_getCurrentValue (AccessibleValue *obj);
759 double     AccessibleValue_getMaximumValue (AccessibleValue *obj);
760 SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
761                                             double           newValue);
762
763 /* Misc methods */
764 void SPI_freeString (char *s);
765
766 #ifdef  __cplusplus
767 }
768 #endif
769
770 #endif