* Boston, MA 02111-1307, USA.
*/
+#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "../cspi/spi-private.h" /* A hack for now */
static void traverse_accessible_tree (Accessible *accessible);
static void report_event (const AccessibleEvent *event, void *user_data);
+static void report_bounds_event (const AccessibleEvent *event, void *user_data);
static void report_detail_event (const AccessibleEvent *event, void *user_data);
static void report_detail1_event (const AccessibleEvent *event, void *user_data);
static void report_text_event (const AccessibleEvent *event, void *user_data);
static void report_text_selection_event (const AccessibleEvent *event, void *user_data);
-static void report_active_descendant_event (const AccessibleEvent *event, void *user_data);
+static void report_active_descendant_changed_event (const AccessibleEvent *event, void *user_data);
static void report_children_changed_event (const AccessibleEvent *event, void *user_data);
static void report_name_changed_event (const AccessibleEvent *event, void *user_data);
static void report_description_changed_event (const AccessibleEvent *event, void *user_data);
static AccessibleEventListener *generic_listener;
static AccessibleEventListener *specific_listener;
+static AccessibleEventListener *bounds_listener;
static AccessibleEventListener *detail1_listener;
static AccessibleEventListener *test_listener;
static AccessibleEventListener *text_listener;
static AccessibleEventListener *text_selection_listener;
-static AccessibleEventListener *active_descendant_listener;
+static AccessibleEventListener *active_descendant_changed_listener;
static AccessibleEventListener *children_changed_listener;
static AccessibleEventListener *name_changed_listener;
static AccessibleEventListener *description_changed_listener;
report_event, NULL);
specific_listener = SPI_createAccessibleEventListener (
report_detail_event, NULL);
+ bounds_listener = SPI_createAccessibleEventListener (
+ report_bounds_event, NULL);
text_listener = SPI_createAccessibleEventListener (
report_text_event, NULL);
text_selection_listener = SPI_createAccessibleEventListener (
report_text_selection_event, NULL);
- active_descendant_listener = SPI_createAccessibleEventListener (
- report_active_descendant_event, NULL);
+ active_descendant_changed_listener = SPI_createAccessibleEventListener (
+ report_active_descendant_changed_event, NULL);
children_changed_listener = SPI_createAccessibleEventListener (
report_children_changed_event, NULL);
name_changed_listener = SPI_createAccessibleEventListener (
"object:selection-changed");
SPI_registerGlobalEventListener (children_changed_listener,
"object:children-changed");
- SPI_registerGlobalEventListener (active_descendant_listener,
- "object:active-descendant");
+ SPI_registerGlobalEventListener (active_descendant_changed_listener,
+ "object:active-descendant-changed");
SPI_registerGlobalEventListener (generic_listener,
"object:visible-data-changed");
SPI_registerGlobalEventListener (text_selection_listener,
"object:model-changed");
SPI_registerGlobalEventListener (detail1_listener,
"object:link-selected");
+ SPI_registerGlobalEventListener (bounds_listener,
+ "object:bounds-changed");
SPI_registerGlobalEventListener (window_listener,
"window:minimize");
SPI_registerGlobalEventListener (window_listener,
}
void
+report_bounds_event (const AccessibleEvent *event, void *user_data)
+{
+ char *s = Accessible_getName (event->source);
+ SPIRect *bounds = AccessibleBoundsChangedEvent_getNewBounds (event);
+ if (!bounds) fprintf (stderr, "bounds-changed event with no bounds?\n");
+ fprintf (stderr, "(bounds-changed) %s %s %d,%d - %d,%d\n", event->type, s,
+ bounds->x, bounds->y, bounds->x + bounds->width, bounds->y + bounds->height);
+ SPI_freeRect (bounds);
+ if (s) SPI_freeString (s);
+}
+
+void
report_text_event (const AccessibleEvent *event, void *user_data)
{
char *s = Accessible_getName (event->source);
}
void
-report_active_descendant_event (const AccessibleEvent *event, void *user_data)
+report_active_descendant_changed_event (const AccessibleEvent *event, void *user_data)
{
char *s = Accessible_getName (event->source);
char *s1;