#ifndef _SPI_H
#define _SPI_H
+#include <glib.h>
+#include <common/spi-types.h>
#include <cspi/spi-impl.h>
/*
* Definitions for AccessibleRole, AccessibleState,
#include <cspi/spi-statetypes.h>
#include <cspi/spi-listener.h>
+
/*
* Auxiliary typedefs and mask definitions
*/
-#include <libspi/keymasks.h>
+#include <common/keymasks.h>
#ifdef __cplusplus
extern "C" {
#endif
/**
+ *AccessibleCollectionMatchType:
+ *
+ *@SPI_COLLECTION_MATCH_INVALID
+ *@SPI_COLLECTION_MATCH_ALL TRUE if all of the criteria are met
+ *@SPI_COLLECTION_MATCH_ANY TRUE if any of the criteria are met
+ *@SPI_COLLECTION_MATCH_NONE TRUE if none of the criteria are met
+ *@SPI_COLLECTION_MATCH_EMPTY Same as MATCH_ALL if the criteria is non-empty;
+ * for empty criteria this rule requires returned value to also have empty set.
+ *@SPI_COLLECTION_MATCH_LAST_DEFINED
+ *
+ **/
+typedef enum
+{
+ SPI_COLLECTION_MATCH_INVALID,
+ SPI_COLLECTION_MATCH_ALL,
+ SPI_COLLECTION_MATCH_ANY,
+ SPI_COLLECTION_MATCH_NONE,
+ SPI_COLLECTION_MATCH_EMPTY,
+ SPI_COLLECTION_MATCH_LAST_DEFINED
+}AccessibleCollectionMatchType;
+
+
+/**
*AccessibleTextBoundaryType:
*@SPI_TEXT_BOUNDARY_CHAR: Delimiter is the current character's bounds.
*@SPI_TEXT_BOUNDARY_CURSOR_POS: Delimiter is the current text caret position.
* another's content.
*@SPI_RELATION_EMBEDDED_BY: Inverse of %SPI_RELATION_EMBEDS, indicates that
* this object's content is visualy embedded in another object.
- *@SPI_RELATION_POPUP_FOR: Indicates that an object is a popup for another objec *@SPI_RELATION_PARENT_WINDOW_OF: Indicates that an object is a parent window of another object.
+ *@SPI_RELATION_POPUP_FOR: Indicates that an object is a popup for another object.
+ *@SPI_RELATION_PARENT_WINDOW_OF: Indicates that an object is a parent window of another object.
*@SPI_RELATION_DESCRIBED_BY: Indicates that another object provides descriptive information about this object; more verbose than %SPI_RELATION_LABELLED_BY.
*@SPI_RELATION_DESCRIPTION_FOR: Indicates that an object provides descriptive information about another object; more verbose than %SPI_RELATION_LABEL_FOR.
*@SPI_RELATION_LAST_DEFINED: Do not use, this is an implementation detail used
**/
typedef struct _SPIException SPIException;
-
+/**
+ * SPIExceptionHandler:
+ * @err: points to the SPIException opaque object.
+ * @is_fatal: indicates whether the exception is a fatal error or not.
+ *
+ * A function type for functions to be called when exceptions occur.
+ *
+ * Returns
+ **/
typedef SPIBoolean (*SPIExceptionHandler) (SPIException *err, SPIBoolean is_fatal);
/**
typedef unsigned long AccessibleKeyEventMask;
typedef unsigned long AccessibleDeviceEventMask;
-/**
- * SPIRect:
- * @x: The position of the minimum x value of the rectangle (i.e. left hand corner)
- * @y: The position of the minimum y value of the rectangle's bounds.
- * @width: Width of the rectangle in pixels.
- * @height: Height of the rectangle in pixels.
- *
- * A structure encapsulating a rectangle.
- **/
-typedef struct {
- long x;
- long y;
- long width;
- long height;
-} SPIRect;
/**
*AccessibleComponentLayer:
char **attributes;
} AccessibleAttributeSet;
+typedef struct _AccessibleRoleSet
+{
+ int len;
+ AccessibleRole *roles;
+} AccessibleRoleSet;
+
+
+
/* Basic SPI initialization and event loop function prototypes */
int SPI_init (void);
SPIBoolean Accessible_isAction (Accessible *obj);
SPIBoolean Accessible_isApplication (Accessible *obj);
+SPIBoolean Accessible_isCollection (Accessible *obj);
SPIBoolean Accessible_isComponent (Accessible *obj);
SPIBoolean Accessible_isDocument (Accessible *obj);
SPIBoolean Accessible_isEditableText (Accessible *obj);
SPIBoolean Accessible_isHypertext (Accessible *obj);
SPIBoolean Accessible_isImage (Accessible *obj);
+SPIBoolean Accessible_isMatchRule (Accessible *obj);
SPIBoolean Accessible_isSelection (Accessible *obj);
SPIBoolean Accessible_isStreamableContent (Accessible *obj);
SPIBoolean Accessible_isTable (Accessible *obj);
AccessibleAction * Accessible_getAction (Accessible *obj);
AccessibleApplication * Accessible_getApplication (Accessible *obj);
+AccessibleCollection * Accessible_getCollection (Accessible *obj);
AccessibleComponent * Accessible_getComponent (Accessible *obj);
AccessibleDocument * Accessible_getDocument (Accessible *obj);
AccessibleEditableText * Accessible_getEditableText (Accessible *obj);
AccessibleHypertext * Accessible_getHypertext (Accessible *obj);
AccessibleImage * Accessible_getImage (Accessible *obj);
+AccessibleMatchRule * Accessible_getMatchRule (Accessible *obj);
AccessibleSelection * Accessible_getSelection (Accessible *obj);
AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
AccessibleTable * Accessible_getTable (Accessible *obj);
SPIBoolean AccessibleApplication_pause (AccessibleApplication *obj);
SPIBoolean AccessibleApplication_resume (AccessibleApplication *obj);
+/* AccessibleCollection function prototypes */
+void AccessibleCollection_ref (AccessibleCollection *obj);
+void AccessibleCollection_unref (AccessibleCollection *obj);
+AccessibleMatchRule *
+AccessibleCollection_createMatchRule (AccessibleCollection *obj,
+ AccessibleStateSet *states,
+ AccessibleCollectionMatchType statematchtype,
+ AccessibleAttributeSet *attributes,
+ AccessibleCollectionMatchType attributematchtype,
+ AccessibleRoleSet *roles,
+ AccessibleCollectionMatchType rolematchtype,
+ char *interfaces,
+ AccessibleCollectionMatchType interfacematchtype,
+ long int invert);
+void
+AccessibleCollection_freeMatchRule (AccessibleCollection *obj,
+ AccessibleMatchRule *matchrule);
/* AccessibleComponent function prototypes */
void AccessibleComponent_ref (AccessibleComponent *obj);
/*
*
+ * AccessibleMatchRule function prototypes
+ *
+ */
+void AccessibleMatchRule_ref (AccessibleMatchRule *obj);
+void AccessibleMatchRule_unref (AccessibleMatchRule *obj);
+
+/*
+ *
* AccessibleRelation function prototypes
*
*/
long int selectedChildIndex);
SPIBoolean
+AccessibleSelection_deselectChild (AccessibleSelection *obj,
+ long int childIndex);
+
+SPIBoolean
AccessibleSelection_isChildSelected (AccessibleSelection *obj,
long int childIndex);
long int row,
long int column);
+SPIBoolean
+AccessibleTable_getRowColumnExtentsAtIndex (AccessibleTable *obj,
+ long int index, long int *row, long int *col,
+ long int *row_extents, long int *col_extents,
+ long int *is_selected);
+
Accessible *
AccessibleTable_getRowHeader (AccessibleTable *obj,
long int row);
long int selectionNum,
long int startOffset,
long int endOffset);
+AccessibleAttributeSet *
+AccessibleText_getAttributeRun (AccessibleText *obj,
+ long int offset,
+ long int *startOffset,
+ long int *endOffset,
+ long int includeDefaults);
+AccessibleAttributeSet *
+AccessibleText_getDefaultAttributeSet (AccessibleText *obj);
/* AccessibleValue Function Prototypes: */