#include "object.h"
#include "introspection.h"
+static dbus_bool_t
+impl_get_CurrentPageNumber (DBusMessageIter * iter, void *user_data)
+{
+ AtkDocument *document = (AtkDocument *) user_data;
+ g_return_val_if_fail (ATK_IS_DOCUMENT (user_data), FALSE);
+ return droute_return_v_int32 (iter, atk_document_get_current_page_number (document));
+}
+
+static dbus_bool_t
+impl_get_PageCount (DBusMessageIter * iter, void *user_data)
+{
+ AtkDocument *document = (AtkDocument *) user_data;
+ g_return_val_if_fail (ATK_IS_DOCUMENT (user_data), FALSE);
+ return droute_return_v_int32 (iter, atk_document_get_page_count (document));
+}
+
static DBusMessage *
impl_GetLocale (DBusConnection * bus, DBusMessage * message, void *user_data)
{
{NULL, NULL}
};
+static DRouteProperty properties[] = {
+ {impl_get_CurrentPageNumber, NULL, "CurrentPageNumber"},
+ {impl_get_PageCount, NULL, "PageCount"},
+ {NULL, NULL, NULL}
+};
+
void
spi_initialize_document (DRoutePath * path)
{
droute_path_add_interface (path,
- ATSPI_DBUS_INTERFACE_DOCUMENT, spi_org_a11y_atspi_Document, methods, NULL);
+ ATSPI_DBUS_INTERFACE_DOCUMENT, spi_org_a11y_atspi_Document, methods, properties);
};
* Gtk:AtkDocument:load-complete -> document:load-complete
* Gtk:AtkDocument:load-stopped -> document:load-stopped
* Gtk:AtkDocument:reload -> document:reload
+ * Gtk:AtkDocument:page-changed -> document:page-changed
*/
static gboolean
document_event_listener (GSignalInvocationHint * signal_hint,
AtkObject *accessible;
GSignalQuery signal_query;
const gchar *name, *s;
+ gint detail1 = 0;
g_signal_query (signal_hint->signal_id, &signal_query);
name = signal_query.signal_name;
+ if (n_param_values > 0) // on the case of page-changed
+ if (G_VALUE_TYPE (¶m_values[1]) == G_TYPE_INT)
+ detail1 = g_value_get_int (¶m_values[1]);
+
accessible = ATK_OBJECT (g_value_get_object (¶m_values[0]));
s = atk_object_get_name (accessible);
- emit_event (accessible, ITF_EVENT_DOCUMENT, name, "", 0, 0,
+ emit_event (accessible, ITF_EVENT_DOCUMENT, name, "", detail1, 0,
DBUS_TYPE_STRING_AS_STRING, s, append_basic);
return TRUE;
add_signal_listener (document_event_listener, "Gtk:AtkDocument:reload");
add_signal_listener (document_event_listener,
"Gtk:AtkDocument:load-stopped");
+ add_signal_listener (document_event_listener,
+ "Gtk:AtkDocument:page-changed");
/* TODO Fake this event on the client side */
add_signal_listener (state_event_listener, "Gtk:AtkObject:state-change");
/* TODO */