Always emit children-changed, property-change, and state-changed events
[platform/core/uifw/at-spi2-atk.git] / cspi / spi.h
index 124b328..9d25828 100644 (file)
@@ -24,6 +24,8 @@
 #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.
@@ -115,7 +141,8 @@ more target objects.
  *  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
@@ -244,7 +271,15 @@ typedef enum
  **/
 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);
 
 /**
@@ -285,21 +320,6 @@ typedef enum {
 
 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:
@@ -392,6 +412,14 @@ typedef struct _AccessibleAttributeSet
     char **attributes;
 } AccessibleAttributeSet;
 
+typedef struct _AccessibleRoleSet
+{
+     int len;
+     AccessibleRole *roles;
+} AccessibleRoleSet;
+
+
+
 /* Basic SPI initialization and event loop function prototypes */
 
 int              SPI_init         (void);
@@ -515,11 +543,13 @@ AccessibleApplication *Accessible_getHostApplication (Accessible *obj);
 
 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);
@@ -528,11 +558,13 @@ SPIBoolean Accessible_isValue             (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);
@@ -566,6 +598,23 @@ char      *AccessibleApplication_getLocale      (AccessibleApplication *obj, int
 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);
@@ -740,6 +789,14 @@ AccessibleImage_getImageLocale  (AccessibleImage *obj);
 
 /*
  *
+ * AccessibleMatchRule function prototypes
+ *
+ */
+void       AccessibleMatchRule_ref (AccessibleMatchRule *obj);
+void       AccessibleMatchRule_unref (AccessibleMatchRule *obj);
+
+/*
+ *
  * AccessibleRelation function prototypes
  *
  */