-/* AT-SPI : Assistive Technology Service Provider Interface
- * Copyright 2001 Sun Microsystems Inc.
+/*
+ * 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
#ifndef SPI_ACCESSIBLE_H_
#define SPI_ACCESSIBLE_H_
-#include <glib/gmacros.h>
-#include <bonobo/bonobo-object.h>
-#include <atk/atkobject.h>
-#include <libspi/Accessibility.h>
+#include <libspi/droute.h>
+#include "Accessibility.h"
+#include "atk/atk.h"
G_BEGIN_DECLS
-#define SPI_ACCESSIBLE_TYPE (spi_accessible_get_type ())
-#define SPI_ACCESSIBLE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SPI_ACCESSIBLE_TYPE, SpiAccessible))
-#define SPI_ACCESSIBLE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), SPI_ACCESSIBLE_TYPE, SpiAccessibleClass))
-#define IS_SPI_ACCESSIBLE(o) (G_TYPE_CHECK__INSTANCE_TYPE ((o), SPI_ACCESSIBLE_TYPE))
-#define IS_SPI_ACCESSIBLE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), SPI_ACCESSIBLE_TYPE))
+Accessibility_Role spi_accessible_role_from_atk_role (AtkRole role);
+
+void spi_initialize_accessible(DRouteData *data);
+void spi_initialize_action(DRouteData *data);
+void spi_initialize_application(DRouteData *data);
+void spi_initialize_component(DRouteData *data);
+void spi_initialize_document(DRouteData *data);
+void spi_initialize_editabletext(DRouteData *data);
+void spi_initialize_hyperlink(DRouteData *data);
+void spi_initialize_hypertext(DRouteData *data);
+void spi_initialize_image(DRouteData *data);
+void spi_initialize_selection(DRouteData *data);
+void spi_initialize_table(DRouteData *data);
+void spi_initialize_tree(DRouteData *data);
+void spi_initialize_text(DRouteData *data);
+void spi_initialize_value(DRouteData *data);
+
+dbus_bool_t spi_dbus_append_tree (DBusMessage * message, AtkObject * obj, DRouteData * data);
+
+typedef unsigned long Accessibility_ControllerEventMask;
+
+// TODO: auto-generate the below structs
+typedef struct _Accessibility_DeviceEvent Accessibility_DeviceEvent;
+struct _Accessibility_DeviceEvent
+{
+ Accessibility_EventType type;
+ dbus_uint32_t id;
+dbus_uint16_t hw_code;
+ dbus_uint16_t modifiers;
+ dbus_uint32_t timestamp;
+ char * event_string;
+ dbus_bool_t is_text;
+};
+
+typedef struct _Accessibility_EventListenerMode Accessibility_EventListenerMode;
+struct _Accessibility_EventListenerMode
+{
+ dbus_bool_t synchronous;
+ dbus_bool_t preemptive;
+ dbus_bool_t global;
+};
+
+typedef struct _Accessibility_KeyDefinition Accessibility_KeyDefinition;
+struct _Accessibility_KeyDefinition
+{
+ dbus_int32_t keycode;
+ dbus_int32_t keysym;
+ char *keystring;
+ dbus_int32_t unused;
+};
+
+#define SPI_DBUS_NAME_REGISTRY "org.freedesktop.atspi.registry"
+#define SPI_DBUS_PATH_REGISTRY "/org/freedesktop/atspi/registry"
+#define SPI_DBUS_INTERFACE_REGISTRY "org.freedesktop.atspi.registry"
+#define SPI_DBUS_PATH_DEC "/org/freedesktop/atspi/registry/dec"
+#define SPI_DBUS_INTERFACE_DEC "org.freedesktop.atspi.deviceEventController"
+#define SPI_DBUS_PATH_DESKTOP "/org/freedesktop/atspi/registry/desktop"
+#define SPI_DBUS_PATH_NULL "/"
-typedef struct {
- BonoboObject parent;
- AtkObject *atko;
-} SpiAccessible;
+AtkObject *spi_dbus_get_object(const char *path);
-typedef struct {
- BonoboObjectClass parent_class;
- POA_Accessibility_Accessible__epv epv;
-} SpiAccessibleClass;
+gchar *spi_dbus_get_path(AtkObject *obj);
+DBusMessage *spi_dbus_general_error(DBusMessage *message);
+DBusMessage *spi_dbus_return_rect(DBusMessage *message, gint ix, gint iy, gint iwidth, gint iheight);
+DBusMessage *spi_dbus_return_object(DBusMessage *message, AtkObject *obj, int unref);
+dbus_bool_t spi_dbus_return_v_object(DBusMessageIter *iter, AtkObject *obj, int unref);
-GType spi_accessible_get_type (void);
-SpiAccessible *spi_accessible_new (AtkObject *o);
+#define SPI_DBUS_RETURN_ERROR(m, e) dbus_message_new_error(m, (e)->name, (e)->message)
+void spi_dbus_initialize(DRouteData *data);
+void spi_dbus_emit_valist(DBusConnection *bus, const char *path, const char *interface, const char *name, int first_arg_type, va_list args);
+dbus_bool_t spi_dbus_message_iter_get_struct(DBusMessageIter *iter, ...);
+dbus_bool_t spi_dbus_message_iter_append_struct(DBusMessageIter *iter, ...);
+dbus_bool_t spi_dbus_marshall_deviceEvent(DBusMessage *message, const Accessibility_DeviceEvent *e);
+dbus_bool_t spi_dbus_demarshall_deviceEvent(DBusMessage *message, Accessibility_DeviceEvent *e);
+/* tree.c */
+void spi_dbus_notify_change(AtkObject *obj, gboolean new, DRouteData *data);
+void spi_dbus_notify_remove(AtkObject *obj, DRouteData *data);
+gboolean spi_dbus_update_cache(DRouteData *data);
+gboolean spi_dbus_object_is_known(AtkObject *obj);
G_END_DECLS
#endif /* SPI_ACCESSIBLE_H_ */