Added cspi directory and cspi/spi.h, the function prototype
authorbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Wed, 15 Aug 2001 16:47:30 +0000 (16:47 +0000)
committerbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Wed, 15 Aug 2001 16:47:30 +0000 (16:47 +0000)
definitions for the C bindings for at-spi.
These C bindings are intended for use by non-CORBA and
non-bonobo-savvy clients of the at-spi.
Also tweaked some IDL to bring it in line with the headers,
added a missing attribute in Hyperlink, and added
coord system type parameter to Component geometry methods.

git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@23 e2bd861d-eb25-0410-b326-f6ed22b6b98c

ChangeLog
cspi/spi.h [new file with mode: 0644]
idl/Accessibility_Component.idl
idl/Accessibility_Hyperlink.idl
idl/Accessibility_Image.idl
idl/Component.idl
idl/Hyperlink.idl
idl/Image.idl

index c4becb7..4e22b79 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * libspi/listener.c : now we ref event sources before propagating, and unref on receipt.
        * libspi/registry.c : some changes to internal structs, to support event typestring hashes.
        * text/app.c : changed the way the appname is generated.
+       * cspi : added directory that will hold the C bindings library for 
+               non-CORBA/bonobo-savvy clients.
+       * cspi/spi.h : header file that contains the function prototypes for the C binding.
+       * idl/Component.idl : added in parameter to indicate coord system for
+               geometry-related calls.
+       * idl/Hyperlink.idl : added readonly n_links attribute
+       * idl/Image.idl : changed methods to attributes.
        
        KNOWN PROBLEMS:
        poll() fails after a few event notifications, when the number of file descriptors
