Completed ChangeLog entries for AT-SPI 1.7.0;
authorbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 16 Jan 2006 16:29:26 +0000 (16:29 +0000)
committerbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>
Mon, 16 Jan 2006 16:29:26 +0000 (16:29 +0000)
Added relevant cspi wrappers.

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

ChangeLog
NEWS
cspi/spi.h
cspi/spi_accessible.c
cspi/spi_component.c
cspi/spi_image.c
idl/Accessibility_Role.idl

index b7675a4..89f7eef 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,9 +3,88 @@
        * configure.in: Removed po/Makefile.in inclusion, we do not need
        it.  Revved to 1.7.0.
 
-       * idl/
+       * idl/Accessibility.idl: Improved documentation here, and for all
+       IDL in the 'GNOME::Accessibility' namespace.
 
-       * libspi/spi_event.c:
+       * idl/Accessibility_Accessible.idl:
+       (LOCALE_TYPE): Added enum.
+       (AttributeSet): New, for returning multiple name/value attribute pairs.
+       (RoleSet): New, sequence of Roles, to be used in upcoming
+       Collection API.
+       (getAttributes): New API, allows retrieval of name/value pair
+       annotations for all kinds of Accessible objects.  C.f. 
+       Text:getAttributes, which is only for typographic/textual/semantic tags in
+       text content.
+       (getApplication): New, retrieves the host/containing Application
+       instance for an object (without having to walk up the whole tree).
+
+       * idl/Accessibility_Component.idl:
+       (getAlpha): New method, returns the alpha blending (aka 'opacity')
+       value for an object.  An alpha of 1.0 is fully opaque, 0.0 is
+       fully transparent.
+
+       * idl/Accessibility_Event.idl:
+       (EventDetails): New struct definition, for encapsulating
+       commonly-queried information about emitted events.  The use of
+       this structure in emitted events (in the 'any' member of
+       Accessibility_Event) should greatly reduce the number of
+       client-server roundtrips necessary.
+
+       * idl/Accessibility_Image.idl:
+       (imageLocale): New, a readonly attribute indicating the POSIX 
+       LC_MESSAGES locale of the image and associated Alt/descriptive
+       text.
+
+       * idl/Accessibility_Relation.idl:
+       (RELATION_PARENT_WINDOW_OF): Include, as complement to
+       RELATION_POPUP_FOR.
+
+       * idl/Accessibility_Role.idl:
+       (ROLE_ENTRY, ROLE_CHART, ROLE_CAPTION, ROLE_DOCUMENT_FRAME)
+       (ROLE_HEADING, ROLE_PAGE, ROLE_SECTION): New roles for
+       complex document and form support.
+
+       * idl/Accessibility_State.idl:
+       (STATE_REQUIRED, STATE_TRUNCATED, STATE_ANIMATED)
+       (STATE_INVALID_ENTRY, STATE_SUPPORTS_AUTOCOMPLETION)
+       (STATE_SELECTABLE_TEXT, STATE_IS_DEFAULT): New states,
+       for support of complex documents and forms.
+
+       * idl/Accessibility_StreamableContent.idl:
+       (SeekType, IOError, NotSupported, NoPermission): New enum and exceptions, to
+       allow old bonobo-stream interfaces to be deprecated in the next
+       release.
+
+       * idl/Accessibility_Text.idl:
+       (getAttributeValue): New method, allows query-by-name of single
+       attributes.
+
+       * libspi/accessible.c:
+       Added support for new roles.  Implemented new methods
+       (impl_accessibility_accessible_get_application): New
+       (impl_accessibility_accessible_get_attributes): New
+
+       * libspi/component.c:
+       (impl_accessibility_component_get_alpha): New.
+
+       * libspi/image.c:
+       (impl_accessibility_image_get_locale): New.
+
+       * libspi/relation.c: Added support for new relation type.
+
+       * libspi/stateset.c: Added support for new state types.
+
+       * libspi/text.c: 
+       (impl_getAttributeValue): New.
+       
+       * libspi/util.c:
+       New prototypes for private methods
+       spi_init_any_nil,
+       spi_init_any_object, spi_init_any_string,
+       spi_init_any_rect.
+       
+       * libspi/spi_event.c: 
+       Use EventDetails in the event emission methods.
 
        * cspi/spi-private.h:
        (cspi_role_from_spi_role): Expose this adapter method, since
        (AccessibleEvent_getSourceRole):
        (AccessibleEvent_getSourceApplication):
        (AccessibleEvent_getSourceDetails):
