diff options
author | billh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c> | 2003-06-09 22:32:50 +0000 |
---|---|---|
committer | billh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c> | 2003-06-09 22:32:50 +0000 |
commit | 6befa495c5fe3d09f475cc82367ff2d1d252da68 (patch) | |
tree | 493679b05afc8dacfe1c9bfc672ec0de10d0b424 /test | |
parent | 22903b58c5d187a914c70691d61cf979d840fb9b (diff) | |
download | at-spi2-core-6befa495c5fe3d09f475cc82367ff2d1d252da68.tar.gz |
Added API for client-side interception and handling of exceptions.
Added a window-listener-test program for window event tracking.
Added very basic implementation of client-side exception API
in cspi/bonobo/cspi-bonobo and cspi/spi_main.
git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@436 e2bd861d-eb25-0410-b326-f6ed22b6b98c
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 4 | ||||
-rw-r--r-- | test/window-listener-test.c | 85 |
2 files changed, 88 insertions, 1 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index 3d0f9ede..4d18d5a9 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,9 +1,11 @@ NULL= -noinst_PROGRAMS = test-simple at app simple-at stress-test keysynth-demo key-listener-test event-listener-test screen-review-test visual-bell keypad-test +noinst_PROGRAMS = test-simple at app simple-at stress-test keysynth-demo key-listener-test event-listener-test window-listener-test screen-review-test visual-bell keypad-test stress_test_SOURCES = stress-test.c +window_listener_test_SOURCES = window-listener-test.c + keypad_test_SOURCES = keypad-test.c key_listener_test_SOURCES = key-listener-test.c diff --git a/test/window-listener-test.c b/test/window-listener-test.c new file mode 100644 index 00000000..e99c5b37 --- /dev/null +++ b/test/window-listener-test.c @@ -0,0 +1,85 @@ +/* + * AT-SPI - Assistive Technology Service Provider Interface + * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) + * + * Copyright 2001, 2002, 2003 Sun Microsystems Inc., + * Copyright 2001, 2002, 2003 Ximian, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include <stdlib.h> +#include <unistd.h> +#include "../cspi/spi-private.h" /* A hack for now */ + +static void report_window_event (const AccessibleEvent *event, void *user_data); +static AccessibleEventListener *window_listener; + +int +main (int argc, char **argv) +{ + SPI_init (); + + window_listener = SPI_createAccessibleEventListener ( + report_window_event, NULL); + + SPI_registerGlobalEventListener (window_listener, + "window:minimize"); + SPI_registerGlobalEventListener (window_listener, + "window:maximize"); + SPI_registerGlobalEventListener (window_listener, + "window:restore"); + SPI_registerGlobalEventListener (window_listener, + "window:activate"); + SPI_registerGlobalEventListener (window_listener, + "window:deactivate"); + SPI_registerGlobalEventListener (window_listener, + "window:create"); + SPI_registerGlobalEventListener (window_listener, + "window:destroy"); + SPI_registerGlobalEventListener (window_listener, + "window:lower"); + SPI_registerGlobalEventListener (window_listener, + "window:raise"); + SPI_registerGlobalEventListener (window_listener, + "window:resize"); + SPI_registerGlobalEventListener (window_listener, + "window:shade"); + SPI_registerGlobalEventListener (window_listener, + "window:unshade"); + SPI_event_main (); + + putenv ("AT_BRIDGE_SHUTDOWN=1"); + + /* + * TODO: Add a key event listener that calls test_exit, to + * deregister and cleanup appropriately. + */ + + return SPI_exit (); +} + +void +report_window_event (const AccessibleEvent *event, void *user_data) +{ + char *t, *s = Accessible_getName (event->source); + t = AccessibleWindowEvent_getTitleString (event); + if (t == NULL) t = ""; + fprintf (stderr, "%s %s\n", event->type, s, t); + SPI_freeString (s); + SPI_freeString (t); +} + |