[at-spi2-core/gi] Add Action, Document, EditableText, Image, and Value interfaces
- From: Mike Gorse <mgorse src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [at-spi2-core/gi] Add Action, Document, EditableText, Image, and Value interfaces
- Date: Fri, 19 Nov 2010 22:01:41 +0000 (UTC)
commit 3f65b7902ce9f63a33c76bdc093e02ffa742a50a
Author: Mike Gorse <mgorse novell com>
Date: Fri Nov 19 17:02:50 2010 -0500
Add Action, Document, EditableText, Image, and Value interfaces
atspi/Makefile.am | 12 ++-
atspi/atspi-accessible.c | 75 +++++++++-----
atspi/atspi-accessible.h | 10 ++
atspi/atspi-action.c | 179 +++++++++++++++++++++++++++++++
atspi/atspi-action.h | 56 ++++++++++
atspi/atspi-component.c | 2 +-
atspi/atspi-component.h | 2 +
atspi/atspi-document.c | 125 +++++++++++++++++++++
atspi/atspi-document.h | 52 +++++++++
atspi/atspi-editabletext.c | 256 ++++++++++++++++++++++++++++++++++++++++++++
atspi/atspi-editabletext.h | 62 +++++++++++
atspi/atspi-image.c | 165 ++++++++++++++++++++++++++++
atspi/atspi-image.h | 55 ++++++++++
atspi/atspi-text.h | 2 +-
atspi/atspi-types.h | 9 +-
atspi/atspi-value.c | 152 ++++++++++++++++++++++++++
atspi/atspi-value.h | 56 ++++++++++
atspi/atspi.h | 5 +
18 files changed, 1242 insertions(+), 33 deletions(-)
---
diff --git a/atspi/Makefile.am b/atspi/Makefile.am
index 4da8fa0..528f313 100644
--- a/atspi/Makefile.am
+++ b/atspi/Makefile.am
@@ -16,6 +16,8 @@ libatspi_la_SOURCES = \
atspi.h \
atspi-accessible.c \
atspi-accessible.h \
+ atspi-action.c \
+ atspi-action.h \
atspi-application.c \
atspi-application.h \
atspi-component.c \
@@ -24,9 +26,15 @@ libatspi_la_SOURCES = \
atspi-device-listener.c \
atspi-device-listener.h \
atspi-device-listener-private.h \
+ atspi-document.c \
+ atspi-document.h \
+ atspi-editabletext.c \
+ atspi-editabletext.h \
atspi-event-listener.c \
atspi-event-listener.h \
atspi-event-listener-private.h \
+ atspi-image.c \
+ atspi-image.h \
atspi-misc.c \
atspi-misc.h \
atspi-misc-private.h \
@@ -41,7 +49,9 @@ libatspi_la_SOURCES = \
atspi-table.h \
atspi-text.c \
atspi-text.h \
- atspi-types.h
+ atspi-types.h \
+ atspi-value.c \
+ atspi-value.h
#BUILT_SOURCES = atspi-constants.h
diff --git a/atspi/atspi-accessible.c b/atspi/atspi-accessible.c
index a413f65..679491a 100644
--- a/atspi/atspi-accessible.c
+++ b/atspi/atspi-accessible.c
@@ -25,10 +25,24 @@
#include <string.h>
static void
+atspi_action_interface_init (AtspiAction *action)
+{
+}
+
+static void
atspi_component_interface_init (AtspiComponent *component)
{
}
+atspi_editable_text_interface_init (AtspiEditableText *editable_text)
+{
+}
+
+static void
+atspi_image_interface_init (AtspiImage *image)
+{
+}
+
static void
atspi_selection_interface_init (AtspiSelection *selection)
{
@@ -44,11 +58,20 @@ atspi_text_interface_init (AtspiText *text)
{
}
+static void
+atspi_value_interface_init (AtspiValue *value)
+{
+}
+
G_DEFINE_TYPE_WITH_CODE (AtspiAccessible, atspi_accessible, G_TYPE_OBJECT,
+ G_IMPLEMENT_INTERFACE (ATSPI_TYPE_ACTION, atspi_action_interface_init)
G_IMPLEMENT_INTERFACE (ATSPI_TYPE_COMPONENT, atspi_component_interface_init)
+ G_IMPLEMENT_INTERFACE (ATSPI_TYPE_EDITABLE_TEXT, atspi_editable_text_interface_init)
+ G_IMPLEMENT_INTERFACE (ATSPI_TYPE_IMAGE, atspi_image_interface_init)
G_IMPLEMENT_INTERFACE (ATSPI_TYPE_SELECTION, atspi_selection_interface_init)
G_IMPLEMENT_INTERFACE (ATSPI_TYPE_TABLE, atspi_table_interface_init)
- G_IMPLEMENT_INTERFACE (ATSPI_TYPE_TEXT, atspi_text_interface_init))
+ G_IMPLEMENT_INTERFACE (ATSPI_TYPE_TEXT, atspi_text_interface_init)
+ G_IMPLEMENT_INTERFACE (ATSPI_TYPE_VALUE, atspi_value_interface_init))
static void
atspi_accessible_init (AtspiAccessible *accessible)
@@ -550,7 +573,6 @@ atspi_accessible_get_host_application (AtspiAccessible *obj, GError **error)
}
}
-#if 0 // TODO: interfaces */
/* Interface query methods */
/**
@@ -783,17 +805,18 @@ AtspiApplication *
atspi_accessible_get_application (AtspiAccessible *accessible)
{
return (_atspi_accessible_is_a (accessible, atspi_interface_application) ?
- accessible : NULL);
+ g_object_ref (ATSPI_ACTION (accessible)) : NULL);
}
+#if 0
/**
* atspi_accessible_get_action:
* @obj: a pointer to the #AtspiAccessible instance to query.
*
* Get the #AtspiAction interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiAction interface instance, or
- * NULL if @obj does not implement #AtspiAction.
+ * Returns: (transfer full): a pointer to an #AtspiAction interface
+ * instance, or NULL if @obj does not implement #AtspiAction.
**/
AtspiAction *
atspi_accessible_get_action (AtspiAccessible *accessible)
@@ -808,8 +831,8 @@ atspi_accessible_get_action (AtspiAccessible *accessible)
*
* Get the #AtspiCollection interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiCollection interface instance, or
- * NULL if @obj does not implement #AtspiCollection.
+ * Returns: (transfer full): a pointer to an #AtspiCollection interface
+ * instance, or NULL if @obj does not implement #AtspiCollection.
**/
AtspiCollection *
atspi_accessible_get_collection (AtspiAccessible *accessible)
@@ -835,21 +858,20 @@ atspi_accessible_get_component (AtspiAccessible *obj)
g_object_ref (ATSPI_COMPONENT (obj)) : NULL);
}
-#if 0
/**
* atspi_accessible_get_document:
* @obj: a pointer to the #AtspiAccessible instance to query.
*
* Get the #AtspiDocument interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiDocument interface instance, or
- * NULL if @obj does not implement #AtspiDocument.
+ * Returns: (transfer full): a pointer to an #AtspiDocument interface
+ * instance, or NULL if @obj does not implement #AtspiDocument.
**/
AtspiDocument *
atspi_accessible_get_document (AtspiAccessible *accessible)
{
return (_atspi_accessible_is_a (accessible, atspi_interface_document) ?
- accessible : NULL);
+ g_object_ref (ATSPI_DOCUMENT (accessible)) : NULL);
}
/**
@@ -858,24 +880,25 @@ atspi_accessible_get_document (AtspiAccessible *accessible)
*
* Get the #AtspiEditableText interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiEditableText interface instance, or
- * NULL if @obj does not implement #AtspiEditableText.
+ * Returns: (transfer full): a pointer to an #AtspiEditableText interface
+ * instance, or NULL if @obj does not implement #AtspiEditableText.
**/
AtspiEditableText *
atspi_accessible_get_editable_text (AtspiAccessible *accessible)
{
return (_atspi_accessible_is_a (accessible, atspi_interface_editable_text) ?
- accessible : NULL);
+ g_object_ref (ATSPI_EDITABLE_TEXT (accessible)) : NULL);
}
+#if 0
/**
* atspi_accessible_get_hypertext:
* @obj: a pointer to the #AtspiAccessible instance to query.
*
* Get the #AtspiHypertext interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiHypertext interface instance, or
- * NULL if @obj does not implement #AtspiHypertext.
+ * Returns: (transfer full): a pointer to an #AtspiHypertext interface
+ * instance, or NULL if @obj does not implement #AtspiHypertext.
**/
AtspiHypertext *
atspi_accessible_get_hypertext (AtspiAccessible *accessible)
@@ -883,6 +906,7 @@ atspi_accessible_get_hypertext (AtspiAccessible *accessible)
return (_atspi_accessible_is_a (accessible, atspi_interface_hypertext) ?
accessible : NULL);
}
+#endif
/**
* atspi_accessible_get_image:
@@ -890,16 +914,15 @@ atspi_accessible_get_hypertext (AtspiAccessible *accessible)
*
* Get the #AtspiImage interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiImage interface instance, or
+ * Returns: (transfer full): a pointer to an #AtspiImage interface instance, or
* NULL if @obj does not implement #AtspiImage.
**/
AtspiImage *
atspi_accessible_get_image (AtspiAccessible *accessible)
{
return (_atspi_accessible_is_a (accessible, atspi_interface_image) ?
- accessible : NULL);
+ g_object_ref (ATSPI_IMAGE (accessible)) : NULL);
}
-#endif
/**
* atspi_accessible_get_selection:
@@ -924,8 +947,8 @@ atspi_accessible_get_selection (AtspiAccessible *accessible)
*
* Get the #AtspiStreamableContent interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiStreamableContent interface instance, or
- * NULL if @obj does not implement #AtspiStreamableContent.
+ * Returns: (transfer full): a pointer to an #AtspiStreamableContent interface
+ * instance, or NULL if @obj does not implement #AtspiStreamableContent.
**/
AtspiStreamableContent *
atspi_accessible_get_streamable_content (AtspiAccessible *accessible)
@@ -967,23 +990,23 @@ atspi_accessible_get_text (AtspiAccessible *obj)
g_object_ref (ATSPI_TEXT (obj)) : NULL);
}
-#if 0
/**
* atspi_accessible_get_value:
* @obj: a pointer to the #AtspiAccessible instance to query.
*
* Get the #AtspiTable interface for an #AtspiAccessible.
*
- * Returns: a pointer to an #AtspiTable interface instance, or
- * NULL if @obj does not implement #AtspiTable.
+ * Returns: (transfer full): a pointer to an #AtspiValue interface instance, or
+ * NULL if @obj does not implement #AtspiValue.
**/
-AtspiTable *
+AtspiValue *
atspi_accessible_get_value (AtspiAccessible *accessible)
{
return (_atspi_accessible_is_a (accessible, atspi_interface_value) ?
- accessible : NULL);
+ g_object_ref (ATSPI_VALUE (accessible)) : NULL);
}
+#if 0
static gboolean
cspi_init_relation_type_table (AccessibleRelationType *relation_type_table)
{
diff --git a/atspi/atspi-accessible.h b/atspi/atspi-accessible.h
index 4c0f939..f4f4fdc 100644
--- a/atspi/atspi-accessible.h
+++ b/atspi/atspi-accessible.h
@@ -95,11 +95,21 @@ GArray * atspi_accessible_get_attributes_as_array (AtspiAccessible *obj, GError
AtspiAccessible * atspi_accessible_get_host_application (AtspiAccessible *obj, GError **error);
+AtspiAction * atspi_accessible_get_action (AtspiAccessible *obj);
+
AtspiComponent * atspi_accessible_get_component (AtspiAccessible *obj);
+AtspiDocument * atspi_accessible_get_document (AtspiAccessible *obj);
+
+AtspiEditableText * atspi_accessible_get_editable_text (AtspiAccessible *obj);
+
+AtspiImage * atspi_accessible_get_image (AtspiAccessible *obj);
+
AtspiSelection * atspi_accessible_get_selection (AtspiAccessible *obj);
AtspiTable * atspi_accessible_get_table (AtspiAccessible *obj);
AtspiText * atspi_accessible_get_text (AtspiAccessible *obj);
+
+AtspiValue * atspi_accessible_get_value (AtspiAccessible *obj);
#endif /* _ATSPI_ACCESSIBLE_H_ */
diff --git a/atspi/atspi-action.c b/atspi/atspi-action.c
new file mode 100644
index 0000000..3530b10
--- /dev/null
+++ b/atspi/atspi-action.c
@@ -0,0 +1,179 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "atspi-private.h"
+
+/**
+ * atspi_action_get_n_actions:
+ * @obj: a pointer to the #AtspiAction to query.
+ *
+ * Get the number of actions invokable on an #AtspiAction implementor.
+ *
+ * Returns: an integer indicating the number of invocable actions.
+ **/
+gint
+atspi_action_get_n_actions (AtspiAction *obj, GError **error)
+{
+ dbus_int32_t retval = 0;
+
+ g_return_val_if_fail (obj != NULL, -1);
+
+ _atspi_dbus_get_property (obj, atspi_interface_action, "NActions", error, "i", &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_action_get_description:
+ * @obj: a pointer to the #AtspiAction implementor to query.
+ * @i: an integer indicating which action to query.
+ *
+ * Get the description of '@i-th' action invocable on an
+ * object implementing #AtspiAction.
+ *
+ * Returns: a UTF-8 string describing the '@i-th' invocable action.
+ **/
+gchar *
+atspi_action_get_description (AtspiAction *obj, int i, GError **error)
+{
+ dbus_int32_t d_i = i;
+ char *retval = NULL;
+
+ g_return_val_if_fail (obj != NULL, NULL);
+
+ _atspi_dbus_call (obj, atspi_interface_action, "GetDescription", error, "i=>s", d_i, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_action_get_key_binding:
+ * @obj: a pointer to the #AtspiAction implementor to query.
+ * @i: an integer indicating which action to query.
+ *
+ * Get the keybindings for the @i-th action invocable on an
+ * object implementing #AtspiAction, if any are defined.
+ * The keybindings string format is as follows:
+ * there are multiple parts to a keybinding string (typically 3).
+ * They are delimited with ";". The first is the action's
+ * keybinding which is usable if the object implementing the action
+ * is currently posted to the screen, e.g. if a menu is posted
+ * then these keybindings for the corresponding menu-items are
+ * available. The second keybinding substring is the full key sequence
+ * necessary to post the action's widget and activate it, e.g. for
+ * a menu item such as "File->Open" it would both post the menu and
+ * activate the item. Thus the second keybinding string is available
+ * during the lifetime of the containing toplevel window as a whole,
+ * whereas the first keybinding string only works while the object
+ * implementing AtkAction is posted. The third (and optional)
+ * keybinding string is the "keyboard shortcut" which invokes the
+ * action without posting any menus.
+ * Meta-keys are indicated by the conventional strings
+ * "<Control>", "<Alt>", "<Shift>", "<Mod2>",
+ * etc. (we use the same string as gtk_accelerator_name() in
+ * gtk+-2.X.
+ *
+ * Returns: a UTF-8 string which can be parsed to determine the @i-th
+ * invocable action's keybindings.
+ **/
+gchar *
+atspi_action_get_key_binding (AtspiAction *obj, gint i, GError **error)
+{
+ dbus_int32_t d_i = i;
+ char *retval = NULL;
+
+ g_return_val_if_fail (obj != NULL, NULL);
+
+ _atspi_dbus_call (obj, atspi_interface_action, "GetKeyBinding", error, "i=>s", d_i, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_action_get_name:
+ * @obj: a pointer to the #AtspiAction implementor to query.
+ * @i: an integer indicating which action to query.
+ *
+ * Get the name of the '@i-th' action invocable on an
+ * object implementing #AtspiAction.
+ *
+ * Returns: the 'event type' name of the action, as a UTF-8 string.
+ **/
+gchar *
+atspi_action_get_name (AtspiAction *obj, gint i, GError **error)
+{
+ dbus_int32_t d_i = i;
+ char *retval = NULL;
+
+ g_return_val_if_fail (obj != NULL, NULL);
+
+ _atspi_dbus_call (obj, atspi_interface_action, "GetName", error, "i=>s", d_i, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_action_do_action:
+ * @obj: a pointer to the #AtspiAction to query.
+ * @i: an integer specifying which action to invoke.
+ *
+ * Invoke the action indicated by #index.
+ *
+ * Returns: #TRUE if the action is successfully invoked, otherwise #FALSE.
+ **/
+gboolean
+atspi_action_do_action (AtspiAction *obj, gint i, GError **error)
+{
+ dbus_int32_t d_i = i;
+ dbus_bool_t retval = FALSE;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_action, "DoAction", error, "i=>b", d_i, &retval);
+
+ return retval;
+}
+
+static void
+atspi_action_base_init (AtspiAction *klass)
+{
+}
+
+GType
+atspi_action_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static const GTypeInfo tinfo =
+ {
+ sizeof (AtspiAction),
+ (GBaseInitFunc) atspi_action_base_init,
+ (GBaseFinalizeFunc) NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE, "AtspiAction", &tinfo, 0);
+
+ }
+ return type;
+}
diff --git a/atspi/atspi-action.h b/atspi/atspi-action.h
new file mode 100644
index 0000000..e918414
--- /dev/null
+++ b/atspi/atspi-action.h
@@ -0,0 +1,56 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2002 Ximian, Inc.
+ * 2002 Sun Microsystems Inc.
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _ATSPI_ACTION_H_
+#define _ATSPI_ACTION_H_
+
+#include "glib-object.h"
+
+#include "atspi-constants.h"
+
+#include "atspi-types.h"
+
+#define ATSPI_TYPE_ACTION (atspi_action_get_type ())
+#define ATSPI_IS_ACTION(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_ACTION)
+#define ATSPI_ACTION(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_ACTION, AtspiAction)
+#define ATSPI_ACTION_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATSPI_TYPE_ACTION, AtspiAction))
+
+GType atspi_action_get_type ();
+
+struct _AtspiAction
+{
+ GTypeInterface parent;
+};
+
+gint atspi_action_get_n_actions (AtspiAction *obj, GError **error);
+
+gchar * atspi_action_get_description (AtspiAction *obj, int i, GError **error);
+
+gchar * atspi_action_get_key_binding (AtspiAction *obj, gint i, GError **error);
+
+gchar * atspi_action_get_name (AtspiAction *obj, gint i, GError **error);
+
+gboolean atspi_action_do_action (AtspiAction *obj, gint i, GError **error);
+
+#endif /* _ATSPI_ACTION_H_ */
diff --git a/atspi/atspi-component.c b/atspi/atspi-component.c
index ae51c34..1f2bf55 100644
--- a/atspi/atspi-component.c
+++ b/atspi/atspi-component.c
@@ -47,7 +47,7 @@ atspi_rect_copy (AtspiRect *src)
G_DEFINE_BOXED_TYPE (AtspiRect, atspi_rect, atspi_rect_copy, atspi_rect_free)
-static AtspiPoint *
+AtspiPoint *
atspi_point_copy (AtspiPoint *src)
{
AtspiPoint *dst = g_new (AtspiPoint, 1);
diff --git a/atspi/atspi-component.h b/atspi/atspi-component.h
index 257f3c3..35ab84c 100644
--- a/atspi/atspi-component.h
+++ b/atspi/atspi-component.h
@@ -67,6 +67,8 @@ struct _AtspiPoint
GType atspi_point_get_type ();
+AtspiPoint *atspi_point_copy (AtspiPoint *src);
+
#define ATSPI_TYPE_COMPONENT (atspi_component_get_type ())
#define ATSPI_IS_COMPONENT(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_COMPONENT)
#define ATSPI_COMPONENT(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_COMPONENT, AtspiComponent)
diff --git a/atspi/atspi-document.c b/atspi/atspi-document.c
new file mode 100644
index 0000000..be742b4
--- /dev/null
+++ b/atspi/atspi-document.c
@@ -0,0 +1,125 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "atspi-private.h"
+
+/**
+ * atspi_document_get_locale:
+ * @obj: a pointer to the #Accessible object on which to operate.
+ *
+ * Gets the locale associated with the document's content.
+ * e.g. the locale for LOCALE_TYPE_MESSAGES.
+ *
+ * Returns: a string compliant with the POSIX standard for locale description.
+ **/
+gchar *
+atspi_document_get_locale (AtspiDocument *obj, GError **error)
+{
+ gchar *retval = NULL;
+
+ g_return_val_if_fail (obj != NULL, g_strdup ("C"));
+
+ _atspi_dbus_call (obj, atspi_interface_document, "GetLocale", error, "=>s", &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_document_get_attribute_value:
+ * @obj: a pointer to the #Accessible object on which to operate.
+ * @attribute: a string indicating the name of a specific attribute
+ *
+ * Gets the value of a single attribute, if specified for the document as a whole.
+ *
+ * (name-value pair) being queried.
+ *
+ * Returns a string corresponding to the value of the specified attribute, or
+ * an empty string if the attribute is unspecified for the object.
+ **/
+gchar *
+atspi_document_get_attribute_value (AtspiDocument *obj,
+ gchar *attribute,
+ GError **error)
+{
+ gchar *retval = NULL;
+
+ g_return_val_if_fail (obj != NULL, NULL);
+
+ _atspi_dbus_call (obj, atspi_interface_document, "GetAttributevaluee", error, "s=>s", attribute, &retval);
+
+ if (!retval)
+ retval = g_strdup ("");
+
+ return retval;
+}
+
+
+/**
+ * atspi_document_get_attributes:
+ * @obj: a pointer to the #Accessible object on which to operate.
+ *
+ * Gets all attributes specified for a document as a whole.
+ *
+ * For attributes which change within
+ * the document content, see atspi_text_get_attribute_run instead.
+ *
+ * Returns: (element-type gchar* gchar*) (transfer full): an ::AttributeSet
+ * containing the attributes of the document, as name-value pairs.
+ **/
+GHashTable *
+atspi_document_get_attributes (AtspiDocument *obj, GError **error)
+{
+ DBusMessage *message;
+ GHashTable *ret;
+
+ g_return_val_if_fail (obj != NULL, NULL);
+
+ message = _atspi_dbus_call_partial (obj, atspi_interface_document, "GetAttributes", error, "");
+ ret = _atspi_dbus_hash_from_message (message);
+ dbus_message_unref (message);
+ return ret;
+}
+
+static void
+atspi_document_base_init (AtspiDocument *klass)
+{
+}
+
+GType
+atspi_document_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static const GTypeInfo tinfo =
+ {
+ sizeof (AtspiDocument),
+ (GBaseInitFunc) atspi_document_base_init,
+ (GBaseFinalizeFunc) NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE, "AtspiDocument", &tinfo, 0);
+
+ }
+ return type;
+}
diff --git a/atspi/atspi-document.h b/atspi/atspi-document.h
new file mode 100644
index 0000000..afe7969
--- /dev/null
+++ b/atspi/atspi-document.h
@@ -0,0 +1,52 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2002 Ximian, Inc.
+ * 2002 Sun Microsystems Inc.
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _ATSPI_DOCUMENT_H_
+#define _ATSPI_DOCUMENT_H_
+
+#include "glib-object.h"
+
+#include "atspi-constants.h"
+
+#include "atspi-types.h"
+
+#define ATSPI_TYPE_DOCUMENT (atspi_document_get_type ())
+#define ATSPI_IS_DOCUMENT(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_DOCUMENT)
+#define ATSPI_DOCUMENT(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_DOCUMENT, AtspiDocument)
+#define ATSPI_DOCUMENT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATSPI_TYPE_DOCUMENT, AtspiDocument))
+
+GType atspi_document_get_type ();
+
+struct _AtspiDocument
+{
+ GTypeInterface parent;
+};
+
+gchar * atspi_document_get_locale (AtspiDocument *obj, GError **error);
+
+gchar * atspi_document_get_attribute_value (AtspiDocument *obj, gchar *attribute, GError **error);
+
+GHashTable * atspi_document_get_attributes (AtspiDocument *obj, GError **error);
+
+#endif /* _ATSPI_DOCUMENT_H_ */
diff --git a/atspi/atspi-editabletext.c b/atspi/atspi-editabletext.c
new file mode 100644
index 0000000..e0d0a4f
--- /dev/null
+++ b/atspi/atspi-editabletext.c
@@ -0,0 +1,256 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "atspi-private.h"
+
+#if 0
+/* TODO: implement */
+/**
+ * atspi_editable_text_set_attributes:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @attributes: a character string indicating the attributes to apply to the range,
+ * delimited by ':'.
+ * @startOffset: a #long indicating the start of the desired text range.
+ * @endOffset: a #long indicating the first character past the desired range.
+ *
+ * Set the attributes applied to a range of text from an #AtspiEditableText
+ * object, and the bounds of the range.
+ *
+ * Returns: #TRUE if the operation was successful, otherwise #FALSE.
+ **/
+gboolean
+atspi_editable_text_set_attributes (AtspiEditableText *obj,
+ const char *attributes,
+ gint start_pos,
+ gint end_pos,
+ GError **error
+{
+ dbus_int32_t d_start_pos = start_pos, d_end_pos = end_pos;
+ dbus_bool_t retval;
+
+ cspi_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "SetAttributes", error, "sii=>b", attributes, d_start_pos, d_end_pos, &retval);
+
+ return retval;
+}
+#endif
+
+/**
+ * atspi_editable_text_set_text_contents:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @new_contents: a character string, encoded in UTF-8, which is to
+ * become the new text contents of the #AtspiEditableText object.
+ *
+ * Replace the entire text contents of an #AtspiEditableText object.
+ *
+ * Returns: #TRUE if the operation was successful, otherwise #FALSE.
+ **/
+gboolean
+atspi_editable_text_set_text_contents (AtspiEditableText *obj,
+ const gchar *new_contents,
+ GError **error)
+{
+ dbus_bool_t retval = FALSE;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "setTextContents", error, "s=>b", new_contents, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_editable_text_insert_text:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @position: an integer indicating the character offset at which to insert
+ * the new text.
+ * @text: a gchar* pointer to the text to insert, in UTF-8 encoding.
+ * @length: (frankly I'm not sure this parameter should be here)
+ *
+ * Insert text into an #AtspiEditableText object.
+ * As with all character offsets, the specified @position may not be the
+ * same as the resulting byte offset, since the text is in a
+ * variable-width encoding.
+ *
+ * Returns: #TRUE if the operation was successful, otherwise #FALSE.
+ **/
+gboolean
+atspi_editable_text_insert_text (AtspiEditableText *obj,
+ gint position,
+ const gchar *text,
+ gint length,
+ GError **error)
+{
+ dbus_int32_t d_position = position, d_length = length;
+ dbus_bool_t retval = FALSE;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "InsertText", error, "isi=>b", d_position, text, d_length, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_editable_text_copy_text:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @start_pos: an integer indicating the starting character offset
+ * of the text to copy.
+ * @end_pos: an integer indicating the offset of the first character
+ * past the end of the text section to be copied.
+ *
+ * Copy text from an #AtspiEditableText object into the clipboard.
+ *
+ * see: atspi_editable_text_paste_text
+ *
+ * Returns: #TRUE if the operation was successful, otherwise #FALSE.
+ **/
+gboolean
+atspi_editable_text_copy_text (AtspiEditableText *obj,
+ gint start_pos,
+ gint end_pos,
+ GError **error)
+{
+ dbus_int32_t d_start_pos = start_pos, d_end_pos = end_pos;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "CopyText", error, "ii", start_pos, end_pos);
+
+ return TRUE;
+}
+
+/**
+ * atspi_editable_text_cut_text:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @start_pos: an integer indicating the starting character offset
+ * of the text to cut.
+ * @end_pos: an integer indicating the offset of the first character
+ * past the end of the text section to be cut.
+ *
+ * Delete text from an #AtspiEditableText object, copying the
+ * excised portion into the clipboard.
+ *
+ * see: atspi_editable_text_paste_text
+ *
+ * Returns: #TRUE if operation was successful, #FALSE otherwise.
+ **/
+gboolean
+atspi_editable_text_cut_text (AtspiEditableText *obj,
+ gint start_pos,
+ gint end_pos,
+ GError **error)
+{
+ dbus_int32_t d_start_pos = start_pos, d_end_pos = end_pos;
+ dbus_bool_t retval = FALSE;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "CutText", error, "ii=>b", d_start_pos, d_end_pos, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_editable_text_delete_text:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @start_pos: an integer indicating the starting character offset
+ * of the text to delete.
+ * @end_pos: an integer indicating the offset of the first character
+ * past the end of the text section to be deleted.
+ *
+ * Delete text from an #AtspiEditableText object, without copying the
+ * excised portion into the clipboard.
+ *
+ * see: atspi_editable_text_cut_text
+ *
+ * Returns: #TRUE if the operation was successful, otherwise #FALSE.
+ **/
+gboolean
+atspi_editable_text_delete_text (AtspiEditableText *obj,
+ gint start_pos,
+ gint end_pos,
+ GError **error)
+{
+ dbus_int32_t d_start_pos = start_pos, d_end_pos = end_pos;
+ dbus_bool_t retval = FALSE;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "DeleteText", error, "ii=>b", d_start_pos, d_end_pos, &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_editable_text_paste_text:
+ * @obj: a pointer to the #AtspiEditableText object to modify.
+ * @position: an integer indicating the character offset at which to insert
+ * the new text.
+ *
+ * Insert text from the clipboard into an #AtspiEditableText object.
+ * As with all character offsets, the specified @position may not be the
+ * same as the resulting byte offset, since the text is in a
+ * variable-width encoding.
+ *
+ * Returns: #TRUE if the operation was successful, otherwise #FALSE.
+ **/
+gboolean
+atspi_editable_text_paste_text (AtspiEditableText *obj,
+ gint position,
+ GError **error)
+{
+ dbus_int32_t d_position = position;
+ dbus_bool_t retval = FALSE;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_editable_text, "PasteText", error, "i=>b", d_position, &retval);
+
+ return retval;
+}
+
+static void
+atspi_editable_text_base_init (AtspiEditableText *klass)
+{
+}
+
+GType
+atspi_editable_text_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static const GTypeInfo tinfo =
+ {
+ sizeof (AtspiEditableText),
+ (GBaseInitFunc) atspi_editable_text_base_init,
+ (GBaseFinalizeFunc) NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE, "AtspiEditableText", &tinfo, 0);
+
+ }
+ return type;
+}
diff --git a/atspi/atspi-editabletext.h b/atspi/atspi-editabletext.h
new file mode 100644
index 0000000..e7356c6
--- /dev/null
+++ b/atspi/atspi-editabletext.h
@@ -0,0 +1,62 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2002 Ximian, Inc.
+ * 2002 Sun Microsystems Inc.
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _ATSPI_EDITABLE_TEXT_H_
+#define _ATSPI_EDITABLE_TEXT_H_
+
+#include "glib-object.h"
+
+#include "atspi-constants.h"
+
+#include "atspi-types.h"
+
+#define ATSPI_TYPE_EDITABLE_TEXT (atspi_editable_text_get_type ())
+#define ATSPI_IS_EDITABLE_TEXT(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_EDITABLE_TEXT)
+#define ATSPI_EDITABLE_TEXT(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_EDITABLE_TEXT, AtspiEditableText)
+#define ATSPI_EDITABLE_TEXT_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATSPI_TYPE_EDITABLE_TEXT, AtspiEditableText))
+
+GType atspi_editable_text_get_type ();
+
+struct _AtspiEditableText
+{
+ GTypeInterface parent;
+};
+
+#if 0
+gboolean atspi_editable_text_set_attributes (AtspiEditableText *obj, const char *attributes, gint start_pos, gint end_pos, GError **error)
+#endif
+
+gboolean atspi_editable_text_set_text_contents (AtspiEditableText *obj, const gchar *new_contents, GError **error);
+
+gboolean atspi_editable_text_insert_text (AtspiEditableText *obj, gint position, const gchar *text, gint length, GError **error);
+
+gboolean atspi_editable_text_copy_text (AtspiEditableText *obj, gint start_pos, gint end_pos, GError **error);
+
+gboolean atspi_editable_text_cut_text (AtspiEditableText *obj, gint start_pos, gint end_pos, GError **error);
+
+gboolean atspi_editable_text_delete_text (AtspiEditableText *obj, gint start_pos, gint end_pos, GError **error);
+
+gboolean atspi_editable_text_paste_text (AtspiEditableText *obj, gint position, GError **error);
+
+#endif /* _ATSPI_EDITABLE_TEXT_H_ */
diff --git a/atspi/atspi-image.c b/atspi/atspi-image.c
new file mode 100644
index 0000000..10e9d1d
--- /dev/null
+++ b/atspi/atspi-image.c
@@ -0,0 +1,165 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "atspi-private.h"
+
+/**
+ * atspi_image_get_image_description:
+ * @obj: a pointer to the #AtspiImage implementor on which to operate.
+ *
+ * Get the description of the image displayed in an #AtspiImage object.
+ *
+ * Returns: a UTF-8 string describing the image.
+ **/
+gchar *
+atspi_image_get_image_description (AtspiImage *obj, GError **error)
+{
+ char *retval;
+
+ g_return_val_if_fail (obj != NULL, NULL);
+
+ _atspi_dbus_get_property (obj, atspi_interface_image, "Description", error, "s", &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_image_get_image_size:
+ * @obj: a pointer to the #AtspiImage to query.
+ *
+ * Get the size of the image displayed in a specified #AtspiImage object.
+ **/
+AtspiPoint *
+atspi_image_get_image_size (AtspiImage *obj, GError **error)
+{
+ dbus_int32_t d_w, d_h;
+ AtspiPoint ret;
+
+ ret.x = ret.y = -1;
+ if (!obj)
+ return atspi_point_copy (&ret);
+
+ _atspi_dbus_call (obj, atspi_interface_image, "GetImageSize", error, "=>ii", &d_w, &d_h);
+ ret.x = d_w;
+ ret.y = d_h;
+ return atspi_point_copy (&ret);
+}
+
+/**
+ * atspi_image_get_image_position:
+ * @obj: a pointer to the #AtspiImage implementor to query.
+ * @ctype: the desired coordinate system into which to return the results,
+ * (e.g. ATSPI_COORD_TYPE_WINDOW, ATSPI_COORD_TYPE_SCREEN).
+ *
+ * Get the minimum x and y coordinates of the image displayed in a
+ * specified #AtspiImage implementor.
+ **/
+AtspiPoint *
+atspi_image_get_image_position (AtspiImage *obj,
+ AtspiCoordType ctype,
+ GError **error)
+{
+ dbus_int32_t d_x, d_y;
+ dbus_uint16_t d_ctype = ctype;
+ AtspiPoint ret;
+
+ ret.x = ret.y = 0;
+
+ if (!obj)
+ return atspi_point_copy (&ret);
+
+ _atspi_dbus_call (obj, atspi_interface_image, "GetImagePosition", error, "u=>ii", d_ctype, &d_x, &d_y);
+
+ ret.x = d_x;
+ ret.y = d_y;
+ return atspi_point_copy (&ret);
+}
+
+/**
+ * atspi_image_get_image_extents:
+ * @obj: a pointer to the #AtspiImage implementor to query.
+ * @ctype: the desired coordinate system into which to return the results,
+ * (e.g. ATSPI_COORD_TYPE_WINDOW, ATSPI_COORD_TYPE_SCREEN).
+ *
+ * Get the bounding box of the image displayed in a
+ * specified #AtspiImage implementor.
+ **/
+AtspiRect *
+atspi_image_get_image_extents (AtspiImage *obj,
+ AtspiCoordType ctype,
+ GError **error)
+{
+ dbus_uint32_t d_ctype = ctype;
+ AtspiRect bbox;
+
+ bbox.x = bbox.y = bbox.width = bbox.height = -1;
+ g_return_val_if_fail (obj != NULL, atspi_rect_copy (&bbox));
+
+ _atspi_dbus_call (obj, atspi_interface_image, "GetImageExtents", error, "u=>(iiii)", d_ctype, &bbox);
+
+ return atspi_rect_copy (&bbox);
+}
+
+/**
+ * atspi_image_get_image_locale:
+ * @obj: The #AtspiImage being queried.
+ *
+ * Get the locale associated with an image and its textual representation.
+ *
+ * Returns: A POSIX LC_MESSAGES-style Locale value for image description and text.
+ **/
+gchar *
+atspi_image_get_image_locale (AtspiImage *obj, GError **error)
+{
+ gchar *retval = NULL;
+
+ g_return_val_if_fail (obj != NULL, g_strdup ("C"));
+
+ _atspi_dbus_call (obj, atspi_interface_image, "GetImageLocale", error, "=>s", &retval);
+
+ return retval;
+}
+
+static void
+atspi_image_base_init (AtspiImage *klass)
+{
+}
+
+GType
+atspi_image_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static const GTypeInfo tinfo =
+ {
+ sizeof (AtspiImage),
+ (GBaseInitFunc) atspi_image_base_init,
+ (GBaseFinalizeFunc) NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE, "AtspiImage", &tinfo, 0);
+
+ }
+ return type;
+}
diff --git a/atspi/atspi-image.h b/atspi/atspi-image.h
new file mode 100644
index 0000000..6f0f791
--- /dev/null
+++ b/atspi/atspi-image.h
@@ -0,0 +1,55 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2002 Ximian, Inc.
+ * 2002 Sun Microsystems Inc.
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _ATSPI_IMAGE_H_
+#define _ATSPI_IMAGE_H_
+
+#include "glib-object.h"
+
+#include "atspi-constants.h"
+
+#include "atspi-types.h"
+
+#define ATSPI_TYPE_IMAGE (atspi_image_get_type ())
+#define ATSPI_IS_IMAGE(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_IMAGE)
+#define ATSPI_IMAGE(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_IMAGE, AtspiImage)
+#define ATSPI_IMAGE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATSPI_TYPE_IMAGE, AtspiImage))
+
+GType atspi_image_get_type ();
+
+struct _AtspiImage
+{
+ GTypeInterface parent;
+};
+
+gchar * atspi_image_get_image_description (AtspiImage *obj, GError **error);
+
+AtspiPoint * atspi_image_get_image_size (AtspiImage *obj, GError **error);
+
+AtspiPoint * atspi_image_get_image_position (AtspiImage *obj, AtspiCoordType ctype, GError **error);
+
+AtspiRect * atspi_image_get_image_extents (AtspiImage *obj, AtspiCoordType ctype, GError **error);
+
+gchar * atspi_image_get_image_locale (AtspiImage *obj, GError **error);
+#endif /* _ATSPI_IMAGE_H_ */
diff --git a/atspi/atspi-text.h b/atspi/atspi-text.h
index 6c6add1..25c2ae5 100644
--- a/atspi/atspi-text.h
+++ b/atspi/atspi-text.h
@@ -104,7 +104,7 @@ AtspiRangedAttributeSet * atspi_text_get_attributes (AtspiText *obj, gint offset
AtspiRangedAttributeSet * atspi_text_get_attribute_run (AtspiText *obj, gint offset, gboolean include_defaults, GError **error);
-gchar * atspi_text_get_attribute_value (AtspiText *obj, gint offset, gchar *attribute_value, GError **error);
+gchar * atspi_text_get_attribute_value (AtspiText *obj, gint offset, gchar *attribute_name, GError **error);
GHashTable * atspi_text_get_default_attributes (AtspiAccessible *obj, GError **error);
diff --git a/atspi/atspi-types.h b/atspi/atspi-types.h
index eb7c7a3..b34f264 100644
--- a/atspi/atspi-types.h
+++ b/atspi/atspi-types.h
@@ -30,16 +30,17 @@
#include "atspi-constants.h"
typedef struct _AtspiAccessible AtspiAccessible;
-typedef struct _AtspiAccessible AtspiAction;
+typedef struct _AtspiAction AtspiAction;
typedef struct _AtspiAccessible AtspiCollection;
typedef struct _AtspiComponent AtspiComponent;
-typedef struct _AtspiAccessible AtspiDocument;
-typedef struct _AtspiAccessible AtspiEditableText;
+typedef struct _AtspiDocument AtspiDocument;
+typedef struct _AtspiEditableText AtspiEditableText;
typedef struct _AtspiAccessible AtspiHypertext;
+typedef struct _AtspiImage AtspiImage;
typedef struct _AtspiSelection AtspiSelection;
typedef struct _AtspiTable AtspiTable;
typedef struct _AtspiText AtspiText;
-typedef struct _AtspiAccessible AtspiValue;
+typedef struct _AtspiValue AtspiValue;
typedef guint AtspiControllerEventMask;
diff --git a/atspi/atspi-value.c b/atspi/atspi-value.c
new file mode 100644
index 0000000..32071b3
--- /dev/null
+++ b/atspi/atspi-value.c
@@ -0,0 +1,152 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "atspi-private.h"
+
+/**
+ * atspi_value_get_minimum_value:
+ * @obj: a pointer to the #AtspiValue implementor on which to operate.
+ *
+ * Get the minimum allowed value for an #AtspiValue.
+ *
+ * Returns: the minimum allowed value for this object.
+ *
+ **/
+gdouble
+atspi_value_get_minimum_value (AtspiValue *obj, GError **error)
+{
+ double retval;
+
+ g_return_val_if_fail (obj != NULL, 0.0);
+ _atspi_dbus_get_property (obj, atspi_interface_value, "MinimumValue", error, "d", &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_value_get_current_value:
+ * @obj: a pointer to the #AtspiValue implementor on which to operate.
+ *
+ * Get the current value for an #AtspiValue.
+ *
+ * Returns: the current value for this object.
+ **/
+gdouble
+atspi_value_get_current_value (AtspiValue *obj, GError **error)
+{
+ double retval;
+
+ g_return_val_if_fail (obj != NULL, 0.0);
+
+ _atspi_dbus_get_property (obj, atspi_interface_value, "CurrentValue", error, "d", &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_value_get_maximum_value:
+ * @obj: a pointer to the #AtspiValue implementor on which to operate.
+ *
+ * Get the maximum allowed value for an #AtspiValue.
+ *
+ * Returns: the maximum allowed value for this object.
+ **/
+gdouble
+atspi_value_get_maximum_value (AtspiValue *obj, GError **error)
+{
+ double retval;
+
+ g_return_val_if_fail (obj != NULL, 0.0);
+
+ _atspi_dbus_get_property (obj, atspi_interface_value, "MaximumValue", error, "d", &retval);
+
+ return retval;
+}
+
+/**
+ * atspi_value_set_current_value:
+ * @obj: a pointer to the #AtspiValue implementor on which to operate.
+ * @new_value: a #float value which is the desired new value of the object.
+ *
+ * Set the current value of an #AtspiValue.
+ *
+ * Returns: #TRUE if the value could be assigned the specified value,
+ * #FALSE otherwise.
+ **/
+gboolean
+atspi_value_set_current_value (AtspiValue *obj, gdouble new_value, GError **error)
+{
+ double d_new_value = new_value;
+
+ g_return_val_if_fail (obj != NULL, FALSE);
+
+ _atspi_dbus_call (obj, atspi_interface_value, "SetCurrentValue", error, "d", &d_new_value);
+
+ return TRUE;
+}
+
+/**
+ * atspi_value_get_minimum_increment:
+ * @obj: a pointer to the #AtspiValue implementor on which to operate.
+ *
+ * Get the minimum increment by which an #AtspiValue can be adjusted.
+ *
+ * Returns: the minimum increment by which the value may be changed, or
+ * zero if the minimum increment cannot be determined.
+ *
+ **/
+gdouble
+atspi_value_get_minimum_increment (AtspiValue *obj, GError **error)
+{
+ double retval;
+
+ g_return_val_if_fail (obj != NULL, 0.0);
+
+ _atspi_dbus_get_property (obj, atspi_interface_value, "MinimumIncrement", error, "d", &retval);
+
+ return retval;
+}
+
+static void
+atspi_value_base_init (AtspiValue *klass)
+{
+}
+
+GType
+atspi_value_get_type (void)
+{
+ static GType type = 0;
+
+ if (!type) {
+ static const GTypeInfo tinfo =
+ {
+ sizeof (AtspiValue),
+ (GBaseInitFunc) atspi_value_base_init,
+ (GBaseFinalizeFunc) NULL,
+ };
+
+ type = g_type_register_static (G_TYPE_INTERFACE, "AtspiValue", &tinfo, 0);
+
+ }
+ return type;
+}
diff --git a/atspi/atspi-value.h b/atspi/atspi-value.h
new file mode 100644
index 0000000..587d3c9
--- /dev/null
+++ b/atspi/atspi-value.h
@@ -0,0 +1,56 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2002 Ximian, Inc.
+ * 2002 Sun Microsystems Inc.
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef _ATSPI_VALUE_H_
+#define _ATSPI_VALUE_H_
+
+#include "glib-object.h"
+
+#include "atspi-constants.h"
+
+#include "atspi-types.h"
+
+#define ATSPI_TYPE_VALUE (atspi_value_get_type ())
+#define ATSPI_IS_VALUE(obj) G_TYPE_CHECK_INSTANCE_TYPE ((obj), ATSPI_TYPE_VALUE)
+#define ATSPI_VALUE(obj) G_TYPE_CHECK_INSTANCE_CAST ((obj), ATSPI_TYPE_VALUE, AtspiValue)
+#define ATSPI_VALUE_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), ATSPI_TYPE_VALUE, AtspiValue))
+
+GType atspi_value_get_type ();
+
+struct _AtspiValue
+{
+ GTypeInterface parent;
+};
+
+gdouble atspi_value_get_minimum_value (AtspiValue *obj, GError **error);
+
+gdouble atspi_value_get_current_value (AtspiValue *obj, GError **error);
+
+gdouble atspi_value_get_maximum_value (AtspiValue *obj, GError **error);
+
+gboolean atspi_value_set_current_value (AtspiValue *obj, gdouble new_value, GError **error);
+
+gdouble atspi_value_get_minimum_increment (AtspiValue *obj, GError **error);
+
+#endif /* _ATSPI_VALUE_H_ */
diff --git a/atspi/atspi.h b/atspi/atspi.h
index ff4ba06..a306ed2 100644
--- a/atspi/atspi.h
+++ b/atspi/atspi.h
@@ -29,13 +29,18 @@
#include "atspi-constants.h"
#include "atspi-types.h"
#include "atspi-accessible.h"
+#include "atspi-action.h"
#include "atspi-component.h"
#include "atspi-device-listener.h"
+#include "atspi-document.h"
+#include "atspi-editabletext.h"
#include "atspi-event-listener.h"
+#include "atspi-image.h"
#include "atspi-misc.h"
#include "atspi-registry.h"
#include "atspi-selection.h"
#include "atspi-table.h"
#include "atspi-text.h"
+#include "atspi-value.h"
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]