summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>2003-06-09 22:32:50 +0000
committerbillh <billh@e2bd861d-eb25-0410-b326-f6ed22b6b98c>2003-06-09 22:32:50 +0000
commit6befa495c5fe3d09f475cc82367ff2d1d252da68 (patch)
tree493679b05afc8dacfe1c9bfc672ec0de10d0b424 /test
parent22903b58c5d187a914c70691d61cf979d840fb9b (diff)
downloadat-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.am4
-rw-r--r--test/window-listener-test.c85
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);
+}
+