diff --git a/cspi/spi.h b/cspi/spi.h
new file mode 100644 (file)
index 0000000..5b4e92a
--- /dev/null
@@ -0,0 +1,660 @@
+
+#ifndef _SPI_H
+#define _SPI_H
+
+#include "spi-impl.h"
+
+/* definitions for ACCESSIBLE_STATE */
+#include "spi-statetypes.h"
+
+/*
+ *
+ * Enumerated type for text boundary types
+ *
+ */
+
+typedef enum
+{
+  TEXT_BOUNDARY_CHAR,
+  TEXT_BOUNDARY_CURSOR_POS,
+  TEXT_BOUNDARY_WORD_START,
+  TEXT_BOUNDARY_WORD_END,
+  TEXT_BOUNDARY_SENTENCE_START,
+  TEXT_BOUNDARY_SENTENCE_END,
+  TEXT_BOUNDARY_LINE_START,
+  TEXT_BOUNDARY_LINE_END,
+  TEXT_BOUNDARY_ATTRIBUTE_RANGE
+} TEXT_BOUNDARY_TYPE;
+
+
+
+/*
+ *
+ * Enumerated type for relation types
+ *
+ */
+
+typedef enum
+{
+  RELATION_LABEL_FOR,
+  RELATION_LABELED_BY,
+  RELATION_CONTROLLER_FOR,
+  RELATION_CONTROLLED_BY,
+  RELATION_MEMBER_OF
+} RELATION_TYPE;
+
+
+
+/*
+ *
+ * Structure used to encapsulate event information
+ *
+ */
+
+typedef struct _AccessibleEvent {
+  Accessible *source;
+  char *type;
+  char *detail1;
+  char *detail2;
+} AccessibleEvent;
+
+
+
+/*
+ *
+ * Function prototype typedef for AccessibleEventListener
+ *
+ */
+
+typedef void (*AccessibleEventListener) (AccessibleEvent *e);
+
+
+
+/*
+ *
+ * Basic SPI initialization and event loop function prototypes
+ *
+ */
+
+int
+SPI_init (void);
+
+void
+SPI_event_main (boolean isGNOMEApp);
+
+boolean
+SPI_eventIsReady ();
+
+AccessibleEvent *
+SPI_nextEvent (boolean waitForEvent);
+
+void
+SPI_exit (void);
+
+/*
+ *
+ * Accessible function prototypes
+ *
+ */
+
+int
+Accessible_ref (Accessible *obj);
+
+int
+Accessible_unref (Accessible *obj);
+
+char *
+Accessible_getName (Accessible *obj);
+
+char *
+Accessible_getDescription (Accessible *obj);
+
+Accessible *
+Accessible_getParent (Accessible *obj);
+
+long
+Accessible_getChildCount (Accessible *obj);
+
+Accessible *
+Accessible_getChildAtIndex (Accessible *obj,
+                            long childIndex);
+
+long
+Accessible_getIndexInParent (Accessible *obj);
+
+AccessibleRelation **
+Accessible_getRelationSet (Accessible *obj);
+
+char *
+Accessible_getRole (Accessible *obj);
+
+AccessibleStateSet *
+Accessible_getStateSet (Accessible *obj);
+
+
+/*
+ *
+ * AccessibleAction function prototypes
+ *
+ */
+
+int
+AccessibleAction_ref (
+                      AccessibleAction *obj);
+
+int
+AccessibleAction_unref (AccessibleAction *obj);
+
+long
+AccessibleAction_getNActions (AccessibleAction *obj);
+
+char *
+AccessibleAction_getDescription (AccessibleAction *obj,
+                                 long index);
+
+void
+AccessibleAction_doAction (AccessibleAction *obj,
+                           long index);
+
+char *
+AccessibleAction_getKeyBinding (AccessibleAction *obj,
+                                long index);
+
+/*
+ *
+ * AccessibleApplication function prototypes
+ *
+ */
+
+int
+AccessibleApplication_ref (AccessibleApplication *obj);
+
+int
+AccessibleApplication_unref (AccessibleApplication *obj);
+
+char *
+AccessibleApplication_getToolkitName (AccessibleApplication *obj);
+
+char *
+AccessibleApplication_getVersion (AccessibleApplication *obj);
+
+long
+AccessibleApplication_getID (AccessibleApplication *obj);
+
+boolean
+AccessibleApplication_pause (AccessibleApplication *obj);
+
+boolean
+AccessibleApplication_resume (AccessibleApplication *obj);
+
+/*
+ *
+ * AccessibleComponent function prototypes
+ *
+ */
+
+int
+AccessibleComponent_ref (AccessibleComponent *obj);
+
+int
+AccessibleComponent_unref (AccessibleComponent *obj);
+
+boolean
+AccessibleComponent_contains (AccessibleComponent *obj,
+                              long x,
+                              long y,
+                              AccessibleCoordType ctype);
+
+Accessible *
+AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
+                                          long x,
+                                          long y,
+                                          AccessibleCoordType ctype);
+
+void
+AccessibleComponent_getExtents (AccessibleComponent *obj,
+                                long *x,
+                                long *y,
+                                long *width,
+                                long *height,
+                                AccessibleCoordType ctype);
+
+void
+AccessibleComponent_getPosition (AccessibleComponent *obj,
+                                 long *x,
+                                 long *y,
+                                 AccessibleCoordType ctype);
+
+void
+AccessibleComponent_getSize (AccessibleComponent *obj,
+                             long *width,
+                             long *height);
+
+void
+AccessibleComponent_grabFocus (AccessibleComponent *obj);
+
+/*
+ *
+ * AccessibleEditableText function prototypes
+ *
+ */
+
+int
+AccessibleEditableText_ref (AccessibleEditableText *obj);
+
+int
+AccessibleEditableText_unref (AccessibleEditableText *obj);
+
+void
+AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
+                                        char *newContents);
+
+void
+AccessibleEditableText_insertText (AccessibleEditableText *obj,
+                                   long position,
+                                   char *text,
+                                   long length);
+
+boolean
+AccessibleEditableText_selectText (AccessibleEditableText *obj,
+                                   long startPos,
+                                   long endPos);
+
+boolean
+AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
+                                      long startPos,
+                                      long endPos,
+                                      char *attributes);
+
+void
+AccessibleEditableText_copyText (AccessibleText *obj,
+                                 long startPos,
+                                 long endPos);
+
+void
+AccessibleEditableText_cutText (AccessibleEditableText *obj,
+                                long startPos,
+                                long endPos);
+
+void
+AccessibleEditableText_deleteText (AccessibleEditableText *obj,
+                                   long startPos,
+                                   long endPos);
+
+void
+AccessibleEditableText_pasteText (AccessibleEditableText *obj,
+                                  long position);
+
+/*
+ *
+ * registerEventListener
+ *
+ */
+
+boolean
+RegisterGlobalEventListener (AccessibleEventListener listener,
+                             char *eventType);
+
+/*
+ *
+ * AccessibleHyperlink function prototypes
+ *
+ */
+
+int
+AccessibleHyperlink_ref (AccessibleHyperlink *obj);
+
+int
+AccessibleHyperlink_unref (AccessibleHyperlink *obj);
+
+long
+AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
+
+char *
+AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
+                            long i);
+
+Accessible
+AccessibleHyperlink_getAnchor (AccessibleHyperlink *obj,
+                               long i);
+
+void
+AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
+                                   long *startIndex,
+                                   long *endIndex);
+
+boolean
+AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
+
+/*
+ *
+ * AccessibleHypertext function prototypes
+ *
+ */
+
+int
+AccessibleHypertext_ref (AccessibleHypertext *obj);
+
+int
+AccessibleHypertext_unref (AccessibleHypertext *obj);
+
+long
+AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
+
+AccessibleHyperlink *
+AccessibleHyperText_getLink (AccessibleHypertext *obj,
+                             long linkIndex);
+
+long
+AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
+                                  long characterIndex);
+
+/*
+ *
+ * AccessibleImage function prototypes
+ *
+ */
+
+int
+AccessibleImage_ref (AccessibleImage *obj);
+
+int
+AccessibleImage_unref (AccessibleImage *obj);
+
+char *
+AccessibleImage_getImageDescription (AccessibleImage *obj);
+
+void
+AccessibleImage_getImageSize (AccessibleImage *obj,
+                              long *width,
+                              long *height,
+                              AccessibleCoordType ctype);
+void
+AccessibleImage_getImagePosition (AccessibleImage *obj,
+                                  long *x,
+                                  long *y,
+                                  AccessibleCoordType ctype);
+
+/*
+ *
+ * AccessibleRelation function prototypes
+ *
+ */
+
+int
+AccessibleRelation_ref (AccessibleRelation *obj);
+
+int
+AccessibleRelation_unref (AccessibleRelation *obj);
+
+RELATION_TYPE
+AccessibleRelation_getRelationType (AccessibleRelation *obj);
+
+Accessible *
+AccessibleRelation_getTarget (AccessibleRelation *obj);
+
+
+
+/*
+ *
+ * AccessibleSelection function prototypes
+ *
+ */
+
+int
+AccessibleSelection_ref (AccessibleSelection *obj);
+
+int
+AccessibleSelection_unref (AccessibleSelection *obj);
+
+long
+AccessibleSelwection_getNSelectedChildren (AccessibleSelection *obj);
+
+Accessible *
+AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
+                                      long selectedChildIndex);
+
+boolean
+AccessibleSelection_selectChild (AccessibleSelection *obj,
+                                 long childIndex);
+
+boolean
+AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
+                                           long selectedChildIndex);
+
+boolean
+AccessibleSelection_isChildSelected (AccessibleSelection *obj,
+                                     long childIndex);
+
+void
+AccessibleSelection_selectAll (AccessibleSelection *obj);
+
+void
+AccessibleSelection_clearSelection (AccessibleSelection *obj);
+
+
+/*
+ *
+ * AccessibleStateSet function prototypes
+ *
+ */
+
+int
+AccessibleStateSet_ref (AccessibleStateSet *obj);
+
+int
+AccessibleStateSet_unref (AccessibleStateSet *obj);
+
+boolean
+AccessibleStateSet_contains (AccessibleStateSet *obj,
+                             ACCESSIBLE_STATE state);
+
+void
+AccessibleStateSet_add (AccessibleStateSet *obj,
+                        ACCESSIBLE_STATE state);
+
+void
+AccessibleStateSet_remove (AccessibleStateSet *obj,
+                           ACCESSIBLE_STATE state);
+
+boolean
+AccessibleStateSet_equals (AccessibleStateSet *obj,
+                           AccessibleStateSet *obj2);
+
+void
+AccessibleStateSet_compare (AccessibleStateSet *obj,
+                            AccessibleStateSet *obj2,
+                            AccessibleStateSet **differenceSet);
+
+boolean
+AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
+
+
+/*
+ *
+ * AccessibleTable function prototypes
+ *
+ */
+
+int
+AccessibleTable_ref (AccessibleTable *obj);
+
+int
+AccessibleTable_unref (AccessibleTable *obj);
+
+Accessible *
+AccessibleTable_getCaption (AccessibleTable *obj);
+
+Accessible *
+AccessibleTable_getSummary (AccessibleTable *obj);
+
+long
+AccessibleTable_getNRows (AccessibleTable *obj);
+
+long
+AccessibleTable_getNColumns (AccessibleTable *obj);
+
+Accessible *
+AccessibleTable_getAccessibleAt (AccessibleTable *obj,
+                                 long row,
+                                 long column);
+
+long
+AccessibleTable_getIndexAt (AccessibleTable *obj,
+                            long row,
+                            long column);
+
+long
+AccessibleTable_getRowAtIndex (AccessibleTable *obj,
+                               long index);
+
+long
+AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
+                                  long index);
+
+char *
+AccessibleTable_getRowDescription (AccessibleTable *obj);
+
+char *
+AccessibleTable_getColumnDescription (AccessibleTable *obj);
+
+long
+AccessibleTable_getRowExtentAt (AccessibleTable *obj,
+                                long row,
+                                long column);
+
+long
+AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
+                                   long row,
+                                   long column);
+
+AccessibleTable *
+AccessibleTable_getRowHeaders (AccessibleTable *obj);
+
+AccessibleTable *
+AccessibleTable_getColumnHeaders (AccessibleTable *obj);
+
+long
+AccessibleTable_getNSelectedRows (AccessibleTable *obj);
+
+void
+AccessibleTable_getSelectedRows (AccessibleTable *obj,
+                                 long **selectedRows);
+
+long
+AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
+
+void
+AccessibleTable_getSelectedColumns (AccessibleTable *obj,
+                                    long **selectedColumns);
+
+boolean
+AccessibleTable_isRowSelected (AccessibleTable *obj,
+                               long row);
+
+boolean
+AccessibleTable_isColumnSelected (AccessibleTable *obj,
+                                  long column);
+
+boolean
+AccessibleTable_isSelected (AccessibleTable *obj,
+                            long row,
+                            long column);
+
+/*
+ *
+ * AccessibleText function prototypes
+ *
+ */
+
+int
+AccessibleText_ref (AccessibleText *obj);
+
+int
+AccessibleText_unref (AccessibleText *obj);
+
+long
+AccessibleText_getCharacterCount (AccessibleText *obj);
+
+char *
+AccessibleText_getText (AccessibleText *obj,
+                        long startOffset,
+                        long endOffset);
+
+long
+AccessibleText_getCaretOffset (AccessibleText *obj);
+
+boolean
+AccessibleText_setCaretOffset (AccessibleText *obj,
+                               long newOffset);
+
+char *
+AccessibleText_getTextBeforeOffset (AccessibleText *obj,
+                                    long offset,
+                                    TEXT_BOUNDARY_TYPE type);
+
+char *
+AccessibleText_getTextAtOffset (Accessible *obj,
+                                long offset,
+                                TEXT_BOUNDARY_TYPE type);
+
+char *
+AccessibleText_getTextAfterOffset (AccessibleText *obj,
+                                   long offset,
+                                   TEXT_BOUNDARY_TYPE type);
+
+char
+AccessibleText_getCharacterAtOffset (AccessibleText *obj,
+                                     long offset);
+
+char *
+AccessibleText_getAttributes (AccessibleText *obj,
+                              long startOffset,
+                              long endOffset);
+
+boolean
+AccessibleText_getCharacterExtents (AccessibleText *obj,
+                                    long offset,
+                                    long *x,
+                                    long *y,
+                                    long *width,
+                                    long *height);
+
+long
+AccessibleText_getOffsetAtPoint (AccessibleText *obj,
+                                 long x,
+                                 long y);
+
+char *
+AccessibleText_getSelectedText (AccessibleText *obj);
+
+void
+AccessibleText_getSelectionBounds (AccessibleText *obj,
+                                   long *startOffset,
+                                   long *endOffset);
+
+boolean
+AccessibleText_setSelectionBounds (AccessibleText *obj,
+                                   long startOffset,
+                                   long endOffset);
+
+/*
+ *
+ * AccessibleValue Function Prototypes:
+ *
+ */
+
+float
+AccessibleValue_getMinimumValue (AccessibleValue *value);
+
+float
+AccessibleValue_getCurrentValue (AccessibleValue *value);
+
+float
+AccessibleValue_getMaximumValue (AccessibleValue *value);
+
+boolean
+AccessibleValue_setCurrentValue (AccessibleValue *value,
+                                 float newValue);
+
+#endif
index 856407e..59a9c75 100644 (file)
@@ -26,11 +26,10 @@ module Accessibility {
 
   interface Component : Bonobo::Unknown {
 
-        boolean contains (in long x, in long y);
-        Accessible getAccessibleAtPoint (in long x, in long y);
-        void getExtents (out long x, out long y, out long width, out long height);
-        void getPosition (out long x, out long y);
-        void getPositionOnScreen (out long rootX, out long rootY);
+        boolean contains (in long x, in long y, in short coord_type);
+        Accessible getAccessibleAtPoint (in long x, in long y, in short coord_type);
+        void getExtents (out long x, out long y, out long width, out long height, in short coord_type);
+        void getPosition (out long x, out long y, in short coord_type);
         void getSize (out long width, out long height);
         void grabFocus ();
         void registerFocusHandler (in EventListener handler);
index 845d415..012dce5 100644 (file)
 module Accessibility {
 
   interface Hyperlink : Bonobo::Unknown {
-        Accessible getAnchor (in long i);
-        Accessible getObject (in long i);
-        long getStartIndex ();
-        long getEndIndex ();
-        boolean isValid ();
+    readonly attribute short n_anchors;
+    readonly attribute string uri;
+    Accessible getAnchor (in long i);
+    Accessible getObject (in long i);
+    long getStartIndex ();
+    long getEndIndex ();
+    boolean isValid ();
   };
 };
index 4e04bbf..8e4ed20 100644 (file)
 module Accessibility {
 
   interface Image : Bonobo::Unknown  {
-        string getImageDescription ();
-        long getImageHeight ();
-        long getImageWidth ();
+    readonly attribute string imageDescription;
+    readonly attribute long height;
+    readonly attribute long widthl
+    readonly attribute long xpos;
+    readonly attribute long ypos;
   };
 };
index 856407e..59a9c75 100644 (file)
@@ -26,11 +26,10 @@ module Accessibility {
 
   interface Component : Bonobo::Unknown {
 
-        boolean contains (in long x, in long y);
-        Accessible getAccessibleAtPoint (in long x, in long y);
-        void getExtents (out long x, out long y, out long width, out long height);
-        void getPosition (out long x, out long y);
-        void getPositionOnScreen (out long rootX, out long rootY);
+        boolean contains (in long x, in long y, in short coord_type);
+        Accessible getAccessibleAtPoint (in long x, in long y, in short coord_type);
+        void getExtents (out long x, out long y, out long width, out long height, in short coord_type);
+        void getPosition (out long x, out long y, in short coord_type);
         void getSize (out long width, out long height);
         void grabFocus ();
         void registerFocusHandler (in EventListener handler);
index 845d415..012dce5 100644 (file)
 module Accessibility {
 
   interface Hyperlink : Bonobo::Unknown {
-        Accessible getAnchor (in long i);
-        Accessible getObject (in long i);
-        long getStartIndex ();
-        long getEndIndex ();
-        boolean isValid ();
+    readonly attribute short n_anchors;
+    readonly attribute string uri;
+    Accessible getAnchor (in long i);
+    Accessible getObject (in long i);
+    long getStartIndex ();
+    long getEndIndex ();
+    boolean isValid ();
   };
 };
index 4e04bbf..8e4ed20 100644 (file)
 module Accessibility {
 
   interface Image : Bonobo::Unknown  {
-        string getImageDescription ();
-        long getImageHeight ();
-        long getImageWidth ();
+    readonly attribute string imageDescription;
+    readonly attribute long height;
+    readonly attribute long widthl
+    readonly attribute long xpos;
+    readonly attribute long ypos;
   };
 };