+report_window_event (const AccessibleEvent *event, void *user_data)
+{
+ fprintf (stderr, "%s event received\n", event->type);
+}
+
+void
+report_text_event (const AccessibleEvent *event, void *user_data)
+{
+ AccessibleText *text = Accessible_getText (event->source);
+ fprintf (stderr, "%s event received\n", event->type);
+ if (use_magnifier && strcmp (event->type, "object:text-changed"))
+ {
+ long offset = AccessibleText_getCaretOffset (text);
+ long x, y, w, h;
+ fprintf (stderr, "offset %d\n", (int) offset);
+ AccessibleText_getCharacterExtents (text, offset, &x, &y, &w, &h,
+ SPI_COORD_TYPE_SCREEN);
+ fprintf (stderr, "new roi %d %d %d %d\n", (int) x, (int) y, (int) w, (int) h);
+ magnifier_set_roi ((short) 0, x, y, w, h);
+ }
+ if (!strcmp (event->type, "object:text-changed"))
+ {
+ long start, end;
+ char *new_text = AccessibleText_getTextAtOffset (text, (long) 0, SPI_TEXT_BOUNDARY_SENTENCE_START, &start, &end);
+ _festival_say (new_text, "voice_kal_diphone", FALSE);
+ SPI_freeString (new_text);
+ }
+}
+
+void
+report_button_press (const AccessibleEvent *event, void *user_data)