+       New methods for interrogating/demarshalling
+       event details (i.e. source's accessible name, role, 
+       and host app).
 
        * cspi/spi_accessible.c: Use cspi_role_from_spi_role.
        Make use of the new EventDetails struct in events, if present.
-       ():
-       ():
-       ():
-       ():
-       ():
        (AccessibleEvent_getSourceName)
        (AccessibleEvent_getSourceRole)
        (AccessibleEvent_getSourceApplication)
        (AccessibleEvent_getSourceDetails): Implement the newly exposed
        methods from spi.h.
+       (Accessible_getAttributes): New, wraps
+       Accessibility_Accessible_getAttributes.
+       (Accessible_getHostApplication): New, wraps
+       Accessibility_Accessible_getApplication.
+
+       * cspi/spi_image.c:
+       (AccessibleImage_getImageLocale): New wrapper for
+       Accessibility_Image_get_imageLocale.
+
+       * cspi/spi_component.c:
+       (AccessibleComponent_getAlpha): New wrapper for
+       Accessibility_Component_getAlpha.
        
        * atk-bridge/bridge.c:
        Use new prototyped for init_any methods.
        for spi_init_any_* methods, due to refactor; include extended
        information in the Accessibility_EventDetails struct, for instance
        accessible-name, Role, and containing Application.
-       
+
        * registryd/registry.c: 
+       Use new event emission (with EventDetails).
+       
+       * registryd/deviceeventcontroller.c:
+       Use new event emission (with EventDetails).
 
 2006-01-09  Kjartan Maraas <kmaraas@gnome.org>
 
diff --git a/NEWS b/NEWS
index b3054ac..01bc6e6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,12 +1,52 @@
 What's new in at-spi-1.7.0:
 
+* DOCS:
+  
+  All the IDL is now documented with doxygen-compatible docs.
+  Just run 'doxygen oxyfile' in the IDL directory.  (This will
+  be automated in a future version).
+
 * NEW API:
 
-  idl:
+  idl: 
+       Accessibility::Accessible:getAttributes (name/value pair annotation
+       for all objects)
+       Accessibility::Accessible:getApplication (retrieves ref to host app)
+       Accessibility::Component:getAlpha (get transparency/opacity value of component)
+       Accessibility::Image:getLocale (get POSIX locale for image and
+       imagedesc)
+       Accessibility::Text:getAttributeValue (retrieve a single named
+       attribute value)
+       Accessibility::Relation:RELATION_PARENT_WINDOW_OF
+       Accessibility::Role:ROLE_ENTRY, ROLE_CHART, ROLE_CAPTION,
+       ROLE_DOCUMENT_FRAME, ROLE_HEADING, ROLE_PAGE, ROLE_SECTION (New roles
+       for complex docs and forms.)
+       Accessibility::State:STATE_REQUIRED, STATE_TRUNCATED, STATE_ANIMATED, 
+       STATE_INVALID_ENTRY, STATE_SUPPORTS_AUTOCOMPLETION,
+       STATE_SELECTABLE_TEXT, STATE_IS_DEFAULT (New states, for complex forms)
+       Accessibility::EventDetails (new, more detailed info marshalled with events)
+
   cspi:
