Go to startprevious pagenext page
Small GNOME foot in banner [Making GNOME Accessible]
void report_focus_event (AccessibleEvent *e) {
    char *name = Accessible_getName (e->source);
    say (name);
    SPI_freeString (name);
    if (SPI_IS_COMPONENT (e->source)) {
        int x, y, w, h;
        AccessibleComponent_getBounds (
            SPI_COMPONENT (e->source), &x, &y, &w, &h);
        set_mag_roi (x, y, w, h);
    }
}

int main () {
    AccessibleEventListener *focus_listener;
    SPI_init ();
    focus_listener = SPI_createAccessibleEventListener (
                                     report_focus_event, NULL);
    SPI_registerGlobalEventListener (focus_listener, "focus:");
    SPI_event_main ();
    AccessibleEventListener_free (focus_listener);
    return SPI_exit ();
}