/*---------------------------------------------------------------------------*/
-#define PCHANGE "property-change"
+#define PCHANGE "property_change"
/*
* This handler handles the following ATK signals and
/*---------------------------------------------------------------------------*/
/*
+ * Children changed signal converter and forwarder.
+ *
+ * Klass (Interface) org.freedesktop.atspi.Event.Object
+ * Major is the signal name.
+ * Minor is 'add' or 'remove'
+ * detail1 is the index.
+ * detail2 is 0.
+ * any_data is the child reference.
+ */
+static gboolean
+children_changed_event_listener (GSignalInvocationHint * signal_hint,
+ guint n_param_values,
+ const GValue * param_values, gpointer data)
+{
+ AtkObject *accessible, *child;
+ GSignalQuery signal_query;
+ const gchar *name, *minor;
+ gint detail1, detail2;
+
+ g_signal_query (signal_hint->signal_id, &signal_query);
+ name = signal_query.signal_name;
+
+ accessible = ATK_OBJECT (g_value_get_object (¶m_values[0]));
+ minor = g_quark_to_string (signal_hint->detail);
+
+ if (G_VALUE_TYPE (¶m_values[1]) == G_TYPE_INT)
+ detail1 = g_value_get_int (¶m_values[1]);
+
+ if (G_VALUE_TYPE (¶m_values[2]) == G_TYPE_OBJECT)
+ {
+ child = ATK_OBJECT(g_value_get_pointer (¶m_values[2]));
+ emit_event (accessible, ITF_EVENT_OBJECT, name, minor, detail1, detail2,
+ "(so)", child, append_object);
+ }
+ else
+ {
+ emit_event (accessible, ITF_EVENT_OBJECT, name, minor, detail1, detail2,
+ "s", "", append_basic);
+ }
+ return TRUE;
+}
+
+/*---------------------------------------------------------------------------*/
+
+
+/*
* Generic signal converter and forwarder.
*
* Klass (Interface) org.freedesktop.atspi.Event.Object
add_signal_listener (generic_event_listener, "Gtk:AtkTable:column-deleted");
add_signal_listener (generic_event_listener, "Gtk:AtkTable:model-changed");
+ /* Children signal listeners */
+ atk_add_global_event_listener (children_changed_event_listener,
+ "Gtk:AtkObject:children-changed");
+
/*
* May add the following listeners to implement preemptive key listening for GTK+
*