+       (AccessibleEvent_getSourceName):
+       (AccessibleEvent_getSourceRole):
+       (AccessibleEvent_getSourceApplication):
+       (AccessibleEvent_getSourceDetails):
+       New methods for interrogating/demarshalling
+       event details i.e. source's accessible name, role, 
+       and host app.
+       (Accessible_getAttributes): New, retrieve annotations/attributes 
+       on objects.
+       (Accessible_getHostApplication): New, retrieve enclosing Application
+       instance for an object.
+       (AccessibleImage_getImageLocale): New, retrieve Locale info for an
+       image.
+       (AccessibleComponent_getAlpha): New, retrieve alpha value for 
+       an AccessibleComponent (see discussion in idl section above).
 
 * BUGFIXES:
-
+       Some compiler fixes from Kjartan Marass.
+       Some thread-related fixes from Michael Meeks.
+       Don't allow non-preemptive listeners to pre-empt events! (Bill Haneman).
 
 What's new in at-spi-1.6.5:
 
index f688e86..6054f2f 100644 (file)
@@ -313,6 +313,12 @@ typedef unsigned long AccessibleModifierMaskType;
 
 typedef AccessibleModifierMaskType AccessibleKeyMaskType;
 
+typedef struct _AccessibleAttributeSet
+{
+    int len;
+    char **attributes;
+} AccessibleAttributeSet;
+
 /* Basic SPI initialization and event loop function prototypes */
 
 int              SPI_init         (void);
@@ -429,6 +435,8 @@ AccessibleRole       Accessible_getRole          (Accessible *obj);
 char *               Accessible_getRoleName      (Accessible *obj);
 char *               Accessible_getLocalizedRoleName (Accessible *obj);
 AccessibleStateSet * Accessible_getStateSet      (Accessible *obj);
+AccessibleAttributeSet *Accessible_getAttributes (Accessible *obj);
+AccessibleApplication *Accessible_getHostApplication (Accessible *obj);
 
 /* Interface query methods */
 
@@ -513,6 +521,7 @@ AccessibleComponentLayer
             AccessibleComponent_getLayer    (AccessibleComponent *obj);
 SPIBoolean  AccessibleComponent_grabFocus   (AccessibleComponent *obj);
 short       AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
+double      AccessibleComponent_getAlpha    (AccessibleComponent *obj);
 
 /* AccessibleEditableText function prototypes  */
 
@@ -642,6 +651,9 @@ AccessibleImage_getImageExtents (AccessibleImage *obj,
                                 long int *width,
                                 long int *height,
                                 AccessibleCoordType ctype);
+char *
+AccessibleImage_getImageLocale  (AccessibleImage *obj);
+
 /*
  *
  * AccessibleRelation function prototypes
index 49be833..f28485e 100644 (file)
@@ -217,6 +217,21 @@ cspi_role_from_spi_role (Accessibility_Role role)
   return cspi_role; 
 }
 
+AccessibleAttributeSet *
+cspi_attribute_set_from_sequence (const Accessibility_AttributeSet *seq)
+{
+    AccessibleAttributeSet *set = g_new0 (AccessibleAttributeSet, 1);
+    int i;
+
+    set->len = seq->_length;
+    set->attributes = g_newa (char *, set->len);
+    for (i = 0; i < set->len; ++i)
+    {
+       set->attributes[i] = g_strdup (seq->_buffer [i]);
+    }
+    return set;
+}
+
 /**
  * AccessibleRole_getName:
  * @role: an #AccessibleRole object to query.
@@ -560,6 +575,54 @@ Accessible_getStateSet (Accessible *obj)
   return retval;
 }
 
+/**
+ * Accessible_getAttributes:
+ * Get the #AttributeSet representing any assigned 
+ * name-value pair attributes or annotations for this object.
+ * For typographic, textual, or textually-semantic attributes, see
+ * AccessibleText_getAttributes instead.
+ * @obj: The #Accessible being queried.
+ * Returns: The name-value-pair attributes assigned to this object.
+ */
+AccessibleAttributeSet *
+Accessible_getAttributes (Accessible *obj)
+{
+    AccessibleAttributeSet *retval;
+    Accessibility_AttributeSet *corba_seq;
+
+    cspi_return_val_if_fail (obj != NULL, NULL);
+
+    corba_seq = Accessibility_Accessible_getAttributes (
+       CSPI_OBJREF (obj), cspi_ev ());
+    cspi_return_val_if_ev ("getAttributes", NULL);
+    
+    retval = cspi_attribute_set_from_sequence (corba_seq);
+    CORBA_free (corba_seq);
+
+    return NULL;
+}
+
+/**
+ * Accessible_getHostApplication:
+ * Get the containing #AccessibleApplication for an object.
+ * @obj: The #Accessible being queried.
+ * Returns: the containing AccessibleApplication instance for this object.
+ */
+AccessibleApplication *
+Accessible_getHostApplication (Accessible *obj)
+{
+    AccessibleApplication *retval;
+
+    cspi_return_val_if_fail (obj != NULL, NULL);
+
+    retval = Accessible_getApplication (cspi_object_add (
+                                           Accessibility_Accessible_getApplication (CSPI_OBJREF (obj),
+                                                                                    cspi_ev ())));
+    cspi_return_val_if_ev ("getApplication", NULL);
+
+    return retval;
+}
+
 /* Interface query methods */
 
 /**
index 44d3ef6..1d7dec0 100644 (file)
@@ -329,3 +329,23 @@ AccessibleComponent_grabFocus (AccessibleComponent *obj)
   return retval;
 }
 
+/**
+ * AccessibleComponent_getAlpha:
+ * Return the opacity/alpha value of a component, if alpha blending is in use.
+ * @obj: The #AccessibleComponent to be queried.
+ * Returns: the opacity value of a component, as a double between 0.0 and 1.0. 
+ */
+double      
+AccessibleComponent_getAlpha    (AccessibleComponent *obj)
+{
+  SPIBoolean retval;
+
+  cspi_return_val_if_fail (obj != NULL, 1.0);
+
+  retval = Accessibility_Component_getAlpha (CSPI_OBJREF (obj),
+                                             cspi_ev ());
+
+  cspi_return_val_if_ev ("getAlpha", 1.0);
+
+  return retval;
+}
index 1a40d3b..6bee1ab 100644 (file)
@@ -180,3 +180,24 @@ AccessibleImage_getImageExtents (AccessibleImage *obj,
       *height = bbox.height;
     }
 }
+
+/**
+ * AccessibleImage_getImageLocale:
+ * Get the locale associated with an image and its textual representation.
+ * @obj: The #AccessibleImage being queried.
+ * Returns: A POSIX LC_MESSAGES-style Locale value for image description and text.
+ */
+char *
+AccessibleImage_getImageLocale  (AccessibleImage *obj)
+{
+    char *retval = "C";
+
+    cspi_return_val_if_fail (obj != NULL, "C");
+
+    retval = Accessibility_Image__get_imageLocale (CSPI_OBJREF (obj), cspi_ev ());
+
+    cspi_return_val_if_ev ("getImageLocale", NULL);
+
+    return retval;
+}
+
index b70e86a..aa32d59 100644 (file)
@@ -296,21 +296,6 @@ module Accessibility {
   ROLE_EMBEDDED,
 
   /**
-   * The object is a link to some other content, for instance to a URI in this or another 
-   * document.  ROLE_LINK can occur primarily in two situations; as the role of an 
-   * object returned via the Hypertext::getLink, or, more importantly, as the role
-   * of a standalone object that implements the Hypertext interface but points to only
-   * one link object. 
-   *
-   * @note NOT SURE ABOUT THIS ONE, the description makes it sound pretty ropy.
-   * Why aren't links just identified via the Hypertext interface?  For non-textual
-   * hyperlinks (as allowed in XHTML 2.0), shouldn't this role be ROLE_IMAGE
-   * or ROLE_ICON?  
-   *
-   * @since AT-SPI 1.7.0
-   */
-  ROLE_LINK,
-  /**
    * The object is a component whose textual content may be entered or modified by the user,
    * provided STATE_EDITABLE is present.  
    * @note a readonly ROLE_ENTRY object (i.e. where STATE_EDITABLE is not present) implies a