2008-05-16 Mark Doffman <mark.doffman@codethink.co.uk>
authorMark Doffman <mdoff@silver-wind.(none)>
Fri, 16 May 2008 15:11:40 +0000 (16:11 +0100)
committerMark Doffman <mdoff@silver-wind.(none)>
Fri, 16 May 2008 15:16:19 +0000 (16:16 +0100)
Re-organize the directories. The main purpose of
this change is to remove CORBA code and references
that are no longer used.

* atk-adaptor/
Code here used to live in libspi and atk-bridge.

* droute/
The droute module has been moved from libspi to
its own directory.

* spi-common
Code and definitions common to registryd and
the atk-adaptor. Mostly moved from libspi/dbus.c
and accessible.h.

* cspi/
Removed for the moment. Will have to be
mostly rewritten for D-Bus.

269 files changed:
AUTHORS
ChangeLog [deleted file]
HACKING [deleted file]
MAINTAINERS
Makefile.am
NEWS [deleted file]
README
TODO [deleted file]
acconfig.h [deleted file]
atk-adaptor/Makefile.am [new file with mode: 0644]
atk-adaptor/accessible.c [moved from libspi/accessible.c with 100% similarity]
atk-adaptor/accessible.h [moved from libspi/accessible.h with 55% similarity]
atk-adaptor/action.c [moved from libspi/action.c with 100% similarity]
atk-adaptor/action.h [moved from libspi/action.h with 100% similarity]
atk-adaptor/application.c [moved from libspi/application.c with 100% similarity]
atk-adaptor/application.h [moved from libspi/application.h with 100% similarity]
atk-adaptor/atk-dbus.c [new file with mode: 0644]
atk-adaptor/base.c [moved from libspi/base.c with 100% similarity]
atk-adaptor/base.h [moved from libspi/base.h with 100% similarity]
atk-adaptor/bitarray.h [moved from libspi/bitarray.h with 100% similarity]
atk-adaptor/bridge.c [moved from atk-bridge/bridge.c with 100% similarity]
atk-adaptor/collection.c [moved from libspi/collection.c with 100% similarity]
atk-adaptor/collection.h [moved from libspi/collection.h with 100% similarity]
atk-adaptor/component.c [moved from libspi/component.c with 100% similarity]
atk-adaptor/component.h [moved from libspi/component.h with 100% similarity]
atk-adaptor/devicelistener.c [moved from libspi/devicelistener.c with 100% similarity]
atk-adaptor/devicelistener.h [moved from libspi/devicelistener.h with 100% similarity]
atk-adaptor/document.c [moved from libspi/document.c with 100% similarity]
atk-adaptor/document.h [moved from libspi/document.h with 100% similarity]
atk-adaptor/editabletext.c [moved from libspi/editabletext.c with 100% similarity]
atk-adaptor/editabletext.h [moved from libspi/editabletext.h with 100% similarity]
atk-adaptor/eventlistener.c [moved from libspi/eventlistener.c with 100% similarity]
atk-adaptor/eventlistener.h [moved from libspi/eventlistener.h with 100% similarity]
atk-adaptor/hyperlink.c [moved from libspi/hyperlink.c with 100% similarity]
atk-adaptor/hyperlink.h [moved from libspi/hyperlink.h with 100% similarity]
atk-adaptor/hypertext.c [moved from libspi/hypertext.c with 100% similarity]
atk-adaptor/hypertext.h [moved from libspi/hypertext.h with 100% similarity]
atk-adaptor/image.c [moved from libspi/image.c with 100% similarity]
atk-adaptor/image.h [moved from libspi/image.h with 100% similarity]
atk-adaptor/introspectable.c [moved from libspi/introspectable.c with 98% similarity]
atk-adaptor/keymasks.h [moved from libspi/keymasks.h with 100% similarity]
atk-adaptor/keystrokelistener.h [moved from libspi/keystrokelistener.h with 100% similarity]
atk-adaptor/libspi.h [moved from libspi/libspi.h with 100% similarity]
atk-adaptor/listener.c [moved from libspi/listener.c with 100% similarity]
atk-adaptor/listener.h [moved from libspi/listener.h with 100% similarity]
atk-adaptor/matchrule.c [moved from libspi/matchrule.c with 100% similarity]
atk-adaptor/matchrule.h [moved from libspi/matchrule.h with 100% similarity]
atk-adaptor/relation.c [moved from libspi/relation.c with 100% similarity]
atk-adaptor/relation.h [moved from libspi/relation.h with 100% similarity]
atk-adaptor/remoteobject.c [moved from libspi/remoteobject.c with 100% similarity]
atk-adaptor/remoteobject.h [moved from libspi/remoteobject.h with 100% similarity]
atk-adaptor/selection.c [moved from libspi/selection.c with 100% similarity]
atk-adaptor/selection.h [moved from libspi/selection.h with 100% similarity]
atk-adaptor/spi-private.h [new file with mode: 0644]
atk-adaptor/stateset.c [moved from libspi/stateset.c with 100% similarity]
atk-adaptor/stateset.h [moved from libspi/stateset.h with 100% similarity]
atk-adaptor/streamablecontent.c [moved from libspi/streamablecontent.c with 100% similarity]
atk-adaptor/streamablecontent.h [moved from libspi/streamablecontent.h with 100% similarity]
atk-adaptor/table.c [moved from libspi/table.c with 100% similarity]
atk-adaptor/table.h [moved from libspi/table.h with 100% similarity]
atk-adaptor/text.c [moved from libspi/text.c with 100% similarity]
atk-adaptor/text.h [moved from libspi/text.h with 100% similarity]
atk-adaptor/tree.c [moved from libspi/tree.c with 99% similarity]
atk-adaptor/util.c [moved from cspi/spi_matchrule.c with 58% similarity]
atk-adaptor/value.c [moved from libspi/value.c with 100% similarity]
atk-adaptor/value.h [moved from libspi/value.h with 100% similarity]
atk-bridge/Makefile.am [deleted file]
configure.ac [new file with mode: 0644]
configure.in [deleted file]
cspi-1.0-uninstalled.pc.in [deleted file]
cspi-1.0.pc.in [deleted file]
cspi/Makefile.am [deleted file]
cspi/bonobo/Makefile.am [deleted file]
cspi/bonobo/cspi-bonobo-listener.c [deleted file]
cspi/bonobo/cspi-bonobo-listener.h [deleted file]
cspi/bonobo/cspi-bonobo.c [deleted file]
cspi/cspi-lowlevel.h [deleted file]
cspi/spi-impl.h [deleted file]
cspi/spi-listener.h [deleted file]
cspi/spi-private.h [deleted file]
cspi/spi-roletypes.h [deleted file]
cspi/spi-statetypes.h [deleted file]
cspi/spi.h [deleted file]
cspi/spi_accessible.c [deleted file]
cspi/spi_action.c [deleted file]
cspi/spi_application.c [deleted file]
cspi/spi_collection.c [deleted file]
cspi/spi_component.c [deleted file]
cspi/spi_document.c [deleted file]
cspi/spi_editabletext.c [deleted file]
cspi/spi_event.c [deleted file]
cspi/spi_hyperlink.c [deleted file]
cspi/spi_hypertext.c [deleted file]
cspi/spi_image.c [deleted file]
cspi/spi_main.c [deleted file]
cspi/spi_registry.c [deleted file]
cspi/spi_selection.c [deleted file]
cspi/spi_streamablecontent.c [deleted file]
cspi/spi_table.c [deleted file]
cspi/spi_text.c [deleted file]
cspi/spi_value.c [deleted file]
docs/Makefile.am [deleted file]
docs/reference/Makefile.am [deleted file]
docs/reference/cspi/Makefile.am [deleted file]
docs/reference/cspi/at-spi-cspi-docs.sgml [deleted file]
docs/reference/cspi/at-spi-cspi-overrides.txt [deleted file]
docs/reference/cspi/at-spi-cspi-sections.txt [deleted file]
docs/reference/cspi/at-spi-cspi.types [deleted file]
docs/reference/cspi/tmpl/spi_accessible.sgml [deleted file]
docs/reference/cspi/tmpl/spi_action.sgml [deleted file]
docs/reference/cspi/tmpl/spi_application.sgml [deleted file]
docs/reference/cspi/tmpl/spi_component.sgml [deleted file]
docs/reference/cspi/tmpl/spi_editabletext.sgml [deleted file]
docs/reference/cspi/tmpl/spi_event.sgml [deleted file]
docs/reference/cspi/tmpl/spi_hyperlink.sgml [deleted file]
docs/reference/cspi/tmpl/spi_hypertext.sgml [deleted file]
docs/reference/cspi/tmpl/spi_image.sgml [deleted file]
docs/reference/cspi/tmpl/spi_main.sgml [deleted file]
docs/reference/cspi/tmpl/spi_registry.sgml [deleted file]
docs/reference/cspi/tmpl/spi_relation.sgml [deleted file]
docs/reference/cspi/tmpl/spi_selection.sgml [deleted file]
docs/reference/cspi/tmpl/spi_stateset.sgml [deleted file]
docs/reference/cspi/tmpl/spi_table.sgml [deleted file]
docs/reference/cspi/tmpl/spi_text.sgml [deleted file]
docs/reference/cspi/tmpl/spi_value.sgml [deleted file]
docs/reference/idl/Doxyfile [deleted file]
docs/reference/idl/Makefile.am [deleted file]
docs/reference/idl/README [deleted file]
docs/reference/idl/at-spi-idl-docs.sgml [deleted file]
docs/reference/idl/at-spi-idl-overrides.txt [deleted file]
docs/reference/idl/at-spi-idl-sections.txt [deleted file]
docs/reference/idl/tmpl/accessible.sgml [deleted file]
docs/reference/idl/tmpl/action.sgml [deleted file]
docs/reference/idl/tmpl/application.sgml [deleted file]
docs/reference/idl/tmpl/registry.sgml [deleted file]
droute/Makefile.am [new file with mode: 0644]
droute/droute.c [moved from libspi/droute.c with 99% similarity]
droute/droute.h [moved from libspi/droute.h with 100% similarity]
droute/introspect-loader.c [moved from libspi/introspect-loader.c with 90% similarity]
droute/introspect-loader.h [moved from libspi/introspect-loader.h with 98% similarity]
idl/Makefile.am
libloginhelper-1.0.pc.in [deleted file]
libspi-1.0-uninstalled.pc.in [deleted file]
libspi-1.0.pc.in [deleted file]
libspi/Makefile.am [deleted file]
login-helper/Makefile.am [deleted file]
login-helper/login-helper.c [deleted file]
login-helper/login-helper.h [deleted file]
patches/atk-bridge-log.patch [deleted file]
patches/atk-bridge-log.patch.README [deleted file]
po/ChangeLog [deleted file]
po/LINGUAS [deleted file]
po/POTFILES.in [deleted file]
po/POTFILES.skip [deleted file]
po/ang.po [deleted file]
po/ar.po [deleted file]
po/az.po [deleted file]
po/be.po [deleted file]
po/be@latin.po [deleted file]
po/bg.po [deleted file]
po/bn.po [deleted file]
po/bs.po [deleted file]
po/ca.po [deleted file]
po/cs.po [deleted file]
po/cy.po [deleted file]
po/da.po [deleted file]
po/de.po [deleted file]
po/dz.po [deleted file]
po/el.po [deleted file]
po/en_CA.po [deleted file]
po/en_GB.po [deleted file]
po/eo.po [deleted file]
po/es.po [deleted file]
po/et.po [deleted file]
po/eu.po [deleted file]
po/fa.po [deleted file]
po/fi.po [deleted file]
po/fr.po [deleted file]
po/gl.po [deleted file]
po/gu.po [deleted file]
po/he.po [deleted file]
po/hi.po [deleted file]
po/hr.po [deleted file]
po/hu.po [deleted file]
po/id.po [deleted file]
po/is.po [deleted file]
po/it.po [deleted file]
po/ja.po [deleted file]
po/ka.po [deleted file]
po/ko.po [deleted file]
po/ku.po [deleted file]
po/lt.po [deleted file]
po/mk.po [deleted file]
po/mn.po [deleted file]
po/mr.po [deleted file]
po/ms.po [deleted file]
po/nb.po [deleted file]
po/nds_DE.po [deleted file]
po/ne.po [deleted file]
po/nl.po [deleted file]
po/nn.po [deleted file]
po/oc.po [deleted file]
po/or.po [deleted file]
po/pa.po [deleted file]
po/pl.po [deleted file]
po/pt.po [deleted file]
po/pt_BR.po [deleted file]
po/ro.po [deleted file]
po/ru.po [deleted file]
po/rw.po [deleted file]
po/sk.po [deleted file]
po/sl.po [deleted file]
po/sq.po [deleted file]
po/sr.po [deleted file]
po/sr@Latn.po [deleted file]
po/sr@ije.po [deleted file]
po/sv.po [deleted file]
po/ta.po [deleted file]
po/th.po [deleted file]
po/tr.po [deleted file]
po/ug.po [deleted file]
po/uk.po [deleted file]
po/vi.po [deleted file]
po/wa.po [deleted file]
po/xh.po [deleted file]
po/zh_CN.po [deleted file]
po/zh_HK.po [deleted file]
po/zh_TW.po [deleted file]
registryd/Makefile.am
registryd/desktop.c
registryd/desktop.h
registryd/deviceeventcontroller.c
registryd/deviceeventcontroller.h
registryd/reentrant-list.c [moved from libspi/util.c with 89% similarity]
registryd/reentrant-list.h [moved from libspi/spi-private.h with 86% similarity]
registryd/registry-main.c
registryd/registry.c
registryd/registry.h
spi-common/Makefile.am [new file with mode: 0644]
spi-common/event-types.h [moved from test/keysynth-test.c with 52% similarity]
spi-common/spi-dbus.c [moved from libspi/dbus.c with 62% similarity]
spi-common/spi-dbus.h [new file with mode: 0644]
spi-common/spi-types.h [new file with mode: 0644]
test/Makefile.am [deleted file]
test/accessx-gui.c [deleted file]
test/app.c [deleted file]
test/at.c [deleted file]
test/demo.csh [deleted file]
test/event-listener-test.c [deleted file]
test/key-listener-test.c [deleted file]
test/keypad-test.c [deleted file]
test/keysynth-demo.c [deleted file]
test/login-helper-client-test.c [deleted file]
test/login-helper-server-test.c [deleted file]
test/screen-review-test.c [deleted file]
test/simple-at.c [deleted file]
test/stress-test.c [deleted file]
test/test-simple.c [deleted file]
test/visual-bell.c [deleted file]
test/window-listener-test.c [deleted file]
tests/AccessibleTree.py [moved from tools/python/AccessibleTree.py with 100% similarity]
tests/AccessibleTreeCache.py [moved from tools/python/AccessibleTreeCache.py with 100% similarity]
tests/Makefile.am [new file with mode: 0644]
tests/desktop.xml [moved from tools/python/desktop.xml with 100% similarity]
tests/makeTree.py [moved from tools/python/makeTree.py with 100% similarity]
tests/testClient.py [moved from tools/python/testClient.py with 100% similarity]
tests/testServer.py [moved from tools/python/testServer.py with 100% similarity]
tools/Makefile.am
xml/Makefile.am

diff --git a/AUTHORS b/AUTHORS
index 3ef8806..739568f 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,9 @@
-The Gnome Accessibility Project SPI Team
+Authors of AT-SPI D-Bus implementation.
+========================================
+Mike Gorse <mike.gorse@novell.com>
+Mark Doffman <mark.doffman@codethink.co.uk>
+
+Authors of AT-SPI spec & implementation in CORBA
 ========================================
 Bill Haneman <bill.haneman@sun.com>
 Marc Mulcahy <marc.mulchay@sun.com>
 ========================================
 Bill Haneman <bill.haneman@sun.com>
 Marc Mulcahy <marc.mulchay@sun.com>
diff --git a/ChangeLog b/ChangeLog
deleted file mode 100644 (file)
index bd359bc..0000000
--- a/ChangeLog
+++ /dev/null
@@ -1,8554 +0,0 @@
-2008-03-31  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c: (atk_bridge_init),
-       (spi_atk_bridge_do_registration):
-       Bug #498668. Call bonobo_activate at the beginning of the
-       initialization.
-
-2008-03-19  Li Yuan  <li.yuan@sun.com>
-
-       * idl/Accessibility_Accessible.idl:
-       Bug #431053. add accessible-role event in idl doc.
-
-2008-03-19  Li Yuan  <li.yuan@sun.com>
-
-       * libspi/document.c: (impl_getAttributes):
-       Bug #451553. Return NULL is there are no attributes. Patch from Ginn
-       Chen.
-
-2008-03-19  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c: (spi_atk_emit_eventv):
-       Bug #520490. Remove unused call.
-
-2008-03-19  Li Yuan  <li.yuan@sun.com>
-
-       * libspi/collection.c: (match_attributes_none_p), (inorder),
-       (getMatchesInOrder):
-       * registryd/deviceeventcontroller.c:
-       (impl_generate_keyboard_event):
-       Bug #521667. Patch from Jens Granseuer <jensgr@gmx.net>.
-       Fixes several C99 idioms that lead to compilation errors
-       with older compilers like gcc 2.x. Also removes a few unused
-       variables.
-
-2008-03-14  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c: (deregister_application):
-       Bug #522356. Since in desktop.c:spi_desktop_remove_application, we
-       call bonobo_object_release_unref for the object, we don't need to
-       unref the object again.
-
-2008-03-10  Li Yuan  <li.yuan@sun.com>
-
-       * NEWS:
-       * README:
-       * configure.in:
-       Uprev/release 1.22.0.
-
-2008-02-27  Ariel Rios  <ariel@gnu.org>
-
-       * idl/Accessibility_Collection.idl:(getMatchesTo,
-       getMatchesFrom) API Change that adds in order querys.
-       * libspi/collection.c: 
-       (sort_order_rev_canonical): Method to do querys and get results in
-       canonical reverse. New.
-       (inorder): Help method for getMatchesInOrder.
-       (getMatchesInOrder):New method to get next matches from a given object
-       in order.
-       (getMatchesInBackOrder): New method to get previous matches from a
-       given object in order.
-       (getMatchesFrom), (getMatchesTo): Old impl_getMatches[From/To] to be
-       able to accomodate in order querys.
-       (impl_getMatchesFrom), (impl_getMatchesTo): New implementation that
-       accomodate in order querys.
-       (spi_collection_interface_new),
-       (get_collection_from_servant), (impl_createMatchRule),
-       (child_interface_p), (match_states_all_p), (match_states_any_p),
-       (match_states_none_p), (match_states_lookup), (match_roles_all_p),
-       (match_roles_any_p), (match_roles_none_p), (match_roles_lookup),
-       (match_interfaces_all_p), (match_interfaces_any_p),
-       (match_interfaces_none_p), (match_interfaces_lookup),
-       (match_attributes_all_p), (match_attributes_any_p),
-       (match_attributes_none_p), (match_attributes_lookup), (traverse_p),
-       (sort_order_canonical), (query_exec), (impl_getMatches),
-       (spi_collection_init): Clean code.
-
-       Bug #496232. Work by Ariel Rios <ariel@gnu.org> and
-       Scott Haeger <scott@bashautomation.com>.
-
-2008-02-25  Li Yuan  <li.yuan@sun.com>
-
-       * NEWS:
-       * README:
-       * configure.in:
-       Uprev/release 1.21.92.
-
-2008-02-25  Li Yuan  <li.yuan@sun.com>
-
-       * registryd/deviceeventcontroller.c: (global_filter_fn),
-       (dec_lock_modifiers), (dec_unlock_modifiers),
-       (impl_generate_keyboard_event): patch from Franz.Netykafka@runbox.no.
-       Bug #508147. Lock/Unlock modifier keys when xkb extension is
-       missing.
-
-2008-02-22  Scott Haeger  <scott@bashautomation.com>
-
-       * libspi/collection.c:
-       Fixed bug #517761, Collection match rules not working for attributes.
-
-2008-02-19  Li Yuan  <li.yuan@sun.com>
-
-       Patch from Scott Haeger <scott@bashautomation.com>
-       * libspi/collection.c: (impl_freeMatchRule):
-       Bug #517250. Clear spimatchrule->_mrp when free match rule.
-
-2008-01-14  Li Yuan  <li.yuan@sun.com>
-
-       * NEWS:
-       * README:
-       * configure.in:
-       Uprev/release 1.21.5.
-
-2008-01-03  Li Yuan  <li.yuan@sun.com>
-
-       Patch from Gilles Casse <gcasse@oralux.org>
-       * atk-bridge/bridge.c: (spi_atk_register_event_listeners):
-       Bug #474480. Fix memory leak.
-
-2008-01-02  Li Yuan  <li.yuan@sun.com>
-
-       Patch from Luke Yelavich <themuso@themuso.com>
-       * registryd/Accessibility_Registry.server.in.in:
-       Marks translatable strings in 
-       registryd/Accessibility_Registry.server.in.in, so that intltool picks
-       them up.
-
-2007-12-03  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, README, NEWS:
-       Uprev/release 1.21.3.
-
-2007-12-03  Li Yuan  <li.yuan@sun.com>
-
-       * idl/Accessibility_Collection.idl:
-       * libspi/collection.c: 
-       (impl_getMatchesFrom), (impl_getMatchesTo):
-       Fix build error in Solaris, for restrict is a keyword in SS cc.
-
-2007-12-03  Li Yuan  <li.yuan@sun.com>
-
-       * idl/Accessibility_Collection.idl:
-       * libspi/accessible.c: (spi_accessible_construct):
-       * libspi/collection.c: (spi_collection_interface_new),
-       (get_atkobject_from_servant), (get_collection_from_servant),
-       (impl_createMatchRule), (impl_freeMatchRule), (child_interface_p),
-       (match_states_all_p), (match_states_any_p), (match_states_none_p),
-       (match_states_lookup), (match_roles_all_p), (match_roles_any_p),
-       (match_roles_none_p), (match_roles_lookup),
-       (match_interfaces_all_p), (match_interfaces_any_p),
-       (match_interfaces_none_p), (match_interfaces_lookup),
-       (match_attributes_all_p), (match_attributes_any_p),
-       (match_attributes_none_p), (match_attributes_lookup), (traverse_p),
-       (sort_order_canonical), (query_exec), (_accessible_list_to_set),
-       (impl_getMatchesFrom), (impl_getMatchesTo), (impl_getMatches),
-       (spi_collection_class_init), (spi_collection_init):
-       * libspi/collection.h:
-       Bug #326516. Patch from Ariel. Enhance collection support.
-
-2007-12-03  Li Yuan <li.yuan@sun.com>
-
-       * atk-bridge/Makefile.am:
-       * libspi/Makefile.am:
-       Bug #493547. Add X_CFLAGS to INCLUDES to fix build error.
-
-2007-11-12  Li Yuan  <li.yuan@sun.com>
-
-       * libspi/accessible.c: (impl_accessibility_accessible_get_state),
-       (impl_accessibility_accessible_get_relation_set):
-       Fix for #446277. Decrease the ref count to 1.
-
-2007-10-29  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, README, NEWS:
-       Uprev/release 1.21.1.
-
-2007-10-15  Li Yuan  <li.yuan@sun.com>
-
-       * MAINTAINERS: add Willie Walker and Eitan Isaacson
-       to the MAINTAINERS.
-
-2007-09-17  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, README, NEWS:
-       Uprev/release 1.20.0.
-
-2007-09-08  Li Yuan  <li.yuan@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       (spi_key_event_matches_listener):
-       Bug #474796. Should not checkmask bit 14 when sond out 
-       device event.
-
-2007-08-20  Li Yuan  <li.yuan@sun.com>
-
-       * libspi/base.c: (spi_base_construct):
-       Avoid unnecessary crash. Bug #467612.
-
-2007-08-01  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c: (spi_atk_bridge_key_listener):
-       Fix a potential dead-lock issue. Bug #462412.
-
-2007-07-09  Li Yuan <li.yuan@sun.com>
-
-       * configure.in, README, NEWS:
-       Uprev/release 1.19.5.
-
-2007-07-09  Li Yuan <li.yuan@sun.com>
-
-       * libspi/accessible.c: (impl_accessibility_accessible_get_state):
-       Bug #446277. Control the ref_count to 1, so Orca can unref the
-       state_set and avoid the memory leak.
-
-2007-06-26  Li Yuan <li.yuan@sun.com>
-
-       * atk-bridge/Makefile.am:
-       Bug #450897. Set logging domain.
-       * registryd/registry.c: (parse_event_type):
-       Bug #433802.
-       Handle the "document:" signal, set the type to
-       ETYPE_OBJECT.
-
-2007-06-04  Li Yuan <li.yuan@sun.com>
-
-       * configure.in, README, NEWS:
-       Uprev/release 1.19.3 for GNOME 2.19.3.
-
-2007-05-30  Willie Walker <william.walker@sun.com>
-
-       * configure.in, Makefile.am, pyatspi/Makefile.am: Fix for bug
-       439436 to add pyatspi to autotools stuff so it gets installed as
-       part of a make install.
-       
-2007-05-17  Li Yuan <li.yuan@sun.com>
-
-       * test/Makefile.am:
-       Bug #439057. Add the original PATH to PATH.
-
-2007-04-23  Li Yuan <li.yuan@sun.com>
-
-       * configure.in, NEWS:
-       Uprev/release 1.19.1 for GNOME 2.19.1.
-
-2007-04-18  Li Yuan <li.yuan@sun.com>
-
-       * pyatspi/__init__.py:
-       * pyatspi/accessible.py:
-       * pyatspi/constants.py:
-       * pyatspi/event.py:
-       * pyatspi/registry.py:
-       * pyatspi/utils.py:
-       Bug #430938. Add some files to create the uniform Python
-       wrapper for at-spi.
-
-2007-04-12  Li Yuan <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c: (spi_atk_bridge_get_registry),
-       (spi_atk_bridge_focus_tracker), (spi_atk_bridge_key_listener):
-       Fix #427836. Fix leak and unify the code style.
-
-2007-04-12  Yi Jin <yi.jin@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_focus_tracker):
-       Bug #428007. Fix a memory leak.
-
-2007-04-02  Ariel Rios  <ariel@gnu.org>
-
-       Implement the Matchrule interface required for Collection.
-       See bug #405774.
-
-       * cspi/Makefile.am:
-       * cspi/spi-impl.h:
-       * cspi/spi.h:
-       * cspi/spi_accessible.c: (Accessible_isCollection),
-       (Accessible_isMatchRule), (Accessible_getCollection),
-       (Accessible_getMatchRule):
-       * cspi/spi_collection.c:  new file.
-       * cspi/spi_matchrule.c:  new file.
-       * idl/Accessibility.idl:
-       * idl/Accessibility_Collection.idl: new file.
-       * idl/Makefile.am:
-       * libspi/Makefile.am:
-       * libspi/collection.c: new file.
-       * libspi/collection.h: new file.
-       * libspi/libspi.h:
-       * libspi/matchrule.c: new file.
-       * libspi/matchrule.h: new file.
-
-2007-03-29  Ariel Rios  <ariel@gnu.org>
-
-       * cspi/spi.h (AccessibleRoleSet): bug #407600. Define RoleSet structure.
-
-2007-03-22 Li Yuan <li.yuan@sun.com> 
-
-       * atk-bridge/bridge.c: don't call threads_leave and enter if own the 
-       main context. Fix for #329454.
-
-2007-03-12  Li Yuan <li.yuan@sun.com>
-
-       * configure.in, NEWS: Uprev/release 1.18.0 for GNOME 2.18.0.
-
-2007-03-02  Li Yuan <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c
-       (spi_atk_bridge_register_application),
-       (deregister_application), (spi_atk_bridge_focus_tracker),
-       (spi_atk_emit_eventv), (post_init), (spi_atk_bridge_exit_func),
-       (gnome_accessibility_module_shutdown): Bug #329454. Add guard variable
-       to prevent calling threads_enter/leave during the init and shutdown.
-
-2007-02-27  Li Yuan <li.yuan@sun.com>
-
-       * libspi/util.c:
-       (spi_re_entrant_list_delete_link):
-       Bug #412286. Reverse previous patch.
-       * configure.in, NEWS: Uprev/release 1.17.2.
-
-2007-02-26  Li Yuan <li.yuan@sun.com>
-
-       * libspi/accessible.c:
-       (impl_accessibility_accessible_get_attributes),
-       (impl_accessibility_accessible_get_relation_set):
-       Bug #404584 and #401299. Return an empty object instead of return NULL.
-       * configure.in, NEWS: Uprev/release 1.17.1.
-
-2007-02-20  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * Makefile.am: Dist MAINTAINERS.
-
-2007-01-24  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * atk-bridge/bridge.c: (spi_atk_bridge_init_event_type_consts),
-       (atk_bridge_init), (spi_atk_bridge_get_registry),
-       (spi_atk_bridge_exit_func), (spi_atk_bridge_init_base):
-       Fix some compiler warnings and plug a leak. Closes part of
-       bug #375319.
-
-2007-01-24  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * cspi/bonobo/cspi-bonobo-listener.h:
-       * cspi/bonobo/cspi-bonobo.c: (cspi_init):
-       * cspi/spi_hypertext.c: (AccessibleHypertext_getLink):
-       * cspi/spi_main.c: (SPI_eventIsReady):
-       * cspi/spi_streamablecontent.c: (AccessibleStreamableContent_read):
-       * libspi/streamablecontent.c:
-       * libspi/util.c: (spi_re_entrant_list_delete_link):
-       * login-helper/login-helper.c:
-       * registryd/deviceeventcontroller.c:
-       (spi_controller_update_key_grabs), (isEvent):
-       * registryd/registry.c:
-       * test/key-listener-test.c: (simple_at_exit):
-       * test/login-helper-server-test.c: (test_set_wm_dock),
-       (test_post_window):
-       Fix a bunch of warnings from sparse:
-       - ANSIfication of function declarations
-       - NULL vs 0
-       - Add some prototypes
-       - make some stuff static
-
-2007-02-14  Li Yuan  <li.yuan@sun.com>
-
-       * libspi/accessible.c:
-       (impl_accessibility_accessible_get_attributes):
-       Bug #404584. If there is no attributes, just return NULL.
-
-2007-02-12  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, NEWS: Uprev/release 1.17.0.
-
-2007-02-12  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c:
-       (atk_bridge_init): bug #400709. we must emit events even if we are not
-       registered as a full-fledged app.
-       (gnome_accessibility_module_shutdown): bug #404592, unset misc when
-       application like openoffice shutdown. They need to unload gtk before
-       the is spi_atk_bridge_exit_func called.
-
-2007-01-22  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, NEWS: Uprev/release 1.7.16 for gnome 2.18.0 Beta 1.
-
-2007-01-22  Li Yuan  <li.yuan@sun.com>
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_get_registry_ior), (cspi_init):
-       Bug #393010. Use REGISTRY IOR XAtom to get registryd.
-
-2007-01-19  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c:
-       (atk_bridge_init), (spi_atk_bridge_register_application),
-       (deregister_application), (spi_atk_bridge_focus_tracker),
-       (spi_atk_emit_eventv): 
-       Bug #329454. Use atk_misc_threads_enter/atk_misc_threads_leave
-       to prevent deadlock.
-
-2007-01-08  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, NEWS: Uprev/release 1.7.15 for gnome 2.17.5.
-
-2007-01-08  Li Yuan  <li.yuan@sun.com>
-
-       * registryd/registry-main.c:
-       (main): set registry ior only when register server successfully.
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_register_application), (spi_atk_emit_eventv):
-       Bug #372988, #381670. Fix memory leak.
-
-2007-01-02  Bill Haneman <billh@gnome.org>
-
-       * libspi/text.c:
-       (impl_getAttributeRun): Fix misuse of 'i' instead of 'j' when
-       appending default attributes to a text attribute set.
-       Bug #387960.
-
-2006-12-28  Li Yuan  <li.yuan@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_tidy_windows): init any again if call spi_atk_emit_eventv
-       the second time, because spi_atk_emit_eventv will free any. Bug
-       #364839.
-
-2006-12-15  Li Yuan  <li.yuan@sun.com>
-
-       * configure.in, NEWS: Uprev/release 1.7.14 for gnome 2.17.4.
-
-2006-12-14  Li Yuan  <li.yuan@sun.com>
-
-       Fix for #352444
-       * atk-bridge/bridge.c: (spi_atk_emit_eventv),
-       (spi_atk_bridge_property_event_listener),
-       (spi_atk_bridge_signal_listener):
-       Free some CORBA objects to fix memory leak and crash.
-
-2006-12-13  Li Yuan <li.yuan@sun.com>
-
-       Patch from Ariel Rios to fix #163132 and #377079.
-       * atk-bridge/bridge.c: (spi_atk_bridge_do_registration),
-       (spi_atk_bridge_get_registry_ior):
-       Use g_warning instead of g_error and g_critical to avoid crash.
-
-2006-12-11 Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/text.c:
-       (impl_getAttributeRun):Return an empty CORBA_seq instead of NULL,
-       if there are no non-default attributes defined at the current offset.
-       Fixes bug #372172.
-
-2006-12-04  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Role.idl: Fixed the documentation for
-       ROLE_FORM; bug #382271.  Thanks to George Kraft for finding this.
-       
-2006-12-04  Bill Haneman <bill.haneman@sun.com>
-       
-       * Added Li Yuan <li.yuan@sun.com> to MAINTAINERS.
-
-2006-11-07  Bill Haneman <bill.haneman@sun.com>
-
-       Patches from Padraig O'Briain for bugs #361386 and #369377.
-       
-       * registryd/registry.c:
-       (struct NotifyContext): Change the e_out
-       member from an Accessibility_Event struct to a pointer to 
-       struct.
-       (notify_listeners_cb): Modify to use the new struct definition above.
-       Allows use of ORBit_copy_value instead of CORBA_any__copy.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_button_update_and_emit): Free the event's any_data
-       after emission.
-       (spi_dec_mouse_check):Free the event details any struct
-       after emission.
-       (spi_device_event_controller_forward_mouse_event): Free any.
-       (spi_device_event_controller_forward_key_event): Ditto.
-       
-2006-11-07  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Uprev/release 1.7.13 for gnome 2.17.2.
-       Don't require gtk+ and gail for building most of at-spi
-       including libspi.
-
-       * registryd/registry-main.c (main): We now get te value of display
-       using the env var DISPLAY rather than using the gdk_display_get_default
-       to avoid dependancy of gdk. Also, once the registry is started, we set 
-       the ior of the registry as an X property.
-       (registry_set_ior): Set ior as the AT_SPI_IOR Root window property.
-
-       * atk-bridge/bridge.c (atk_bridge_init): We keep track whether 
-       the registration was successfull.
-       (spi_atk_bridge_do_registration): This function now returns success 
-       or not on activating the registry. 
-       (spi_atk_bridge_get_registry_ior): Look whether the AT_SPI_IOR property
-       has been set in the X root window and return it if available.
-       (spi_atk_bridge_get_registry): We now get the registry using the IOR 
-       saved as  a X property rather than using the OAFID. 
-
-2006-10-01  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Uprev/release 1.7.12 for gnome 2.16.1.
-
-2006-09-25  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/registry.c:
-       (desktop_remove_application): Don't pass a ref to the
-       dead application with the event, since it's probably
-       defunct and will cause SEGV if we try to unref, 
-       extract app name, etc.
-       Bug #353226.
-       
-2006-09-20  Bill Haneman <bill.haneman@sun.com>
-
-       Patch from Neo Liu <nian.liu@sun.com>,
-       bug #356688.
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_document_event_listener): New, for 
-       AtkDocument signals.
-
-2006-08-30  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/*.idl:
-       Changed some parameter names so as not to 
-       collide with class names - allows IDL to be compiled with
-       OMNIorb compiler.  Thanks to Gary Cramblitt for this patch.
-       
-2006-08-22  Bill Haneman <bill.haneman@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_signal_listener): 
-       Patch from Ginn Chen, assign detail1 in children-changed
-       so that the child object can be assigned to the Any when the
-       at-spi event is emitted.  Bug #350552.
-
-       * libspi/application.c:
-       (spi_application_finalize): Remove g_print debug output.
-       Bug #350958.
-       
-2006-08-21  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Revved to AT-SPI 1.7.11.
-
-       * libspi/accessible.c:
-       (spi_accessible_new): Aggregate Hyperlink interface
-       if the GObject is an ATK_HYPERLINK_IMPL. See bug #352227.
-
-       * libspi/hyperlink.c:
-       (spi_hyperlink_new): Don't aggregate Action a second time if this
-       interface is created for an AtkHyperlinkImpl object (i.e. for a 
-       child Accessible, as opposed to the Hyperlink instance from
-       Hypertext:getLink.
-       (get_hyperlink_from_servant): Obtain the hyperlink from
-       atk_hyperlink_impl_get_hyperlink, if ATK_IS_HYPERLINK_IMPL.
-       
-       Patch section from Ginn Chen...
-
-       * cspi/spi_accessible.c:
-       (_cspi_accessible_set_from_sequence): 
-       Changed g_newa to g_new0 on Ginn Chen's suggestion.
-
-       * libspi/accessible.c:
-       (impl_getAttributes): Fixed to use the AtkAttribute struct properly.
-       (spi_accessible_new): Add the Document interface if present.
-
-       * libspi/document.c:
-       (impl_getAttributes): Fixed to use AtkAttribute properly.
-
-       * libspi/text.c:
-       (impl_getAttributes, impl_getDefaultAttributes): 
-       (impl_getAttributeRun): Fixed to use AtkAttribute struct properly.
-       
-2006-08-17  Bill Haneman <bill.haneman@sun.com>
-
-       * cspi/spi-private.h, cspi/spi_accessible.c:
-       (_cspi_attribute_set_from_sequence): Renamed from
-       cspi_attribute_set_from_sequence, to suppress export.
-
-       * cspi/spi.h:
-       (SPIRelationType): Fixed typo in PARENT_WINDOW_OF 
-       inline docs, which was keeping the doc from appearing.
-       (SPIExceptionHandler): Doc this.
-       
-       * cspi/spi_document.c:
-       Added inline gtk-docs cut-n-pasted from the doxygen
-       docs in the corresponding IDL files.
-       (AccessibleDocument_getAttributes): Fix the retval here.
-
-       * cspi/spi_streamablecontent.c:
-       Fixed some 'Since' tags that were accidentally doxygen-style.
-
-       * cspi/spi_table.c:
-       (AccessibleTable_getRowColumnExtentsAtIndex): Cut and pasted
-       docs from the IDL file.
-
-       * docs/reference/cspi/at-spi-cspi-docs.sgml:
-       Added entities for Document and StreamableContent interfaces.
-
-       * docs/reference/cspi/at-spi-cspi-sections.txt:
-       Added some docs that were present inline but not getting
-       exported to HTML.
-       
-2006-07-31  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/text.c:
-       (impl_getRangeExtents): Use the atk_text_get_range_extents
-       API instead of looping over character bounds, now that
-       ATK includes it.
-       (impl_getBoundedRanges): Use atk_text_get_bounded_ranges.
-       (_spi_text_bounds_contain): Remove, not needed anymore.
-       (_spi_text_rect_union): Remove, not needed anymore.
-       
-2006-07-31  Bill Haneman <bill.haneman@sun.com>
-
-       * atk-bridge/bridge.c: 
-       (spi_atk_emit_eventv): Fix the CORBA_free call which was
-       causing 64-bit troubles and memory leaks.
-       Special thanks to Alexander Larsson who finally seems to 
-       have tracked down the problem, not just here but in
-       libspi/util.c...
-       
-       * libspi/util.c:
-       (spi_init_any_object): Make sure we copy the CORBA value
-       when initializing an object for passing as a CORBA_Any.
-       Bug #337239.
-       
-2006-07-21  Bill Haneman <billh@gnome.org>
-
-       * idl/Accessibility.idl:
-       Reverted pragma changes, this broke the build in some envs
-       including the Debian team's build and some tinderbox builds.
-       
-2006-07-19  Bill Haneman <billh@gnome.org> modifications to patch from
-
-       * configure.in:
-       Revved to 1.7.10, and edited the Xevie check (bug #319994).
-
-       * idl/Accessibility.idl:
-       Reworked inclusion of Bonobo_Unknown.idl, to 
-       avoid double-linking libs in the Bonobo environment.
-       Thanks to Michael Meeks for the workaround, see bug #313122.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_controller_notify_keylisteners): 
-       Set the SPI_NUMLOCK_MASK bit if the modifier 
-       corresponding to the conceptual numlock state is set.
-       Bug #143702.
-       
-2006-07-18  Bill Haneman <billh@gnome.org> modifications to patch from
-
-       * idl/Accessibility_Selection.idl:
-       (deselectChild): New method.
-
-       * libspi/selection.c:
-       (impl_deselectChild): Implement the new IDL method.
-
-       * cspi/spi.h:
-       (AccessibleSelection_deselectChild): Added new method.
-       
-       * cspi/spi_selection.c:
-       (AccessibleSelection_deselectChild): New method implemented.
-       
-2006-07-13  Bill Haneman <billh@gnome.org> modifications to patch from
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_init): Replace g_error with g_warning, prevent
-       SEGV if the registry cannot be activated. Bug #346393.
-       
-2006-07-12  Bill Haneman <billh@gnome.org> modifications to patch from
-
-       * po/LINGUAS: put LINGUAS where it belongs. Fixes i18n.
-       
-2006-07-12  Bill Haneman <billh@gnome.org> modifications to patch from
-2006-07-12  Ariel Rios  <arios@us.ibm.com>
-
-       See RFE #326536.
-       
-       * idl/Accessibility_Table.idl:
-       (getRowColumnExtentsAtIndex): New method for getting
-       selection status and extents in one API call.
-
-       * libspi/table.c:
-       (impl_getRowColumnExtentsAtIndex): Implementation of
-       new method above.
-       (spi_table_class_init): Add above to epv.
-
-       * cspi/spi.h:
-       * cspi/spi_table.c:
-       (AccessibleTable_getRowColumnExtentsAtIndex): New
-       method, retrieves selection status and row/col extents
-       for a table cell in a single API call.
-
-2006-07-12  Bill Haneman <billh@gnome.org> modifications to patch from
-2006-07-12  Ariel Rios  <arios@us.ibm.com>
-
-       * cspi/bonobo/cspi-bonobo.c: Remove warning adding <cspi/spi-private.h>
-
-       * cspi/spi_text.c: 
-       (AccessibleText_getAttributeRun,AccessibleText_getDefaultAttributes):
-       New bindings for new methods defined in idl and libspi.
-
-       * cspi/spi.h: 
-       (AccessibleText_getAttributeRun,AccessibleText_getDefaultAttributes):
-       Added prototype functions.
-
-       * libspi/text.c: 
-       (impl_getAttributeRun, impl_getDefaultAttributeSet): New method implementation
-       Bug #326520
-       (spi_text_class_init): Added previous methods.
-       
-       * libspi/spi.h:  
-       (impl_getAttributeRun, impl_getDefaultAttributeSet): Added prototypes
-       * libspi/spi-private.h: Corrections.
-
-2006-06-29  Bill Haneman <bill.haneman@sun.com>
-
-       Added Document interface (see bug #326520), 
-       with work from Ariel Rios <arios@us.ibm.com>.
-
-       * configure.in: Bump to 1.7.8.
-       
-       * libspi/Makefile.am: Added document.[ch] to sources 
-
-       * libspi/document.h: 
-       (SpiDocument, SpiDocumentClass):
-              New interface implementation.
-       (spi_document_get_type, spi_document_construct)
-       (spi_document_interface_new): New methods added. 
-       (SPI_DOCUMENT_TYPE, SPI_DOCUMENT)
-       (SPI_DOCUMENT_CLASS, IS_DOCUMENT, IS_DOCUMENT_CLASS): 
-       Added macros for SpiDocument 
-       for new object.                     
-
-       * libspi/document.c: 
-       (spi_document_interface_new): Get a  
-       new document interface. New.
-       (get_document_from_servant): Get an AtkDocument from servant New.
-       (impl_getLocale, impl_getAttributeValue, impl_getAttributes): 
-       Implementation of methods defined on idl.
-       (spi_document_class_init, spi_document_init) 
-       Init methods for SpiDocument. new
-
-       * idl/Accessibility.idl: Added Accessibility_Document.idl.
-
-       * cspi/Makefile.am: Added spi_document.c to sources.
-
-       * cspi/spi_document.c: 
-       (AccessibleDocument_ref, AccessibleDocument_unref):      Added.
-       (AccessibleDocument_getLocale, AccesibleDocument_getAttributeValue)
-       (AccessibleDocument_getAttributes): Bindings for methods defined
-       on libspi
-
-       * cspi/spi_accessible.c: 
-       (Accessible_isDocument, Accessible_getDocument) New.
-       * cspi/spi.h: 
-       (Accessible_isDocument, Accessible_getDocument)
-       (AccessibleDocument_ref, AccessibleDocument_unref)
-       (AccessibleDocument_getLocale, AccessibleDocument_getAttributeValue)
-       (AccessibleDocument_getAttributes): Bindings added.
-       
-       * idl/Makefile.am: Added Accessibility_Document.idl to
-       idl_DATA.
-       
-2006-06-29  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Document.idl: New interface
-       for complex documents.  First stage of fix for RFE
-       #326520.
-       
-2006-06-27  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/streamablecontent.c:
-       (impl_content_stream_close):
-       Unref the GIOChannel on close.
-       
-2006-06-23  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Role.idl: 
-       * libspi/accessiblerole.c:
-       * cspi/spi_accessible.c: Added ROLE_LINK,
-       ROLE_REDUNDANT_OBJECT, and ROLE_INPUT_METHOD_WINDOW.
-       Bug #345758 and bug #140635.
-
-       
-2006-06-22  Bill Haneman <bill.haneman@sun.com>
-
-       Bug #345701.
-       
-       * idl/Accessibility_StreamableContent.idl:
-       Fix derivation of StreamableContent and ContentStream.
-
-       * cspi/spi_streamablecontent.c:
-       (accessible_content_stream_client_read):
-       Fix the datatype of the content stream used.
-       Interpret short reads as EOF, and stop trying to 
-       read when we've fulfilled the request.
-       (AccessibleStreamableContent_getContentTypes):
-       Use g_strdup, not CORBA_string_dup, for the strings.
-       (AccessibleStreamableContent_open):
-       Correctly use the new getStream method for opening,
-       not the deprecated getContent method.
-       Use the object reference as the stream hash key.
-       Make note of the 'one stream per client per streamable'
-       limitation in the docs.
-       
-       * libspi/libspi.h:
-       Add streamablecontent.h to the list of #includes.
-
-       * libspi/streamablecontent.c:
-       (impl_content_stream_read): Initialize the GError.
-       Allocate the incoming buffer if reading a fixed length of
-       data.  Use g_memmove instead of memcpy.
-       (impl_accessibility_streamable_get_content_types):
-       Init typelist->_maximum.  Only allocate the buffer if
-       there is a non-zero number of content types available.
-       (BONOBO_TYPE_FUNC_FULL(SpiStreamable): Move to end.
-
-       * libspi/streamablecontent.h:
-       (SPI_STREAMABLE_TYPE): Fix this macro, it was totally broken.
-
-       * libspi/value.h: 
-       (SPI_IS_VALUE): Fix a typo in this macro too.
-       
-2006-06-16  Bill Haneman <bill.haneman@sun.com>
-
-       RFE #326532:
-       
-       * idl/Accessibility_StreambleContent.idl:
-       Deprecate the Bonobo_Stream-based methods in favor of
-       a self-contained "ContentStream" interface.  This should 
-       allow us to remove BonoboStream dependencies entirely, since
-       there were no non-NIL implementations of the old methods anyway.
-       (ContentStream): New interface.
-       (ContentStream::SeekType): Enum.
-       (ContentStream::seek): New.
-       (ContentStream::read): New.
-       (ContentStream::close): New.
-       (getContent): Deprecate.
-       (getURI): New method, returns a URI pointing to the content, if available.
-       
-       * libspi/streamablecontent.c:
-       (SpiContentStream): Internal object type definition used to
-       implement Accessibility::StreamableContent::ContentStream via
-       AtkStreamableContent's GIOChannel back-end.
-       (spi_content_stream_new, spi_content_stream_dispose): See above;
-       static methods.
-       (impl_content_stream_seek, impl_content_stream_read):
-       (impl_content_stream_close): New, implementations of
-       ContentStream's IDL.
-       (impl_accessibility_streamable_get_stream): Implement the 
-       public method Accessibility::StreamableContent::getStream.
-       (impl_accessibility_streamable_get_uri): Implement the 
-       public method Accessibility::StreamableContent::getURI.
-
-       * cspi/spi_streamablecontent.c:
-       (accessible_bonobo_stream_client_seek): Replaced by
-       (accessible_content_stream_client_seek).
-       (accessible_bonobo_stream_client_read): Replaced by
-       (accessible_content_stream_client_read).
-       (AccessibleStreamableContent_open):
-       (AccessibleStreamableContent_seek):
-       (AccessibleStreamableContent_read):
-       (AccessibleStreamableContent_close): Use the new 'getStream'
-       API instead of the deprecated 'getContent' API, inside the cspi wrappers.
-       
-2006-06-15  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility.idl: #include Bonobo_Unknown.idl,
-       remove from other .idl files (except LoginHelper).
-       See bug #313122.
-
-2006-06-14  Bill Haneman <bill.haneman@sun.com>
-
-       * */Makefile.am: Add WARN_CFLAGS to INCLUDES.
-       Bug #308239.
-
-       * configure.in, */Makefile.am: mingw patch, modified from
-       original patch by yselkowitz.  Bug #314216.
-
-       * cspi/spi-impl.h: Added #defines SPI_TRUE and SPI_FALSE
-       for completeness.  Bug #163111.
-
-       * atk-bridge/bridge.c, cspi/bonobo/cspi-bonobo.c:
-       * libspi/util.c,  registryd/registry-main.c:
-       Fix guint/char* casts.
-       Patch from chpe, bug #333883.
-       
-2006-06-12  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Require atk-1.12.0, to pick up
-       new API. (bug #344412).
-
-       * libspi-1.0-uninstalled.pc.in:
-       * libspi-1.0.pc.in:
-       * libloginhelper-1.0.pc.in: Remove gtk+ dependency.
-       Fix for #341488 from Samual Thibault.
-
-       * configure.in, LINGUAS: Use LINGUAS, bug #338023.
-       Thanks to Brian Pepple.
-       
-2006-06-09  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/table.c:
-       (impl_get_nSelectedRows, impl_get_nSelectedColumns):
-       New, missing implementations of attribute reading methods
-       in epv.  Bug #339021.
-
-       * cspi/spi.h, spi_value.c:
-       (AccessibleValue_getMinimumIncrement): New methods wrapping 
-       the (formerly unimplemented) property from Value.idl.
-       
-       * libspi/value.c:
-       (impl_get_minimumIncrement): Implementation for retrieving
-       the minimum valuator increment, (formerly unimplemented).
-       Bug #344265.
-       
-2006-06-09  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_State.idl:
-       Added STATE_VISITED (bug #338369).
-       
-       * cspi/spi_accessible.c: 
-       (spi_state_to_corba) Fixed marshalling of new statetypes.
-       
-       * libspi/stateset.c:
-       (spi_init_state_tables, impl_getStates): 
-       Fixed conversion of new statetypes to/from ATK.
-
-       * idl/Accessibility_Role.idl: Added ROLE_FORM (bug #344266).
-
-       * cspi/spi-roletypes.h, spi_accessible.c: Added marshalling 
-       definitions/conversions for new roles from ATK.
-
-       * idl/Accessibility_Relation.idl:
-       * libspi/relation.c:
-       * cspi/spi.h, spi_accessible.c: Added SPI_RELATION_DESCRIBED_BY and 
-       SPI_RELATION_DESCRIPTION_FOR.  (bug #344264) Also
-       SPI_PARENT_WINDOW_OF, which was in ATK but not AT-SPI.
-
-       * libspi/accessible.c: Fixed marshalling of new role types from
-       ATK.
-       
-2006-04-17  Matthias Clasen  <mclasen@redhat.com>
-
-       * revert my previous change
-
-2006-04-17  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * configure.in: Remove obssolete no_NO locale
-       * po/no.po: And the translation.
-
-2006-04-05  Matthias Clasen  <mclasen@redhat.com>
-
-       * atk-bridge/bridge.c (spi_atk_emit_eventv): Fix a 
-       memory-management error that caused crashes on x86_64.
-       (#337239)
-
-2006-03-30  Guntupalli Karunakar  <karunakar@indlinux.org>
-
-       * configure.in: Added 'dz' (Dzongkha) to ALL_LINGUAS.
-
-2006-03-27  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Define $LIBTOOL_EXPORT_OPTIONS
-       to strip "cspi_*" from the symbol table.
-       
-       * cspi/spi_streamablecontent.c:
-       (get_streams): Make this method static.
-
-       * cspi/spi_main.c:
-       (_cspi_exception_throw): rename to cspi_exception_throw,
-       so we can strip it with the rest...
-
-       * cspi/Makefile.am:
-       Add LIBTOOL_EXPORT_OPTIONS to libcspi_la_LDFLAGS.
-       
-2006-03-27  Bill Haneman <bill.haneman@sun.com>
-
-       Add doxygen-generated IDL docs to tarball, and enable 
-       doxygen during build/install when available.  Bug #301345.
-       
-       * configure.in: Add docs/reference/idl/Makefile to AC_OUTPUT.
-
-       * docs/reference/Makefile.am: Add idl to SUBDIRS.
-
-       * docs/reference/idl/Makefile.am: Optionally use
-       doxygen to create docs.
-       
-2006-03-20  Vladimer Sichinava  <vlsichinava@gmail.com>
-
-        * configure.in: Added "ka" (Georgian) to ALL_LINGUAS
-
-2006-03-20  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/table.c:
-       (impl_get_selected_rows): Don't free the selection if it's
-       empty or has not been assigned; init it to NULL so you can tell.
-       Also, allow for zero selected rows.
-       (impl_getSelectedColumns): Ditto.  Bug #319088.
-
-2006-03-11  Vincent Untz  <vuntz@gnome.org>
-
-       Leak fix for bug #334217.
-
-       * libspi/application.c: spi_application_toolkit_event_listener():
-       don't duplicate the string we pass as an argument to
-       spi_init_any_nil() since spi_init_any_nil() already does it
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_button_update_and_emit): ditto
-       (spi_dec_mouse_check): ditto
-       (spi_dec_emit_modifier_event): ditto
-       (spi_device_event_controller_forward_mouse): ditto
-       * registryd/registry.c:
-       (desktop_add_application): ditto
-       (desktop_remove_application): ditto
-
-2006-02-20  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Rev to 1.7.6.
-
-       Leak fixes for bug #331924.
-       
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_init_base): Don't dup the string, it's already
-       been dup-ed.  Fixes a leak.
-       (spi_atk_emit_eventv): Move the CORBA_free call here, 
-       instead of spi_atk_state_event_listener; fixes another leak.
-       (spi_atk_bridge_key_listener):Free the dup'ed key strings after
-       notifying the registry; fixes another leak.
-
-       * registryd/registry.c:
-       (registry_flush_event_queue): Free the CORBA_any when 
-       flushing the event, not just the string.  Fixes another leak.
-       (registry_queue_event): Free the CORBA_any when dropping
-       events on the floor; fixes another leak.
-
-       * libspi/util.c:
-       (spi_init_any_object, spi_init_any_nil): 
-       Always set _release to TRUE.  Fixes another leak.
-
-2006-02-20  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Rev to 1.7.5.
-       Reinstate localization of this module.  Thanks for Rodney
-       Dawes for fixing my patch.
-
-       * registryd/Makefile.am: Remove Accessibility_Registry.server 
-       from dist, since it needs to be re-created at configure time.
-       Fixes bug #3331484.
-       
-2006-01-31  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Rev to 1.7.4 (to include build fix below).
-       
-       * idl/Makefile.am: Include Selector.idl in dist.
-       Fixes bug #328859.
-
-       * cspi/spi_event.c:
-       (cspi_internal_event_get_object): Handle case where
-       "object" isn't present, i.e. CORBA_TC_Object doesn't match
-       the EventDetails data.
-       (cspi_internal_event_get_text): Handle NULL string.
-       (cspi_internal_event_get_rect): Handle missing/empty rect
-       data, Accessibility_TC_RectBounds doesn't match any_data.
-
-2006-01-30  Bill Haneman <billh@gnome.org>
-
-       * Released 1.7.3.
-
-       * atk-bridge/bridge.c:
-       (spi_atk_emit_eventv): Check for SPI_REMOTE_OBJECT 
-       interface and use that when instantiating a new source
-       accessible.  Better fix for bug #321814.
-       
-2006-01-27  Bill Haneman <billh@gnome.org>
-
-       * idl/Accessibility_Selector.idl: Added to the cvs repository.
-
-       * configure.in: Revved to 1.7.3.
-       
-2006-01-17  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.7.2, re-dist to include docs.
-
-2006-01-09  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Removed po/Makefile.in inclusion, we do not need
-       it.  Revved to 1.7.0.
-
-       * idl/Accessibility.idl: Improved documentation here, and for all
-       IDL in the 'GNOME::Accessibility' namespace.
-
-       * idl/Accessibility_Accessible.idl:
-       (LOCALE_TYPE): Added enum.
-       (AttributeSet): New, for returning multiple name/value attribute pairs.
-       (RoleSet): New, sequence of Roles, to be used in upcoming
-       Collection API.
-       (getAttributes): New API, allows retrieval of name/value pair
-       annotations for all kinds of Accessible objects.  C.f. 
-       Text:getAttributes, which is only for typographic/textual/semantic tags in
-       text content.
-       (getApplication): New, retrieves the host/containing Application
-       instance for an object (without having to walk up the whole tree).
-
-       * idl/Accessibility_Component.idl:
-       (getAlpha): New method, returns the alpha blending (aka 'opacity')
-       value for an object.  An alpha of 1.0 is fully opaque, 0.0 is
-       fully transparent.
-
-       * idl/Accessibility_Event.idl:
-       (EventDetails): New struct definition, for encapsulating
-       commonly-queried information about emitted events.  The use of
-       this structure in emitted events (in the 'any' member of
-       Accessibility_Event) should greatly reduce the number of
-       client-server roundtrips necessary.
-
-       * idl/Accessibility_Image.idl:
-       (imageLocale): New, a readonly attribute indicating the POSIX 
-       LC_MESSAGES locale of the image and associated Alt/descriptive
-       text.
-
-       * idl/Accessibility_Relation.idl:
-       (RELATION_PARENT_WINDOW_OF): Include, as complement to
-       RELATION_POPUP_FOR.
-
-       * idl/Accessibility_Role.idl:
-       (ROLE_ENTRY, ROLE_CHART, ROLE_CAPTION, ROLE_DOCUMENT_FRAME)
-       (ROLE_HEADING, ROLE_PAGE, ROLE_SECTION): New roles for
-       complex document and form support.
-
-       * idl/Accessibility_State.idl:
-       (STATE_REQUIRED, STATE_TRUNCATED, STATE_ANIMATED)
-       (STATE_INVALID_ENTRY, STATE_SUPPORTS_AUTOCOMPLETION)
-       (STATE_SELECTABLE_TEXT, STATE_IS_DEFAULT): New states,
-       for support of complex documents and forms.
-
-       * idl/Accessibility_StreamableContent.idl:
-       (SeekType, IOError, NotSupported, NoPermission): New enum and exceptions, to
-       allow old bonobo-stream interfaces to be deprecated in the next
-       release.
-
-       * idl/Accessibility_Text.idl:
-       (getAttributeValue): New method, allows query-by-name of single
-       attributes.
-
-       * libspi/accessible.c:
-       Added support for new roles.  Implemented new methods
-       (impl_accessibility_accessible_get_application): New
-       (impl_accessibility_accessible_get_attributes): New
-
-       * libspi/component.c:
-       (impl_accessibility_component_get_alpha): New.
-
-       * libspi/image.c:
-       (impl_accessibility_image_get_locale): New.
-
-       * libspi/relation.c: Added support for new relation type.
-
-       * libspi/stateset.c: Added support for new state types.
-
-       * libspi/text.c: 
-       (impl_getAttributeValue): New.
-       
-       * libspi/util.c:
-       New prototypes for private methods
-       spi_init_any_nil,
-       spi_init_any_object, spi_init_any_string,
-       spi_init_any_rect.
-       
-       * libspi/spi_event.c: 
-       Use EventDetails in the event emission methods.
-
-       * cspi/spi-private.h:
-       (cspi_role_from_spi_role): Expose this adapter method, since
-       we need it in the bridge (see below).
-
-       * cspi/spi.h:
-       (AccessibleEvent_getSourceName):
-       (AccessibleEvent_getSourceRole):
-       (AccessibleEvent_getSourceApplication):
-       (AccessibleEvent_getSourceDetails):
-       New methods for interrogating/demarshalling
-       event details (i.e. source's accessible name, role, 
-       and host app).
-
-       * cspi/spi_accessible.c: Use cspi_role_from_spi_role.
-       Make use of the new EventDetails struct in events, if present.
-       (AccessibleEvent_getSourceName)
-       (AccessibleEvent_getSourceRole)
-       (AccessibleEvent_getSourceApplication)
-       (AccessibleEvent_getSourceDetails): Implement the newly exposed
-       methods from spi.h.
-       (Accessible_getAttributes): New, wraps
-       Accessibility_Accessible_getAttributes.
-       (Accessible_getHostApplication): New, wraps
-       Accessibility_Accessible_getApplication.
-
-       * cspi/spi_image.c:
-       (AccessibleImage_getImageLocale): New wrapper for
-       Accessibility_Image_get_imageLocale.
-
-       * cspi/spi_component.c:
-       (AccessibleComponent_getAlpha): New wrapper for
-       Accessibility_Component_getAlpha.
-       
-       * atk-bridge/bridge.c:
-       Use new prototyped for init_any methods.
-       (spi_atk_bridge_init_nil, spi_atk_bridge_init_object)
-       (spi_atk_bridge_init_string, spi_atk_bridge_init_rect)
-       (spi_atk_bridge_init_base): Wrappers
-       for spi_init_any_* methods, due to refactor; include extended
-       information in the Accessibility_EventDetails struct, for instance
-       accessible-name, Role, and containing Application.
-
-       * registryd/registry.c: 
-       Use new event emission (with EventDetails).
-       
-       * registryd/deviceeventcontroller.c:
-       Use new event emission (with EventDetails).
-
-2006-01-09  Kjartan Maraas <kmaraas@gnome.org>
-
-       * configure.in: Generate po/Makefile.in
-       * cspi/spi_main.c: Add #ifdef PRINT_LEAKS around a function
-       * cspi/spi_streamablecontent.c: 
-       (accessible_bonobo_stream_client_seek),
-       (AccessibleStreamableContent_seek): Remove unused vars.
-       * libspi/application.c: Missing header.
-       * libspi/text.c: (impl_getDefaultAttributes): Unused vars
-       * login-helper/login-helper.c: (login_helper_finalize),
-       (login_helper_init): Remove unused stuff
-       * registryd/deviceeventcontroller.c: (spi_dec_replace_map_keysym),
-       (spi_dec_init_mouse_listener), (is_key_released): Remove unused vars
-       and surround some with #ifdef GRAB_BUTTON.
-       * test/event-listener-test.c: (main), (report_event),
-       (report_caret_event), (report_detail_event),
-       (report_detail1_event), (report_bounds_event), (report_text_event),
-       (report_text_selection_event),
-       (report_active_descendant_changed_event),
-       (report_children_changed_event), (report_name_changed_event),
-       (report_description_changed_event), (report_parent_changed_event),
-       (report_window_event), (report_table_summary_event),
-       (report_table_header_event), (report_table_caption_event),
-       (report_table_row_description_event),
-       (report_table_column_description_event), (timing_test_event):
-       Remove a bunch of unused variables and fix a slew of format specifiers
-       * test/key-listener-test.c: (report_all_key_event): Format specifier
-       * test/keypad-test.c: (print_key_event): Same
-       * test/login-helper-server-test.c: (main): Include gtkmain.h and remove
-       unused var.
-       * test/screen-review-test.c: (main), (print_chunk_debug),
-       (review_buffer_get_text_chunk), (debug_chunk_list),
-       (string_guess_clip), (text_chunk_get_clipped_string),
-       (text_chunk_list_to_string), (get_screen_review_line_at):
-       Remove unused variables and fix format specifiers.
-       * test/simple-at.c: (report_text_event): Format specifier fix.
-       * test/stress-test.c: (main): Remove unused var.
-
-2005-12-29  Abel Cheung  <maddog@linuxhall.org>
-
-       * configure.in: Add zh_HK, zh_TW to ALL_LINGUAS
-       (yes I know that's useless)
-
-2005-11-20  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * configure.in: Added "th" (Thai) to ALL_LINGUAS.
-
-2005-11-17  Michael Meeks  <michael.meeks@novell.com>
-
-       * atk-bridge/bridge.c (spi_atk_emit_eventv): 
-       urgh-fix embarassing typo.
-
-2005-11-16  Michael Meeks  <michael.meeks@novell.com>
-
-       * atk-bridge/bridge.c (spi_atk_emit_eventv):
-       do a faster, less problematic _unref call on this local
-       object, rather than a slower (potentially cross-thread
-       complicated) CORBA call.
-
-2005-11-02  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * atk-bridge/bridge.c: (spi_atk_bridge_signal_listener):
-       * cspi/spi_streamablecontent.c: (AccessibleStreamableContent_seek):
-       * registryd/deviceeventcontroller.c:
-       (spi_controller_notify_mouselisteners),
-       (impl_generate_keyboard_event):
-       * test/screen-review-test.c: (chunk_bounds_within):
-       * test/test-simple.c: (test_desktop): Remove some unused code
-       and fix compiler warnings. Closes bug #320049.
-
-2005-10-27 Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       (spi_controller_notify_keylisteners): Check
-       to make sure the event listener has requested 'preemptive'
-       status before pre-empting an event.
-       
-2005-08-29 Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in, README, NEWS: Release 1.6.5.
-       
-2005-07-25  Matthias Clasen  <mclasen@redhat.com>
-
-       * test/window-listener-test.c: Fix a printf
-       format error.  (#169453)
-
-2005-07-15  Bill Haneman <bill.haneman@sun.com>
-
-       * tests/test-simple.c: 
-       (key_listener_cb): Ensure that the keystring is dup'ed instead of
-       relying on the old string from the key event hanging around after
-       the event handler returns.  Fixes broken 'make check'.
-       
-2005-06-06  Swapnil Hajare  <dreamil@gmail.com>
-
-       * Added Marathi (mr_IN) translations.
-
-2005-05-27  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       (cspi_event_list_remove_by_cb): Fix the build.
-
-2005-05-26  Michael Meeks  <michael.meeks@novell.com>
-
-       * cspi/bonobo/cspi-bonobo-listener.c
-       (cspi_event_list_remove_by_cb): actually filter by callback.
-
-2005-05-25  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/registry.c (remove_listener_cb):
-       Make deregistration filter rules match the event emission rules.
-
-2005-05-25  Michael Meeks  <michael.meeks@novell.com>
-
-       * registryd/registry.c (remove_listener_cb),
-       (impl_accessibility_registry_deregister_global_event_listener),
-       (impl_accessibility_registry_deregister_global_event_listener_all): 
-       pass a closure to the remove callback to filter listeners more
-       accurately on remove.
-
-2005-04-05  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Revved to 1.6.4.
-       Remember to put quotes around XEVIE_LIBS assignment.
-       Fixed one of tertiary AC_CHECK_HEADER tests for XEvie.
-       Fixes bug #303694.
-
-       * tests/event-listener-test.c: Tweaked the tests - more detail
-       from caret events, and some interrogation of AccessibleText APIs.
-       Commented-out the bounds-changed events by default, since they can
-       be very noisy.
-
-2005-04-14  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * atk-bridge/bridge.c: (spi_atk_emit_eventv): Plug a leak.
-       * cspi/bonobo/cspi-bonobo-listener.c: (cspi_device_event):
-       Same here. Closes bug #167806
-
-2005-04-05  Bill Haneman <bill.haneman@sun.com>
-
-       * atk-bridge/bridge.c: 
-       (spi_atk_bridge_signal_listener):
-       Free the any._value if any._release is TRUE,
-       since the ORB won't do it for us in this case
-       [because this method is not a skel].
-       Fix for bug #168679.    
-       
-2005-03-30  Steve Murphy  <murf@e-tools.com>
-
-       * configure.in: Added "rw" to ALL_LINGUAS.
-
-2005-03-29  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Improved check for HAVE_XEVIE, to detect 
-       presence on XOrg, where -lXevie is a separate library.
-
-2005-03-08  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in, NEWS, README: Revved to 1.6.3.
-
-2005-02-16  Adi Attar  <aattar@cvs.gnome.org>
-
-       * configure.in: Added "xh" to ALL_LINGUAS.
-
-2005-02-07  Bill Haneman <bill.haneman@sun.com>
-
-       * atk-bridge/bridge.c: 
-       (atk_bridge_init): Added missing NULL in g_strconcat(),
-       also check for symlink before logging to 
-       insecure directory.  Thanks to meissner@suse.de.
-
-2005-01-25  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * tests/login-helper-server-test.c: Add return call to main
-       function. Patch from Chris Lahey. Fixes bug #165129.
-
-2004-12-20  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi.h: Add description for SPI_RELATION_SUBWINDOW_OF.
-
-2004-12-09  Bill Haneman <billh@gnome.org>
-
-       * registryd/registry-main.c:
-       Added #define <string.h> for strrchr. (bug 160862).
-       Thanks to Vincent Berger for catching.
-       
-2004-12-09  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c (spi_atk_get_registry): Do not attempt to
-       restart registry process if the registry process is found to have died
-       and the current process is exiting.
-       (spi_atk_bridge_exit_func): Do not attempt to deregister the
-       application if the registry process has died.
-       (spi_atk_emit_eventv): Return if call to spi_atk_get_registry
-       does not return a registry object.
-       (spi_atk_tidy_windows): Give up if the registry process has died.
-
-       This fixes problems with hangs and crashes when logging out.
-
-2004-12-03  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/desktop.c: Add checking that we are not exiting before
-       calling spi_desktop_remove_application in 
-       abnormal_application_termination. Fix for bug #152147.
-
-2004-12-02  Bill Haneman <billh@gnome.org>
-
-       * configure.in, NEWS, README: Revved to 1.6.1.
-       
-       Patch from Padraig O'Briain <padraig.obriain@sun.com>
-       * atk-bridge/bridge.c:
-       (atk_bridge_init): Save the pid when we start, to detect forks.
-       (spi_atk_bridge_exit_func): Don't call the cleanup routines
-       if we're in a forked pid.
-       
-2004-10-09  Bill Haneman <billh@gnome.org>
-
-       * idl/Accessibility_LoginHelper.idl:
-       Improved inline documentation.
-
-2004-10-02  Jesus Bravo Alvarez  <suso@trasno.net>
-
-       * configure.in: Added gl (Galician) to ALL_LINGUAS
-
-2004-09-30  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * libspi/accessible.c:
-       (impl_accessibility_accessible_get_role_name),
-       (impl_accessibility_accessible_get_local_role_name):
-       NULL vs. 0 cleanups.
-       * libspi/component.c:
-       (impl_accessibility_component_get_accessible_at_point):
-       Same here.
-       * libspi/eventlistener.c: (spi_event_listener_new):
-       ANSIfication.
-       * libspi/stateset.c: (impl_compare): More of the same
-       * libspi/table.c: (impl_getRowDescription): Again.
-       * registryd/desktop.c: (spi_atk_desktop_get_type): Same
-       * registryd/deviceeventcontroller.c: (spi_clear_error_state),
-       (impl_generate_keyboard_event): Same.
-       * registryd/registry-main.c: (main): Same
-       * test/event-listener-test.c: (test_exit): Same
-       * test/keysynth-demo.c: (scan_state), (create_vkbd): Same
-       * test/keysynth-test.c: (test_key_synthesis): Same
-       * test/login-helper-server-test.c: (main): Fix warning.
-       * test/screen-review-test.c: (test_exit): Fix include.
-       * test/simple-at.c: (simple_at_exit), (_festival_init):
-       ANSIfication.
-
-2004-09-13  Padraig O'Briain <padraig.vriain@sun.com>
-
-       * configure.in, NEWS, README: Revved to 1.6.0.
-
-2004-09-12  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Rev and re-dist, since the 1.5.4 tarball
-       was missing the HTML docs.
-
-2004-09-12  Tomasz Kłoczko <kloczek@pld.org.pl>
-
-       * configure.in: only cleanups:
-       - better looking PKG_CHECK_MODULES() output,
-       - justification,
-       - declare in one common place required versions of other tools using
-         m4_define().
-
-2004-09-11  J.H.M. Dassen (Ray) <jdassen@debian.org>
-
-       * configure.in: libspi/accessible.c uses ATK_ROLE_EMBEDDED
-       (unconditionally) which was introduced in ATK 1.7.2. Bumped the
-       required ATK version accordingly.
-
-2004-09-03 Bill Haneman    <bill.haneman@sun.com>
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_display_name): Fix C99ism.
-       * atk-bridge/bridge.c:
-       (spi_display_name): Fix C99ism.
-       Patch from Jens Granseuer, jensgr@gmx.net.
-       
-2004-09-03  Gora Mohanty  <gmohanty@cvs.gnome.org>
-       * configure.in: Added "or" to ALL_LINGUAS.
-
-2004-08-20  Bill Haneman    <bill.haneman@sun.com>
-
-       * configure.in, NEWS, README: Revved to 1.5.4.
-       
-       * registryd/registry-main.c:
-       (main): Set the reg_env to use AT_SPI_DISPLAY instead of
-       $DISPLAY.  
-       
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_display_name): New convenience method, gets DISPLAY with
-       screen number stripped, if AT_SPI_DISPLAY isn't already set.
-       (cspi_init): Set the activation env value above before getting
-       the registry.
-       
-       * atk-bridge/bridge.c:
-       (spi_display_name): Create the AT_SPI_DISPLAY activation
-       environment for an app, based on the DISPLAY environment with the
-       screen number stripped off.
-       (atk_bridge_init):  Allow redirection of error messages to a log.
-       (spi_atk_bridge_get_registry): Call
-       bonobo_activation_set_activation_env_value for AT_SPI_DISPLAY.
-
-       Fixes for bugs #149962, #136986, #144086.
-       
-2004-08-16  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "bs" to ALL_LINGUAS.
-
-2004-08-12  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * configure.in: Added nb to ALL_LINGUAS.
-
-2004-09-03 Bill Haneman <bill.haneman@sun.com>
-
-       * cspi/spi_main.c:
-       (SPI_init): Return error code '2' if the activated
-       registry cannot be pinged. Fixes bug #147648.
-       
-2004-07-28 Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_init_mouse_listener): Don't do XGrabButton, 
-       rely on timer-poll instead, to avoid conflict with 
-       xstroke.
-       
-2004-07-20  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Revved to 1.5.3.
-
-       * idl/Accessibility_Role.idl: Added ROLE_EMBEDDED (bug #144415).
-
-       * libspi/accessible.c: Added support for ROLE_EMBEDDED.
-
-       * cspi/spi_accessible.c: Support for ROLE_EMBEDDED.
-
-       * cspi/spi-roletypes.h: Added SPI_ROLE_EMBEDDED.
-       
-2004-06-11  Bill Haneman <bill.haneman@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_do_registration): 
-       Register with ATK for AtkComponent:bounds-changed events.
-       (api_atk_bridge_signal_listener): 
-       Marshal the AtkRectangle info into the event notification
-       for object:bounds-changed events.
-       
-       * libspi/util.c:
-       (spi_init_any_rect): New method, inits a corba struct of
-       type Accessibility_BoundingBox from an AtkRectangle.
-
-       * libspi/spi-private.h: Declared spi_init_any_rect (above).
-       
-       * cspi/spi.h:
-       (SPIRect): New struct definition.
-       (SPI_freeRect): New declaration.
-       (AccessibleBoundsChangedEvent_getNewBounds): New, see below.
-
-       * cspi/spi_event.c:
-       (AccessibleBoundsChangedEvent_getNewBounds): New method,
-       implemented.  Gets the bounding box data from the CORBA_any
-       associated with a bounds-changed event notification.
-       (cspi_internal_event_get_rect): New, used internally by above method.
-       
-       * cspi/spi_main.c:
-       (SPI_freeRect): Implemented this new method, for freeing
-       SPIRect structs.
-       
-       * test/event-listener-test.c:
-       (main, report_bounds_event):
-       Added a test for object:bounds-changed events.
-       
-2004-06-01  Bill Haneman <bill.haneman@sun.com>
-
-       * test/login-helper-server-test.c:
-       (main): Fix C99-ism.  Thanks to Jens Granseuer.
-       
-2004-05-28  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * libloginhelper-1.0.pc.in:
-       * idl/Accessibility_LoginHelper.idl: 
-       * login-helper/Makefile.am:
-       * login-helper/login-helper.[ch]:
-       * test/login-helper-client-test.c:
-       * test/login-helper-server-test.c: Added files missing from CVS.
-       Files obtained from at-spi-1.5.2 tarball.
-
-2004-05-27  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Create login-helper/Makefile.  
-       Incremented micro version.
-
-       * Makefile.am:  Add login-helper subdir and pkgconfig data.
-       
-       * login-helper: New subdir.
-
-       * libloginhelper-1.0.pc.in: New.
-
-       * idl/Accessibility_LoginHelper.idl: New file, defines
-       interface whereby authentication clients can identify agents which
-       need access to services during the login process, e.g. screen lock
-       dialogs, etc.
-
-       * login-helper/Makefile.am : New.
-
-       * login-helper/login-helper.[ch] : New, implementation of
-       a LoginHelper base class.  Services needing LoginHelper can subclass.
-
-       * test/Makefile.am : Added test for login-helper, client and
-       server.
-
-       * test/app.c, at.c, keypad-test.c, keysynth-test.c, stress-test.c:
-       Use proper prefix in #include files.
-
-       * test/login-helper-client-test.c: New.
-       
-       * test/login-helper-server-test.c: New.
-
-2004-05-27  Alexander Shopov <ash@contact.bg>
-
-       * configure.in (ALL_LINGUAS): Added "bg" (Bulgarian)
-
-2004-05-14  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_main.c (cspi_object_unref): Add check that reference count
-       is positive. This should make it easier to detect inapprorpiate unref
-       calls.
-
-2004-05-11  James Henstridge  <james@daa.com.au>
-
-       * configure.in: remove GNOME_PLATFORM_GNOME_2 macro, which is a
-       no-op and deprecated.
-
-2004-05-03  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * configure.in: Added "wa" (Walloon) to ALL_LINGUAS.
-
-2004-04-28 Bill Haneman <billh@gnome.org>
-
-       * Makefile.am: Added --enable-gtk-doc to
-       DISTCHECK_CONFIGURE_FLAGS; fixes make distcheck.
-       
-2004-04-19 Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.5.1.
-
-       * registryd/deviceeventcontroller.c:
-       #define XK_LATIN1.
-       (DEControllerPrivateData): Added fields for 
-       reserved_keycode, reserved_keysym, and reserved_reset_timeout.
-       (spi_dec_replace_map_keysym): New internal utility for
-       replacing a keysym in the keymap - used to allow
-       synthesis of individual characters which aren't in the
-       current X keymap.
-       (spi_dec_reset_reserved): New; resets the changed keysym value 
-       in the map.
-       (keycode_for_keysym): We now try to deal with failed
-       XKeysymToKeycode requests by changing a keymap value
-       and returning a reserved keycode.  We now take 
-       a DEController pointer as first arg.
-       (spi_controller_register_with_devices): Call XkbGetMap with 
-       the XkbKeySymsMask.  Find the highest keycode in the current
-       keymap which doesn't have any grabs, and mark that one for
-       temporary re-mapping when out-of-range KeySyms are synthesized.
-       (dec_synth_keycode_press): Call XFlush after synthesizing the key
-       event.
-       
-2004-04-08  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * configure.in: Added "gu" (Gujarati) to ALL_LINGUAS.
-
-2004-03-24  Alexander Winston  <alexander.winston@comcast.net>
-
-       * configure.in: Added "en_CA" (Canadian English) to ALL_LINGUAS.
-
-2004-03-24  Bill Haneman <billh@gnome.org>
-
-       * cspi/spi.h:
-       (AccessibleTable_addRowSelection),
-       (AccessibleTable_addColumnSelection),
-       (AccessibleTable_removeRowSelection),
-       (AccessibleTable_removeColumnSelection):
-       Add declarations for spi wrappers which were
-       inadvertantly omitted.  Fixes bug #133413.
-
-       * configure.in:
-       Revved to 1.5.0 (unstable series for GNOME 2.7).
-       
-2004-03-24  Bill Haneman <billh@gnome.org>
-
-       * atk-bridge/bridge.c:
-       Bracketed some debug output in 
-       conditionals, to avoid printing it in normal use.
-       Fixes bug #136660.
-
-       * libspi/hyperlink.c:
-       Don't cast 'object' to ATK_OBJECT when constructing
-       an AtkAction interface for a hyperlink.
-       See discussion in bug #120659.
-
-       * test/key-listener-test.c:
-       (report_all_key_event): Send output to stderr,
-       not stdout, for consistency with the rest of the test callbacks.
-
-       * configure.in:
-       Add -lXext to XINPUT_LIBS. Fix for bug #132237.
-       Don't add X_LIBS to CFLAGS (Fix for bug #134332).
-       Incremented to 1.4.1 (but didn't dist yet - I'm going to 
-       try incrementing the revision AFTER doing a dist, at least
-       for awhile).
-       
-2004-03-22  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.4.0, libtool 9.14.9
-
-2004-03-17  Laszlo Peter  <laca@sun.com>
-
-       * libspi-1.0-uninstalled.pc.in: add idldir
-
-       * cspi-1.0-uninstalled.pc.in: add idldir
-
-2004-03-16  Gareth Owen <gowen72@yahoo.com>
-
-       * configure.in: Added "en_GB" to ALL_LINGUAS
-
-2004-03-15  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.3.16, 
-       libtool 9.13.9.
-       
-2004-03-15  Laszlo Peter  <laca@sun.com>
-
-       * libspi-1.0-uninstalled.pc.in: new file
-
-       * cspi-1.0-uninstalled.pc.in: new file
-
-       * configure.in: add the new pc files to AC_OUTPUT
-
-       * Makefile.am: add the new pc files to EXTRA_DIST
-
-2004-03-12  Bill Haneman <billh@gnome.org>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_key_listener):
-       Make sure to return consumed=FALSE if snoop 
-       event is not dispatched to listener.
-       Fixes #134037.
-       
-2004-03-01  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.3.15, 
-       libtool 9.12.9.
-       
-2004-03-07  Danilo Segan  <dsegan@gmx.net>
-
-       * configure.in: Added "sr@ije" to ALL_LINGUAS.
-
-2004-03-03  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * configure.in: Added "pa" for Punjabi in ALL_LINGUAS.
-
-2004-03-01  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.3.14.
-       
-       * cspi/spi_main.c:
-       (SPI_exit): Removed "bye-bye" exit message.
-       Moved "leak" report to happen before the
-       iteration over the leaked refs list.
-       Don't PRINT_LEAKS unless DEBUG_OBJECTS is also #defined.
-       
-2004-02-24  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.3.13.
-
-       * docs/reference/cspi/Makefile.am:
-       Correct typo that was breaking the docs build.
-
-2004-02-11  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * autogen.sh: Require version 1.7 of automake.
-       
-       * configure.in: call GTK_DOC_CHECK([1.0])
-
-       * atk-bridge/Makefile.am: Remove use of LDFLAGS and CFLAGS
-
-       * docs/reference/cspi/Makefile.am: Update to use new gtk-doc.
-
-       * libspi/Makefile.am: Remove use of LDFLAGS and CFLAGS.
-
-       * test/Makefile.am:  Remove use of CFLAGS.
-
-       This fixes bug #132987.
-
-2004-02-11  Bill Haneman <billh@gnome.org>
-
-       * reverted most of Tomasz' patch below, since it was breaking
-       builds (see bug #134058).
-       
-2004-02-10  Tomasz Kłoczko <kloczek@pld.org.pl>
-
-       * docs/reference/cspi/at-spi-cspi.types: added empty file for
-         correct pass "make dist" (empty .. because seems no sach types in
-         header files with gtk-doc markups).
-       * docs/reference/cspi/Makefile.am, configure.in:
-         Added better gtk-doc support using GTK_DOC_CHECK aclocal macro
-         from gtk-doc >= 1.0 (modyfications based on scheme from atk).
-       * Makefile.am: added:
-         DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
-         for force correct pass generate documentation on "make distcheck".
-       * libspi/Makefile.am: fixes for automake >= 1.6.
-       * configure.in: Trivial cleanup: remove AC_SUBST(CFLAGS),
-         AC_SUBST(CPPFLAGS) and AC_SUBST(LDFLAGS). This variables are
-         substed by default.
-
-Sun Feb  8 11:20:50 2004  Matthias Clasen  <maclas@gmx.de>
-
-       * docs/reference/cspi/Makefile.am (install-data-local): Install
-       index.sgml since the doc autobuilder on widget.gnome.org looks for
-       that file.
-
-2004-02-02  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c (spi_atk_tidy_windows): Correct g_free call to
-       g_object_unref.
-
-2004-02-01  Robert Sedak  <robert.sedak@sk.htnet.hr>
-
-        * configure.in: Added "hr" (Croatian) to ALL_LINGUAS.
-
-2004-01-27  Brian Cameron <brian.cameron@sun.com>
-
-       * test/simple-at.c: Fixed null string problems that cause core
-         dumping problems on Solaris.
-
-2004-01-12  Bill Haneman <billh@gnome.org>
-       
-       * configure.in: Incremented version to 1.3.11.
-
-2004-01-05  Padraig O'Briain  <padraig.obriain@sun.com>
-
-        * docs/reference/cspi/at-spi-cspi-docs.sgml: Added XML in
-        DOCTYPE statement. Fixes bug #129728. Patch supplied by Sebastien
-        Bacher.
-
-2004-01-01  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * configure.in: Added "fa" to ALL_LINGUAS.
-
-2003-12-20  Arafat Medini <lumina@silverpen.de>
-
-       * configure.in: Added "ar" to ALL_LINGUAS
-
-2003-12-16     Bill Haneman <billh@gnome.org>
-
-       * registryd/registry-main.c:
-       (main):
-       Set the reg_env DISPLAY variable before registering the
-       activated registry service.  Fixes bug #129479.
-
-2003-12-16     Mohammad DAMT  <mdamt@bisnisweb.com>
-
-       * configure.in: Added "id" in ALL_LINGUAS
-       * po/id.po: Indonesian translation by Ahmad Riza H Nst <ari@160c.afraid.org>
-
-2003-12-15  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/deviceeventcontroller.c (global_filter_fn):
-       When an event is consumed discard any XEvents were added to
-       the queue while dealing with the the event. This can happen if
-       processing of the event takes a long time. Call XUngrabKeyboard
-       if an event was discarded. This fixes bug $124837.
-       Only call wait_for_release_event for a KeyPress.
-       Use local variable display instead of spi_get_display().
-       (spi_controller_update_key_grabs): Move call to keycode_for_keysym
-       outside for loop.
-
-2003-12-11  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/deviceeventcontroller.c (spi_dec_translate_mask):
-       Allow for mask to contain values other than NumLock mask.
-       Fixes bug #129103.
-
-2003-12-10  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/devieceventcontroller.c:
-       (wait_for_release_event): Change first parameter from GdkEvent to 
-       XEvent.
-       (global_filter_fn); Correct call to wait_for_release_event.
-
-       Fixes bug #128912.
-
-2003-12-08  Bill Haneman <billh@gnome.org>
-
-       Version 1.3.10.
-
-       * registryd/ucs2keysym.c: New file.
-
-       * registryd/deviceeventcontroller.c:
-       (dec_keysym_for_unichar): Remove old partial implementation and
-       replace with call to ucs2keysym(), which is much more complete.
-       Thanks to Marcus G. Kuhn who put the original keysym2ucs.c into
-       the public domain.
-
-       Fixes bug #128824.
-
-2003-12-05  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Version 1.3.9.
-
-       * docs/reference/cspi/tmpl/spi_registry.sgml:
-       Added reference to libspi/keymasks.h to the
-        description of Registry queries: AccessibleKeyMaskType.
-       Fixes bug #118103.
-
-2003-12-04  Bill Haneman <billh@gnome.org>
-
-        Fix for bug #121974.
-       
-       * idl/Accessibility_Application.idl:
-       (Accessibility::LOCALE_TYPE): New enum, corresponds to
-       setlocale's LC_TYPEs.
-       (Accessibility::Application::getLocale): New method.
-       Allows clients to query the locale, by type, of an app.
-       
-       * cspi/spi.h:
-       * cspi/spi_application.c:
-       (AccessibleApplication_getLocale): New method, wraps IDL above.
-
-       * libspi/application.c:
-       (spi_application_class_init): Init epv entry for getLocale.
-       (impl_accessibility_application_get_locale): Impl for above.
-
-       * test/test-simple.c:
-       (test_application): Added assertion for getLocale, i.e.
-       that the string from AccessibleApplication_getLocale (app, type) 
-       is the same as that from setlocale (type, NULL);
-
-2003-12-03  Padraig O'Briain <padraig.obriain@sun.com>
-
-       *registryd/deviceeventcontroller.c: Add an idle handler which polls
-       the keyboard on a timeout intil the key state goes from pressed to
-       released. Fixes bug #111429.
-
-2003-12-03  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c: (atk_bridge_init): Create accessible application 
-       root object so that it is present when a context menu in an 
-       out-of-process applet is popped up.
-       (spi_atk_bridge_do_registration): Create acceessible application root
-       object only if it does not exist.
-
-       This fixes bug #125834.
-
-2003-12-01  Bill Haneman <billh@gnome.org>
-
-       Fix for bug #114926.  Thanks to Michael Meeks for some of this patch.
-
-       * cspi/spi.h:
-       Added enum for AccessibleStreamableContentSeekType.
-       (AccessibleStreamableContent_freeContentTypeList): New.
-       
-       * cspi/spi_streamablecontent.c:
-       (accessible_bonobo_stream_client_seek): New private method.
-       (AccessibleStreamableContent_seek): Implemented this method,
-       using Bonobo_Stream_seek.
-       (AccessibleStreamableContent_freeContentTypeList): New method
-       for freeing the return value from 
-       AccessibleStreamableContent_getContentTypes.
-       (stream_cache_item_free): Replaces stream_release; stop leaks.
-       (stream_release): removed.
-       (AccessibleStreamableContent_read): Use properly init'd CORBA_evs, 
-       free the memory properly.
-
-2003-12-02  Padraig O'Briain <padraig.obriain@sun.com>
-
-       Fix for bug #116009.
-
-       * cspi/spi-roletypes.h: Add SPI_ROLE_EDITBAR.
-
-       * cspi/spi_accessible.c (cspi_init_role_table): Add SPI_ROLE_EDITBAR.
-
-       * docs/reference/cspi/tmpl/spi-accessible.sgml: Add SPI_ROLE_EDITBAR
-
-       * idl/Accessibility_Role.idl: Add ROLE_EDITBAR.
-
-2003-12-01  Bill Haneman <billh@gnome.org>
-
-       Fix for bug/rfe #127463.
-       
-       * idl/Accessibility_Accessible.idl:
-       (getLocalizedRoleName): New.
-       (unimplemented4): Removed (replaced by above).
-
-       * libspi/accessible.c:
-       (impl_accessibility_accessible_get_local_role_name): New.
-       (spi_accessible_class_init): Add getLocalizedRoleName entry to
-       epv.
-       
-       * cspi/spi.h:
-       (Accessible_getLocalizedRoleName): New.
-
-       * cspi/spi_accessible.c:
-       (Accessible_getLocalizedRoleName): New.
-       
-2003-12-01  Bill Haneman <billh@gnome.org>
-       
-       Fix for bug #118581.
-       * idl/Accessibility_Text.idl:
-       (getDefaultAttributes): New.
-       (unimplemented4): Removed (replaced by above method).
-
-       * libspi/text.c:
-       (impl_getDefaultAttributes): New method.
-       (spi_text_class_init):
-       initialize the get_default_attributes slot in the epv.
-
-       * cspi/spi.h:
-       (AccessibleText_getDefaultAttributes): New prototype.
-
-       * cspi/spi_text.c:
-       (AccessibleText_getDefaultAttributes): New method.
-
-2003-11-06  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_accessible.c (cspi_init_relation_type_table): Do not
-       write beyond the end of the table. Fixes bug #120473.
-
-2003-09-30  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "eu" to ALL_LINGUAS.
-
-2003-09-28  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * configure.in: ALL_LINGUAS: Added no.
-
-2003-09-28  Gediminas Paulauskas  <menesis@delfi.lt>
-
-    * configure.in: Added lt to ALL_LINGUAS.
-
-2003-09-25  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c:
-       (atk_bridge_init): Register event listeners always even for 
-       out-of-process applet.
-       (spi_atk_bridge_toplevel_added): Remove call to 
-       spi_atk_bridge_event_type_consts as it is now called in atk_bridge_init
-       (spi_atk_bridge_toplevelk_removed): Remove call to 
-       spi_atk_deregister_event_listenersa as the listeners are now always
-       registered
-       (spi_atk_bridge_register_application): Remove call to
-       spi_atk_register_event_listeners as it is not done in atk_bridge_init
-
-       This fixes bug #120991.
-
-       * libspi/table.c (impl_getColumnDescription): Correct typo,
-       pointed out by Bolian.Yin@sun.com.
-
-2003-09-21  Ã\85smund Skjæveland  <aasmunds@fys.uio.no>
-
-       * configure.in: Added nn to ALL_LINGUAS (which is commented out).
-
-2003-09-08  Bill Haneman <billh@gnome.org>
-
-       * configure.in: Revved to 1.3.7.
-
-       This is the GNOME 2.4.0 release of at-spi.
-
-       * docs/reference/cspi/Makefile.am:
-       Removed spurious inclusion of 'index.sgml' in the
-       html directory; this was breaking make distcheck and
-       also some other build environments.
-
-2003-09-05  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/registry.[ch}:
-       Add queue_handler_id and focus_object to SpiRegistry data structure.
-       (registry_flush_event_queue): If event being discarded is 
-       "state-change:focused" store object as focus_object.
-       (registry_start_queue): Remove queue handler and focus object
-       if present.
-       (registry_discard_event): New function which discards a focus event
-       if we had stored focus object in the registry.
-       (registry_queue_event): Add new check that is_queueing is set as this
-       function is reentrant.
-       (registry_filer_event): Add call to registry_discard_event.
-       
-       This resolves issues raised in bug #108664.
-       
-2003-09-05  Taneem Ahmed  <taneem@bengalinux.org>
-
-       * configure.in: Added "bn" to ALL_LINGUAS.
-
-2003-09-04  Bill Haneman <billh@gnome.org>
-
-       * cspi/spi_event.c: Documentation improvements for
-       (SPI_registerAccessibleKeylistener).
-
-       * docs/reference/tmpl/spi_registry.sgml:
-       Documentation improvements for SpiAccessibleKeylistenerCB.
-
-2003-09-02  Mugurel Tudor  <mugurelu@go.ro>
-
-       * configure.in: Added "ro" to ALL_LINGUAS.
-
-
-2003-09-01  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_main.c (cspi_object_return): Ensure that reference count is
-       not decremented to zero. Fixes bug #120725.
-
-2003-08-30  KAMAGASAKO Masatoshi  <emerald@gnome.gr.jp>
-
-       * configure.in: Added "ja" to ALL_LINGUAS.
-
-2003-08-22  Samúel Jón Gunnarsson  <sammi@techattack.nu>
-
-       * configure.in: Added "is" to ALL_LINGUAS.
-       
-2003-08-22  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "nl" to ALL_LINGUAS.
-
-2003-08-19  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi-private.h: Add declaration for _cspi_exceptoin_throw
-       * cspi/spi_accessible.c (cspi_init_relation_type_table): Add call
-       to return a value.
-       * cspi/spi_event.c: (AccessibleEvent_unref); Add casts to gfree
-       arguments.
-       * cspi/spi_main.c (SPI_Exception_getSourceType); Return the correct
-       type for unspecified exception.
-       * cspi_streamablecontect): Add include of string.h for memcpy.
-       (stream_release): Correct call to bonobo_object_release_unref
-       (stream_cache_item_free): Correct call to bonobo_object_release_unref
-       * cspi/bonobo/spi-bonobo.c: (cspi_check_event): Add cast to second
-       argument of _cspi_expection_throw.
-       * libspi/hyperlink.c: Add include of libspi/action.h:
-       (spi_hyperlink_new): Cast argument to spi_action_interface_new.
-       * libspi/streamablecontent.c: add include of libspi/component.h.
-       * regisrtyd/deviceeventcontroller.c:
-       (spi_dec_translate_mask): Removed unused variable priv.
-       (dec_synth_keysym): Initialize lock_mods to avoid compilker warning/
-       * registryd/registry.c:
-       (registry_filter_event): Remove unused variable queue_is-empty.
-       (impl_registry_notify_event): Use correct modifier in fprintf call.
-
-       This fixes compiler warnings reported in bug #120220.
-       
-2003-08-18  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/registryd.c: Remove this file.
-
-2003-08-17  Sanlig Badral  <badral@openmn.org>
-
-       * configure.in: Added mn to ALL_LINGUAS.
-
-2003-08-16  Tõivo Leedjärv  <toivo@linux.ee>
-
-       * configure.in: Added et to ALL_LINGUAS.
-
-2003-08-13  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * test/event-listener-test.c: Change active-descendant to 
-       active-descendant-changed.
-
-2003-08-10  Sami Pesonen  <sampeson@iki.fi>
-
-       * configure.in: Added "fi" in ALL_LINGUAS.
-
-2003-08-08  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * configure.in: Added "hi" in ALL_LINGUAS.
-
-2003-08-08  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * configure.in: Revved to 1.3.6.
-
-       * NEWS: updated.
-       
-2003-08-07  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/deviceeventcontroller.c
-       (spi_device_event_controller_object_finalize): Fix typo in previous 
-       commit.
-
-2003-08-07  Marc Mulcahy  <marc.mulcahy@sun.com>
-
-       * registryd/deviceeventcontroller.c
-       (spi_device_event_controller_object_finalize): Fix build on
-       systems without XEvIE.
-       
-2003-08-06  Brian Cameron <Brian.Cameron@sun.com>
-
-       * acconfig.h, configure.in, registryd/Makefile.am,
-         registryd/devicecontoller.[ch]: Add XEViE support.
-
-2003-08-06  Wang Jian  <lark@linux.net.cn>
-
-       * configure.in: Added "zh_CN" to ALL_LINGUAS.
-
-2003-08-06  Metin Amiroff<metin@karegen.com>
-
-       * configure.in: Added "az" (Azerbaijani) to ALL_LINGUAS
-
-2003-08-06  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * idl/Accessibility_Registry.idl: Put MODIFIER_SHIFTLOCk and
-       MODIFIER_ALT in correct place. 
-
-       This fixes part of bug #118114.
-
-2003-07-30  Alessio Frusciante  <algol@firenze.linux.it>
-
-       * configure.in: Added "it" (Italian) to ALL_LINGUAS.
-
-2003-07-28  Changwoo Ryu  <cwryu@debian.org>
-
-       * configure.in: Added "ko" to ALL_LINGUAS.
-
-2003-07-28  Ole Laursen  <olau@hardworking.dk>
-
-       * configure.in: Added "da" to the commented out ALL_LINGUAS.
-
-2003-07-27  Laurent Dhima  <laurenti@alblinux.net>
-
-       * configure.in: Added "sq" to ALL_LINGUAS.
-
-2003-07-27  Hasbullah Bin Pit  <sebol@ikhlas.com>
-                                                                                
-       * configure.in: Added 'ms' (Malay) in ALL_LINGUAS.
-
-2003-07-24  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * configure.in: updated ALL_LINGUAS list
-
-2003-07-24  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * configure.in: Added Belarusian to ALL_LINGUAS.
-
-2003-07-23  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_event.c (AccessibleEvent_unref): Call CORBA_free for
-       event->data.
-       * cspi/bonobo/cspi-bonobo-listener.c (cspi_event): Call 
-       CORBA_any__alloc to allocate CORBA_Any in InternalEvent.
-
-       This fixes bug #116949.
-
-2003-07-22  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_registry.c (SPI_registerAccessibleKeyStrokeListener):
-       Correct CSPI to SPI in function documentation.
-
-       This fixes bug #118054.
-
-2003-07-16  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * configure.in: Added Russian to ALL_LINGUAS.
-
-2003-07-16  Duarte Loreto <happyguy_pt@hotmail.com>
-
-        * configure.in: Added Portuguese (pt) to ALL_LINGUAS.
-
-2003-07-14  Danilo Å Segan  <dsegan@gmx.net>
-
-       * configure.in: Added "sr" and "sr@Latn" (Serbian) to ALL_LINGUAS.
-
-2003-07-10  Joel Brich <joel.brich@laposte.net>
-
-       * configure.in: Added "eo" (Esperanto) to ALL_LINGUAS.
-
-2003-07-07  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>
-
-       * configure.in (ALL_LINGUAS): Added "es" (Spanish).
-
-2003-07-07  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_event.c (AccessibleEvent_unref): Update code to free
-       resources allocated for AccessibleEvent. See cspi_event().
-
-       * cspi/spi_streamablecontent.c (cspi_streams_close_all): Set
-       static variable streams to NULL.
-
-       * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
-       Update so that AcessibleEvent_ref will work.
-
-       This fixes bug #116624.
-
-2003-07-06  Jordi Mallach  <jordi@sindominio.net>
-
-       * configure.in (ALL_LINGUAS): Added "ca" (Catalan).
-
-2003-07-06  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * configure.in: Added "fr" (French) to ALL_LINGUAS.
-
-2003-07-02  Christian Neumair  <chris@gnome-de.org>
-
-       * configure.in: Added "de" (German) to ALL_LINGUAS.
-
-2003-07-01  Dafydd Harries  <daf@parnassus.ath.cx>
-
-       * configure.in: Added "cy" (Welsh) to ALL_LINGUAS.
-
-2003-07-01  Miloslav Trmac  <mitr@volny.cz>
-
-       * configure.in: Addded "cs" to ALL_LINGUAS. Why is it commented out?
-
-2003-07-01  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * configure.in: Added "pl" to ALL_LINGUAS.
-
-2003-07-01  Gil "Dolfin" Osher <dolfin@rpg.org.il>
-
-       * configure.in: Added "he" (Hebrew) to ALL_LINGUAS.
-
-2003-06-30  Bill Haneman <bill.haneman@sun.com>
-       
-       * libspi/action.c:
-       (get_action_from_servant): 
-       Removed assertion that action is implemented on an AtkObject.
-
-       * libspi/hyperlink.c:
-       (spi_hyperlink_new):
-       Aggregate AccessibleAction interface on the hyperlink object if
-       the object implements AtkAction.  (This convention is used in
-       gtkhtml2.)
-       
-2003-06-30  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Revved to 1.3.5.
-       
-       * registryd/Accessibility_Registry.server.in.in:
-       Marked up appropriate strings for translation.
-       
-       * atk-bridge/bridge.c: Marked a couple of
-       user-visible warnings for translation.  Questionable
-       whether they are really useful, but possibly so.
-
-       
-2003-06-28  Christian Rose  <menthos@menthos.com>
-
-       * configure.in: Added "sv" to ALL_LINGUAS.
-
-2003-06-26  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/registry.c: 
-       (spi_registry_object_finalize): Unref the deviceeventcontroller.
-       (registry_defer_on_event): Defer focus: events, this is an
-       improvement to the patch for bug #108664.
-
-       * TODO: Update with 2.4/"Dev Complete" items.
-
-2003-06-26  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_init_event_type_consts): Ensure that this function only
-       looks up signals once.
-       (atk_bridge_init): Call spi_atk_bridge_init_event_type_consts only
-       if doing registration.
-       (spi_atk_bridge_toplevel_added): Call spi_bridge_init_event_type_consts
-       when doing registration.
-       
-       This fixes bug #115014.
-
-2003-06-25  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c:
-       (atk_bridge_init): Add signal handler for children-changed:remove on
-       root when in a BonoboComponent.
-       (spi_atk_bridge_toplevel_added): Call spi_atk_bridge_do_registration
-       for first toplevel only other incrememt variable toplevels.
-       (spi_atk_bridge_toplevel_removed): For last toplevel deregister 
-       application and remove listeners.
-       (spi_atk_bridge_get-registry): Change NULL to CORBA_OBJECT_NIL for
-       consistency.
-       (spi_atk_deregister_event_listeners): New function which removes
-       listeners.
-       (reinit_register_vars): New fuction which reinitializes variables.
-
-       This fixes bug #111578.
-
-2003-06-13  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: version 1.3.4.
-
-       * cspi/spi_accessible.c:
-       Changed test of obj==NULL to obj==CORBA_OBJECT_NIL.
-
-
-2003-06-13  Michael Meeks  <michael@ximian.com>
-
-       * cspi/bonobo/cspi-bonobo.c (cspi_check_ev): use it.
-
-       * cspi/spi_main.c (cspi_peek_ev): impl.
-
-2003-06-11  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi-roletypes.h: Add role SPI_ROLE_AUTOCOMPLETE
-
-       * cspi/spi_accessible.c (cspi_init_role_table): Add ROLE_AUTOCOMPLETE.
-
-       * docs/reference/cspi/tmpl/spi_accessible.sgml: Add role 
-       SPI_ROLE_AUTOCOMPLETE
-
-       * idl/Accessibility_Role.idl: Add role ROLE_AUTOCOMPLETE
-
-       * libspi_accessible.c(spi_init_role_lookup_table): Add lookup
-       for ROLE_APPLICATION and ROLE_AUTOCOMPLETE
-
-2003-06-11  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/streamablecontent.h:
-       * libspi/streamablecontent.c:
-       New files, provide implementation/wrappers for
-       Accessibility_StreamableContent.
-
-       * cspi/spi_streamablecontent.c:
-       Connected the C wrappers to the libspi C bindings.
-       (AccessibleStreamableContent_close): New method.
-
-       * cspi/spi.h:
-       (AccessibleStreamableContent_close): New method, needed
-       since we have an "open, [seek], read, close" model in cspi.
-       
-2003-06-11  Bill Haneman <bill.haneman@sun.com>
-
-        Fix for #108664; Padraig's revision of my original patch.
-       
-       * registryd/registry.h:
-       Added event queue list, is_queuing, and exit_notify_timeout
-       to the registry struct.
-       
-       * registryd/registry.c:
-       (registry_init): Initialize new struct from registry.h.
-       (impl_registry_notify_event):
-       Filter events before notifying, in case some need to be
-       deferred, etc.
-       (registry_filter_event): New,
-       we defer certain incoming events (for instance 
-       window:deactivate) because we may wish to hide
-       or reject them based on pending events.  This is
-       mostly a workaround for bug #108664.
-       (registry_queue_event, registry_start_queue): New.
-       (registry_defer_on_event): Test event to see if it
-       initiates queuing.
-       (registry_reset_on_event): Returns TRUE if the
-       event should cause a queue reset.
-       (registry_discard_on_event): Returns TRUE if the event
-       should cause the previous queue contents to be discarded.
-       (registry_timeout_flush_queue): Flushes the pending event
-       queue if no reset/discard-triggering events have come in 
-       within the timeout period.
-       (registry_emit_event): New.
-       (registry_clone_notify_context): New, used when queueing the 
-       event notify contexts.
-
-2003-06-10  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Version revved to 1.3.2, lt 0.9.2
-       Incremented ATK required version to 1.3.4.
-
-       * cspi/spi_registry.c:
-       (SPI_generateKeyEvent):
-       We now pass the keystring along if it's non-null.
-       
-       * registryd/deviceeventcontroller.c:
-       (keysym_mod_mask): New method, returns modifier mask 
-       required to generate a keysym from a given keycode.
-       (dec_synth_keysym): New method.
-       (dec_synth_keystring): New method.
-       (dec_get_modifier_state): New method.
-       (dec_lock_modifiers): New
-       (dec_unlock_modifiers): New.
-       (dec_keysym_for_unichar): New, rather brute-force
-       conversion from UCS-4 to X KeySyms.  Only works for
-       Latin at the moment, with partial implementations for
-       Greek, Hebrew, and (incomplete) Katakana.
-       (impl_generate_keyboard_event): Now implement 
-       "KEYSTRING" synthesis and implement "KEYSYM"
-       synthesis properly.
-       (keycode_from_keysym): Improved, passes a returned
-       modmask value now if the corresponding param is non-NULL.
-       
-       Fixes bugs #92143  and #109776.
-
-       * test/Makefile.am:
-       * test/keysynth-test.c:
-       New test program for key synthesis, to confirm fixes for
-       above bugs.
-
-
-2003-06-10  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi.h: Add relation SPI_RELATION_POPUP_FOR
-
-       * cspi/spi_accessible.c (cspi_init_relation_type_table):
-       Add line for RELATION_POPUP_FOR
-
-       * docs/reference/cspi/tmpl/spi_relation.sgml: 
-       Add relation SPI_RELATION_POPUP_FOR
-
-       * docs/reference/cspi/tmpl/spi_stateset.sgml: 
-       Change state SPI_STATE_INCONSISTENT to SPI_STATE_INDETERMINATE 
-
-       * idl/Accessibility_Reloation.idl: Add RELATION_POPUP_FOR.
-
-       * libspi/relation.c (spi_init_relation_type_table): 
-       Add line for RELATION_POPUP_FOR
-
-2003-06-10  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/atk-bridge/bridge.c (spi_atk_bridge_exit_func): Check if 
-       there are still windows which have not been deleted and emit 
-       window:deactivate, if necessary and window:destroy events.
-       This fixes bug #114370. The change on June 5th was not correct.
-
-2003-06-09  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Revved to 1.3.3. (lt-version 9:2:9, .so.0.9.2)
-
-       * cspi/spi.h: 
-       (SPI_dupString): Allow dup-ing of a string such that it's safe to
-       SPI_freeString it.
-       New methods for client exception handling and interception.
-       (SPI_exceptionHandlerPush): New - push a handler onto the stack.
-       (SPI_exceptionHandlerPop): You guessed it... 
-       (SPI_getSourceType): Return the type of object which offended.
-       (SPI_getExceptionCode): Return an enum code telling, possibly, 
-       what sort of thing went wrong, i.e. DISCONNECT (object died), etc.
-       (SPIAccessibleException_getSource): get the source object for
-       exceptions that come from Accessibles, if SPIExceptionSourceType is
-       SPI_EXCEPTION_SOURCE_ACCESSIBLE.
-       (SPIException_getDescription): New, returns a string description of
-       the problem.  [Not yet a stable ABI, strings are not frozen]
-
-       * cspi/spi-private.h:
-       Added implementation details of opaque SPIException
-       structure.
-       
-       * cspi/spi_main.c:
-       Implementations of above.  Also
-       (_cspi_exception_throw): new private method that 
-       dispatches exceptions to handlers, called from cspi-bonobo.c
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_check_ev): call _cspi_exception_throw.
-       Don't print a warning message if the exception has been 
-       handled by _cspi_exception_throw.
-       
-2003-06-05  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/atk-bridge/bridge.c (spi_atk_bridge_exit_func): Check if 
-       there are still windows which have not been deleted and emit 
-       window:deactivate, if necessary and window:destroy events.
-       This fixes bug #114370.
-
-2003-06-03  Bill Haneman <bill.haneman@sun.com>
-
-       * cspi/spi_main.c:
-       (cspi_accessible_is_a): Make non-fatal 
-       if the object reference is dead.
-
-Mon Jun  2 15:35:29 2003  Jonathan Blandford  <jrb@redhat.com>
-
-       * cspi/spi_main.c: #include <stdio.h>
-       * test/simple-at.c: ditto
-       * test/event-listener-test.c: ditto
-       * test/screen-review-test.c: ditto
-
-2003-05-30  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c (main): use CORBA_ORB_perform_work
-       instead of an unnecessary linc_ call.
-
-2003-05-20  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi-statetypes.h, cspi/docs/tmpl/spi_stateset.sgml:
-       Add SPI_STATE_INDETERMINATE.
-
-       * cspi/spi_accessible.c (spi_state_to_corba): Add support for
-       INDETERMINATE.
-
-       * idl/Accessibility_State.idl: Add support for STATE_INDETERMINATE.
-
-       * libspi/stateset.c (init_state_type_tables): Add support for
-       INDETERMINATE.
-
-2003-05-19  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * configure: Update versions of atk and gail required.
-       This fixes bug #113268.
-       
-2003-05-02  Bill Haneman  <bill.haneman@sun.com>
-
-       * configure.in: Revved micro version to 1.3.1 (because of build fix).
-
-2003-05-02  Frederic Crozat  <fcrozat@mandrakesoft.com>
-
-       * libspi/Makefile.am:
-       Ensure headers are generated before being used by c sources.
-
-2003-05-01  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Simplified lt versioning rules.
-       Incremented version to 1.3.0, to indicate that we're on the
-       unstable branch now.  
-
-2003-04-29  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * docs/reference/cspi/Makefile.am, docs/reference/idl/Makefile.am:
-       Add MKDB_OPTIONS=--outtput-format=xml
-
-       * docs/reference/cspi/at-spi-cspi-docs.sgml
-       docs/reference/idl/at-spi-idl-docs.sgml:
-       Convert to Docbook XML.
-
-       This fixes bug #111793.
-
-2003-04-25  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi-listener.h: Add documentation for AccessibleDeviceEventType,
-       AcccessibleKeyEventType, AccessibleKeyMaskType.
-
-       * cspi/spi-roletypes.h: Update documentation for AccessibleRole.
-
-       * cspi/state-types.h: Add documentation for AccessibleState.
-
-       * cspi/spi.h: Add documentation for AccessibleTextBoundaryType,
-       AccessibleTextClipType, AccessibleRelationType, AccessibleCoordType,
-       AccessibleKeySynthType, AccessibleKeyListenerSyncType, 
-       AccessibleComponentLayer.
-
-       * cspi/spi_event.c, cspi/spi_registry.c, cspi/spi_text.c: Fix bugs 
-       in documentation.
-
-       * docs/reference/cspi/at-spi-cspi-sections.txt: Add undefined symbols.
-
-       * docs/reference/cspi/tmpl/spi_registry.sgml: Add description of 
-       Accessible.  Add description of AccessibleEvent, 
-       AccessibleEventListenerCB.
-
-       * docs/reference/cspi/tmpl/spi_event.sgml: Update with extra 
-       documentation.
-
-       * docs/reference/cspi/tmpl/spi_registry.sgml: Update with extra 
-       documentation. Add description of AccessibleKeystrokeListenerCB,
-       AccessibleKeyEventMask, AccessibleModifierMaskType, 
-       AccessibleKeyMaskType, AccessibleKeystroke, AccessibleDeviceEvent,
-       AccessibleDeviceEventMask, AccessibleDeviceListenerCB. 
-
-       * docs/reference/cspi/tmpl/spi_stateset.sgml: Add description of
-       AccessibleStateSet.
-
-       * docs/reference/cspi/tmpl/spi_text.sgml: Update with extra 
-       documentation.
-
-       This fixes bug #104730.
-
-2003-04-24  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c (spi_init_keystroke_from_atk_key_event):
-       Set is_text field of Accessibility_DeviceEvent data structure.
-
-       * cspi/bonobo/cspi-bonobo-listener.c (cspi_device_event): Set
-       is-text field of AccessibleDeviceEvent data structure.
-
-       This addresses part of bug #108666.
-
-       * registryd/devcieeventcontroller.c: Unset debug option.
-
-2003-04-14  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/accessible.c:
-       (cpi_initial_relation_type_table): New function which initializes 
-       mapping between Accessibility_RelationType and AccessibleRelationType.
-       (cspi_relation_type_from_spi_relation_type): New function which
-       translates an Accessibility_RelationType into an AccessibleRelationType.
-       (AccessibleRelation_getRelationType): Use 
-       cpi_relation_type_get_spi_relation_type to return correct value.
-       (spi_state_to_corba): Return correct type for default case.
-
-       * cspi/spi_registry.c (SPI_registerAccessibleKeyStrokeListener):
-       Use Accessibility_EventType instead of Accessibility_KeyEventType.
-
-       * cspi/cspi-bonobo-listener.c:
-       Remove semicolon after BONOBO_TYPE_FUNC. Add casts to avoid compiler
-       warnings.
-
-       * libspi/accessible.c, libspi/action.c, libspi/application.c,
-       libspi/base.c, libspi/component.c, libspi.devicelistener.c,
-       libspi/editabletable.c, libspi/hyperlink.c, libspi/hypertext.c,
-       libspi/image.c, libspi/listener.c, libspi/selection.c, 
-       libspi/stateset.c, libspi/table, libspi/text.c, libspi/value.c, 
-       registryd/desktop.c, registryd/registry.c:
-       Remove semicolon after BONOBO_TYPE_FUNC_FULL.
-
-       * libspi/eventlistener.c
-       Remove semicolon after BONOBO_TYPE_FUNC.
-
-       * libspi/relation.c:
-       Remove semicolon after BONOBO_TYPE_FUNC_FULL.
-       (spi_init_relation_type_table): Initialize using correct type.
-
-       * registryd/desktop.c:
-       Remove semicolon after BONOBO_TYPE_FUNC_FULL.
-       (spi_keystroke_from_x_key_event): Use Accessibility_EventType instead 
-       of Accessibility_KeyEventType.
-
-       * test/key-listener-test.c (report_tab_key_event): Use fprintf
-       instead of g_print.
-
-       * tests/simple-at.c, tests/screen-review-test.c:
-       Add include for <strings.h>.
-
-       * tests.stress-test.c:
-       Add includes for <unistd.h> and <bonobo/bonobo-main.h>
-
-       These changes fix compiler warnings when using FORTE compiler on
-       Solaris; fixes bug #107479.
-
-       
-2003-04-10  Bill Haneman <bill.haneman@sun.com>
-
-
-       * configure.in: revved to 1.1.10
-       
-       * libspi/keymasks.h:
-       (SPI_KEYMASK_NUMLOCK): Added.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_key_event_matches_listener): AND with a smaller
-       bitmask (as we should).  
-       (spi_dec_translate_mask): 
-       New method, sets the virtual NumLock modifier bit
-       if numlock is on.  Eventually it can handle other virtual
-       modifier bits if needed, or other marshalling from
-       at-spi modifier masks to platform (X) masks.
-       (spi_dec_key_listener_new):
-       Call spi_dec_translate_mask to set up virtual mod bits
-       in the 'mask' field when creating a new listener struct.
-       (spi_dec_emit_modifier_event):
-       Set the virtual (i.e. NumLock) bits before emitting event.
-       (spi_controller_register_with_devices):
-       Query for the NumLock modifier 'physical' bit if Xkb is
-       present, for use in above methods.
-
-       Fix for 107261.
-       
-2003-04-10  Bill Haneman <bill.haneman@sun.com>
-       
-       * registryd/deviceeventcontroller.c:
-       (spi_keystroke_from_x_key_event):
-       Instead of checking to see if the keysym is
-       printable, check the string from XLookupString
-       if available, get the first unicode character from it,
-       and call g_unichar_isprint to determine whether the
-       is_text flag should be TRUE or FALSE.
-       
-       Fix for bug 110419.
-
-2003-04-02  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c: Add support for extended events
-       * cspi/spi_event.c: Add documentation and implementation for
-       extended events.
-       * tests/event-listener-test.c: Add tests for extended events.
-
-       This fixes bugs #100424 and #100426.
-2003-04-02  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * configure.in: Add 100 to AT_SPI_BINARY_AGE and update calculation
-       of LT_CURRENT. This fixes bug #89350.
-
-2003-04-01  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c (spi_bridge_signal_listener):  Add check for
-       number of signal parameter values before accessing them. This fixes
-       bug #109626.
-
-2003-04-01  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Fixed duplicate inclusion of -lspi.
-       * branched for gnome-2-2/HEAD.  
-       [created tag "gnome-2-2"]
-
-2003-03-07  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: 1.1.9 release.
-       * NEWS: updated.
-       
-2003-03-07  Bill Haneman <bill.haneman@sun.com>
-
-       [needed by GOK, to fix bugs 107985 and 107988]
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_clear_unlatch_pending):
-       New method, unsets the 'unlatch' mask for XkbStateNotifyEvents.
-       (spi_dec_set_unlatch_pending):Revised DEBUG comment.
-       (spi_dec_init_mouse_listener):Emit warning if mouse button
-       passive grab fails.
-       (spi_device_event_controller_forward_mouse_event):
-       Removed unnecessary parens from a conditional.
-       (global_filter_fn):Added TODO comment.
-       (impl_generate_keyboard_event):
-       Cancel a pending relatch if a 'delatching' key was 
-       synthesized.
-       
-2003-03-07  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c:
-       Change atk_signal_child_changed to atk_signal_children_changed. 
-       Reorganize code in spi_atk_bridge_signal_listener().
-
-       * test/event-listener-test.c:
-       Add children_changed_listener and report_children_changed_event()
-       to test AccessibleChildEvent_getChildAccessible.
-
-2003-03-05  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * cspi/spi_event.c (cspi_internal_event_get_text): Change
-       g_strdup to CORBA_String_dup (bug #105291)
-
-       * test/event-listener-test.c (report_text_event): Add call to
-       SPI_freeString.
-
-2003-02-28  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       (spi_keystroke_from_x_key_event): 
-       Fix string and keysym return codes to match modifier state. 
-       [bug #107256]
-
-2003-02-28  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       (spi_keystroke_from_x_key_event): 
-       Fix segv due to improper use of isprint(c). [bug #107254]
-
-2003-02-24  Bill Haneman <bill.haneman@sun.com>
-
-       * cspi/spi_text.c:
-       (get_accessible_text_boundary_type):
-       Move default return value to (new) default case in switch.
-       (get_accessible_text_clip_type):
-       Move default return value to (new) default case in switch.
-       
-       * libspi/application.c:
-       (lookup_toolkit_event_for_name, reverse_lookup_name_for_toolkit_event):
-       Remove unused methods.
-       (impl_accessibility_application_register_object_event_listener):
-       Remove unused methods.
-
-       * libspi/value.c:
-       Added #include of <math.h>.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_ungrab_mouse): Bracketed with #ifdefs, since 
-       we don't currently use this method.
-       (spi_dec_init_mouse_listener): Don't call XkbGetMap unless
-       have_xkb is TRUE.
-       (impl_generate_key_event):
-       Remove unused variables.
-       (impl_generate_mouse_event):
-       Initialize button to zero, just in case we get an invalid
-       input.  Added support for mouse buttons 4 and 5.
-       (spi_device_event_controller_new):
-       Removed unused variable declaration for 'private'.
-       (registry.h):
-       Added #include of <gdk/gdk.h>
-
-2003-02-14  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * configure.in: Update to work when X is not installed in expected 
-       location. Fixes bug #105836.
-
-       * atk-bridge/bridge.c
-       (spi_atk_bridge_init_event_type_consts): Look up "link-selected" for
-       AtkHypertext
-       (spi_atk_register_event_listener): Add signal listener for 
-       link-selected
-       (spi_atk_bridge_signal_listener): Event event when link-selected
-       signal is emitted. (bug #104622)
-
-       * cspi/spi_event.c (cspi_internal_event_get_text): Call g_strdup()
-       on returned string. (bug #105291)
-
-       * test/event-listener-test.c: Add test for link-selected.
-       
-2003-02-14  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/Makefile.am: Correct typo in previous commit.
-
-2003-02-13  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * atk-bridge/Makefile.am: Allow for build directory to be different 
-       from source directory
-
-       * registryd/Makefile.am: Allow for build directory to be different
-       from source directory
-
-       Bug #104744.
-
-2003-01-29  Bill Haneman <bill.haneman@sun.com>
-       
-       * cspi/Makefile.am:
-       Fixed dependencies for libcspi so that libspi gets pulled in
-       properly.  Fixes 104741.
-
-       * cspi/spi.h:
-       * cspi/spi_event.c:
-       Clean up inline docs a little.
-
-2003-01-27  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/desktop.c: Implement AccessibleComponent for SpiDesktop.
-       This is done by implementing AtkComponent for SpiAtkDesktop, which is
-       the AtkObject within an SpiDesktop.
-       This addresses bug #101524.
-
-       * registryd/deviceeventcontroller.c (spi_device_event_controller_init):
-       Remove call to gdk_init().
-
-       * registryd/registry.c (spi_registry_init): Add call to gdk_init()
-       so that Display is set when SpiDesktop is created.
-
-2003-01-21  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * registryd/deviceeventcontroller.c: Add include of <sys/time.h>
-       This fixes bug #102830.
-
-2003-01-15  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * test/test-simple.c: Update to take account of fact that GailButton 
-       now implements AtkText.
-       (create_text_window): Set name on AtkObject for GtkEntry.
-       (validate_accessible): Check accessible name before calling test_text().
-
-       * libspi/Makefile.am: Fix problem with building outside of source
-       directory. Bug #98120.
-
-       * cpsi/spi_table.c (AccessibleTable_getNSelectedColumns): Fix
-       typo in documentation comments. Bug #94275.
-
-2003-01-15  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * libspi/text.c (impl_getBoundedRanges): Bug fix.
-
-2003-01-10  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * libspi/text.c:
-       Add includes to avoid compiler warnings on Solaris.
-       (impl_getRangeExtents): Bug fix.
-
-2002-12-17  Bill Haneman <bill.haneman@sun.com>
-
-        Fix for 100944, [API addition approved by Gman and murrayc].
-       
-       * NEWS: updated.
-       
-       * configure.in:
-       Revved to 1.1.8.
-
-       * idl/Accessibility_Text.idl:
-       (Text::Range, Text::RangeList, TEXT_CLIP_TYPE): New typedefs
-       (Text::getRangeExtents): New method for efficient 
-       bounds query of a text range.
-       (Text::getBoundedRanges): New method for efficient
-       clipping of text to bounding boxes.
-       (unImplemented7, unImplemented8): 
-       Removed these padding methods to preserve bincompat.
-
-       * libspi/text.c:
-       (impl_getRangeExtents): implementation of new IDL.
-       (impl_getBoundedRanges): implementation of new IDL.
-       (SpiTextRect): Internal use struct.
-       (_spi_text_rect_union): internal method, calculates union of two
-       SpiTextRect bounding rects.
-       (_spi_text_range_seq_from_gslist): internal method, allows us
-       to build our sequence efficiently as a gslist then convert it
-       to a CORBA seq.
-       (_spi_bounds_contain): internal method, determines whether
-       a text character is "in" or "out" of a clip rect according to
-       values of TEXT_CLIP_TYPE.
-       (spi_text_class_init): Initialize the new methods in the epv.
-       
-       * cspi/spi.h:
-       (AccessibleTextClipType): New enum used by screen review api.
-       (AccessibleTextRange): New struct used by screen review api.
-       (AccessibleText_getRangeExtents): 
-       cspi binding for Accessibility_Text_getRangeExtents.
-       (AccessibleText_getBoundedRanges):
-       cspi binding for Accessibility_Text_getBoundedRanges.
-       (AccessibleTextRange_freeRanges): convenience method.
-       
-       * cspi/spi_text.c:
-       (AccessibleText_getRangeExtents): 
-       cspi binding for Accessibility_Text_getRangeExtents.
-       (AccessibleText_getBoundedRanges):
-       cspi binding for Accessibility_Text_getBoundedRanges.
-       (AccessibleTextRange_freeRanges): convenience method.
-       (get_accessible_text_clip_type): internal conversion method.
-       (get_accessible_text_ranges_from_range_seq): internal conversion method.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_mouse_check):
-       Improved behavior for mouse:abs events 
-       [same granularity as mouse:rel events, and no
-       events when mouse is idle].     
-       
-2002-12-16  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_accessible.c (spi_state_to_corba): rename.
-
-       * libspi/stateset.c (state_spi_to_atk): split out
-       ( fix several remote array bounds nasties )
-       (spi_atk_state_set_from_sequence, impl_contains, impl_add),
-       (impl_remove): make safe from array bounds issues.
-       (spi_atk_state_from_spi_state): impl.
-
-       * libspi/stateset.h (spi_state_set_cache_is_empty): 
-       add a set of wrapper defines to get layering right.
-
-       * cspi/spi_accessible.c: update state set stuff to
-       use it.
-
-2002-12-14  Michael Meeks  <michael@ximian.com>
-
-       * atk-bridge/bridge.c (spi_atk_bridget_get_dec): impl.
-       to avoid 2 roundtrips to the registry per key event
-       (spi_atk_bridge_key_listener): upd.
-       (deregister_application): release the dec.
-
-       * registryd/registry.c (notify_listeners_cb):
-       bin lots of re-enterant complexity - we no longer
-       do a round-trip bonobo ref here, ensure that a single
-       listener's exception failure won't poison all other
-       notifications.
-       (impl_registry_notify_event): bin obvious memory leak.
-
-2002-12-13  Michael Meeks  <michael@ximian.com>
-
-       * atk-bridge/bridge.c (spi_atk_bridge_focus_tracker):
-       init the ev so the error is meaningful.
-       (spi_atk_bridge_key_listener): ditto.
-
-       * cspi/spi_main.c (cspi_ev): init the ev so we start
-       with a clean slate, otherwise the first exception
-       kills us completely.
-
-       * cspi/spi_text.c (get_accessible_text_boundary_type): 
-       add a fallthrough for no warnings.
-
-       * cspi/spi_registry.c: prune unused warnings.
-
-       * cspi/spi_main.c (cspi_object_take): fix
-       mind-blowing brokenness ( by watching the compile
-       warnings )
-
-       * cspi/spi_accessible.c (Accessible_getStateSet):
-       re-impl. to use an AtkStateSet.
-       (spi_state_type_from_accessible_state),
-       (init_state_table): bin these.
-
-       * libspi/stateset.c (spi_atk_state_set_from_sequence):
-       split out from
-       (atk_state_set_from_accessibility_state_set): here.
-
-       * cspi/spi_accessible.c (spi_state_to_atk): impl.
-       (AccessibleStateSet_contains, AccessibleStateSet_ref),
-       (AccessibleStateSet_unref, AccessibleStateSet_contains),
-       (AccessibleStateSet_add, AccessibleStateSet_remove),
-       (AccessibleStateSet_equals, AccessibleStateSet_compare),
-       (AccessibleStateSet_isEmpty): re-write to use a local
-       AtkStateSet object.
-
-2002-12-13  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: Revved to 1.1.7 (new keymask vals).
-
-2002-12-10  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/keymasks.h:
-       Added SPI_KEYMASK_MOD4 and SPI_KEYMASK_MOD5.
-
-2002-12-10  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * cspi/spi_event.c 
-       (cspi_internal_event_get_object): Use CORBA_TypeCode_Equivalent() 
-       to compare two CORBA_TypeCodes.
-       (cspi_internal_event_add): Silence warning from FORTE compiler.
-
-       * cspi/bonobo/cspi_bonobo-listener.h: Add function declarations to 
-       avoid implicit declaration of functions.
-       
-2002-12-09  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_init_event_type_consts): Store signal id for
-       active-descendant-changed signal.
-       (spi_atk_register_event_listeners): Add signal listener for
-       active-descendant-changed signal,
-       (spi_atk_bridge_signal_listener): Move code in function 
-       spi_atk-signal_emit_event() into this function.
-       Add support for active-descendant-changed
-       Update support for child-changed signal.
-       (spi_bridge_window_event_listener): Silence warning.
-
-       * libspi/spi_private.[ch]:
-       (spi_init_any_object): Change second parameter from CORBA_Object to
-       CORBA_Object*.
-       Omit call to CORBA_Object_duplicate(). 
-       Set CORBA_any's _value to CORBA_Object*.        
-
-2002-12-06  Bill Haneman  <bill.haneman@sun.com>
-
-       * configure.in:
-       Revved to 1.1.6.
-       
-       * cspi/spi.h: 
-       (AccessibleEvent_ref, AccessibleEvent_unref):
-       New methods, for persisting an event outside the emission context.
-       Must be used if the new accessor methods are to be called
-       outside of the event listener's callback.
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_dup_ref): Pass 'ev' to bonobo_object_dup_ref
-       as second parameter instead of NULL, so we can call
-       cspi_check_ev afterwards.
-       
-       * cspi/spi_main.c:
-       (cspi_object_take): New internal method, 
-       converts a CORBA_Object reference to a hard ref on
-       an Accessible if possible, returning NULL if the object
-       reference is invalid or an Accessible * otherwise.
-
-       * cspi/spi_event.c:
-       (AccessibleEvent_ref): 
-       Increment the event's internal private refcount, and 
-       add the event's internal struct to an internal cache 
-       if it's not already there.
-       (AccessibleEvent_unref): 
-       Decrement the event's refcount and remove it from
-       the cspi event cache if refcount==0.
-       (cspi_event_compare): New private method.
-       Compares two event structs via their ids. Used 
-       for queue lookup.
-       (cspi_internal_event_lookup): New private method.
-       (cspi_internal_event_check): New private method,
-       a 0-order sanity check for events to make sure their
-       private data is intact.
-       (cspi_internal_event_add, cspi_internal_event_remove):
-       New private methods for managiing the event cache.
-
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       (cspi_event):
-       Initialize the new private data elements (id, magic, ref_count).
-       
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_signal_listener):
-       Fixed bug #100530, passing wrong params to emission func.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_dec_button_update_and_emit): 
-       Fixed type in mask bit operations; fix for #99799.
-       
-2002-12-02  Bill Haneman  <bill.haneman@sun.com>
-
-       Removed some of the more dangerous workarounds from
-       previous commit; they are only needed by GOK, which
-       in reality should be using another method to accomplish
-       the goals.  So on reconsideration some of the workarounds
-       need to be reverted:
-       
-       * registryd/deviceeventcontroller.c:
-       (spi_keycodes_contain, spi_dec_init_keycode_list): 
-       Removed these methods, used only by a nasty hack to try
-       and detect whether a key synthesis should be allowed
-       to reset the XKB latch state or not. This code was only
-       required to work around an interaction between GOK,
-       button events, and XKB.
-       (impl_generate_key_event):
-       Removed hack at end of key generation that tried to
-       "do the right thing" if XKB latch keys were generated
-       in the midst of button press/release pairs.  
-
-       * configure.in:
-       Added a check for HAVE_XINPUT.  Not normally used yet.
-
-2002-11-25  Bill Haneman  <bill.haneman@sun.com>
-
-        Workarounds and fixes for mouse event/XKB interaction.
-       
-       * registryd/deviceeventcontroller.c:
-       (spi_keycodes_contain, spi_dec_init_keycode_list): 
-       New internal methods.
-       (spi_dec_set_unlatch_pending):
-       Split the method that tells XKB to expect an
-       unlatch (and revert it) out of the rest of the
-       event handling code.  This method is called by the
-       two mouse event handlers (the poll and the filter).
-       (spi_dec_update_and_emit, spi_dec_mouse_check): 
-       New methods split from spi_dec_poll_mouse_moved.
-       The second one is now called from inside the filterFn
-       when an XKB delatch event is received, to determine 
-       whether to revert the delatch or not.
-       (spi_poll_mouse_moved): Refactor; also we can now
-       properly handle the case where multiple button states
-       have changed between polling cycles and we didn't get
-       notified due to another client's grab.
-       (global_filter_fn): 
-       Synchronize the server while handling an XKB notification.
-       Ugly, but apparently necessary to avoid nasty races.
-       Check the mouse state on receipt of an XKB latch change,
-       to decide whether to revert the latch or not. (Latches are
-       reverted if there is an immediately preceding mouse button
-       event that a client has consumed, in which case we don't want
-       the user to see the side-effect of the event).
-       (spi_device_event_controller_forward_mouse_event):
-       Check for modifier events and fire before resetting mouse_mask_state,
-       prevents losing modifier events.
-
-       (impl_generate_keyboard_event):
-       If we've just generated a keyboard event for a non-shift key,
-       we don't want to revert the pending XKB latch. 
-       Otherwise, check the modifier state (via a call to 
-       spi_dev_mouse_check) and set the relatch mask to 
-       that state before returning.
-       
-2002-11-24  Bill Haneman  <bill.haneman@sun.com>
-
-        * NEWS: 
-       Updated NEWS (accidentally didn't make it into 1.1.5 tarball,
-       retagged).
-       
-       * atk-bridge/bridge.c:
-       (spi_atk_register_event_listeners):
-       Don't re-register for ATK events if the registry has died
-       and the app needs to re-register; the ATK listeners are in
-       process and doing so will cause duplicate emission.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_poll_mouse_moved):
-       Reformat the source, detect and emit multiple button-change
-       events (i.e. if multiple buttons have changed between poll
-       intervals).
-       Add code to detect mouse-down events even when the pointer
-       is grabbed; workaround for GOK bug 98420.
-       (spi_controller_register_with_devices):
-       Call XTestGrabControl with 'impervious' flag set to True,
-       allows us to synthesize events and query the pointer even during
-       an active grab by another client.
-       (spi_device_event_controller_forward_mouse_event):
-       Set the mouse_mask_state to the mouse_button_state from
-       the intercepted event, to synchronize the grab listener with
-       the poll state.
-       
-2002-11-20  Bill Haneman  <bill.haneman@sun.com>
-
-       * cspi/spi_accessible.c:
-       (AccessibleRole_getName):
-       Added necessary strings for making this (deprecated) 
-       method work with the new role types. 
-       (init_role_table, role_table):
-       Added definition of SPI_ROLE_APPLICATION.
-
-       * libspi/spi-roletypes.h:
-       Added SPI_ROLE_APPLICATION.
-
-       * idl/Accessibility_Role.idl:
-       Added ROLE_APPLICATION. 
-
-       * docs/reference/cspi/at-spi-cspi-decl.txt:
-       Added SPI_ROLE_APPLICATION to docs.
-
-2002-11-20  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * cspi/spi_accessible.c
-       (cspi_init_role_table): Do not write beyond end of role_table.
-       (Accessible_getRole): Use correct type for value returned by
-       Accessibility_Accessible_getRole().
-
-       * libspi/accessible.c (spi_init_role_lookup_table): Do not write
-       beyond end of role_table. (This fixes bug #98269)
-
-       * libspi/application.c: Add include file spi-private.h for 
-       definition of spi_init_any_nil.
-
-2002-11-19 Bill Haneman <bill.haneman@sun.com>
-
-        FIX for bug 99024.
-       
-       * libspi/spi-private.h:
-       Added DGB() macro, and extern int _dbg declaration.
-       
-       * registryd/registry.c:
-       (definitions) storage for _dbg.
-       (spi_registry_init):
-       Get environment variable "AT_SPI_DEBUG".
-       (spi_registry_set_debug):
-       New method, to initialize _dbg value.
-       (spi_listener_struct_new, spi_registry_object_finalize):
-       (notify_listeners_cb):
-       Changed fprintfs to use DBG and g_warning().
-
-       * registryd/deviceeventcontroller.c:
-       (_deregister_keygrab, spi_controller_register_device_listener):
-       Changed debug/warning messages to use DBG macro.
-
-       * libspi/listener.c:
-       (impl_notify_event):
-       Changed warning messages to use DBG macro and g_warning().
-
-       * atk-bridge/bridge.c:
-       (atk_bridge_init, spi_atk_bridge_get_registry):
-       (spi_atk_bridge_exit_func):
-       (spi_atk_bridge_property_event_listener):
-       Changed status, warning, and error messages to use
-       g_warning, g_message, and DBG macros.
-
-       (atk_bridge_init):
-       Read the state of the AT_SPI_DEBUG environment variable
-       and set a local '_dbg' accordingly.
-       
-2002-11-19 Bill Haneman <bill.haneman@sun.com>
-
-        FIXES for 98836, 98842, other bugs.
-       
-       * configure.in:
-       Revved to 1.1.4, interface-age=4, binary-age=4.
-
-       * registryd/deviceeventcontroller.c:
-       (statics):
-       Fixed crasher bug in last_mouse_pos initialization.
-
-       * registryd/registry.c:
-       (desktop_add_application, desktop_remove_application):
-       Added (and then commented out) some support for
-       object context marshalling. [TODO]
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_event_context_create):
-       Commented out object context creation until it can
-       be properly tested and debugged.
-
-       * registryd/registry.c:
-       (impl_registry_notify_event):
-       Fixed crasher bug, we were calling 
-       spi_re_entrant_list_foreach () with an empty list.
-
-2002-11-18  Bill Haneman <bill.haneman@sun.com>
-       
-       * idl/Accessibility_Action.idl:
-       * idl/Accessibility_Component.idl:
-       * idl/Accessibility_Desktop.idl:
-       * idl/Accessibility_Event.idl:
-       * idl/Accessibility_Hyperlink.idl:
-       * idl/Accessibility_Image.idl:
-       * idl/Accessibility_Relation.idl:
-       * idl/Accessibility_Selection.idl:
-       * idl/Accessibility_State.idl:
-       * idl/Accessibility_Value.idl:
-       Updated unimplemented slot count to minimum of
-       four for all interfaces, for ABI freeze. 
-
-       * idl/Accessibility_EditableText.idl:
-       * idl/Accessibility_Text.idl:
-       Updated unimplemented slot count to six
-       for ABI freeze. 
-       
-       * idl/Accessibility_Registry.idl:
-       Updated unimplemented slot count to six
-       (also for DeviceEventController), 
-       for ABI freeze. 
-
-       * idl/Accessibility_Table.idl:
-       Updated unimplemented slot count to eight,
-       for ABI freeze. 
-
-       * idl/Accessibility_Event.idl:
-       Added CORBA_any "any_data" member to Event struct.
-
-       * idl/Accessibility_Event.idl:
-       Added CORBA_any "any_data" member to Event struct.
-
-       * atk-bridge/bridge.c:
-       (statics):
-       atk_signal_text_changed, atk_signal_child_changed,
-       signal ids queried from gtype system.
-       (AtkBridgeEventContextType): New enum.
-       (AtkBridgeEventContextData): New struct.
-       (AtkBridgeEventContext): New struct.
-       (atk_bridge_init_event_type_consts):
-       New method, initializes type contants for comparison 
-       prior to emit_eventv.
-       (atk_bridge_event_context_init): New method,
-       initializes a CORBA_any from an AtkBridgeEventContext.
-       (atk_bridge_focus_tracker): Call spi_init_any_nil to
-       initialize the event.any_data struct.
-       (spi_atk_bridge_event_context_create): New method,
-       creates an AtkBridgeEventContext from signal/event info.
-       (spi_atk_bridge_event_context_free): New method.
-       (spi_atk_emit_eventv): Changed to take an 
-       AtkBridgeEventContext parameter. We now initialize
-       the event.any_data member prior to notifying the 
-       Registry, via the AtkBridgeEventContext.
-       (spi_atk_bridge_property_event_listener):
-       (spi_atk_bridge_state_event_listener):
-       Match emit_eventv signature.
-       (spi_atk_bridge_object_event_listener):
-       Match emit_eventv signature, and create an
-       event context from the event details.
-       Free the event context afterwards.
-       (spi_atk_bridge_window_event_listener):
-       Create an event context, pass it to the
-       emit_eventv call.
-       
-       * cspi/spi_event.c:
-       (AccessibleEvent_getContextString):
-       (AccessibleEvent_getContextObject):
-       New methods, allow query of AccessibleEvent objects
-       for more context details (via the "any_data" member 
-       of the Event struct, above).
-       
-       * cspi/spi.h:
-       Definitions for AccessibleEvent_getContextString
-       and AccessibleEvent_getContextObject.
-
-       * cspi/spi_listener.h:
-       (InternalEvent): New struct.
-
-       * cspi/spi_event.c:
-       (AccessibleEvent_getContextString):
-       (AccessibleEvent_getContextObject):
-       Implementations of new methods, for obtaining
-       additional context information from some event types.
-
-       * cspi/spi_registry.c:
-       (SPI_registerGlobalEventListener):
-       Added mention of active-descendant-changed event in docs.
-
-       * cspi/cspi-bonobo-listener.c:
-       (cspi_event):
-       Marshal the any into the AccessibleEvent via
-       InternalEvent.
-       
-       * libspi/spi-private.h:
-       #include <orbit/orbit.h>
-       (spi_init_any_nil):
-       (spi_init_any_string):
-       (spi_init_any_object):
-       New convenience function declarations.
-
-       * libspi/util.c:
-       (spi_init_any_nil):
-       (spi_init_any_string):
-       (spi_init_any_object):
-       New convenience function implementations.
-
-       * registryd/deviceeventcontroller.c:
-       (spi_poll_dec_mouse_moved):
-       (spi_device_event_controller_forward_mous_event):
-       Initialize any_data member of event.
-       (spi_deregister_controller_device_listener):
-       Fix incorrect param pass which was preventing deregistration.
-
-       * registryd/registry.c:
-       (desktop_add_application):
-       (desktop_remove_application):
-       Add object data to event's any_data before dispatch.
-       (parse_event_type):
-       Fix for error messages from GAIL.
-       
-       * test/event-listener-test.c:
-       Test new ContextString and "any_data" API:
-       (report_text_event): New method query and output context string.
-       (main): register a new text listener with report_text_event
-       callback.
-
-2002-11-19  Darren Kenny  <darren.kenny@sun.com>
-
-       Fixes for bugs 98127 and 97914.
-       * cspi/spi-roletypes.h:
-       Added SPI_ROLE_HEADER, SPI_ROLE_FOOTER, SPI_ROLE_PARAGRAPH,
-       SPI_ROLE_RULER
-       * cspi/spi-statetypes.h:
-       Added SPI_STATE_MANAGES_DESCENDANTS
-       * cspi/spi.h:
-       Added SPI_RELATION_FLOWS_TO, SPI_RELATIONS_FLOWS_FROM,
-       SPI_RELATION_SUBWINDOW_OF, SPI_RELATION_EMBEDS, SPI_RELATION_EMBEDDED_BY
-       * cspi/spi_accessible.c:
-       Added mapping in role_table from new Accessibility_ROLE_* to SPI_ROLE_*
-       Added mapping from SPI_STATE_MANAGES_DESCENDANTS to 
-       Accessibility_STATE_MANAGES_DESCENDANTS
-       * libspi/accessible.c:
-       Added Mapping from ATK_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} to
-       Accessibility_ROLE_{FOOTER,HEADER,PARAGRAPH,RULER} 
-       As requested by Bill, I also cleaned up the alignment.
-       * libspi/relation.c:
-       Added mapping of the ATK_RELATION_{FLOWS_TO,FLOWS_FROM,SUBWINDOW_OF,
-       EMBEDS,EMBEDDED_BY} to equivalend Accessibility_RELATION_*
-       * libspi/stateset.c:
-       Added mappings between ATK_STATE_MANAGES_DESCENDANTS and
-       Accessibility_STATE_MANAGES_DESCENDANTS
-       * docs/reference/cspi/tmpl/spi_accessible.sgml:
-       Document changes reflecting modifications to roles.
-       * docs/reference/cspi/tmpl/spi_relation.sgml:
-       Document changes reflecting modifications to relations.
-       * docs/reference/cspi/tmpl/spi_stateset.sgml:
-       Document changes reflecting modifications to states.
-
-2002-11-17  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Revved to 1.1.3, interface-age=3, binary-age=3.
-       Added REBUILD macro.
-
-       * test/Makefile.am:
-       Removed accessx-gui from the tests, since we have a nice
-       keyboard accessibility capplet now :-)
-
-       * test/keysynth-demo.c:
-       (increment_scan): removed do-nothing default: case,
-       silences warning.
-
-       * test/visual-bell.c:
-       (main) : removed do-nothing default: case, 
-       silences warning.
-
-       * cspi/spi_action.c:
-       (AccessibleAction_getKeyBinding_): 
-       Documented keybinding string format.
-       FIX for bug 97916.
-
-       * cspi/spi_text.c:
-       (AccessibleText_getAttributes):
-       Documented the text attribute string format.
-       It's changed to use semicolon delimiters also,
-       to prevent clashes with CSS attributes, but the old
-       trick of looking for ", " strings will still work
-       (as unreliably as ever).  Fix for bug related to 97916.
-
-       * cspi/spi_event.c:
-       Include <cspi/bonobo/cspi-bonobo-listener.h>
-       Fixes build warning.
-       (SPI_freeAccessibleKeySet):
-       (AccessibleKeystrokeListener_addCallback):
-       (AccessibleKeystrokeListener_removeCallback):
-       Modify to use AccessibleDeviceListener API internally,
-       instead of AccessibleKeystrokeListener.
-       
-       * idl/Accessibility_Event.idl:
-       Added two more empty slots to EventListener (for a total of four).
-
-       * idl/Accessibility_Accessible.idl:
-       Added four empty slots to Accessible interface.
-
-2002-11-15  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Registry.idl:
-       (KeyEventType, EventType):
-       Marked KeyEventType as deprecated; it duplicates
-       functionality of EventType, which has been extended to
-       include Mouse-button events.
-       (KeyEventTypeSeq): defined in terms of EventType.
-       (registerDeviceEventListener, deregisterDeviceEventListener):
-       New methods, for managing listeners to device events,
-       which potentially may consume them.     
-       
-       * cspi/spi-impl.h:
-       Added definition for AccessibleDeviceListener.
-
-       * cspi/spi-listener.h:
-       (enum AccessibleDeviceEventType):
-       Added SPI_BUTTON_PRESSED and SPI_BUTTON_RELEASED.
-       Typedef'd AccessibleKeyEventType to AccessibleDeviceEventType
-       for backwards compat.
-       (AccessibleKeystroke): Renamed AccessibleKeystroke to AccessibleDeviceEvent,
-       and typedef'd AccessibleKeystroke to it for back-compat.
-       (AccessibleDeviceListenerCB):
-       New function prototype typedef.
-
-       * cspi/spi.h:
-       (AccessibleDeviceEventMask): New typedef.
-       (AccessibleModifierMaskType): New typedef (renamed from AccessibleKeyMaskType).
-       (AccessibleKeyMaskType): 
-       Set equivalent to AccessibleModifierMaskType for back-compat.   
-       (SPI_createAccessibleKeystrokeListener):
-       (AccessibleKeystrokeListener_unref):
-       Deprecated in favor of equivalent (better-named) new API below..
-       keystroke listeners are like all device listeners.
-       (SPI_createAccessibleDeviceListener, AccessibleDeviceListener_unref)
-       New API names for old features :-).
-       (AccessibleDeviceListener_addCallback):
-       (AccessibleDeviceListener_removeCallback): 
-       (SPI_registerDeviceEventListener): 
-       (SPI_deregisterDeviceEventListener): 
-       New methods.
-       
-       * cspi/spi_event.c:
-       (SPI_createAccessibleKeystrokeListener):
-       Use new preferred API, cspi_device_listener_new() and
-       cspi_device_listener_add_cb().
-       (AccessibleKeystrokeListener_removeCallback):
-       Use new preferred API, cspi_device_listener_remove_cb().
-       (AccessibleKeystrokeListener_unref):
-       Use new preferred API, cspi_device_listener_unref().
-       (SPI_createAccessibleDeviceListener):
-       (AccessibleDeviceListener_addCallback):
-       (AccessibleDeviceListener_removeCallback):
-       Implementation of new API.
-
-       * cspi/spi_registry.c:
-       (SPI_registerDeviceEventListener):
-       (SPI_deregisterDeviceEventListener):
-       Implementation of new API.  Fixed memory leak and removed need to
-       allocate EventTypeSeq (thanks Michael for catching this).
-       Squashed a wayward CORBA_exception_free that shouldn't get called.
-
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       (EventHandler):
-       Changed union (bin-and-api-compatibly) to refer to AccessibleDeviceListenerCB.
-       (cspi_key_event): renamed to cspi_device_event().
-       Internal use of CSpiKeystrokeListener changed to CSpiDeviceListener.
-       Extended to handle mouse button events as well as key events.
-       (CSpiKeystrokeListener):
-       Class superceded by CSpiDeviceListener.
-       (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
-       These internal APIs changed to "*device_listener" from "*keystroke_listener".
-
-       * cspi/bonobo/cspi-bonobo-listener.h:
-       (CSpiKeystrokeListener):
-       Class superceded by CSpiDeviceListener.
-       (cspi_keystroke_listener_add_callback, cspi_keystroke_listener_get_corba):
-       These internal APIs changed to "*device_listener" from "*keystroke_listener".
-
-       * libspi/Makefile.am:
-       Replaced keystrokelistener.h and keystrokelistener.c
-       with devicelistener.h and devicelistener.c; keystrokelisener.h
-       stub retained for back-compat.
-
-       * libspi/keystrokelistener.c:
-       Removed file.
-
-       * libspi/libspi.h:
-       Replaced inclusion of keystrokelistener.h with devicelistener.h.        
-
-       * registryd/deviceeventcontroller.c:
-       (DEControllerListener): Added Accessibility_EventTypeSeq member.
-       (DEControllerKeyListener): Removed Accessibility_KeyEventTypeSeq member.
-       (DEControllerPrivateData): Added xkb settings data.
-       (spi_dec_poll_mouse_moved): Changed to dispatch device events for
-       button release events (which can't be captured via XGrabButton).
-       Don't dispatch via the 'normal' event mechanism if the device event was
-       consumed.
-       (spi_dec_key_listener_new, spi_key_listener_clone, spi_key_listener_data_free):
-       Handle the typeseq data in its new location (see above).
-       (spi_dec_listener_new, spi_listener_clone, spi_listener_clone_free):
-       New methods, for "generic" device listeners.
-       (spi_controller_register_device_listener):
-       Now handle mouse event listeners as well as key listeners.
-       (spi_controller_notify_mouselisteners):
-       New internal method.
-       (spi_device_event_controller_forward_mouse_event):
-       Now we notify mouse device listeners as well as generating the
-       non-consumable "mouse:" events.  
-       (global_filter_fn):
-       We must check and restore the XKB
-       modifier map if we consume the event, since the act of triggering
-       a mouse event will normally reset the XKB latch.  This is required for 
-       instance by GOK.
-       (spi_controller_register_with_devices):
-       Load the XKB settings when registering, and register for XKB 
-       state notify events. 
-       (spi_key_eventtype_seq_contains_event):
-       Renamed spi_eventtype_seq_contains_event, since it's used
-       internally for all device event types now.
-       (spi_key_event_matches_listener):
-       Uses spi_eventtype_seq_contains_event now.
-       (spi_device_event_controller_object_finalize):
-       Free the private data and the XkbKeyboard struct.
-       (impl_register_device_listener, impl_deregister_device_listener):
-       Implementation of new IDL.
-       (spi_deregister_controller_device_listener):
-       New internal method.
-       (dec_xkb_get_slowkeys_delay dec_xkb_get_bouncekeys_delay):
-       More efficient implementation, we don't have to create a new
-       XkbControls structure every time we query.
-       (spi_device_event_controller_class_init):
-       Initialize the epv entries for the new IDL.  Assign the 
-       "spi-dec-private" quark.
-       (spi_device_event_controller_init):
-       Initialize the private data.
-       (spi_device_event_controller_forward_key_event):
-       Removed a bogus CORBA_exception_free() call.
-       
-       * registryd/deviceeventcontroller.h:
-       Replaced inclusion of keystrokelistener.h with
-       devicelistener.h.
-
-       * test/event-listener-test.c:
-       (report_mouse_event):
-       New method.
-       (main):
-       Added mouse-event device listener.
-
-       * test/test-simple.c:
-       (create_test_window):
-       Fixed regression (we were instantiating a GtkRange,
-       which is now an abstract class).  Also fixed to match
-       existing AtkRole names, this seems to have changed in ATK
-       awhile ago; too late now I think, and the new
-       mechanism is at least elegant and consistent with the
-       glib enum "nick" APIs.  
-
-2002-11-15  Darren Kenny  <darren.kenny@sun.com>
-
-       * idl/Accessibility_Relation.idl:
-       add RELATION_FLOWS_TO,RELATION_FLOWS_FROM,RELATION_SUBWINDOW_OF,
-       RELATION_EMBEDS,RELATION_EMBEDDED_BY
-       * idl/Accessibility_Role.idl:
-       add ROLE_HEADER, ROLE_FOOTER, ROLE_PARAGRAPH, ROLE_RULER
-       * idl/Accessibility_State.idl:
-       add STATE_MANAGES_DESCENDANTS
-       * test/event-listener-test.c:
-       Added a listener for active-descendant events.
-
-2002-11-15  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c
-       (atk_bridge_init): If application is Bonobo component wait until top
-       level is added before registering
-       (spi_atk_bridge_do_registration): New function which contains code, 
-       formerly in atk_bridge_init, to do application registration.
-       (spi_atk_bridge_toplevel_added): Signal called when top level
-       added to Bonobo component
-
-       This fixes bug #83134.
-
-2002-10-23  Vitaly Tishkov  <tvv@sparc.spb.su>
-
-       * registryd/deviceeventcontroller.c
-        Fixed compilation error caused by calling gettimeofday() 
-        with 1 parameter
-
-2002-10-18  Bill Haneman  <bill.haneman@sun.com>
-
-       BUGFIX for #95828.
-
-       * acconfig.h:
-       Added template for HAVE_XKB.
-       
-       * configure.in:
-       Changes to check for XKB, and to set the HAVE_XKB #define if it 
-       is available.
-       
-       * libspi/listener.c:
-       ()impl_notify_event): Make failure to get event source name
-       nonfatal.
-
-       * registryd/deviceeventcontroller.c:
-       (#include): include X11/XKBlib.h.
-       (DEControllerPrivateData) : New struct.
-       (dec_xkb_get_slowkeys_delay) (dec_xkb_get_boucekeys_delay) : 
-       New methods.
-       (dec_synth_keycode_press) (dec_synth_keycode_release):
-       New methods; split the key synthesis code into these methods.
-       They check XKB settings before determining the "time" values to
-       pass to Xtest; this fixes bug #95828.
-       (impl_generate_keyboard_event): Changed to use methods above,
-       instead of callng Xtest directly.
-       (spi_device_event_controller_init): Initialize new privae struct s
-       above.
-       (spi_device_event_controllr_object_finalize):
-       Free the (new) private data.
-
-       * registryd/deviceeventcontroller.h:
-       Add new gpointer to end of struct data.
-
-2002-10-16  Bill Haneman  <bill.haneman@sun.com>
-
-       * configure.in:
-       Incremented revision to 1.1.2, SONAME is still '.so', library
-       extensions are ".so.0.0.2".
-
-       * registryd/deviceeventcontroller.c:
-       FIXES FOR #93592 and #95940.
-       (statics):  renamed mouse_button_state to mouse_mask_state, 
-       added key_modifier_mask.
-       (spi_dec_poll_mouse_moved): 
-       Added key modifier checks, and emit "keyboard:modifiers"
-       events when the key modifiers currently in use change.
-       Also generate "mouse:abs" events periodically, even if the mouse
-       is stationary (should we?).
-       Alternatively we could generate "mouse:abs" events for either all
-       mouse movements, or every 'nth' mouse movement, or at the
-       beginning and end of every "active" mouse period.
-       
-       * test/event-listener-test.c:
-       (main): Added listener for "keyboard:modifiers" events.
-       
-2002-10-15  Bill Haneman  <bill.haneman@sun.com>
-
-       * libspi/keymasks.h:
-       Added key mask #defines for mouse buttons; e.g.
-       SPI_KEYMASK_BUTTON1, etc.
-
-       * configure.in:
-       Incremented dependency on ATK to version 1.1.0. (This dependency
-       is probably premature but will soon be real enough).
-
-2002-10-11  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * libspi/hyperlink.[ch]
-       (spi_hyperlink_new): Change parameter from AtkObject to AtkHyperlink.
-       (get_hyperlink_from_servant): Check object is AtkHyperlink not 
-       AtkObject.
-
-       * libspi/hypertext.c (impl_getLink): Remove cast of AtkHyperlink to
-       AtkObject.
-
-       Fixes bug #95517.
-
-2002-10-10  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * registryd/deviceeventcontroller.c
-       (global_filter_fn): Correct typo which caused KeyPress and KeyRelease
-       events to be ignored.
-       (spi_controller_update_key_grabs): Use GrabModeSync for pointer_mode
-       keyboard_mode so that XAllowEvents() can be called.
-
-       Fixes bug #93658.
-
-2002-10-08  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * cspi/spi-accessible.c: Correct names of roles returned by
-       AccessibleRole_getName(). Fixes bug #95055.
-
-2002-10-03  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * cspi/spi_main.c (report_leaked_ref): Report address of leaked
-       object.
-
-       * registryd/registry.c
-       (desktop_remove_application: Write diagnostic message to stderr for
-       consistency.
-
-       (impl_accessibility_registry_deregister_global_event_listener):
-       Correct size of lists array. This addresses bug #94555).
-
-2002-09-24  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * libspi/accessible.c (spi_init_role_lookup_table): Correct typos
-       in some role names.
-
-2002-09-19  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * registryd/Makefile: Add CLEANFILES so that .server file is removed
-       on make clean
-
-       * registryd/registry.c (impl_registry_notify_event): Remove
-       unnecessary call to parser_event_type().
-
-       * docs/reference/cspi/tmpl/spi_component.sgml:
-       Add reference to SPI_LAYER_WINDOW.
-
-2002-09-17  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * registryd/registry.c
-       (desktop_add_application): Remove leak.
-       (desktop_remove_application): Remove leak.
-       (parser_event_type): Remove leak.
-
-2002-09-16  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * registryd/deviceeventcontroller.c (spi_dec_mouse_moved): Removed
-       bogus call to CORBA_string_dup(). Also removed unnecessary
-       g_string_dup/g_free calls.
-       
-2002-09-13  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       spi_dec_mouse_moved: Fixed memory leaks and reordered 2 code blocks.
-
-       * test/event-listener-test.c:
-       main: commented out three redundant listeners, to reduce output
-       noise. (They still are potentially useful for testing).
-       
-
-2002-09-13  Michael Meeks  <michael@ximian.com>
-
-       * Update all the copyrights to include Ximian.
-
-2002-09-06  Mark McLoughlin  <mark@skynet.ie>
-
-       * cspi/spi.h: add SPI_LAYER_WINDOW.
-
-       * cspi/spi_component.c: (AccessibleComponent_getLayer):
-       add Accessibility_LAYER_WINDOW case.
-
-       * idl/Accessibility_Component.idl: add LAYER_WINDOW.
-
-       * libspi/component.c: (impl_accessibility_component_get_layer):
-       add ATK_LAYER_WINDOW case.
-
-2002-08-28  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: incremented micro version.
-
-       * branched for gnome-2-0 (a gnome-2-0-0 branch already exists).
-
-2002-08-20  Bill Haneman <bill.haneman@sun.com>
-
-       * HACKING: 
-       Clarified and reworded our commit policy.
-
-       * NEWS:
-       Started an API "todo" addition list for 2.2.
-
-       * libspi/text.c:
-       (impl_getSelection):
-       Free char pointer from atk_text_get_selection, which was being leaked.
-
-2002-08-19  Bill Haneman <bill.haneman@sun.com>
-
-       * AUTHORS: 
-       Small revision to author acknowledgement.
-
-2002-08-19  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c (spi_atk_bridge_signal_listener):
-       If signal has detail add it to the type of the event.
-       (bug #90838)
-       
-2002-08-12  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c (global_listener_cb): bin bogosity.
-       (test_keylisteners): disable, still doesn't work reliably,
-       certainly not on my system anyway.
-
-       * atk-bridge/bridge.c (spi_atk_bridge_key_listener):
-       don't leak a reference on the DEC. This round-trip
-       fetching of the DEC per keystroke sucks, it should be
-       cached.
-
-       * cspi/spi-private.h,
-       * cspi/cspi-lowlevel.h,
-       * cspi/bonobo/cspi-bonobo-listener.[ch],
-       * cspi/bonobo/cspi-bonobo.c: get the copyright
-       notices better - there is still a large amount of
-       work in at-spi falsely attributed solely to Sun.
-
-       * cspi/spi_main.c (cspi_object_ref): kill bogus
-       hash lookup, just increment the ref.
-       (SPI_freeString): make explicit the fact that we
-       handle NULL strings just fine.
-       (report_leaked_ref): obey coding standards.
-       (cspi_object_hash, cspi_object_equal): kill retval.
-       (cspi_object_release): only release if not on loan.
-       (cspi_object_get_ref): add 'loan' concept, bin 'do_ref'.
-       (cspi_object_borrow, cspi_object_return): impl.
-
-       * cspi/bonobo/cspi-bonobo-listener.c (cspi_event):
-       use cspi_object_borrow / return.
-
-2002-08-12  Darren Kenny  <darren.kenny@sun.com>
-
-       * cspi/bonobo/cspi-bonobo-listener.c: 
-       (cspi_event):
-       Don't call cspi_oject_new() because this is creating a new Accessible
-       every single time that an event is fired. This causes ATs like at-poke
-       to nolonger recognise the source of the event and thus ignore it.
-       Re-use the object from the cache, ref it and then unref it after the
-       listeners have been called.
-
-2002-08-06  Darren Kenny  <darren.kenny@sun.com>
-
-       * test/event-listener-test.c: 
-       Added command-line options to disable mouse events (m) and
-       show usage (h). 
-
-2002-07-31  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * configure.in: Update required versions of ATK, GTK+ and GAIL
-
-       * cspi-1.0.pc.in: Add dependency for X include files
-
-       * cspi/Makefile.am:
-       * cspi/bonobo/Makefile.am: 
-       Add $(X_CFLAGS) so that X include files 
-       are picked up even if not in standard place (bug #71686)
-
-2002-06-25  Bill Haneman  <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c: fix for 84261
-       (spi_dec_mouse_moved):
-       Added test of mouse button mask, so that we can detect mouse
-       button release.  Unfortunately we can't otherwise detect mouse
-       button release events without consuming the mouse press event,
-       because of the way XGrabButton works.  This means that our mouse
-       release events have a latency dependent on the polling period
-       while the mouse button is down.  At least in this case we only
-       have to poll while the button is down, and not at other times.
-       If the button masks don't match with what the last press event
-       reported, we report the appropriate button release event.
-       (spi_dec_ungrab_mouse):
-       New method (not yet called).
-       (spi_device_event_controller_forward_mouse_event):
-       New method, sends mouse press event from GdkFilter.
-       (spi_dec_init_mouse_listener):
-       Added code to call XGrabButton, redirecting mouse button events to
-       the root window and our Gdk event loop.
-       (global_filter_fn):
-       Added code to filter mouse button events, and reordered.
-       
-       * test/event-listener-test.c:
-       (main):
-       Added registration for mouse events of type "mouse:button".
-
-2002-06-25  Bill Haneman  <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c: partial fix for 84261
-       (spi_dec_poll_mouse_idle):
-       New method, a timeout which checks to see if the mouse
-       has moved.
-       (spi_dec_poll_mouse_moving):
-       A timeout to be called when mouse motion is underway.
-       (spi_dec_poll_mouse_moved):
-       A method which fires an event if the mouse has moved, and reports
-       whether or not it did so. 
-       (spi_dec_init_mouse_listener):
-       A method which sets up the timeouts above.
-       (spi_device_event_controller_new):
-       Now calls spi_dec_init_mouse_listener.
-
-       * registryd/registry.c:
-       (spi_registry_init):
-       Now we initialize the device event controller when the registry is
-       initialized, instead of waiting until a client has requested a key
-       event notification; this is because we need the event controller
-       for mouse events, but the mouse event registration API is a
-       "registry" call and doesn't explicitly call the 
-       deviceeventcontroller.
-       We now report mouse motion events with a 100 ms idle latency and
-       a 20 ms granularity when motion is in progress.
-
-       * test/event-listener-test.c:
-       (main):
-       We now register the "detail listener" for events of type 
-       "mouse:rel" and "mouse:abs" (Note, mouse-abs events generally are
-       delivered only for the first mouse event received, and thereafter
-       "mouse:abs" events are delivered.)
-
-       * cspi/spi_registry.c:
-       DOCS: Documented the above mouse event typestrings.
-       
-2002-06-21  Bill Haneman  <bill.haneman@sun.com>
-
-       Happy Summer Solstice...
-
-       * registryd/deviceeventcontroller.c: [fix for bug 84100]
-       (spi_controller_notify_keylisteners):
-       Changes to remove a listener from the listener list, freeing its
-       open keygrabs, if a notification to that listener fails.  This
-       means that although a dead listener can continue to hold a passive
-       keygrab, a maximum of one dispatch to such a listener can fail
-       before the listener is removed from the list, thus the keygrab
-       will be released on the next occurrence.
-       As part of this fix:
-       (spi_notify_keylisteners):
-       Renamed to spi_controller_notify_keylisteners, as the controller
-       instance must now be passed as an argument.
-       The copied 'notify' GList is now a list of DEControllerKeyListener
-       objects, since we need more than just the CORBA reference if a
-       notify fails and we need to deregister the listener.
-       (impl_notify_listeners_sync):
-       (impl_notify_listeners_async):
-       (spi_device_event_controller_forward_key_event):
-       Modify use of notify_keylisteners in accordance with above
-       changes.
-       (spi_deregister_controller_key_listener):
-       New method introduced by refactoring, from 
-       impl_deregister_keystroke_listener.
-       (impl_deregister_keystroke_listener):
-       Call spi_deregister_controller_key_listener.
-       (spi_key_listener_clone):
-       New method to copy a key listner without doing a 'ref' on the
-       remote object instance; used to create a notifier list.
-       (spi_key_listener_data_free):
-       New method, frees data without unreffing the source.
-       Used in refactor.
-       (spi_key_listener_clone_free): new method.
-       (spi_key_listener_free): 
-       refactored to call spi_key_listener_data_free.
-       
-2002-06-20  Bill Haneman  <bill.haneman@sun.com>
-
-       * registryd/registry.c: [fix for bug 86048]
-       (notify_listeners_cb):
-       Clear CORBA system exceptions which occur when notifying
-       listeners, before returning to the source of the original event,
-       since the event source doesn't care if the relayed notify failed.
-       In other words, don't complain to the atk-bridge if the registry
-       could not notify all its listeners, that's no fault of the
-       application and thus should not appear to be an error from the
-       application's perspective.
-       
-       * cspi/spi_main.c: [fix for bug 85980]
-       (cspi_object_ref):
-       Replaced use of bonobo_object_dup_ref with call to the wrapper
-       method, csou_dup_ref (); this silences a compiler warning and
-       provided more portability.
-       (cspi_registry):
-       Ping the registry before return, and restart if necessary.
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_ping):
-       New internal method.
-       (cspi_dup_ref):
-       Fixed this method to return an object reference, as it should have
-       all along.
-
-       * cspi/cspi-lowlevel.h:
-       Added internal definition for cspi_ping() and fixed 
-       return type of cspi_dup_ref().
-       
-
-2002-06-19  Bill Haneman  <bill.haneman@sun.com>
-
-       * atk-bridge/bridge.c:  [fix for bug 85305]
-       (spi_atk_bridge_register_application):
-       New method where the initial application registry calls have been
-       moved; it allows an application to re-register in response to
-       certain error conditions (such as a registry restart, see below).
-       (atk_bridge_init):
-       Moved some initialization code to the method
-       spi_atk_bridge_get_registry, below.
-       (spi_atk_bridge_get_registry):
-       New, private accessor function for the Accessibility_Registry
-       instance.  If the registry has not been started before, or has
-       died (as detected by failure of a CORBA exception), it is
-       restarted before return, and spi_atk_bridge_register_application
-       is called again to register with the new bridge instance.
-       (spi_atk_emit_eventv):
-       Set registry_died on error; use spi_atk_bridge_get_registry () to
-       access the registry.
-       
-       * registryd/registry.c:
-       (impl_accessibility_registry_register_global_event_listener):
-       Set listener's event_type_quark to etype.minor instead of
-       etype.major (fix for bug 84856).
-
-       * test/event-listener-test.c:
-       (report_detail_event):
-       Change the output string so that user/tester can tell that the
-       'detail listener' was called instead of the 'generic listener'.
-       
-2002-06-18  Bill Haneman  <bill.haneman@sun.com>
-
-       Fixes for bugs 84900, 84908, 84897, 84898.
-
-       * NEWS: updated.
-       
-       * configure.in:
-       Revved version to 1.1.0 
-       (reserving the 1.0.X branch for gnome-2-0-0 branch, this
-       version is going to HEAD which will be used for gnome-2-0-1 and later.)
-       
-       * idl/Accessibility_Registry.idl:
-       (EventListener::notifyEvent):
-       Removed 'oneway' directive after extensive consulation with
-       ORBit2 team and others.  This means also that unref() of the event
-       source can and should be done synchronously after emission, rather
-       than remotely in the client, after servicing the notify call on
-       the listener side.
-
-       NOTE: This change speeds up listener performance considerably, but
-       introduces new latency on the application side.  We may want to
-       add an event queue to the atk-bridge.
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_focus_tracker):
-       Do a local unref() on the event source after emission.
-       
-       * registryd/registry.c:
-       (desktop_remove_application):
-       Do an unref() on the event source after emission.
-       (desktop_add_application):
-       Do an unref() on the event source after emission.
-       (notify_listeners_cb):
-       When relaying an event, don't automatically add the event source
-       to the local object cache, just CORBA_dup it instead.  Likewise,
-       if this method reenters, release the ref rather than calling
-       unref() as well.
-       (impl_registry_notify_event):
-       No longer call remote unref() on the event source after dispatch.
-
-       * libspi/eventlistener.c:
-       (impl_accessible_event_notify_event):
-       Removed remote unref ()
-       
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       (cspi_event):
-       We now call cspi_object_new() instead of cspi_object_add() on
-       receipt of an event; thus we only have an implicit object ref
-       while the cspi_event method is being executed.  If we need to keep
-       a reference to the object, the listener must call ref() on the
-       object.  Thus also we don't need to call cspi_object_unref() after
-       invoking the listener callbacks in this method.
-       
-       * cspi/spi_main.c:
-       (cspi_object_new):
-       New internal API for creating a new cspi object, without adding it
-       to the object cache.
-       (cspi_object_add):
-       Now uses cspi_object_new() to create the cspi object instance.
-       (cspi_object_ref):
-       Now checks to see if the object is in the internal object cache,
-       and adds it if necessary before incrementing its refcount (note
-       that new objects are added with a refcount of 1).
-       (report_leaked_ref):
-       New method which gives some information on leaked object instances
-       if leak detection is turned on.
-
-       * test/event-listener-test.c:
-       (timing_test_event):
-       New method, used for testing event delivery timing for special
-       events of type "object:test".  It reports elapsed time and
-       events/sec every 500 events.
-       (main):
-       Added a new listener, 'test listener', to check timing of event
-       receipt as noted above.
-       (report_event):
-       Added some timing output here also, reports elapsed time every 100
-       events.
-
-       * test/stress-test.c:
-       Emit events of type "object:test", for use with "event-listener-test".
-
-       * test/test-simple.c:
-       (global_listener_cb):
-       Call Accessible_ref() on the event source before calling
-       validate_accessible, since the validation process does pointer
-       comparisons on the event source, meaning that the event source
-       needs to be added to the local object cache first.  Any use of
-       such pointer comparisons between Accessible objects requires that
-       the caller hold an explicit reference to those objects.
-       We also must therefore call Accessible_unref() when leaving this method.
-
-2002-06-13  Bill Haneman  <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       (spi_controller_update_key_grabs):
-       Fix for #84735, subsequent keygrab listeners not informed of
-       registration failure.
-
-       * libspi/base.c:
-       (spi_base_construct):
-       Add an assertion on construct, to make sure the GObject passed in
-       is really a GObject.
-       (spi_base_init):
-       Explicitly initialize object->gobj pointer to NULL;
-
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       (cspi_object_add_ref):
-       New method, can specify whether to dup-ref a bonobo object passed
-       in if it's newly added to the object cache.
-       (cspi_object_add):
-       Now calls cspi_object_add_ref with second param of "FALSE".  This
-       prevents us from doing a pointless dup-ref followed by
-       release-unref for all those cases where the object is already in
-       our object cache (fix for #85205).
-
-       * atk-bridge/bridge.c:
-       (spi_atk_bridge_idle_init):
-       Removed this method, we don't need to initialize in an idle
-       handler anymore;
-       (atk_bridge_init):
-       Changed to call spi_atk_register_event_listeners directly, not via an
-       idle handler. (fix for #81139)
-       (gnome_accessibility_module_shutdown):
-       Removed conditional around deregistration of listeners, since we
-       don't use the idle handler and thus have always registered when
-       shutdown is called.
-       (spi_init_keystroke_from_atk_key_event):
-       Changed references to Accessibility_KEY_PRESSED to 
-       Accessibility_KEY_PRESSED_EVENT, etc. (fix for #79865).
-       
-2002-06-12  Bill Haneman  <bill.haneman@sun.com>
-
-       (TAGGED AND BRANCHED for gnome-2-0-0 after this commit)
-       
-       * configure.in:
-       Revved to 1.0.1
-
-       * test/stress-test.c:
-       Added file.
-
-       (may have been an incomplete commit yesterday?)
-
-2002-06-12  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/Makefile.am:
-       Added target for new stress-test.
-       
-       * test/stress-test.c:
-       New test, sends 1000 focus notifies in quick succession.
-
-       * test/key-listener-test.c:
-       Now we report whether a keylistener registration
-       request succeeded or failed.
-
-       * test/event-listener-test.c:
-       Uncommented some listeners which are now implemented.
-
-
-2002-06-06  Bill Haneman  <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-        (spi_controller_update_key_grabs):
-       Fix for #82509, lack of failure notification when
-        ALL_WINDOWS keygrabs fail due to XGrabKey
-        failure: we synchronize the server when 
-        registering a passive grab, to make sure we get the
-        error message before the call returns.
-
-2002-06-03  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/test-simple.c:
-       (key_listener_cb):
-       Removed #ifdef KEY_IMPL_WORKS guards.
-       (test_keylisteners):
-       Removed #ifdef KEY_IMPL_WORKS guards.
-       Fixed bug which was causing a hang waiting for a 
-       "press" event (which was already overwritten by a "release" 
-       event) from SPI_generateKeyboardEvent with synth-type of SPI_KEY_SYM.
-       (key_listener_cb):
-       Added code to set globals 'key_press_received' and
-       'key_release_received'.
-
-       * TODO:
-       Added section "1.1 API Proposed Additions" which
-       lists API additions desired for at-spi-1.1 (only one so far).
-       Updated TODO list a little.
-       
-2002-06-02  Bill Haneman  <bill.haneman@sun.com>
-
-       AT-SPI 1.0 API FINAL: at-spi 1.0 is now
-       API frozen.
-       
-       * configure.in: Revved to 1.0.0.
-
-       * idl/Accessibility_Registry.idl:
-       (registerKeystrokeListener):
-       Added boolean return value.
-       
-       * registryd/registry.c:
-       (notify_listeners_cb): Minor fix to debug output.
-
-       * registryd/Accessibility_Registry.server.in.in:
-       Revved version number in OAFIID to 1.0.
-
-       * registryd/registryd.c:
-       (main):
-       Use new OAFIID version.
-
-       * cspi/bonobo/cspi-bonobo.c:
-       (cspi_init):
-       Use new OAFIID version.
-
-       * test/at.c:
-       (main):
-       * test/app.c:
-       (main):
-       * atk-bridge/bridge.c:
-       (atk_bridge_init):
-       Use new OAFIID version.
-
-       * registryd/deviceeventcontroller.c:
-       (impl_register_keystroke_listener):
-       Added CORBA_boolean return value.
-       (spi_controller_register_device_listener):
-       Added gboolean return value.
-       (spi_controller_register_global_keygrabs):
-       Added gboolean return value.
-       (spi_key_set_contains_key):
-       Added implementation for many more control keys,
-       for instance F1-F12, arrow keys, End, Home, Page_Up,
-       Page_Down, Escape.
-       [TODO: some still not implemented]. 
-       
-       * text/screen-review-test.c:
-       (text_chunk_pad_string):
-       New function: it provides mapping between coordinate
-       positions of text chunks and character positions in the
-       screen-review-line output string.
-       (text_chunk_to_string):
-       New function, calls text_chunk_pad_string with various
-       pad/delimiter characters. Pushbuttons are delimited with
-       square brackets, Frames with vertical 'pipe' lines, and 
-       other text with double quotes.
-       (text_chunk_list_to_string):
-       Calls new function text_chunk_to_string.
-       (toplevel_composite):
-       New function to composite layers CANVAS through
-       POPUP in each toplevel (other layers are composited
-       across toplevels, i.e. BACKGROUND and OVERLAY).
-       (review_buffer_composite):
-       Revise to use new methods.
-       
-       
-       
-       
-
-2002-05-31  Laszlo Peter  <laca@sun.com>
-
-       * configure.in: add the Xtst libdir to the runpath on Solaris,
-       since it's not in the default library search path.
-
-2002-05-29  jacob berkman  <jacob@ximian.com>
-
-       * registryd/Makefile.am (EXTRA_DIST): dist the .in.in
-
-2002-05-29  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/screen-review-test.c:
-       (text_chunk_pad_string):
-       Added method, which pads the string according to the 
-       text bounds of the chunk.  It also takes a 3-character
-       string as a param which indicates the characters to be 
-       used for start, padding, and end delimitation of the chunk.
-       (text_chunk_to_string):
-       Changed to use text_chunk_pad_string.
-       
-       * configure.in: Fixed bug in AC_OUTPUT that was
-        causing path substitution in Accessibility_Registry.server
-       to fail.
-
-2002-05-23  Bill Haneman  <bill.haneman@sun.com>
-
-       * text/screen-review-test.c:
-       (guess_string_clip):
-       New method which attempts a best-guess at clipping
-       text from components (like Java labels) which don't
-       actually implement AccessibleText.  This inaccurate
-       clip is based on the assumption that the label is
-       justified left-and-right, and monospaced.
-       (text_chunk_get_clipped_string):
-       We now call guess_string_clip() for text-containing
-       components that don't implement AccessibleText.
-
-       * test/screen-review-test.c:
-       (review_buffer_get_text_chunk):
-       We now pull "name" from labels if they do not implement
-       AccessibleText (i.e. for Java labels).
-       (get_screen_review_line_at):
-       Added #ifdef guards CHUNK_LIST_DEBUG for diagnostics.
-
-       * configure.in:
-       Replaceded AC_OUTPUT target
-       registryd/Accessibility_Registry.server with 
-       registryd/Accessibility_Registry.server.in.
-
-       * registryd/Accessibility_Registry.server.in:
-       Removed (this is now a Makefile target).
-
-       * registryd/Accessibility_Registry.server.in.in:
-       Added (source for target above).  We now use $(libexecdir) as
-       prefix for the executable at-spi-registryd.
-
-       * registry/Makefile.am: 
-       Now install at-spi-registryd into $(libexecdir), and build .server
-       file with path (see above).
-       
-2002-05-22  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/screen-review-test.c:
-       (text_chunk_get_clipped_string):        
-       We now check to see if words fall within clip bounds 
-       before resorting to character-by-character clip bounds testing.
-
-       * TODO: Added a section for "2.2 Proposed API Additions".
-
-2002-05-21  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/screen-review-test.c:
-       * test/Makefile.am:
-       Added a screen review benchmarking and test program to test
-       directory.
-
-       * cspi/spi_accessible.c:
-       * cspi/spi_main.c:
-       Made some of the debug strings passed to cspi_check_ev a
-       little more specific.
-
-2002-05-21  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * test/screen-review-test.c: Fix crashes in debug statements
-
-2002-05-20  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/screen-review-test.c: Added this file.
-
-2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * atk-bridge/bridge.c: changed "object:state-change" to
-       "object:state-changed" to match docs.
-
-2002-05-13  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * atk-bridge/bridge.c: Hooked up state-change event details.
-
-2002-05-11  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/registry.c:
-       Fixed quarking bug in event string parsing; now events with
-       detail parameters get matched correctly to listeners.
-       [Bugzilla 80608].
-
-       * util/idl/Magnifier.idl: remove.
-       * util/idl: remove
-       * util/*.[ch]: Remove.
-       Magnification utilities and IDL are now in module gnome-mag.
-
-2002-05-10  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       Fixed bug in grab key conversion which was causing keycode grabs
-       to be converted to AnyKey grabs.
-
-       * NEWS:
-       updated NEWS file to reflect recent spin-off of gnome-mag.
-
-2002-05-09  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * cspi/spi_accessible.c: Added exception checks.  Fixed completely
-       busted AccessibleStateSet_compare.  Removed redundant casts.
-       
-       * cspi/spi-action.c: Removed redundant casts.
-
-       * cspi/spi_application.c: Fixed typo in AccessibleApplication_getVersion.
-
-       * cspi/spi_component.c: Fixed typos and casting error.
-
-       * cspi/spi_editabletext.c: Removed redundant casts.
-
-       * cspi/spi_hyperlink.c: Fixed casting and exception checking.
-
-       * cspi/spi_hypertext.c: Eliminated redundant casts.
-
-       * cspi/spi_image.c: Eliminated redundant casts.
-
-       * cspi/spi_registry.c: Eliminated redundant casts.
-       SPI_deregisterGlobalEventListenerAll () removed retval variable.
-       * cspi/spi_selection.c: Removed redundant casts.
-       * cspi/spi_text.c: Eliminated redundant casts.  Fixed exception
-       handling.  Screen geometry and text offsets were being returned as 0
-       on error which is technically valid-- changed these to return -1.
-       Added marshaller for text boundary types to fix bug with boundary
-       types being passed incorrectly to atk.
-                       
-2002-05-09  Bill Haneman <bill.haneman@sun.com>
-
-       
-       * cspi/spi_registry.c:
-       Fixed nasty bug in SPI_registerAccessibleKeystrokeListener
-       which was uncovered by the recent key changes.
-
-2002-05-09  Bill Haneman <bill.haneman@sun.com>
-
-       * test/event-listener-test.c:
-       * test/Makefile.am:
-       Added new test, "event-listener-test"; 
-       this code does two things; it benchmarks traversal time 
-       for the accessible hierarchy for the first running accessible 
-       app, and it connects listeners for all supported event types.  
-       It is thus useful as an example event listener and for 
-       diagnostics/debugging of event generation.
-       
-2002-05-08  Bill Haneman <bill.haneman@sun.com>
-
-       * test/Makefile.am:
-       Removed unnecessary dependency on libutil.
-
-       * configure.in:
-       Revved micro version: 0.13.1
-
-2002-05-08  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: 
-       Removed util/Makefile from targets.
-
-       * Makefile.am:
-       Removed util subdir from SUBDIRS (temporarily, 
-       pending removal of magnifier-only code
-       from UTIL).
-
-       * test/simple-at.c:
-       #ifdef-ed out magnifier dependencies, since
-       magnifier IDL, headers, and binary now live in
-       module gnome-mag and we don't want at-spi to depend 
-       on gnome-mag.  A magnifier demo which can run alongside
-       simple-at is forthcoming in the gnome-mag module.
-       
-       NOTE: Split magnifier binary, IDL, and magnification
-       activation code from at-spi into module gnome-mag.
-
-2002-05-03  Marc Mulcahy <marc.mulcahy@sun.com>
-       * cspi/bonobo/cspi-bonobo.c cspi/bonobo/cspi-bonobo-listener.c
-       cspi/bonobo/cspi-bonobo-listener.h: Added copyright notice.
-2002-05-03  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Revved to version 0.13.0
-       
-       * idl/Accessibility_Registry.idl:
-       Changed definition of KeySet from sequence of longs to sequence of
-       KeyDefinitions, and added KeyDefinition struct.
-       Required for fix to bug 80616.
-
-       * cspi/spi_registry.c: SPI_registerAccessibleKeystrokeListener():
-       Changed AccessibleKeySet to Accessibility_KeySet marshalling code
-       to use new definition (see above).  
-
-       * registryd/deviceeventcontroller.c: handle_keygrab(), 
-       spi_keyset_contains_key():
-       Changed to make use of new struct; this allows matching based on
-       string key-name, for instance "Tab".  This also allows matching of
-       composed characters, non-alphanumeric characters in a way that
-       doesn't involve dependencies on X keysym codes directly, etc.
-       
-       * test/key-listener-test.c:
-       Added test for Alt-Tab key using "string" specification of keyset,
-       and modified one of the tests to use a keycode-based keyset.
-       Thus this test both tests and demonstrates the creation and use of
-       keysets of three forms:  specified via keycode array, 
-       keysym array, and string array. (The string case only contains a
-       single string, i.e. a string array of length 1).        
-
-       * test/simple-at.c:
-       Turned on PRINT_TREE option by default.  Also fixed a
-       string-freeing bug in the PRINT_TREE code.  
-       Added a listener to window:minimize events.
-       
-2002-05-08  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * atk-bridge/bridge.c:
-       (spi_atk_register_event_listeners) Call atk_add_global_event_listener()
-       for window:activate and window:deactiveate
-       (atk_bridge_property_event_listener atk_bridge_signal_listener
-       atk_bridge_window_event_listener) Tidy debug code
-
-2002-05-02  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * libspi/accessible.c (impl_accessibility_accessible_get_role_name):
-       Fixed handling for NULL return value from ATK.
-
-       * libspi/action.c libspi/component.c libspi/editabletext.
-       libspi/hyperlink.c libspi/hypertext.c image.c libspi/selection.c
-       libspi/stateset.c libspi/table.c libspi/text.c libspi/value.c:
-       Removed redundant casts.
-       
-       * libspi/table.c (impl_getSelectedRows, impl_getSelectedColumns):
-       Fixed off by one bug.
-       
-       *libspi/text.c: removed impl_getRowColAtOffset (unimplemented
-       function not present in idl)
-       
-2002-05-02  jacob berkman  <jacob@ximian.com>
-
-       * atk-bridge/Makefile.am: make atk-bridge a real module
-
-2002-04-26  Radek Doulik  <rodo@ximian.com>
-
-       * libspi/stateset.c (spi_init_state_type_tables): fix size of
-       atk_state_types table
-
-2002-04-22  jacob berkman  <jacob@ximian.com>
-
-       * util/Makefile.am: 
-       * libspi/Makefile.am: add deps on the built files to help
-       automake, and don't version the ORBit typelib
-
-2002-04-19  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * cspi/cspi-lowlevel.h cspi/spi-impl.h cspi/spi-listener.h 
-       cspi/spi-private.h cspi/spi-roletypes.h cspi/spi-statetype.h
-       cspi/spi.h cspi/spi_accessible.c cspi/spi_action.c 
-       cspi/spi_application.c cspi/spi_component.c cspi/spi_editabletext.c
-       cspi/spi_hyperlink.c cspi/spi_hypertext.c cspi/spi_image.c
-       cspi/spimain.c cspi/spi_selection.c cspi/spi_streamablecontent.c
-       cspi/spi_table.c cspi/spi_text.c cspi/spi_value.c
-       libspi/accessible.h libspi/accessible.h libspi/base.h 
-       libspi/component.h libspi/editabletext.h libspi/hyperlink.h 
-       libspi/hypertext.h libspi/image.h libspi/keymasks.h libspi/libspi.h
-       libspi/relation.h libspi/remoteobject.h libspi/selection.h 
-       libspi/spi-private.h libspi/statetset.h libspi/table.h
-       libspi/text.h libspi/util.h libspi/value.h util/mag_client.c
-       util/mag_client.h util/mag_control.c util/mag_image.c
-       util/mag_image.h util/magnifier.c util/magnifier.h: 
-       Add missing file headers; standardize existing ones
-
-2002-04-18  Marc Mulcahy  <marc.mulcahy@sun.com>
-
-        * atk-bridge/bridge.c: Added window event support.
-
-2002-04-18  Michael Meeks  <michael@ximian.com>
-
-       * libspi/relation.c (impl_getNTargets): impl.
-       (impl_getTarget): impl.
-
-       * libspi/Makefile.am: fix stateset install.
-
-2002-04-17  Bill Haneman <bill.haneman@sun.com>
-
-       * NEWS:
-       Started putting useful info in this file.
-       
-2002-04-17  Marc Mulcahy <marc.mulcahy@sun.com>
-       * atk-bridge/bridge.c: 
-       Propagate state-changed notifications to ATs
-       * cspi/spi_registry.c: update docs to reflect actual behavior of
-       state-change events.
-
-2002-04-17  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Incremented version to 0.12.1
-       
-       * util/mag_client.h:
-       Add missing declaration for magnifier_exit, 
-       used by mag_control.c - Forte compiler didn't like
-       the implicit redeclaration of the function :-(
-
-
-2002-04-16  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Revved version to 0.12 due to API change (see below).
-
-       * cspi/spi-roletypes.h:
-       removed (obsolete) SPI_ROLE_FOCUS_TRAVERSABLE 
-       definition from the inline docs, and added docs
-       for SPI_ROLE_LAST_DEFINED.
-
-       * cspi/spi.h:
-       * cspi/spi_streamablecontent.c:
-       Added missing seek_type parameter to
-       (so far unused) method, 
-       AccessibleStreamableContent_seek().
-       [ RT approval JodyG. ]
-
-       * cspi/spi_event.c:
-       Fixed docs for SPI_createAccessibleKeystrokeListener.
-
-       * cspi/spi_registry.c:
-       Fixed docs for SPI_KEYSET_ALL_KEYS.
-       
-       * docs/reference/cspi/at-spi-cspi-sections.txt:
-       Added a number of missing APIs to SECTIONS.
-       
-2002-04-16  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/Makefile.am:
-       * cspi/Makefile.am:
-       * cspi/bonobo/Makefile.am:
-       Add $(X_LIBS) to makefiles.
-
-2002-04-15  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Revved version to 0.11.
-
-       * libspi/component.c:
-       Added implementation for grabFocus.
-
-       * idl/Accessibility_Component.idl
-       (Accessibility_Component_grabFocus):
-       Made this method return boolean to indicate success or failure, to
-       be consistent with cspi and the corresponding ATK method.
-       
-       * idl/Accessibility_Selection.idl
-       (Accessibility_Selection_selectAll) :
-       Made these methods return boolean to indicate success or
-       failure, to be consistent with cspi and the corresponding ATK methods.
-       
-       * idl/Accessibility_EditableText.idl 
-       (Accessibility_EditableText_setTextContents,
-        Accessibility_EditableText_insertText,
-        Accessibility_EditableText_cutText,
-        Accessibility_EditableText_deleteText,
-        Accessibility_EditableText_pasteText):
-       Made these methods return boolean to indicate
-       success or failure.
-
-       * cspi/spi_editabletext.c:
-       Made these methods return booleans.
-
-       * libspi/selection.c:
-       * libspi/component.c:
-       * libspi/editabletext.c:
-       Connected the boolean returns from ATK
-       to the server-side code referenced above.
-       
-2002-04-14  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Table.idl: Added missing methods,
-       Accessibility_Table_addRowSelection,
-       Accessibility_Table_addColumnSelection,
-       Accessibility_Table_removeRowSelection,
-       Accessibility_Table_removeColumnSelection.
-
-       * cspi/spi_table.c:
-       Added C wrappers for above IDL:
-       AccessibleTable_addRowSelection,
-       AccessibleTable_addColumnSelection,
-       AccessibleTable_removeRowSelection,
-       AccessibleTable_removeColumnSelection.
-       
-       * libspi/table.c:
-       Added server-side implementation code for IDL above, connecting
-       to pre-existing ATK api.
-       
-2002-04-13  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * idl/Accessibility_State.idl: Made StateSet inherit from BonoboUnknown.
-
-       * libspi/accessible.c: Added implementation fo
-       Accessibility_Accessible_get_state.
-       
-       * libspi/libspi.h: Added stateset.h to the list of includes.
-
-       * libspi/stateset.c: Fixed broken implementation.
-
-2002-04-13  Bill Haneman <bill.haneman@sun.com>
-
-        * util/magnifier.c:
-       Added implementation code for Accessibility_Magnifier_exit ().
-
-       * util/mag_control.c:
-       Added test code for above method; you can
-       now kill an existing magnifier via 
-       ./mag_control q, from the util directory.
-
-       * test/key-listener-test.c:
-       * test/Makefile.am:
-       Added a new test, for our key listener API.
-
-2002-04-11  Bill Haneman <bill.haneman@sun.com>
-
-       * test/app.c, test/keysynth-demo.c:
-       * util/magnifier.c:
-       Replace use of snprintf with g_snprintf.
-       (fix for bugzilla 78249)
-
-2002-03-27  Michael Meeks  <michael@ximian.com>
-
-       * Version 0.10.0
-
-       * util/Makefile.am (INCLUDES): fix.
-       (DONT_DIST_SOURCE): don't distribute the
-       generated files.
-
-       * libspi/Makefile.am (dist-hook): ditto.
-
-2002-03-27  Padraig O'Briain  <padraig.obriain@sun.com>
-
-       * libspi/hypertext.c:
-       Fix warnings when yelp is used with atk-bridge
-
-2002-03-21  Michael Meeks  <michael@ximian.com>
-
-       * libspi/application.c (spi_application_new):
-       use spi_accessible_construct so we use the AtkObject
-       cache correctly.
-
-2002-03-19  Michael Meeks  <michael@ximian.com>
-
-       * registryd/registry.c (desktop_remove_application),
-       (desktop_add_application): clean coding style.
-
-       * registryd/desktop.c (spi_desktop_remove_application),
-       (spi_desktop_add_application): kill re-enterency hazards.
-       (spi_desktop_dispose): remove bogus redundant cast
-       obscuring bug; fix bug too.
-       (spi_desktop_init): make the desktop object immortal.
-
-2002-03-16 Bill Haneman <bill.haneman@sun.com>
-
-       * test/simple-at.c:
-       Added a #define-guarded tree-traversal step
-       when enumerating the apps (diagnostic tool).
-
-2002-03-15 Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Role.idl:
-       Added ROLE_DRAWING_AREA which seemed to be missing from the
-       previous commit.
-
-2002-03-14 Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * cspi/spi-roletypes.h cspi/spi_accessible.c
-       idl/Accessibility_Role.idl libspi/accessible.c: synched up role
-       types with ATK.
-
-       * registryd/desktop.c registryd/desktop.h registryd/registry.c:
-       Added signals to SpiDesktop and callbacks in SpiRegistry to notify
-       AT when applications are added and removed from the desktop.  This
-       reverts the previous broken implementation using the backing
-       AtkObject for the SpiDesktop.
-       
-       2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * registryd/desktop.c: emit the "children-changed::add" and
-       "children-changed::remove" signals on the backing ATK object for
-       the desktop so AT can tell when applications are started and shut
-       down.
-
-       2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * cspi/spi_accessible.c: Made role names freeable with SPI_freeString ()
-
-       2002-03-14  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * libspi/stateset.c: implemented Accessibility_StateSet_compare ()
-
-       * cspi/spi_accessible.c: Implemented c bindings for stateset support
-
-       * cspi/state-types.h: synched with IDL and ATK
-
-       2002-03-13  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c 
-       (impl_accessibility_accessible_get_child_at_index):
-       Change return value for g_return_if_fail ()
-       to CORBA_OBJECT_NIL instead of "0" (!)
-
-       * registryd/Makefile.am:
-       * registryd/Accessibility_Register.server.in:
-       Changed name of executable, "registryd",
-       to something more informative:
-       "at-spi-registryd".
-
-2002-03-13  Michael Meeks  <michael@ximian.com>
-
-       * atk-bridge/bridge.c (atk_bridge_init): don't register
-       if we're in a bonobo-component, rather than a bonobo app.
-
-2002-03-13  Michael Meeks  <michael@ximian.com>
-
-       * atk-bridge/bridge.c (gtk_module_init): split
-       out body to (atk_bridge_init): here, since otherwise
-       we get symbol conflicts and oddness when invoked
-       from (gnome_accessibility_module_init): here (upd.)
-
-2002-03-11  Bill Haneman  <bill.haneman@sun.com>
-
-       * HACKING:
-       New file.  Explicitly allow "build sheriff" putbacks provided
-       they are tested on Solaris.
-       
-       * docs/reference/cspi/Makefile.am:
-       Added '-' to the "cp" command for index.sgml.
-       ("patch by thomasvs, soon coming to a GUADEC near you")
-
-       * configure.in:
-       Incremented version number (0.9.0) for new release.
-       Changed macro that checks for popt, to better detect
-       obsolete versions of popt.
-       
-       * configure.in:
-       Added X_LIBS to AC_SUBST, for applications
-       that call Xlib API directly.
-       
-
-2002-03-07  Bill Haneman  <bill.haneman@sun.com>
-
-       * configure.in:
-       Include gdk_pixbuf_x11-2.0 in UTILS_LIBS.
-
-       * util/Makefile.am:
-       Fix regression caused by hard-coding major
-       version of gdk_pixbuf_x11; now use $(UTILS_LIBS)
-       (see above change).
-       
-       * test/test-simple.c (test_editable_text),
-       (test_test): revert previous change (error was 
-       a regression in gail which is now fixed).
-       
-2002-03-04  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c (test_editable_text),
-       (test_text): pass G_MAXINT instead of '-1' for
-       whole string - is this a good thing !?
-
-       * cspi/spi_accessible.c
-       (Accessible_getRelationSet): fix crasher bug
-       overwriting the end of the array.
-
-       * test/test-simple.c (validate_accessible): free,
-       not g_free returned relation set.
-
-2002-02-26 Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * libspi/stateset.c libspi/stateset.h libspi/Makefile.am:
-       implemented stateset support
-
-       * idl/Accessibility_State.idl: Made necessary changes to
-       the IDL to support state sets.
-
-2002-02-12 Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       Added implementation for generateMouseEvent.
-
-       * cspi/spi_registry.c:
-       Connected new implementation for generateMouseEvent
-       to the C bindings.
-       
-2002-02-12 Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in: 0.8
-       Incremented revision (but no change in public API
-       outside of 'utils', which are not installed public yet.)
-
-       * libspi/component.c:
-       Changed to use atk_component API for layers and
-       mdi_zorder, instead of deprecated atk_object API.
-       
-       Magnification Utility Enhancements:
-       
-       * util/magnifier.c:
-       Added implementation of createZoomRegion, clearAllZoomRegions,
-       resizeZoomRegion.  Added new commandline argument
-       "--no-initial-region".  Note that clearAllZoomRegions doesn't
-       unmap the old '0' region as it should (yet), and the other
-       methods only work when creating/resizing a single region,
-       which is "region 0".  
-       (Code for multiple region support will be added later.)
-
-       * util/mag_image.c:
-       Now we raise the magnifier window each time it's refreshed;
-       this will help keep it on top.
-       
-       * util/mag_client.h:
-       Added simple wrappers for above, used by mag_control.
-       For general use, it's recommended to use the bonobo magnifier
-       control API directly instead of using these wrappers.
-
-       * util/mag_image.h:
-       Moved ZoomRegionData from magnifier.c to this file.
-       
-       * util/mag_control.c: 
-       Added some code to exercise new IDL implementations.
-       
-2002-02-06 Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * libspi/text.c: Provide implementation for getAttributes.
-
-2002-02-04  Bill Haneman <bill.haneman@sun.com>
-       
-       * configure.in:
-       Incremented revision.
-
-       * test/test-simple.c:
-       Replaced use of deprecated g_main_iteration with 
-       g_main_context_iteration.
-       
-2002-01-28  Padraig O'Briain <padraig.obriain@sun.com>
-
-       * configure.in:
-       Incremented revision for desktop alpha 2.
-
-2002-01-28  Mark McLoughlin  <mark@skynet.ie>
-
-       * libspi/remoteobject.[ch]: make RemoteObject and interface rather
-       than an atk object.
-
-       * test/simple-at.c: include netinet/in.h.
-
-2002-01-24  Mark McLoughlin  <mark@skynet.ie>
-
-       * cspi/spi_accessible.c: (Accessible_getRelationSet):
-       use NULL, not CORBA_OBJECT_NIL.
-
-       * libspi/accessible.c:
-       (impl_accessibility_accessible_get_relation_set):
-       allocate the sequence correctly.
-
-       * libspi/remoteobject.h: kill spi_remote_object_new.
-
-       * test/test-simple.c: (validate_accessible): add code
-       to test relation sets, now all we need is to figure
-       out how to excercise this code path :/
-
-2002-01-18  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c
-       (key_listener_cb): consume the key.
-       (test_keylisteners): update.
-       (main): wait for any pending unrefs on events.
-
-       * registryd/deviceeventcontroller.c
-       (spi_controller_update_key_grabs): only re-issue the
-       grab on a key release.
-       (spi_device_event_controller_forward_key_event):
-       refresh the keygrabs before we notify the listeners,
-       to reduce the X ungrab / re-grab race.
-       (spi_controller_register_with_devices): remove
-       XSelectInput - we do that with the gdk_window_ call.
-       (_spi_controller_device_error_handler): return a value.
-       s/GDK_DISPLAY/spi_get_display/
-
-2002-01-17  Michael Meeks  <michael@ximian.com>
-
-       * registryd/deviceeventcontroller.c
-       (_deregister_keygrab): don't blow out the later
-       assertion.
-
-       * test/test-simple.c (test_keylisteners): do a
-       more intelligent validation.
-
-2002-01-14  Michael Meeks  <michael@ximian.com>
-
-       * atk-bridge/bridge.c
-       (gnome_accessibility_module_init),
-       (gnome_accessibility_module_shutdown): impl.
-       (gtk_module_init): protect vs. double inits.
-       (add_signal_listener): impl.
-       (spi_atk_bridge_state_event_listener): kill
-       (deregister_application): split out of
-       (spi_atk_bridge_exit_func): here.
-
-2002-01-18  Bill Haneman <bill.haneman@sun.com>
-
-        * test/simple-at.c:
-       Added caret tracking when using magnifier, and 
-       now use text bounds for focus tracking of text elements, rather than
-       the component bounds - this is helpful for short text fields in long
-       table cells, at high magnification.
-       
-2002-01-16  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       Regression fix for keylistener de-registration; global keygrabs
-       were not being released when deregisterKeystrokeListener was
-       called in cspi, since 
-       Accessibility_DeviceEventController_deregisterKeystrokeListener
-       was called with a zero-length keyset.  That is because the cspi
-       method, SPI_deregisterKeystrokeListener, does not take a keyset
-       parameter but instead should remove all the key grabs held be a
-       keystroke listener.  
-       The code in impl_deregister_keystroke_listener was changed to copy
-       the keylist from the listener instance previously registered with
-       the DeviceEventController before releasing the grabs.
-
-       * registryd/registry.c:
-       * registryd/deviceeventcontroller.c:
-       * libspi/spi-private.h:
-       * libspi/util.c:
-       Changed spelling of "re-enterant" to "re-entrant" globally.
-
-2002-01-16  Bill Haneman <bill.haneman@sun.com>
-
-       * test/test-simple.c:
-       Changed key listeners test - the test was slightly mis-using the
-       (admittedly poorly documented) SPI_generateKeyboardEvent API.
-       It now uses '=' as the key event listened to and generated,
-       relying on a keysym match rather than assuming that keycode 33 
-       is always equal to keysym '!'.
-
-2002-01-15  Bill Haneman <bill.haneman@sun.com>
-
-       * test/simple-at.c:
-       Changed simple-at to use a specific keyset, rather than
-       SPI_KEYSET_ALL_KEYS - this helps minimize clashes with the window
-       manager, desktop, etc.
-       
-2002-01-11  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       Replaced standard X error handler with a special handler that 
-       is non-fatal for failed keygrabs.  This works around 
-       problems with keygrab clashes sometimes observed on 
-       Solaris using CDE.
-       Re-instated SPI_DEVICE_TYPE_MOUSE in enum (didn't reinstate 
-       mouse handling code as yet).
-       
-2002-01-11  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Incremented revision for desktop alpha release.
-
-       * README:
-       Fixed a couple of the more glaring errors (still not 
-       very up-to-date).
-
-2002-01-11  Michael Meeks  <michael@ximian.com>
-
-       * registryd/deviceeventcontroller.c
-       (spi_device_event_controller_forward_key_event): kill
-       XUngrabKey / XKeyGrab race.
-       (spi_controller_grab_keyboard): rename to
-       (spi_controller_update_key_grabs): this, and deal
-       with incremental adding / removing grabs more
-       sensibly.
-       (_register_keygrab): ensure we're not pending a remove.
-       (spi_grab_mask_free): impl.
-       (spi_controller_register_global_keygrabs): split out
-       common code into:
-       (handle_keygrab): impl.
-       (_deregister_keygrab): impl.
-       (spi_controller_deregister_global_keygrabs): impl.
-       (spi_controller_update_key_grabs): re-issue the grab if
-       we just recieved a notification.
-
-       * test/test-simple.c (key_listener_cb): remove debug.
-
-       * registryd/deviceeventcontroller.c
-       (spi_controller_register_device_listener): after
-       registering a global keygrab, actualy register it !
-       don't wait for a timeout; doh !
-
-       * registryd/deviceeventcontroller.[ch]: s/DeviceEvent/DE/
-       to make it more readable / manipulable.
-       s/grabmask/grab_mask/ s/refcount/ref_count/
-       s/keyval/key_val/ s/modmask/mod_mask
-
-2002-01-08  Michael Meeks  <michael@ximian.com>
-
-       * registryd/deviceeventcontroller.c
-       (spi_controller_register_with_devices): use gdk calls to
-       setup a filter.
-       (global_filter_fn): implement the filter.
-       (spi_device_event_controller_check_key_event): rename to
-       (spi_device_event_controller_forward_key_event): this & upd.
-       (spi_get_display): replace with GDK_DISPLAY.
-
-       * registryd/deviceeventcontroller.c
-       (spi_controller_deregister_device_listener): unroll into
-       (impl_deregister_keystroke_listener): here to simplify.
-       (spi_controller_register_global_keygrabs): split cut and
-       paste (!) out into (_register_keygrab): here, shorter & sweeter.
-       (spi_controller_deregister_device_listener): remove.
-       (impl_register_mouse_listener): remove, no mouse listener
-       support in at-spi-1.0
-
-       * registryd/registry.c
-       (_device_event_controller_hook): kill.
-       (spi_registry_init): upd.
-
-       * registryd/deviceeventcontroller.c
-       (spi_device_event_controller_class_init): upd.
-       (spi_check_key_event): merge into.
-       (spi_device_event_controller_check_key_event):
-       here and kill strange static ev init, don't leak
-       the x_event - nor dynamicaly allocate it.
-
-       * registryd/registry-main.c (main): re-direct
-       timeout to remove strange vtable mess.
-
-       * registryd/deviceeventcontroller.c
-       (remove_listener_cb): impl.
-       (spi_controller_deregister_device_listener):
-       fix re-enterancy hazard.
-
-2002-01-07  Michael Meeks  <michael@ximian.com>
-
-       * registryd/deviceeventcontroller.c
-       (spi_device_event_controller_new): upd.
-       (impl_notify_listeners_sync): upd. debug.
-       (spi_notify_keylisteners): fix re-enterancy hazards,
-       prettify, remove O(n*n) iteration.
-       (spi_controller_grab_keyboard): fix iteration.
-       (spi_check_key_event): re-format to suit coding style.
-       Clean all the warnings - we're warning free.
-
-       * registryd/deviceeventcontroller.h:
-       * registryd/registry.h: make mutualy referential with
-       typesafe forward references instead of (!) void pointer
-       hacks.
-
-2002-01-11  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_accessible.c (role_names): add a role name
-       to sync this array with the enum; and make the regression
-       tests pass, sigh.
-
-2002-01-10  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_registry.c (SPI_generateKeyboardEvent): 
-       allow expansion of enumeration & kill warning.
-
-       * test/test-simple.c (key_listener_cb): impl.
-       (test_keylisteners): impl.
-
-       * cspi/spi-listener.h: make listener signatures const
-       on the provided (const) events.
-
-       * test/keysynth-demo.c: upd. to const events.
-
-       * test/simple-at.c: ditto.
-
-2002-01-11  Bill Haneman <bill.haneman@sun.com>
-
-        * configure.in:
-       Rev the version to 0.5 (the previous tarball was named 0.4, 
-       even though the micro number was 3), so we need to rev upwards
-       again for beta2/"desktop-alpha" 
-       * test/demo.csh:
-       Checked in a demo script, which requires editing before use!
-       Proceed with caution.
-       
-       * libspi/value.h:
-       Fixed typo in header which was redefining SPI_ACTION_CLASS.
-
-       * cspi/spi_accessible.c:
-       Add a couple of missing enum initializations, and fix some enum
-       comments.
-
-       * cspi/spi_registry.c:
-       Add comment describing keystring parameter to SPI_generateKeyboardEvent.
-       
-       * docs/reference/cspi/at-spi-cspi-sections.txt:
-       Remove/fix a couple of broken document references.
-
-       * test/simple-at.c:
-       Minor tweaks to the demo.  We now (sigh) use Alt-SHIFTLOCK as well
-       as Alt-Control to listen for commands, since on some systems
-       Control-Alt may already be grabbed.
-
-2002-01-10  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Update version number to 0.4 for Beta2.
-       
-       * libspi/accessible.c, libspi/accessible.h:
-       Expose spi_accessible_construct, to enable libgail-gnome
-       construction from spi_accessible subtype.
-
-       * utils/magnifier.c:
-       Workaround for bug in some non-gnome-compliant window managers
-       which made magnifier resize improperly.
-
-2002-01-09  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c: (spi_accessible_new) :
-       Move the test for SPI_IS_REMOTE_OBJECT to
-       spi_accessible_new_return, fixing a bug and compile time warning.
-       
-2002-01-08  Michael Meeks  <michael@ximian.com>
-
-       * registryd/registry.c (parse_event_type): remove strndup.
-
-       * libspi/Makefile.am (libspi_la_SOURCES): remove
-       sources already included in the headers section.
-
-       * libspi/util.c: add.
-
-       * libspi/spi-private.h: add.
-
-       * registryd/registry.c: update to moved list iterators.
-
-2002-01-05  Michael Meeks  <michael@ximian.com>
-
-       * test/simple-at.c (main): upd. auto-module set to atk-bridge
-
-       * test/test-simple.c (main): ditto.
-
-2002-01-04  Michael Meeks  <michael@ximian.com>
-
-       * libspi/accessible.c (spi_accessible_new): remove 2nd,
-       redundant construct.
-
-       * registryd/registry.c
-       (get_listener_list): impl.
-       (impl_accessibility_registry_register_global_event_listener):
-       re-impl. to simplify using ~, remove dodgy const cast off.
-       (parse_event_type): constify.
-       (impl_accessibility_registry_deregister_global_event_listener_all): 
-       re-write, more efficiency and simplicity, kill re-enterancy
-       hazard.
-       (compare_listener_corbaref, compare_corba_objects),
-       (compare_listener_quarks): define out.
-       (impl_accessibility_registry_deregister_global_event_listener): 
-       re-write for effiency, and nail re-enterancy hazard.
-       (impl_accessibility_registry_get_desktop_list): impl.
-       (re_enterant_list_delete_link): impl.
-       (re_enterant_list_foreach): impl.
-       (remove_listener_cb): impl.
-       (_registry_notify_listeners): kill.
-       (notify_listeners_cb): impl.
-
-       * cspi/spi_registry.c (SPI_freeDesktopList): impl.
-       (SPI_getDesktopList): impl.
-
-       * test/test-simple.c (test_desktop): test the methods.
-
-2002-01-03  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_event.c (SPI_createAccessibleKeySet): dup the
-       keystrings since we free them
-       (SPI_freeAccessibleKeySet): in here.
-
-       * libspi/accessible.c (spi_accessible_new): kill warning,
-       wonder what is going on with the constructor here.
-
-2002-03-01  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c (spi_accessible_new ()) :
-       Added check to see if AtkObject is an SpiRemoteObject before
-       creating an SpiAccessible.
-       
-2002-05-01  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c (spi_controller_grab_keyboard):
-       Enable keygrabs using the Control modifier, now that they are
-       working properly (they were previously disabled).
-
-       * test/simple-at.c:
-       Change the command keygrab for this demo to "Control+Alt", so as
-       to conflict with fewer other key commands on the system; this
-       means that the quit command for "simple-at" is now "Ctrl-Alt-q".
-
-       Removed a pointlessly-chatty keylistener for unshifted keys
-       (shifted keys are still reported).
-       
-2002-02-01  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/remoteobject.h:
-       * libspi/remoteobject.c:
-       Added definitions for special AtkObject subtype, required for
-       support of remote components (specifically, used by BonoboControl
-       accessibility implementation).
-       
-2002-01-02 Marc Mulcahy  <marc.mulcahy@sun.com>
-
-       * cspi/spi.h: synched relation types with ATK
-
-       * cspi/spi_accessible.c: Added implementations of
-       AcccessibleRelation_* methods
-
-       * idl/Accessibility_Relation.idl: added getRelationTypeName
-       method.  Synched known relation types with ATK.  Allowed for
-       relation type extension with the RELATION_EXTENDED type.
-       
-       * libspi/relation.c: Provided implementations for
-       AccessibleRelation methods.
-
-2002-01-01  Bill Haneman <bill.haneman@sun.com>
-
-       API tweaks for today's API 'freeze'.
-
-       * idl/*:
-       Added placeholder functions to allow future compatible expansion
-       of the IDL interfaces.
-
-       * idl/Accessibility_Registry.idl:
-       Changed generateKeyEvent to generateKeyboardEvent.  Changed
-       signature of this method to accept an optional keystring in
-       parameter (for complex text input synthesis) and changed use of
-       simple 'boolean' parameter in registerKeystrokeListener to a
-       struct, EventListenerMode.
-
-       * cspi/spi_accessible.c:
-       * cspi/spi.h:
-       * cspi/spi_streamablecontent.c:
-       Added references to AccessibleStreamableContent interface, and
-       definition and implementation of AccessibleStreamableContent 
-       C bindings.
-
-       * cspi/spi_registry.c:
-       * cspi/spi.h:
-       Changed generateKeyEvent API to generateKeyboardEvent,
-       taking a new (optional) keystring parameter to support complex
-       text input.
-       
-       * at-bridge/*:
-       * atk-bridge/*:
-       Renamed directory (to better reflect its actual purpose, bridging
-       from at-spi to ATK).  The .so module is also now named
-       libatk-bridge.so.
-
-       * idl/Accessibility_Hypertext.idl:
-       * libspi/accessible.c:
-       * libspi/hypertext.h:
-       * libspi/hypertext.c:
-       Changed Accessibility_Hypertext to *not* derive from
-       Accessibility_Text.
-
-       * cspi/spi_registry.c:
-       Added list of legal event type names for 'window' events, which
-       completes the registry event API.
-
-2001-12-22  Marc Mulcahy  <marc.mulcahy@sun.com>
-
-       * at-bridge/bridge.c: Added registration for separate
-       "Atktext:text-changed::insert" and "AtkText:text-changed::delete"
-       signals.  If either of the first two parameters to the generic
-       bridge signal handler are ints, they are passed on as event
-       details.  This allows an AT to determine what text was inserted.
-
-2001-12-21  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/deviceeventcontroller.c:
-       Fixed regressions in generateKeyEvent caused by the removal of
-       gdk_init from registryd; we now use pure X calls to connect to the
-       display, which makes sense because deviceeventcontroller already
-       uses a fair bit of X API (should eventually be migrated to a
-       'portability layer').
-
-       * registryd/desktop.c:
-       Fixed minor regression in spi_desktop_init, changed the way the
-       desktop name is being set to work with new spi_base API
-       (gobject-based, rather than AtkObject-based).
-
-       * registryd/Makefile.am:
-       Minor revision of makefile to use XTST_LIBS variable rather than
-       hard-wiring the Xtst LD_ADD element.
-
-       * test/keysynth-demo.c:
-       Tweaked an output message; added initialization of the
-       'keystrings' member of the "switch listener" key_set.
-
-       * libspi/relation.c:
-       Squashed compile-time warning.
-
-       * libspi/accessible.c:
-       Cosmetic and formatting fixes, renamed a static method.
-       
-2001-12-18 Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * libspi/accessible.c 
-       * libspi/action.c
-       * libspi/application.c 
-       * libspi/base.c 
-       * libspi/base.h
-       * libspi/component.c 
-       * libspi/editabletext.c
-       * libspi/hyperlink.c 
-       * libspi/hypertext.c
-       * libspi/image.c 
-       * libspi/selection.c 
-       * libspi/table.c
-       * libspi/text.c 
-       * libspi/value.c 
-       * registryd/desktop.c:
-       Changed SpiBase to contain a GObject pointer rather than an AtkObject
-
-2001-12-17  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Registry.idl:
-       Added boolean member 'is_text' to DeviceEvent.  This is for the
-       use of key events, and helps prevent ambiguity between composed
-       key strings and keysym names, since both may potentially be
-       returned in the 'event_string' member.
-
-       * at-bridge/bridge.c:
-       * registryd/deviceeventcontroller.c:
-       Use the 'is_text' member when notifying device event listeners.
-       Knon issue: composed characters are not dealt with correctly by
-       the global key listener implementation yet.
-       
-2001-12-17  Bill Haneman <bill.haneman@sun.com>
-
-       * at-bridge/bridge.c:
-       Namespaced local static methods to spi_atk_bridge_* where
-       previously named bridge_*, and spi_* elsewhere.
-
-       * at-bridge/bridge.c:
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       Added demarshalling/conversion for string member of
-       Accessibility_DeviceEvent to AccessibleKeystroke.
-
-       * registryd/deviceeventcontroller.c:
-       Added code to fill the Accessibility_DeviceEvent key string value
-       member for global key events (i.e. from XGrabKey), to match
-       behavior of Accessibility_DeviceEvent from the toolkit key events
-       from the bridge.  Fixed timestamp in global key event notifications.
-
-       * test/simple-at.c:
-       Added printout of key event's string value to
-       report_ordinary_key_event, for demo/debugging purposes.
-
-2001-12-15  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Registry.idl:
-       Removed Accessibility_KeyStroke structure in favor of generic
-       Accessibility_DeviceEvent structure.
-       Changed Accessibility_ControllerEventMask from a struct to an
-       unsigned long.
-
-       * at-bridge/bridge.c:
-       Changed APIs to use DeviceEvent structure as above, and removed
-       bogus casting between these event structures.
-
-       * cspi/spi-listener.h:
-       Added keystring member of AccessibleKeystroke structure, to enable
-       matching on event "names" rather than only hardware codes and
-       keysyms.
-
-       * cspi/spi.h:
-       Added keystrings member of AccessibleKeySet struct, to allow
-       matching on event names (as above).
-       Added declarations for SPI_createAccessibleKeySet and
-       SPI_freeAccessibleKeySet.  Due to changes in libspi, we now pass
-       event modmasks directly as unsigned ints rather than structs with
-       refcounts, in the DeviceEventController methods.
-
-       * cspi/spi_registry.c:
-       Add SPI_createAccessibleKeySet and SPI_freeAccessibleKeySet methods.
-
-       * cspi/spi-roletypes.h:
-       Added documentation of newly added SPI Roles.
-
-       * cspi/bonobo/cspi-bonobo-listener.c:
-       Changes in support of API changes above.
-       
-       * libspi/accessible.c:
-       Converted APIs to use DeviceEvent structure (see IDL changes
-       above). 
-
-       * registryd/deviceeventcontroller.c:
-       Added DEControllerGrabMask structure to track keygrabs not only by
-       modmask but by keyset as well; this allows us to do "global"
-       (i.e. X) keygrabs on a per-key or keyset basis rather than always
-       grabbing on AnyKey and then filtering after-the-fact.
-       Bugfixes for event filtration mean that we don't get false matches
-       on SPI_KEY_RELEASED, when only SPI_KEY_PRESSED was requested.
-
-       * registryd/deviceeventcontroller.c:
-       Namespaced a number of static methods to use spi_ prefix.  Major
-       revision to internals of global (i.e. X) key grabs.
-
-       * registryd/deviceeventcontroller.h:
-       Removed keymask_list and added keygrabs_list to
-       SpiDeviceEventController struct.
-
-       * test/simple-at.c:
-       Added use of SPI_createAccessibleKeySet API when creating a
-       listener for only one key.  Attach a listener to "shift spacebar
-       SPI_KEY_RELEASE" as a demonstration.  Changed (incorrect) usage of
-       X key event names to SPI key event names, so that listeners are
-       registered for (SPI_KEY_PRESSED | SPI_KEY_RELEASED), for instance.
-       
-       * test/keysynth-demo.c:
-        Changed (incorrect) use of X key event names (KeyPressed,
-       KeyReleased) to SPI enums SPI_KEY_PRESSED and SPI_KEY_RELEASED.
-       
-
-2001-12-12  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c:
-        Convert all AtkRole enumerations to Accessibility_Role enums when
-       getting a role from an AtkObject.
-       
-       * cspi/spi_accessible.c:
-       Complete the conversion of Accessibility_Role enums at runtime to
-       AccessibleRole (SPI_ROLE_*) roles in Accessible_getRole, so that
-       role enums correctly match those given in spi-roletypes.h.  
-       Re-synchronize the local names list for AccessibleRole_getName ().
-       AccessibleRole_getName is now deprecated, since it duplicates the
-       more reliable Accessible_getRoleName.
-       Added some role types from Accessibility_Role.idl.
-
-       * idl/Accessibility_Role.idl:
-       Added some role types used by AtkRole.
-
-2001-12-12  Bill Haneman <bill.haneman@sun.com>
-       
-       * cspi/spi.h:
-       * cspi/spi_registry.c:
-       * cspi/spi_event.c:
-       * cspi/cspi-bonobo-listener.c:
-       Namespaced all methods that did not begin with an "SPI_" or
-       "Accessible" prefix to "SPI_".  
-
-       * cspi/spi_main.c:
-       Homogenized internal function namespace to "cspi_" for statics.
-       
-       * test/*.c:
-       Patched tests to use the new CSPI API.
-
-       * docs/reference/cspi/at-spi-cspi-sections.txt:
-       Updated docs to reflect namespace changes, and added a number of
-       methods to the documentation.
-       
-       * registryd/registry.c:
-       Changed use of strings and string hashes in listener event
-       matching and parse_event_string to use GQuark, which is guaranteed
-       unique.
-       
-       * registryd/registry.h:
-       Squashed annoying warning.
-
-       * idl/Accessibility_Role.idl:
-       Extended range of available Accessibility_Role values.
-
-       * cspi/spi_accessible.c:
-       Re-ordered role names. 
-
-2001-12-12  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility_Value.idl:
-       Revert use of union back to CORBA_double, since the double type is
-       more efficient and can contain the other types without loss of
-       precision.
-
-       * idl/Accessibility_Accessible.idl:
-       Added method Accessibility:Accessible:getRoleName, to complement
-       Accessibility:Accessible:getRole.
-
-       * cspi/spi_accessible.c:
-       * cspi/spi.h:
-       Added C binding for above, Accessible_getRoleName (), and changed
-       signature of Accessible_getRole () to return an AccessibleRole.
-
-       * cspi/spi-roletypes.h:
-       Changed AccessibleRole_getName to return a char * instead of a
-       const char *.  This method is now at least temporarily deprecated 
-       in favor of asking Accessibles for their RoleNames directly.
-
-       * libspi/value.c:
-       Revert to match Accessibility_Value.idl;
-
-       * cspi/spi_value.c:
-       * cspi/spi.h:
-       Change signature of AccessibleValue methods to use double rather
-       than float.
-
-       * cspi/spi.h:
-       * cspi/spi_accessible.c:
-       Changed Accessible_getRole to return an AccessibleRole enum rather
-       than a UTF-8 string.  The UTF-8 string can still be obtained via
-       AccessibleRole_getName ().
-       
-       * test/test-simple.c:
-       Add test_action.  Small fixup to match API change to Accessible_getRole.
-
-       * libspi/action.c:
-       Bugfix for get_action_from_servant ().
-
-2001-12-11  Michael Meeks  <michael@ximian.com>
-
-       * libspi/libspi.h: remove registry.h and
-       desktop.h, deviceeventcontroller.h
-
-       * libspi/Makefile.am: remove registry.[ch],
-       desktop.[ch], deviceeventcontroller.[ch]
-
-       * registryd/Makefile.am: add registry.[ch],
-       desktop.[ch], rename registryd.c to registry-main.c.
-       add deviceeventcontroller.[ch]
-
-2001-12-11  Bill Haneman <bill.haneman@sun.com>
-
-       * test/simple-at.c:
-       Replace setenv() call with putenv ().
-
-       * libspi/component.c:
-       Bugfix in AccessibleComponent_getExtents (),
-       (from Adi Dascal).
-       
-2001-12-11  Michael Meeks  <michael@ximian.com>
-
-       * libspi/image.c (impl_getImageExtents): impl.
-       (spi_image_class_init): upd.
-
-       * cspi/spi_image.c
-       (AccessibleImage_getImageDescription): fix daft bug
-       of mine (doh).
-
-       * test/test-simple.c (global_listener_cb): update
-       to only quit if not --poke
-       (main): catch --poke.
-       (validate_accessible): upd. dumping, call test_image
-       (test_image): impl.
-
-       * libspi/Makefile.am (IDL_DEPS): fixup the IDL
-       dependencies.
-
-       * idl/Accessibility.idl: update all IDL includes.
-
-       * idl/*.idl - rename to namespace - this sucks, blame
-       mjs' bad decision for oafd.
-
-       * test/test-simple.c (create_test_window): add more tests.
-       (create_tree): split this out.
-       (validate_accessible): bugfix.
-
-2001-12-11  Michael Meeks  <michael@ximian.com>
-
-       * cspi/bonobo/cspi-bonobo-listener.c: 
-       (cspi_kestroke_listener_unref),
-       (cspi_event_listener_unref): impl. undoing previous
-       homenous environment - for Bill.
-
-       * cspi/spi_table.c (long_seq_to_array): use
-       malloc instead.
-
-       * cspi/spi_main.c: split out all bonoboish bits into
-       bonobo/
-
-       * cspi/spi-impl.h: upd. typedefs.
-
-       * cspi/spi_registry.c: update to lowlevel API,
-       return booleans to indicate success in some places.
-
-       * cspi/spi_event.c: update to lowlevel API.
-
-       * cspi/bonobo/Makefile.am: add.
-
-       * cspi/bonobo/cspi-lowlevel.h: add
-
-       * cspi/bonobo/cspi-bonobo.c: add
-
-       * cspi/bonobo/cspi-bonobo-listener.[ch]: impl.
-
-       * cspi/Makefile.am: remove spi-listener-impl.[ch],
-       (SUBDIRS): add bonobo, link in the libs.
-
-       * cspi/spi-util.c: kill this file.
-
-       * TODO: merge in my bits.
-
-2001-12-11  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c (test_value, test_table, main):
-       remove unused variables causing warnings.
-
-       * configure.in: cleanup checks - require gail.
-
-2001-12-11  Bill Haneman  <bill.haneman@sun.com>
-
-       * idl/Value.idl:
-       Changed Value interface to use SValue (scalars) rather than
-       assuming all values are floats.  This allows floats, doubles,
-       longs, shorts, and unsigned values to be manipulated.
-       Introduced Accessibility:SValue union.
-
-       * libspi/value.c:
-       Updated to use new API above, and to work correctly with GValues
-       of different types in AtkValue.
-
-       * cspi/spi_value.c:
-       Updated to use new API above.  cspi's API is as yet unchanged.
-
-       * TODO: 
-       Updated the Value revision action item.
-       
-2001-12-10  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/test-simple.c:
-       Added test_table (GtkTreeView widget in test window to follow).
-       Un-commented test_value, added GtkRange widget.
-       Added GtkTreeView widget with GtkListStore.  It passes regression
-       test but leaks one SPI object for some reason.
-
-       * libspi/value.c:
-       Fixed bug in impl__set_currentValue.
-
-2001-12-10  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_text.c: audit for exception handling,
-       tolerating NULL object references safely etc.
-
-       * cspi/spi_value.c: ditto.
-
-       * cspi/spi_table.c (AccessibleTable_getSummary),
-       (AccessibleTable_getAccessibleAt),
-       (AccessibleTable_getRowHeader),
-       (AccessibleTable_getColumnHeader),
-       (AccessibleTable_getCaption): fix bugs hidden by
-       incorrect casts.
-       (long_seq_to_array): impl.
-       (AccessibleTable_getSelectedRows),
-       (AccessibleTable_getSelectedColumns): use it.
-
-2001-12-10  Bill Haneman  <bill.haneman@sun.com>
-
-       * TODO:
-       Added a TODO list (rough and short for now).
-
-       * cspi/spi_hyperlink.c:
-       * cspi/spi_hypertext.c:
-       Fixed macro name typos, and remove use of obsolete macro in 
-       AccessibleHyperlink_getLink.
-
-       * cspi/spi_action.c:
-       * cspi/spi_accessible.c:
-       * cspi/spi_application.c:
-       * cspi/spi_component.c:
-       * cspi/spi_selection.c:
-       * cspi/spi_text.c:
-       * cspi/spi_value.c:
-       Documentation fixes (removed return values from ref/unref methods).
-
-2001-12-10  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_action.c: audit for exception handling,
-       tolerating NULL object references safely etc.
-
-       * cspi/spi_accessible.c: ditto.
-
-       * cspi/spi_component.c: ditto.
-
-       * cspi/spi_editabletext.c: ditto.
-
-       * cspi/spi_hyperlink.c: ditto.
-
-       * cspi/spi_hypertext.c: ditto.
-
-       * cspi/spi_image.c: ditto.
-
-       * cspi/spi_selection.c: ditto.
-
-2001-12-10  Michael Meeks  <michael@ximian.com>
-
-       * configure.in: use cspi/libspi.pc.in instead.
-
-       * Makefile.am (pkgconfig_DATA): upd. to match.
-
-       * test/simple-at.c (report_focus_event): kill hacks around
-       bad return values, use putenv not setenv
-
-       * libspi/desktop.c (impl_desktop_get_child_at_index): don't
-       fire ChildGone - I killed it.
-
-       * libspi/component.c
-       (impl_accessibility_component_get_extents): remove
-       bogus return.
-
-       * idl/Accessible.idl: kill ChildGone exception.
-
-       * cspi/*.[ch]: kill int return from ref / unref.
-       
-       * cspi/spi_main.c (cspi_object_add_check): fold into
-       (cspi_object_add): here.
-
-       * cspi/spi_component.c (AccessibleComponent_getExtents):
-       handle exceptions elegantly.
-
-       * cspi/spi-private.h (cspi_check_ev_return),
-       (cspi_return_if_fail): impl.
-
-       * cspi/spi_accessible.c: use extensively.
-       (AccessibleStateSet_equals): add direct compare check.
-
-       * cspi/spi_selection.c: tolerate NULL objs, and check
-       exceptions before return.
-
-       * cspi/spi-util.c (cspi_warn_ev): rename to
-       (cspi_check_ev): this & don't pass ev in; no point.
-
-2001-12-10  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c: use putenv not setenv
-       (get_environment_vars): more chatty if you're not using
-       the fun bits.
-
-       * test/simple-at.c: do the setenv so more people see the
-       nice demo easily.
-
-2001-12-10  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/registry.c:
-       Changed check of CORBA_environment on notification to be a warning
-       instead of an error for the moment, since we can recover from this
-       error when caused by a queued notification from a dead app.
-       
-       * libspi/value.c:
-       Fixes for spi_value, use G_TYPE_DOUBLE for atk_value values (as
-       used by all current implementors of AtkValue), and coerce to
-       CORBA_float. (Proper general case fix may require change to Value.idl).
-
-2001-12-09  Bill Haneman <bill.haneman@sun.com>
-
-       * cspi/spi.h:
-       * cspi/spi_event.c:
-       * cspi/spi_accessible.c:
-       Documentation fixes: added user_data params to documentation for 
-       listeners and callbacks.  
-
-       * cspi/spi_accessible.c: 
-       Changed AccessibleStateSet_compare to return a
-       StateSet rather than return the difference set into a third parameter.
-       
-       
-2001-12-09  Bill Haneman <bill.haneman@sun.com>
-
-       * configure.in:
-       Replace use of AM_PROG_XML_I18N_TOOLS macro with AC_PROG_INTLTOOL.
-       remove 'dnl' comment line from AC_OUTPUT (autoconf doesn't like
-       it). 
-
-       * Makefile.am:
-       Remove subdirectory po from SUBDIRS for now.
-
-       * at-bridge/bridge.c:
-       Beefed up a couple of debug printouts.
-       One-line fix for signal notification name formatting.
-
-       * libspi/accessible.c:
-       Added assertion to spi_accessible_new ().
-
-       * libspi/application.c:
-       Put #ifdef qualifiers around a printf.
-
-       * libspi/value.c:
-       Fixed derivation (from BONOBO_OBJECT to SPI_BASE).
-
-       * registryd/Makefile.am:
-       * util/Makefile.am:
-       Replaces use of XML_I18N_MERGE_SERVER_RULE with
-       INTLTOOL_SERVER_RULE macro.
-
-       * test/simple-at.c:
-       Added an event listener for several ATK signals, for
-       testing and debugging.  Removed a few g_warnings.
-       Added test output if focussed item implements the Value interface.
-
-       * test/test-simple.c:
-       Added test_value () function (known not to pass at the moment, so
-       not actually called yet.
-       
-2001-12-08  Michael Meeks  <michael@ximian.com>
-
-       * at-bridge/bridge.c (bridge_focus_tracker),
-       (emit_eventv): fix the same ref. leak.
-       (register_atk_event_listeners): don't leak.
-
-       * cspi/spi-listener-impl.c (cspi_event): more 
-       protection from client code.
-
-       * test/test-simple.c (test_desktop): unref the app.
-
-       * test/Makefile.am: upd. TESTS.
-
-       * at-bridge/bridge.c (bridge_exit_func): release the registry.
-
-       * test/keysynth-demo.c (keysynth_exit): unref the listeners.
-
-       * cspi/spi_accessible.c (Accessible_queryInterface): constify.
-
-       * cspi/spi_registry.c: constify in strings.
-       (deregisterGlobalEventListenerAll): don't release the ref.
-
-       * cspi/spi.h: start removing redundant / conflicting
-       gtkdoc comments, making the API readable at a glance :-)
-       
-       * cspi/spi_event.c (AccessibleEventListener_unref): impl.
-
-       * test/keysynth-demo.c (keysynth_exit, main): upd.
-
-       * test/simple-at.c (main, simple_at_exit): upd.
-
-       * test/test-simple.c (unutterable_horror): kill.
-       (utterable_normal_derefs): kill.
-       (main): upd & do a setenv before gtk_init, so that we
-       can use memprof - and to save the pain of remembering
-       this, if we're running under memprof - don't exit.
-
-       * cspi/spi_main.c (SPI_exit): return exit status
-       for cspi.
-       (SPI_event_quit): impl.
-       (SPI_event_main): simplify.
-       (cspi_is_gnome_app): kill.
-       (SPI_init): kill isGNOMEapp arg.
-
-       * at-bridge/bridge.c (register_atk_event_listeners):
-       re-instate the unref.
-       (bridge_exit_func): don't re-activate the registry,
-       protect vs. theoretical re-entry, use the
-       AT_BRIDGE_SHUTDOWN env. var to determine whether to
-       assert a clean shutdown - for regression tests.
-
-2001-12-08  Abel Cheung  <maddog@linux.org.hk>
-
-       * configure.in: Comment out dummy i18n support for now,
-         otherwise it fails to build.
-       * idl/Makefile.am: Add Selection.idl and Hypertext.idl to
-         EXTRA_DIST. They are missing in tarball.
-
-2001-12-07  Michael Meeks  <michael@ximian.com>
-
-       * util/magnifier.c: kill bonobo activation reg. race.
-
-       * libspi/component.c
-       (impl_accessibility_component_get_extents): make it match
-       it's sig.
-
-       * libspi/registry.c (_registry_notify_listeners):
-       re-remove X headers & reconcile conflicts.
-       (spi_listener_struct_free): bad conflict resolve.
-       (impl_accessibility_registry_register_application):
-       more bad merging fixed.
-       (impl_accessibility_registry_deregister_application): ditto.
-       (spi_registry_new): ditto.
-       (spi_registry_init): don't have an applications field.
-
-[ merge fixups2 branch to here ]
-2001-12-07  Michael Meeks  <michael@ximian.com>
-
-       * test/simple-at.c (report_focus_event),
-       (report_focussed_accessible): remove g_warning debug.
-
-2001-12-07  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c (validate_tree): comment out some checks.
-       (test_desktop): app now not registered idly - horay.
-
-2001-12-07  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_registry.c
-       (registerAccessibleKeystrokeListener): clean, stop it leaking
-       great swathes of memory, and device event controller references.
-       ensure we always pass valid sequences.
-       (deregisterAccessibleKeystrokeListener): ditto.
-       (generateKeyEvent): upd.
-
-       * at-bridge/bridge.c (bridge_key_listener): handle
-       registry dead exception gracefully.
-       (bridge_focus_tracker, emit_eventv): free ev.
-
-       * test/simple-at.c (report_focus_event): fix polarity.
-
-       * libspi/application.c (notify_listeners): kill the ev
-       argument, and make sure we init the ev we use.
-       (spi_application_object_event_listener): split out a chunk
-       (get_atk_object_ref): here & fixup.
-       (reverse_lookup_name_for_toolkit_event): make const.
-       (spi_application_toolkit_event_listener): fixup, kill leaks
-       ref problems etc.
-
-       * at-bridge/bridge.c (register_atk_event_listeners):
-       don't unref the noop object - causes grief.
-
-       * libspi/registry.c: remove the X headers.
-       turn off the debug churn.
-
-       * libspi/accessible.c (spi_accessible_new_return): only
-       release the ref if we are supposed to [doh]
-
-       * test/simple-at.c (report_button_press, report_focus_event):
-       guard vs. unexpected exit.
-
-       * at-bridge/bridge.c (gtk_module_init): prune printf.
-       (bridge_exit_func): fix app unref.
-
-       * libspi/Makefile.am: don't install registry or desktop.h
-
-       * libspi/*.h: update includes.
-
-       * libspi/application.h: don't include ourself, or
-       other redundant headers.
-
-2001-12-06  Michael Meeks  <michael@ximian.com>
-
-       * libspi/accessible.c
-       (get_accessible_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing cut and paste.
-
-       * cspi/spi_main.c (cspi_cleanup): guard vs. double
-       invokes.
-       (SPI_init): register atexit cleanup handler here.
-
-2001-12-06  Michael Meeks  <michael@ximian.com>
-
-       * at-bridge/bridge.c (gtk_module_init): g_error on
-       activation exception
-
-2001-12-06  Michael Meeks  <michael@ximian.com>
-
-       * at-bridge/bridge.c (gtk_module_init): some sort of
-       confusing merge clash - reverted.
-       (bridge_idle_init): ditto.
-
-       * test/test-simple.c (main, utterable_normal_derefs):
-       merge from Bill - somehow not committed.
-
-2001-12-06  Michael Meeks  <michael@ximian.com>
-
-       * libspi/value.c (spi_value_class_init): upd.
-       (spi_value_finalize): kill.
-
-       * libspi/table.c (spi_table_finalize): kill.
-       (spi_table_interface_new): upd.
-       (spi_table_class_init): upd.
-       (get_table_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing yet more cut and paste.
-
-       * libspi/selection.c (spi_selection_finalize): kill.
-       (spi_selection_interface_new): upd.
-       (spi_selection_class_init): upd.
-       (get_selection_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing yet more cut and paste.
-
-       * libspi/relation.c (spi_relation_finalize): kill.
-       (spi_relation_class_init, spi_relation_new): upd
-
-       * libspi/image.c (spi_image_finalize): kill.
-       (spi_image_class_init): upd.
-       (spi_image_interface_new): upd.
-       (get_image_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing yet more cut and paste.
-
-       * libspi/hyperlink.c (spi_hyperlink_class_init): upd.
-       (spi_hyperlink_finalize): kill.
-       (spi_hyperlink_new): upd.
-       (get_hyperlink_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing yet more cut and paste.
-
-       * libspi/hypertext.c (spi_hypertext_interface_new): upd.
-       (spi_hypertext_finalize): kill.
-       (spi_hypertext_class_init): upd.
-       (get_hypertext_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing yet more cut and paste.
-
-       * libspi/editabletext.c (spi_editable_text_finalize): kill.
-       (spi_editable_text_interface_new): upd.
-       (get_editable_text_from_servant): impl.
-       Upd. all CORBA impl.s to use it killing yet more cut and paste.
-       
-       * libspi/text.c (get_text_from_servant): impl.
-       All impls - update to use it killing more cut and paste,
-       also fix bad string returns on duff args ( a somewhat
-       impossible case to handle - but hey ).
-       (spi_text_construct): impl.
-       (spi_text_interface_new): upd.
-       (spi_text_object_finalize): kill.
-
-       * libspi/component.c
-       (accessibility_component_object_finalize): kill.
-       (spi_component_class_init): upd.
-       (get_component_from_servant): impl. helper to kill cut & paste.
-       (impl_accessibility_component_contains): 
-       (impl_accessibility_component_get_accessible_at_point): 
-       (impl_accessibility_component_get_position): 
-       (impl_accessibility_component_get_extents): 
-       (impl_accessibility_component_get_mdi_z_order): 
-       (impl_accessibility_component_get_layer): 
-       (spi_component_interface_new): upd.
-
-       * libspi/action.c (spi_action_finalize): kill.
-       (spi_action_class_init): upd. inherit from SpiObject.
-       (spi_action_interface_new): upd.
-       (get_action_from_servant): impl. helper to reduce cut & paste.
-       (impl_getKeyBinding, impl_getName, impl_doAction),
-       (impl_getDescription): Use it everywhere.
-
-       * cspi/spi_main.c (get_live_refs): a pointer hash.
-       (spi_object_hash, spi_object_equal): comment out.
-       There are issues with CORBA object hashing that need
-       solving.
-
-       * libspi/application.c (spi_application_init),
-       (spi_application_new): upd.
-
-       * libspi/accessible.c (spi_accessible_object_finalize): kill.
-       (spi_accessible_class_init): upd.
-       s/accessible/object/ in epv methods.
-
-2001-12-05  Bill Haneman <bill.haneman@sun.com>
-
-       * at-bridge/bridge.c:
-       Reorder the bridge initialization into the bridge gtk_module_init,
-       an immediate call to bridge_register_app, and an idle_add for
-       register_atk_event_listeners (the only code that *must* wait until
-       GTK+ is initialized) via bridge_idle_add. Bridge_register_app does
-       the activation, creates the application's Accessible object, and
-       queues the bridge_idle_init function.  Restored call to
-       Accessibility_Registry_deregisterApplication().  
-       Prior to making this call we obtain a new reference to the
-       registry, which is a temporary hack that helps us handle apps that
-       shut down the bonobo mainloop before we get there.
-
-       * libspi/registry.c:
-       Fix string leakage in debug block, and don't segv if a an app
-       dies before its event notifications have been propagated.
-
-       * cpi/spi_util.c:
-       Modify cspi_check_ev() to call g_warning() rather than g_error(),
-       as stopgap measure until we get proper exception handling when 
-       objects die during or before interrogation.  
-
-       * cspi/spi_main.c:
-       * cspi/spi.h:
-       Moved use of isGNOMEApp flag from SPI_event_main to SPI_init.
-       Also changed default value of is_gnome_app to TRUE.
-
-       * test/simple-at.c:
-       * test/keysynth-demo.c:
-       Changed use of SPI_init and SPI_event_main to reflect API change above.
-
-       * test/simple-at.c:
-       Made report_focus_event check the warning value from getName
-       before reporting on focussed accessible; simplifies handling of
-       notifications from dead objects.
-
-       * test/test-simple.c: (Changes not in this patch since source is
-       not in CVS ?)
-       
-2001-12-05  Michael Meeks  <michael@ximian.com>
-
-       * registryd/registryd.c (main): protect against
-       bonobo-activation startup race condition.
-
-       * cspi/spi_main.c (cspi_object_add_check): cope
-       with the exception elegantly.
-
-       * idl/Accessible.idl: decl. ChildGone
-
-       * libspi/desktop.c (spi_desktop_dispose): impl.
-       (spi_desktop_class_init): upd.
-       (spi_desktop_add_application),
-       (spi_desktop_remove_application),
-       (abnormal_application_termination): impl.
-       (impl_desktop_get_child_at_index): re-impl.
-
-       * libspi/registry.c
-       (impl_accessibility_registry_deregister_application),
-       (impl_accessibility_registry_register_application): 
-       kill excessive debug clutter.
-
-       * test/test-simple.c (test_misc): test some NULL
-       tolerance. (main): upd.
-
-       * cspi/spi_main.c (cspi_accessible_is_a): a NULL
-       implements no interfaces - so let's not crash.
-
-       * cspi/spi_accessible.c (Accessible_queryInterface): ditto.
-
-       * libspi/accessible.c (spi_accessible_new_return): impl.
-       helper to calm the cut and paste, to cope with
-       NULL AtkObjects effectively and efficiently, and to kill
-       the referencing bugs.
-
-       * libspi/table.c (impl_getAccessibleAt),
-       (impl_getRowHeader, impl_getColumnHeader): upd.
-
-       * libspi/hyperlink.c (impl_getObject): upd.
-
-       * libspi/accessible.c
-       (impl_accessibility_accessible_get_child_at_index): upd.
-
-       * libspi/component.c
-       (impl_accessibility_component_get_accessible_at_point): upd.
-
-       * test/test-simple.c (test_editable_text, test_text): impl.
-       some simple tests.
-
-       * cspi/spi_editabletext.c
-       (AccessibleEditableText_insertText): constify.
-
-       * test/test-simple.c (focus_me): make more robust.
-
-       * libspi/accessible.c: remove some printfs in methods that
-       we test and work fine, so we can get a clean tree dump.
-
-       * test/test-simple.c (validate_accessible),
-       (validate_tree): make tree dumping pretty too.
-
-       * at-bridge/bridge.c (bridge_signal_listener): upd. so
-       it builds without debug on.
-
-       * test/test-simple.c (validate_accessible): fix the most
-       ludicrous bug.
-
-       * cspi/spi_main.c (spi_object_release): leave the nicely
-       blanked memory around if in debug mode.
-
-       * cspi/spi-listener-impl.c (cspi_event): use add_check.
-
-[committed to fixups2]
-2001-12-05  Michael Meeks  <michael@ximian.com>
-
-       * libspi/editabletext.c
-       (spi_editable_text_class_init): g_type_class_peek_parent,
-       not interface peek - so we finalize cleanly.
-
-       * libspi/accessible.c (spi_accessible_new): kill debug.
-
-       * test/test-simple.c (validate_accessible): fix ref.
-       leak, print strings before freeing them; sigh, comment a
-       chunk out due to strangeness.
-       (validate_tree): unref the child after use.
-
-       * cspi/spi_component.c (AccessibleComponent_getLayer):
-       add missing break statement, switch on zlayer not the
-       uninitialized retval.
-
-       * cspi/spi_main.c (cspi_object_add): add assert, local ref
-       before (possibly re-entering) remote unref.
-
-       * test/simple-at.c (main): unref the desktop.
-
-       * cspi/spi_accessible.c (cspi_accessible_is_a): move 
-       into:
-       
-       * cspi/spi_main.c (cspi_accessible_is_a): here to 
-       isolate bonobo API usage more.
-
-       * libspi/registry.c (impl_accessibility_registry_register_application): 
-       prune bogus comment.
-
-2001-12-04  Michael Meeks  <michael@ximian.com>
-
-       * test/test-simple.c (validate_tree): upd.
-       IndexInParent check to make it more lucid.
-       (validate_accessible): dump the tree.
-
-       * libspi/accessible.c (de_register_public_ref),
-       (get_public_refs): impl.
-       (spi_accessible_new): make more efficient & intuitive.
-       Now IndexInParent check works.
-
-2001-12-04  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi-util.h: remove.
-
-       * cspi/spi.h: move SPI_freeString here
-
-       * libspi/component.c (impl_accessibility_component_get_layer): 
-       warning fixage.
-       (impl_accessibility_component_get_mdi_z_order): ditto,
-       return -1 on error - is this ok ?
-
-       * test/test-simple.c (test_application): impl.
-
-       * cspi/spi_accessible.c (Accessible_getApplication),
-       (Accessible_isApplication): impl.
-
-       * libspi/registry.c (spi_listener_struct_free): release
-       the CORBA reference too.
-
-       * libspi/accessible.c
-       (impl_accessibility_accessible_get_parent): fix ref leak.
-
-       * libspi/registry.c (spi_registry_new): make the registry
-       immortal - we don't want it to go away ever.
-
-       * libspi/application.c
-       (spi_accessible_application_finalize): impl. cleanup.
-
-       * cspi/spi_registry.c
-       (deregisterGlobalEventListenerAll),
-       (deregisterGlobalEventListener),
-       (deregisterAccessibleKeystrokeListener): fix ref leak.
-
-       * cspi/spi_main.c (SPI_init): remove redundant ref.
-
-       * test/test-simple.c (unutterable_horror): impl. to force a
-       clean shutdown.
-       (main): use it.
-
-       * libspi/registry.c
-       (impl_accessibility_registry_deregister_application): release
-       the application when we de-register it.
-
-       * at-bridge/bridge.c (bridge_exit_func): comment out shutdown
-       until we have the infastructure to get it right.
-
-2001-12-03  Michael Meeks  <michael@ximian.com>
-
-       * libspi/Makefile.am: only build eventlistener.[ch]
-
-       * libspi/accessible.c
-       (impl_accessibility_accessible_get_child_at_index): don't leak.
-
-       * at-bridge/bridge.c (bridge_exit_func): cope with an exit
-       before we hit the idle handler.
-
-       * cspi/spi-util.c (cspi_check_ev): g_error is far nicer for
-       debugging than exit.
-
-       * at-bridge/bridge.c (bridge_focus_tracker): fix ref issue.
-
-       * libspi/listener.c (impl_notify_event): check source
-       not NIL before unref.
-
-       * libspi/registry.c (impl_registry_notify_event): ditto.
-
-       * libspi/eventlistener.c
-       (impl_accessible_event_notify_event): unref the source.
-
-       * libspi/accessibleeventlistener.c
-       (impl_accessible_event_notify_event): unref the source.
-
-       * idl/Event.idl: remove 'hash_id' attribute - of no
-       concievable use.
-
-       * libspi/application.c (notify_listeners): upd list
-       iteration & sig.
-       (spi_application_object_event_listener), 
-       (spi_application_toolkit_event_listener): upd to do correct
-       CORBA ref counting.
-
-       * libspi/registry.c
-       (_registry_notify_listeners): update.
-       (parse_event_type): this method also leaks like a sieve.
-       (impl_accessibility_registry_deregister_global_event_listener): 
-       fix ETYPE_WINDOW case.
-
-       * libspi/application.c
-       (impl_accessibility_application_register_object_event_listener): 
-       kill leak.
-
-       * libspi/hyperlink.c (impl_getObject): fix ref mistake.
-
-       * libspi/hypertext.c (impl_getLink): ditto.
-
-       * cspi/spi_main.c (cspi_object_add): remove
-       bogus CORBA_Object_duplicate.
-
-       * cspi/spi-listener-impl.c (cspi_event): dup/ref
-       on the object_add.
-
-       * cspi/spi_accessible.c
-       (Accessible_getRelationSet): fix leak / referencing issue.
-
-       * cspi/spi_main.c (spi_object_hash, spi_object_equal): impl.
-       (cspi_object_add, cspi_object_unref): upd.
-       (spi_object_release, get_live_refs): impl.
-       (cspi_cleanup): simplify.
-
-       * *.[ch]: s/boolean/SpiBoolean/
-
-       * cspi/spi_accessible.c (role_names): actualy order so it
-       corresponds with the enum !
-
-       * test/test-simple.c (test_roles): check some role strings
-       vs. enums to detect offset errors.
-
-2001-12-01  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_main.c (cspi_object_add_check): impl. helper.
-
-       * cspi/spi_accessible.c (Accessible_getChildAtIndex):
-       check ev before 
-       (Accessible_getChildAtIndex): use cspi_add_check so we
-       check the ev before using a (possibly) invalid value.
-
-       * libspi/accessible.c
-       (impl_accessibility_accessible_get_parent): don't segv
-       on a NULL parent.
-
-       * at-bridge/bridge.c (gtk_module_init): upd.
-       (bridge_property_event_listener): don't leak strings
-       and events !
-       (bridge_state_event_listener),
-       (bridge_property_event_listener): don't use a static
-       buffer in case of recursive event emission &
-       re-enterancy - split out the swathe of cut and paste
-       into:
-       (emit_eventv): and fix 2 ref leaks here & comply to the
-       coding style.
-       (bridge_register_app): rename to 
-       (bridge_idle_init): this and kill arg parsing, split
-       various inits & bonobo-activation registration to module
-       init time, kill referencing error.
-       (bridge_exit_func): fix the same leak.
-       (bridge_focus_tracker): don't leak event structures
-       and strings.
-       (bridge_signal_listener): more leakage and cut & paste
-       fixage.
-       (bridge_key_listener): return the result - FIXME is
-       this polarity correct ?
-       (accessibility_keystroke_from_atk_key_event): rename
-       (accessibility_init_keystroke_from_atk_key_event): and stop
-       leakage.
-       (gtk_module_init): return a value - not that it is checked by
-       Gtk - but hey.
-       (bridge_key_listener): register my horror at casting between
-       IDL defined structs.
-       (bridge_get_registry): kill - not used.
-
-       * cspi/spi_accessible.c (Accessible_getRole): make return const.
-
-       * test/test-simple.c (test_roles): impl.
-       (test_desktop, validate_accessible, validate_tree): impl.
-
-       * cspi/spi_accessible.c (role_names): fixup bogus
-       MAX_ROLES setup, make constants const for efficient linkage
-       (AccessibleRole_getName): conform to coding style, make
-       return 'const'
-
-2001-11-30  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi.h: add missing prototype.
-
-       * libspi/registry.c (spi_listener_struct_new): fix sig.
-
-       * test/Makefile.am: add test-simple
-
-       * test/test-simple.c: add
-
-       * test/test.sh: add.
-
-       * cspi/spi_main.c (SPI_init): make SPI_inited module global,
-
-       * at-bridge/bridge.c (gtk_module_init): don't do an idle init,
-       do it straight - since otherwise we often get an activation race.
-
-[ work before Bill duplicated a chunk of it ... ]
-2001-11-30  Michael Meeks  <michael@ximian.com>
-
-       * libspi/keystrokelistener.c
-       (spi_keystroke_listener_class_init): fixup arg
-       count (doh).
-
-       * libspi/eventlistener.c
-       (spi_event_listener_class_init): ditto.
-
-       * tests/test.sh: add.
-
-       * cspi/spi-listener-impl.h: update macros.
-
-       * cspi/spi-listener-impl.c
-       (cspi_event_listener_remove_callback): add
-       correct pre-conditions.
-
-       * cspi/spi_main.c (SPI_exit): guard vs. double
-       exits, exit the mainloop nicely.
-       (SPI_event_main): make more sense.
-       (SPI_init): move the atexit evilness here so we
-       always do it (yuck).
-       (SPI_event_main): upd.
-
-       * test/simple-at.c: update for listener changes.
-
-       * registryd/registryd.c (main): prune kruft.
-
-       * libspi/libspi.h: upd.
-
-       * libspi/eventlistener.[ch]: rename broken macros.
-
-       * libspi/accessibleeventlistener.[ch]: remove.
-
-       * libspi/*.[ch]: IS_SPI_... -> SPI_IS_...
-
-       * test/test-simple.c: Add - automated tests.
-
-       * cspi/spi-listener-impl.c (cspi_event),
-       (cspi_key_event): add user_data to invoke.
-       (cspi_keystroke_listener_finalize): impl.
-       (cspi_keystroke_listener_class_init): upd.
-
-       * cspi/spi_event.c
-       (createAccessibleEventListener),
-       (AccessibleEventListener_addCallback),
-       (createAccessibleKeystrokeListener),
-       (AccessibleKeystrokeListener_addCallback): upd.
-
-       * libspi/deviceeventcontroller.c
-       (spi_device_event_controller_check_key_event): add public proto.
-
-       * libspi/registry.c
-       (impl_accessibility_registry_deregister_global_event_listener): 
-       always init listeners.
-       (_registry_notify_listeners): yes it is.
-
-       * cspi/spi-listener-impl.c (cspi_key_event): 
-       move debug to here.
-       (cspi_event_listener_finalize): impl.
-       (cspi_event_listener_class_init): hook up.
-       (event_handler_new, event_handler_free),
-       (event_list_remove_by_callback): impl.
-       (cspi_event_listener_remove_callback),
-       (cspi_keystroke_listener_remove_callback),
-       (cspi_keystroke_listener_add_callback),
-       (cspi_event_listener_add_callback): upd.
-
-       * libspi/keystrokelistener.c
-       (keystroke_listener_object_finalize): kill
-       (spi_keystroke_listener_class_init): upd.
-       (spi_keystroke_listener_add_callback),
-       (spi_keystroke_listener_remove_callback): kill,
-       use signals.
-       (impl_key_event): prune drasticaly.
-
-       * libspi/eventlistener.c
-       (spi_event_listener_add_callback),
-       (spi_event_listener_remove_callback): kill, use
-       signals.
-       (impl_accessible_event_notify_event): upd.
-       (spi_event_listener_object_finalize): remove.
-
-       * libspi/Makefile.am: use eventlistener.[ch]
-
-2001-12-04  Bill Haneman  <bill.haneman@sun.com>
-
-       * libspi/registry.c (_registry_notify_listeners):
-       Changed listener loop iteration to use preferred convention.
-       Got rid of string memory leaks caused be calling g_strconcat
-       inside function calls.
-
-       * libspi/registry.c (parse_event_type):
-       Stopped g_strconcat memory leaks, free the g_strsplit return,
-       g_strdup the split pieces when used, etc.
-
-2001-12-04  Bill Haneman  <bill.haneman@sun.com>
-
-       * idl/State.idl: 
-       Change method 'compare' to return a 'difference set' rather than
-       taking a StateSet as an out parameter (more Java-friendly).
-
-       * idl/Accessible.idl:
-       Added CORBA struct 'BoundingBox', to faciliate API changes below:
-       
-       * idl/Component.idl:
-       * idl/Image.idl:
-       Changed methods 'getExtents' and 'getImageExtents' in these
-       interfaces to return a BoundingBox structure.  
-       (getPosition and getSize are redundant and possibly should be
-       removed, rather than creating a corresponding Point struct.)
-
-       * cspi/spi_component.c:
-       Modify implementation of getExtents to reflect the above IDL
-       change.
-       
-       * cspi/spi_image.c:
-       * cspi/spi.h:
-       Add (missing) AccessibleImage_getExtents () API.
-
-       * docs/reference/cspi/at-spi-cspi-sections.txt:
-       Added AccessibleImage_getImageExtents () to docs.
-       
-2001-12-03  Bill Haneman  <bill.haneman@sun.com>
-
-       * idl/Component.idl:
-       Added two methods, getLayer () and getMDIZOrder (), to reflect
-       the new ATK methods atk_object_get_layer and
-       atk_object_get_mdi_z_order. (Which arguably should be part of the
-       AtkComponent API and AtkObject).  Also added an enum,
-       ComponentLayer, for the first method's return value.
-
-       * libspi/component.c:
-       Added implementations for these methods.
-
-       * cspi/spi_component.c:
-       * cspi/spi.h:
-       Added cspi binding methods for above, 
-       AccessibleComponent_getLayer() and
-       AccessibleComponent_getMDIZOrder().
-       Added cspi enum 'AccessibleComponentLayer'.
-
-       * docs/reference/cspi/at-spi-cspi-sections.txt:
-       Added above methods to docs.
-
-       * cspi/spi-impl.h:
-       * cspi/spi*.[ch]:
-       Changed typedef for 'boolean' type (and all references to it) to
-       SPIBoolean, to avoid keyword clashes with C++.
-
-       * test/simple-at.c:
-       Changed usages of 'boolean' to SPIBoolean.
-
-       * test/keysynth-demo.c:
-       Changed usages of 'boolean' to 'gboolean' (since this is a gnome
-       app), except where SPIBoolean is required by the callbacks API.
-       
-2001-12-02  Bill Haneman  <bill.haneman@sun.com>
-
-       * cspi/spi_registry.c:
-       Removed obsolete X event loop for passive keygrabs (which now
-       lives in libspi).
-
-       * registryd/registryd.c:
-       Removed unnecessary call to gdk_init() [cruft]. This also allows
-       removal of requisite gdk-2.0 from REGISTRYD_LIBS/CFLAGS in
-       * configure.in.
-
-2001-11-28  Bill Haneman  <bill.haneman@sun.com>
-
-       * docs/reference/cspi:
-       Included docs for SPI_freeString in generated documentation.
-
-       * cspi/spi-util.c:c
-       Renamed spi_freeString to SPI_freeString, for consistency.  Added
-       documentation for this function.
-
-       * cspi/spi-util.h:
-       Renamed spi_freeString to SPI_freeString, for consistency.  
-       Removed obsolete method declaration string_from_corba_string.
-
-       * test/keysynth-demo.c:
-       Small tweak to comments.
-
-       * test/simple-at.c:
-       Stopped leaking the strings returned from CSPI. 
-
-2001-11-28  Bill Haneman  <bill.haneman@sun.com>
-
-       Merged Michael's branch (see his ChangeLog entries below).
-       
-       * at-bridge/bridge.c: Explicitly hold a ref to the registry while
-       bridge is alive, release on exit.
-       
-       * cspi/spi-listener-impl.c (cspi_event_listener_add_callback):
-       Fix type check macro.
-       
-       * cspi/spi_event.c:
-       Added AccessibleKeystrokeListener_unref() method to reduce leakage.
-       
-       * cspi/spi_main.c: 
-       Added is_gnome_app static, and method cspi_is_gnome_app(), 
-       so we can call the appropriate shutdown routine at exit in SPI_exit.
-       
-       * cspi/spi_main.c (cspi_object_ref):
-       Duplicate the corba object passed in, since we're keeping it around.
-       
-       * cspi/SPI_exit.c, cspi_cleanup:
-       Moved the releasing of the live refs to its own function, so we
-       can put it in g_atexit ().  Call the appropriate shutdown API
-       depending on whethe calling client is a gnome app or not
-       (bonobo_main_quit or CORBA_ORB_shutdown).
-       
-       * cspi/spi_registry.c (deregisterGlobalEventListenerAll):
-       Unref the listener when this method is called, after
-       deregistration.  Updated the API docs to note this behavior.
-
-       * libspi/accessible.c (impl_get_parent, impl_get_child_at_index):
-       Bugfixes: Ref the bonobo object when returning a parent or child 
-       reference, or an AccessibleRelation.  Generally made sure
-       BonoboObject refcount is incremented whenever we return an
-       Accessible.
-
-       * libspi/accessibleeventlistener.c (spi_event_listener_class_init):
-       Fixed typo/bug in signal declaration.
-       
-       * libspi/accessibleeventlistener.h:
-       Fixed a type macro.
-
-       * libspi/application.c (spi_application_new):
-       Fixed leak in initialization.
-
-       * libspi/desktop.c:
-       Remembered to increment bonobo-object refcount when returning
-       children (applications) from desktop object.
-       Added (empty) finalize method.
-
-       * libspi/deviceeventcontroller.c:
-       Hold a ref to listeners inside DEControllerKeyListeners.
-       Added dec_key_listener_free() method.  Use prepend instead of
-       append in key_listener list.  Fixed some refcount madness and
-       leaks in the listener registration/deregistration - deregistration
-       now calls dec_key_listener_free() on listeners, and on the
-       temporarily constructed dec_key_listener() used to perform the search/match.
-
-       * libspi/hypertext.c (spi_hypertest_finalize):
-       Fixed 'double unref' of AtkObject held by parent SpiAccessibleText
-       class.  Also fixed spi_hypertext_interface_new() and
-       SpiHypertextClass.  Fixed a couple of paren-whitespace formatting bugs.
-
-       * libspi/hypertext.h: 
-       Removed pointless and duplicate AtkObject pointer from
-       SpiHypertextClass.
-
-       * libspi/keystrokelistener.c:
-       Fixed incorrect type of keystroke_listener_parent_class,
-       renamed keystroke_listener_object_finalize to
-       spi_keystroke_listener_object_finalize.
-       Fixed typo in signal declaration
-       (spi_keystroke_listener_class_init).
-
-       * libspi/registry.c:
-       Added funcsions spi_listener_struct_new() and
-       spi_listener_struct_free() to help with memory management issues.
-       We also now use these methods instead of gnew + poking stuff into
-       the struct, and to decrement listener counts/free the listeners
-       when deregistering them.
-       Fix more refcount bugs in getDesktop() and
-       getDeviceEventController().  
-
-       * test/simple-at.c:
-       De-ref the desktop after enumerating the applications.  Explicitly
-       decrement the refcounts on the created listeners on exit (using
-       _unref for keystroke listeners, and via the
-       deregisterGlobalEventListenerAll command for other event
-       listeners).
-       
-2001-11-27  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi-listener.h: fixup enum.
-
-2001-11-27  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi-listener-impl.c (cspi_event_listener_new),
-       (cspi_keystroke_listener_new): Use the cspi variants.
-
-2001-11-26  Michael Meeks  <michael@ximian.com>
-
-       * test/keysynth-demo.c: fix 2 compile warnings, missing
-       type in decl. etc.
-
-       * test/simple-at.c (report_focussed_accessible),
-       (report_focus_event, report_button_press),
-       (check_property_change, is_command_key),
-       (report_ordinary_key_event, report_command_key_event): upd.
-
-       * util/mag_client.h: include pre-requisites.
-
-       * libspi/accessibleeventlistener.c
-       (spi_event_listener_object_finalize): free any lingering
-       callbacks.
-       
-       * libspi/keystrokelistener.c
-       (keystroke_listener_object_finalize): ditto.
-
-       * cspi/spi-listener-impl.[ch]: Add to implement cspi style
-       callbacks, with cspi types.
-       
-       * cspi/spi_event.c (createAccessibleEventListener): chain to
-       (AccessibleEventListener_addCallback): here.
-       (createAccessibleKeystrokeListener): chain to 
-       (AccessibleKeystrokeListener_addCallback): here.
-
-       * libspi/keystrokelistener.c
-       (spi_keystroke_listener_class_init): add signal.
-       (impl_key_event): emit the event.
-       (boolean_handled_accumulator): impl.
-       (marshal_BOOLEAN__POINTER): add, gack.
-
-       * libspi/accessibleeventlistener.c
-       (spi_event_listener_class_init): add signal.
-       (impl_accessible_event_notify_event): emit the signal &
-       make the loop efficient.
-       (spi_event_listener_add_callback): prepend the callback.
-
-       * libspi/accessibleeventlistener.h: add an 'event' signal,
-       decl type on callback.
-
-       * libspi/keystrokelistener.h: ditto.
-
-       * cspi/spi-listener.h: make methods typesafe and
-       make them use the new event typedefs.
-
-       * test/simple-at.c (report_focussed_accessible):
-       include mag_client.h
-       Use *(void *)text_interface not the other thing.
-       
-       * configure.in: add gtk to registryd bits - since we use
-       gdk there ( why ? )
-
-       * util/magnifier.c: include libbonobo.h
-       
-2001-11-25  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/keysynth-demo.c:
-       Turned this into a simple scanning keyboard, to demonstrate the
-       use of g_timeout_add () as a means of creating timers for
-       scanning, and the use of GtkStyle for visually indicating when
-       virtual keyboard elements are selected.
-
-       keysynth-demo now listens to any keyboard keys with zero-valued
-       keycodes (i.e. 'unused' keys) and interprets them as
-       single-switches.
-
-       Reworked the shiftlatch code so that shift-down state isn't held
-       for long periods (it's only synthesized immediately prior to
-       the keysynth event it's modifying).  Note that shiftlatch in this
-       demo is a convenience, not intended to take the place of AccessX 
-       which is the better choice for getting 'sticky' modifier keys.
-
-       * libspi/deviceeventcontroller.c:
-       * at-bridge/bridge.c:
-       * cspi/spi_registry.c:
-       Removed some debug print stuff, and put other verbosity in #ifdef
-       blocks.
-
-       * util/magnifier.c:
-       * util/mag_image.h:
-       Implemented some more of the magnifier IDL for the simple
-       magnifier: namely, getZoomRegionParams. 
-       Added mag_x and mag_y members to MagnifierData struct, aid of this
-       implementation.
-       Added GtkWindow::realize signal handler to magnifier, to keep it
-       from receiving keyboard focus from the WM.
-
-2001-11-23  Mark McLoughlin  <mark@skynet.ie>
-
-       * cspi/spi-private.h: my guess at what michael forgot
-       before he ran off to NZ :-)
-
-2001-11-23  Michael Meeks  <michael@ximian.com>
-
-       * cspi/spi_event.c (AccessibleEventListener_removeCallback):
-       comment out non existant method invoke so we link.
-
-       * cspi/spi-util.c (spi_warn_ev): conform to gtk+ style,
-       use bonobo_exception_get_text for more friendly warnings.
-
-       * cspi/spi.c (Obj_Add): move into spi_main & rename
-       spi_object_add; kill spi.c
-
-       * cspi/spi_registry.c
-       (deregisterGlobalEventListener),
-       (deregisterGlobalEventListenerAll),
-       (registerGlobalEventListener): fix exception leaks.
-
-       * cspi/spi_main.c (spi_exception): impl. helper, so we
-       don't leak exceptions.
-
-       * cspi/spi_selection.c
-       (AccessibleSelection_deselectSelectedChild): return the
-       success state.
-
-       * cspi/spi_main.c (spi_ev): impl; hack - gack.
-       (spi_registry): ditto.
-       (SPI_init): guard against double inits.
-
-       * cspi/*.c: use spi_ev (), and spi_registry () where
-       appropriate - a temporary hack until we have something
-       better. Use spi_object_add
-
-2001-11-22  Michael Meeks  <michael@ximian.com>
-
-       * cspi/Makefile.am: re organise, install the headers.
-
-       * cspi/*.h: add G_BEGIN/END_DECLS
-
-2001-11-22  Bill Haneman  <bill.haneman@sun.com>
-
-       * test/simple-at.c:
-       Added non-preemptive keylistener for key events with no modifiers
-       and shift-only modifier.
-
-       * libspi/keystrokelistener.c:
-       Removed some verbose diagnostics printout.
-
-       * cspi/spi_registry.c:
-       Fixed a bug that caused all key listeners to be registered as
-       pre-emptive.
-       
-       * libspi/deviceeventcontroller.c:
-       Fixed bug that caused XGrabKey (preemptive key grab) to be called
-       for non-preemptive key masks.
-
-
-2001-11-22  Bill Haneman  <bill.haneman@sun.com>
-
-       * docs/reference/idl/at-spi-idl-docs.sgml:
-       * docs/reference/idl/at-spi-idl-sections.txt:
-       * docs/reference/idl/at-spi-idl-overrides.txt:
-       Added missing files.
-
-       * docs/reference/Makefile.am:
-       removed idl from SUBDIRS until we can figure a way to get gtk-doc
-       to scan the IDL files :-(
-
-       * docs/reference:
-       * docs/cspi:
-       * docs/idl:
-       Added .cvsignore files.
-       
-2001-11-21  Bill Haneman  <bill.haneman@sun.com>
-
-       * libspi/deviceeventcontroller.c:
-       * libspi/keystrokelistener.c:
-       * cspi/spi_event.c:
-       * cspi/spi_registry.c:
-       Added filters for KeySets, KeyEventSeq, and event types to key
-       event dispatching, so listeners should only receive those events
-       that they requested :-)
-
-2001-11-21  Bill Haneman  <bill.haneman@sun.com>
-
-       * configure.in:
-       * docs/Makefile.am:
-       * docs/reference:
-       * docs/reference:Makefile.am:
-       * docs/reference/cspi:
-       * docs/reference/cspi:Makefile.am:
-       * docs/reference/cspi:tmpl:
-       * docs/reference/cspi:tmpl:*.sgml:
-       * docs/reference/idl:
-       * docs/reference/idl:Makefile.am:
-       * docs/reference/idl:at-spi-idl-sections.txt:
-       * docs/reference/idl:at-spi-idl-docs.sgml:
-       * docs/reference/idl:tmpl:
-       * docs/reference/idl:tmpl:*.sgml:
-
-       Restructured docs directory to allow separate 'reference' docs
-       section, and forked idl and cspi docs.  Added the sgml template
-       files to CVS.  Added the first sections/structural sgml for the
-       IDL docs.
-
-2001-11-21  Laszlo Peter  <laca@ireland.sun.com>
-
-       * configure.in, libspi/Makefile.am: find libXtst.
-
-2001-11-21  Michael Meeks  <michael@ximian.com>
-
-       * test/accessx-gui.c: s/spi_value/value/ - doh.
-
-       * libspi/base.[ch]: add.
-
-2001-11-18  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessible.idl:
-       * idl/Application.idl:
-       * idl/Registry.idl:
-       * idl/Action.idl:
-       Started gtk-doc cleanup on IDL.
-
-       * libspi/deviceeventcontroller.c:
-       Added and connected non-preemptive key notification from the
-       toolkits (in addition to the pre-emptive support from XServer
-       which we had before, but which causes 'focus flashing').  Filters
-       are presently limited to key modifiers and global/non-global,
-       KeySets are presently ignored, as are KeyEvent masks.
-
-       Fixed naughtiness in dec_key_listener_new(), we copy the CORBA
-       structs into the persistant structure rather than just storing
-       pointers to things that might not persist across servant
-       invocations.
-
-       The XGrabKey call now does async keygrabs, because synchronous
-       ones were deadlocking with GDK_event code in a very nasty way.
-
-       Added boolean to internal method notify_keylisteners, to indicate
-       whether the event came from the 'toolkit source' or the 'global
-       (XServer) source' - this is used in the notification process to
-       determine which listeners to send the event to.
-
-       deviceeventcontroller.c is now warning-free.
-       
-       * libspi/registry.c:
-       Fixed regression in application de-registration.
-       Also fixed some really brain-dead weirdness having to do with
-       event dispatching - event structs are now duplicated before being
-       re-marshalled in the dispatch to listeners.  This also fixes a
-       Solaris build problem.
-       
-       
-2001-11-20  Michael Meeks  <michael@ximian.com>
-
-       * libspi/registry.c
-       (impl_accessibility_registry_deregister_global_event_listener): 
-       segv. protection.
-
-       * libspi/deviceeventcontroller.c
-       (spi_device_event_controller_check_key_event): return
-       FALSE on no virtual method.
-
-       * libspi/*..h: make includes work on a correctly pathed install.
-
-       * libspi/*.h: include glib/gmacros.h, use G_BEGIN / END _DECLS.
-
-       * libspi/application.h: kill unused ( and whacked out )
-       gboolean *spi_application_set_id (AtkObject *app, long id);
-
-2001-11-20  Michael Meeks  <michael@ximian.com>
-
-       * libspi/*.[ch]: further convert to bonobo's type func
-       macros, remove redundnant casts etc.
-
-       * libspi/text.c s/accessibility_text/spi_text/g,
-       re-order to de-cruft.
-
-       * libspi/hypertext.c: re-order to kill a huge slew
-       of redundant forward decls.
-
-       * libspi/relation.c: ditto.
-
-       * libspi/image.c: ditto.
-
-       * */.cvsignore: update
-       
-2001-11-20  Michael Meeks  <michael@ximian.com>
-
-       * libspi/deviceeventcontroller.c
-       (_controller_register_with_devices): use g_getenv,
-       kill stdlib.h include.
-
-       * libspi/keystrokelistener.c
-       (spi_keystroke_listener_get_type): kill
-       (spi_keystroke_listener_class_init),
-       (spi_keystroke_listener_init): rename to this.
-
-       * libspi/text.c (impl_getAttributes): fix warning / bug.
-
-       * libspi/*.[ch]: more headers, includes and over commenting.
-       
-2001-11-20  Michael Meeks  <michael@ximian.com>
-
-       * libspi/*.[ch]: fixup headers, includes and over commenting.
-
-       * libspi/image.c (impl__get_imageDescription): const
-       correctness warning fix. remove redundant casting.
-
-       * libspi/table.c (impl_getRowDescription): ditto.
-       (impl_getColumnDescription): ditto.
-
-       * libspi/libspi.h: add.
-
-2001-11-19  Michael Meeks  <michael@ximian.com>
-
-       * libspi/editabletext.c (impl_setAttributes): fix warnings.
-
-       * libspi/component.c (accessibility_component_get_type): 
-       rename to (spi_component_get_type): and macroify.
-       (accessibility_component_init): rename to
-       (spi_component_init): this
-       (accessibility_component_class_init): rename to
-       (spi_component_class_init): this
-
-       * libspi/action.c (spi_action_get_type): kill, use the macro.
-
-       * libspi/deviceeventcontroller.c (_compare_listeners): re-order
-       to avoid prototype.
-
-       * libspi/application.c (spi_application_object_event_listener),
-       (impl_accessibility_application_register_object_event_listener):
-       warning fixes / const understanding updates.
-
-       * libspi/accessible.c (impl_accessibility_accessible_get_relation_set):
-       warning fixes.
-
-2001-11-18  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/spi_accessible.c: Added docs and C bindings for
-       AccessibleStateSet. (No implementations yet).  Documentation
-       coverage for C bindings now 100%. Made docs for event listeners
-       more explicit.
-       
-       * idl/Registry.idl:
-       Added methods 
-            boolean notifyListenersSync (in DeviceEventListener listener,
-                                    in DeviceEvent event);
-
-            oneway void notifyListenersAsync (in DeviceEventListener listener,
-                                         in DeviceEvent event);
-
-       Added DeviceEventListener and DeviceEvent structs (may deprecate
-       KeyStroke and KeystrokeListener in favor of this generic
-       event/listener framework for devices).
-
-       * libspi/deviceeventcontroller.c:
-
-       Changed some key listener code to take masks, etc., and paved the
-       way for integration of toolkit/non-preemptive key events. Changed
-       signatures of some internal methods.
-
-       * at-bridge/bridge.c:
-        Fixed regression connecting to interface signals, apparently
-       caused by GTK+ changes.
-
-       Added an internal bridge_state_listener to deal with
-       property-change:accessible-state signals.
-
-       Changed the key_listeners GList to store structs (including masks,
-       etc.) instead of just CORBA_Objects (required for full
-       implementation of key listener API).
-
-       Connected the bridge to all currently supported Atk signals.
-       Events now supported: 
-           object:property-change
-            object:property-change:accessible-name
-            object:property-change:accessible-state
-            object:property-change:accessible-description
-            object:property-change:accessible-parent
-            object:property-change:accessible-value
-            object:property-change:accessible-role
-            object:property-change:accessible-table-caption
-            object:property-change:accessible-table-column-description
-            object:property-change:accessible-table-column-header
-            object:property-change:accessible-table-row-description
-            object:property-change:accessible-table-row-header
-            object:property-change:accessible-table-summary
-            object:children-changed
-            object:visible-data-changed
-            object:selection-changed
-            object:text-selection-changed
-            object:text-changed
-            object:text-caret-moved
-            object:row-inserted
-            object:row-reordered
-            object:row-deleted
-            object:column-inserted
-            object:column-reordered
-            object:column-deleted
-            object:model-changed        
-
-2001-11-16  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/hyperlink.c,h:
-       Fixed some broken stuff in hyperlink.
-       
-       * libspi/relation.h:
-       * libspi/relation.c:
-       * cspi/spi_accessible.c:
-       Initial implementations of AccessibleRelation methods, and docs.
-
-       * libspi/accessible.c:
-       Fixed a bug that caused SEGV  if an accessible
-       object's description is NULL, and a client
-       requests it.  An empty string is now returned.
-
-       * cspi/spi_editabletext.c:
-       * cspi/spi_hypertext.c:
-       * cspi/spi_image.c:
-       * cspi/spi_hyperlink.c:
-       * cspi/spi_table.c:
-       Added docs.  
-
-       Doc coverage now 95%.
-
-2001-11-16  Bill Haneman <bill.haneman@sun.com>
-
-       One last namespacing revision:
-       * libspi/accessibleeventlistener.[ch]:
-       Renamed SpiAccessibleEventListener to SpiEventListener,
-       (no need for two namespaces ;-)
-
-       And lots of documentation fixes:
-
-       * docs/at-spi-docs.sgml:
-       Fixed 'underscore vs. hyphen' bug that was preventing
-       the gtk-doc API docs from being automatically generated.
-
-       * cspi/spi-impl.h
-       * cspi/spi-listener.h
-       * cspi/spi.h
-       * cspi/spi_accessible.c
-       * cspi/spi_action.c
-       * cspi/spi_application.c
-       * cspi/spi_component.c
-       * cspi/spi_editabletext.c
-       * cspi/spi_event.c
-       * cspi/spi_hypertext.c
-       * cspi/spi_main.c
-       * cspi/spi_registry.c
-       * cspi/spi_selection.c
-       * cspi/spi_text.c
-       * cspi/spi_value.c
-       * docs/Makefile.am
-       * docs/at-spi-docs.sgml
-       * docs/at-spi-sections.txt
-       
-       Added and fixed up gtk-doc documentation in cspi.
-       
-       Interfaces now (fully) documented (subject to revision and enhancement):
-       SPI_main
-       Event Listener Support
-       Registry API
-       AccessibleApplication
-       Accessible
-       AccessibleAction
-       AccessibleComponent
-       AccessibleEditableText
-       AccessibleSelection
-       AccessibleText
-       AccessibleValue
-
-       still pending:
-       AccessibleStateSet
-       AccessibleRelationSet
-       AccessibleImage
-       AccessibleTable
-       AccessibleHyperlink
-       
-2001-11-14  Bill Haneman <bill.haneman@sun.com>
-
-       * at-bridge/bridge.c:
-       Initial work for toolkit-level key snooper connection by bridge.
-
-       * cspi/spi-impl.h:
-       * cspi/spi_*.h:
-       * cspi/spi_*.c:
-       New typedefs and fixes to support new namespacing, and cleaner
-       separation of cspi bindings from libspi bonobo implementation.  
-       Removed inconsistent and extraneous Spi* namespace prefix that
-       had crept into cspi headers.
-       Lots of comment fixes that sed had missed.
-
-       * cspi/spi-roletypes.h:
-       * cspi/spi-statetypes.h:
-       Added SPI_ prefix to Role and State typedefs, and changed all-caps ROLE type
-       to AccessibleRoleType.
-       
-       * libspi/accessibleeventlistener.h:
-       Fixed minor namespacing weirdness.
-
-       * libspi/deviceeventcontroller.c:
-        Reordered some internal API for device listeners.
-       Changed the key registry final boolean to 'is_system_global'
-       rather than 'is_synchronous', which is more descriptive of its 
-       actual meaning.
-       Added spi_device_event_controller_new().
-       Added  SpiRegistry backpointer to SpiDeviceEventControllerClass.
-        
-       * libspi/keystrokelistener.[ch]:
-       Namespaced KeystrokeListener to SpiKeystrokeListener.
-       Changed uses of keymasks to use SPI_ prefix, and did other
-       knock-on fixups.
-
-       * libspi/keymasks.h:
-       Namespaced keymask constants with SPI_ prefix.
-
-       * libspi/registry.c:
-       Some warning fixes, and knock-on fixes from namespace changes.
-
-       * test/Makefile.am:
-       Added rules for accessx-gui test program.
-
-       * test/accessx-gui.c:
-       Added a simple GUI program in GTK+-2.0 for the AccessX keyboard
-       utility.  It doesn't actually use at-spi, but it's still cool and
-       useful ;-)
-
-       * test/keysynth-demo.c:
-       * test/simple-at.c:
-       * test/at.c:
-       * test/app.c:
-       Fixes so that these test clients work properly with the namespaced
-       libraries. (Incompletely tested for technical reasons, fixes may follow)
-       
-
-2001-11-13  Michael Meeks  <michael@ximian.com>
-
-       * libspi/application.c
-       (impl_accessibility_application_get_version),
-       (impl_accessibility_application_get_toolkit_name):
-       warning fixes.
-       (impl_accessibility_application_set_id),
-       (impl_accessibility_application_get_id): remove
-       redundant casting code.
-
-       * libspi/action.c (impl_getDescription): fix warnings.
-
-       * libspi/accessible.c
-       (impl_accessibility_accessible_get_parent),
-       (impl_accessibility_accessible_get_child_at_index),
-       (impl_accessibility_accessible_get_state),
-       (impl_accessibility_accessible_get_relation_set):
-       warning fixes & include action.h
-
-2001-11-13  Michael Meeks  <michael@ximian.com>
-
-       * *.[ch] fix bits I screwed up:
-
-               s/([^ \tb(\*\&\?\",])spi_/\1/g;
-               s/([^ \tb(\*\&\?\",])Spi/\1/g;
-       
-2001-11-13  Michael Meeks  <michael@ximian.com>
-
-       * *.[ch] Namespace libspi into spi_ and Spi.
-
-2001-13-11  Michael Meeks  <michael@ximian.com>
-
-       * Makefile.am: dist & install at-spi-1.0.pc
-
-       * libspi/Makefile.am: install into at-spi-1.0
-
-       * idl/Makefile.am (idldir): install into at-spi-1.0
-
-       * at-spi-1.0.pc.in: add.
-
-       * configure.in: build it.
-
-2001-11-12  Bill Haneman <bill.haneman@sun.com>
-
-        * test/keysynth-demo.c:
-        Use a 'realize' signal-handler to set the WM properties for
-        the virtual keyboard, rather than making it a "POPUP" type
-        override-redirect window (thanks to anders carlsson for that
-        tip!)
-
-2001-11-11  Bill Haneman <bill.haneman@sun.com>
-
-       * test/Makefile.am:
-       * test/keysynth-demo.c:
-       Added new test of key synthesis, which creates a simple
-       (mouse-operated) onscreen keyboard.  It inserts key events into
-       the currently-focused window, thus it does not grab keyboard focus
-       itself.
-
-       * cspi/spi_registry.c:
-       Added C binding for AT-SPI generateKeyEvent.
-
-       * libspi/deviceeventcontroller.c:
-       Added call to XFilterEvent so that key listener works with XIM (we
-       hope).  Added event_synth_type to generateKeyEvent, so that we can
-       produce KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE (pair), or
-       synthesize a press/release pair for KeySyms.    
-       
-2001-11-09  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/Makefile.am: 
-       * registryd/Makefile.am:
-       (temporary) hack to include libXtst in libspi and registryd.
-       (Needed for keystroke synthesis, see below).
-
-       * idl/Registry.idl:
-       Improved API for registerKeystrokeListener, in accordance with
-       discussions with Gnopernicus team and X server research.
-
-       * libspi/registry.c:
-       * libspi/deviceeventcontroller.c:
-       * libspi/accessible.c:
-       * libspi/keystrokelistener.c:
-       Changes and fixes to support keylisteners for potentially
-       consumed key events (that is, 'passive grabs').
-       Added implementation for generateKeyEvent() [untested].
-
-       * cspi/spi.h:
-       Changes to registerKeystrokeListener() API, as above.
-       Added deregisterGlobalEventListenerAll(), and 
-       deregisterKeystrokeListener(), which are needed for clean exit of
-       clients.
-       Added typedefs for KeyListenerSyncType, KeyEventMask, and KeySet,
-       and a macro ALL_KEYS which may be used in place of a KeySet pointer.
-       
-       * cspi/spi_registry.c:
-       Added implementations of function prototypes mentioned above.
-       
-       * registryd/registryd.c:
-       Added the key listener event source as a g_timeout(), to allow
-       receipt of key events that are not caught by GDK (since GDK
-       doesn't support passive keygrabs, this was necessary).
-
-       * test/simple-at.c:
-       Changed to attach a keylistener to 'Alt' keys, and
-       respond to the following keycommands: Alt-M (toggle magnifier);
-       Alt-F (toggle speech); Alt-Q (quit).
-       Added an exit routine to deregister the listeners, and a key
-       listener that prints some key info to the console when a key
-       matches the listener mask (and is thus received by the listener).
-       
-       * util/idl/Magnifier.idl:
-       Changes to magnifier API to support multiple zoom regions,
-       non-uniform scaling in x and y, markDirty, and a host of other
-       features that would be useful to magnification.
-
-       * util/mag_image.h:
-       * util/mag_client.c:
-       * util/mag_client.h:
-       * util/mag_control.c:
-       * util/magnifier.c:
-       Source code changes to support the above IDL changes.
-       
-       * util/mag_image.c:
-       As above, and also changes to use a (slower) generic conversion
-       path for colormap conversions, since the fast RGB conversions have been
-       reported to fail for 16-bit displays.
-
-2001-10-26  Michael Meeks  <michael@ximian.com>
-
-       * libspi/Makefile.am (orbittypelibdir): install in orbit-2.0
-
-2001-10-26  Laszlo Peter <laca@ireland.sun.com>
-
-       * at-bridge/Makefile.am: fix LDFLAGS.
-
-2001-10-09  Bill Haneman <bill.haneman@sun.com>
-
-       * at-bridge/bridge.c:
-       Re-worked listeners for toolkit events, now we have signal
-       and property listeners. Added a private method
-       register_atk_event_listeners(), which registers with the
-       various atk and gtk signals we need to monitor in order to emit
-       our at-spi events.
-       Added emission hook for AtkObject:property-change events, to
-       support the 'property listeners'.
-       Fixed some alloc()s of Accessibility_Event structs to use CORBA
-       allocation.
-
-       * cspi/spi-util.c: added methods spi_warn_ev and spi_check_ev,
-       which emit warnings and exit, respectively, if CORBA errors occur
-       during remote calls, and we now use these methods to check most of
-       our CORBA calls in the C bindings.
-
-       * cspi/spi_accessible.c:
-       Changed AccessibleSelection_refSelectedChild() to
-       AccessibleSelection_getSelectedChild(), since all our cspi 'gets'
-       now increment refcounts.
-
-       * cspi/spi_component.c:
-       Fixed some long pointer casts (dangerous!) to pass pointers to
-       CORBA_longs of the proper type to the CORBA stubs, and copy the
-       data into the longs that were passed into the C bindings code.
-       
-       * at-bridge/bridge.c:
-       
-       * libspi/accessible.c:
-       Removed ATK_IS_HYPERLINK() query, since AtkObjects are never
-       hyperlinks, AtkHyperlink is an object type.     
-
-       * libspi/application.c:
-       Added various conversions to and from "generic" event types and
-       atk-specific types; this is really part of the 'bridge'
-       implementation but is valid for all AtkObject-based accessibility 
-       implementations.
-
-       * libspi/editabletext.c:
-       Fixed nasty bug wherein editable text's finalize method was
-       unref'ing tha AtkObject reference that the text parent class was
-       about to unref _again_.  There was also a nasty inheritance bug
-       that meant that the AccessibleEditableText class was corrupt.
-
-       * libspi/selection.c:
-       Provided implementations for some selection API that was broken.
-       
-       * idl/Application.idl:
-       Added registerObjectEventListener () method.
-
-       * THROUGHOUT:
-       Fixed a number of return values that were Bonobo_Unknowns from
-       bonobo_object_corba_objref(), which I
-       forgot to dup before returning.  Changed instances of 
-       bonobo_object_corba_objref (bonobo_object(o)) to
-       BONOBO_OBJREF(o), for concision and clarity.
-       
-2001-10-13  Louise Miller <louise.miller@sun.com>
-
-       * idl/Accessible.idl, idl/Application.idl, idl/Desktop.idl,
-       idl/Event.idl, idl/Registry.idl
-       Changed these files to include Bonobo_Unknown.idl instead
-       of Bonobo.idl
-
-2001-09-10  Marc Mulcahy <marc.mulcahy@sun.com
-
-       * libspi/component.c libspi/component.h:
-               Fixed typo.  Added assertions for object checks in 
-       AccessibleComponent code.
-
-2001-10-09  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessible.idl:
-               Added 'isEqual (Accessible *object)' 
-       method for Accessible. (Not Yet Implemented).
-       
-       * idl/Registry.idl:
-               Changed signature of registerKeystrokeListener() to
-       take a KeySet and KeyEventSeq so that specific keys and event
-       types could be requested for monitoring, and added a flag
-       is_synchronous so that either synchronous or asynchronous
-       notification could be requested.  (However this is not all
-       implemented yet). This also meant adding two new typedefs,
-       KeyEventSeq and KeySet.
-
-       * idl/Relation.idl: 
-               Added two new relations, RELATION_TOOLTIP_FOR and
-       RELATION_LEAFNODE_OF.
-
-       * idl/State.idl:
-               Added new state, STATE_HAS_TOOLTIP.
-       
-       * libspi/text.c, editabletext.c:
-               Added new assertions to all casts of bonobo-objects from
-       CORBA servants, to prevent Text API calls on non-text objects.
-               Changed suspect casts of int-pointer types, so that we
-       always send a valid CORBA_long pointer to the CORBA APIs that use
-       in/out long parameters.  We then have to copy from the CORBA_long
-       into the regular long or int for return to the C bindings, or
-       vice-versa when returning parameters from ATK calls to the bonobo wrappers.
-       
-       * cspi/spi_text.c:
-       * libspi/deviceeventcontroller.c:
-               Cleaned these sources up.
-       * idl/Text.idl:
-               Changed return type for getCharacterAtOffset to
-       CORBA_unsigned_long, to allow for 32-bit characters.
-       
-               
-2001-10-08  Bill Haneman <bill.haneman@sun.com>
-
-       * util/Makefile.am:
-       * idl/Makefile.am:
-               Fixed 'make dist' so that distro compiles...
-       * libspi/keymasks.h:
-               new file.
-       * cspi/spi-listener.c:
-               KeystrokeListenerCB now returns a boolean.
-       * cspi/spi.h:
-               Added KeyEventType struct, and KeyStroke.
-               Also added createKeystrokeListener(),
-       KeystrokeListener_addCallback(),
-       KeystrokeListener_removeCallback(), and added a keymask to
-       registerKeystrokeListener().
-       * cspi/spi_accessible.c:
-               Changed numerous return types for interfaces from
-       AccessibleComponent to Accessible<InterfaceName>; this was
-       probably a cut-and-paste error.
-       * cspi/spi_event.c:
-               Implementations of new KeystrokeListener api (from spi.h,
-       above).
-       * idl/Registry.idl:
-               Changes to key modifier mapping.
-               Created ControllerEventMask struct.
-               Made DeviceEventController derive from Bonobo::Unknown.
-       * idl/Text.idl:
-               Removed TEXT_BOUNDARY_CURSOR_POS boundary type.
-       * libspi/deviceeventcontroller.c:
-               Added a number of new internal (private) methods.
-       * libspi/editabletext.c:
-       * libspi/editabletext.h:
-               Fixed a number of bugs related to the fact that
-       editabletext inherits from text.  Fixed the EditableText struct,
-       the init() call, and use correct casts when calling Text methods
-       from an EditableText object.  Removed (duplicate) atko from the
-       EditableText structure, we use the one in the parent Text
-       structure via the casts mentioned above.
-       * libspi/keystrokelistener.[ch]:
-       * libspi/registry.c:
-               Changes in support of keyboard handling (above).
-       
-       Keyboard handling, though partly functional, is still not
-       recommended for at-spi client use as there is considerable 
-       work yet to be done.
-
-       * libspi/text.c:
-               Changed some places where pointers to various int types
-       are cast to be pointers to CORBA_long types and vice-versa:
-       pointer casting is not safe so we pass pointers of the correct
-       types and then cast the result before putting it into the target
-       pointers.
-
-       * libspi/text.h: minor typos corrected.
-       * test/simple-at.c: 
-               We now speak not only the name of a Text element, but the
-       first sentence of its content, when it receives focus.
-               I also changed the text compression to 75% from 50%.
-       * util/Accessibility_Util.server.in:
-               Changed the default magnifier type to be a 3x vertical
-       splitscreen magnifier (was previously a 2x horizontal one).
-
-2001-10-03  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/keystrokelistener.h:
-       * libspi/keystrokelistener.c:
-               Initial functional implementations of KeystrokeListener.
-       * idl/Registry.idl:
-       
-2001-10-05  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       Fixed string handling for NULL strings in libspi.
-       Added spi_freeString to free strings returned by C bindings.
-
-2001-09-30  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/keystrokelistener.h:
-       * libspi/keystrokelistener.c:
-               Began (no-op) implementations of KeystrokeListener
-                       (see below).
-       * libspi/deviceeventcontroller.c:
-       * libspi/deviceeventcontroller.h:
-               Began creating implementations of DeviceEventController,
-                       to handle keystroke and mouse event listening and
-                       synthesis.
-       * libspi/accessible.c:
-               Stubbed-in the implementations for
-                       Accessibility_Accessible_getState and
-                       Accessibility_Accessible_getRelationSet.
-       * libspi/registry.c:
-               Improved de-registration process and fixed some bugs, 
-                       deregistration now works correctly.
-       * libspi/desktop.c:
-               Added initialization of applications list (to NULL).
-       * util/magnifier.c:
-               Reduced speech compression from 0.5 to 0.7, for demo.
-               Changed call to gdk_window_set_decorations()
-                       to gtk_window_set_decorated().
-       * at-bridge/bridge.c:
-               Bridge now deregisters when app exits, via
-                       registration of a cleanup function
-                       with the g_atexit() call.
-                       Required making 'app' static, renamed 'this_app'.
-               Fixed broken use of bonobo_init, passing argv wrongly.
-
-2001-09-27  Bill Haneman <bill.haneman@sun.com>
-
-       * util:
-       * util/Makefile.am: 
-               Created a new directory for 
-                       accessibility-related utilities, primarily for
-                       testing and demo purposes, but with possible
-                       end-user utility.
-       
-       * util/magnifier.c:
-       * util/magnifier.h:
-       * util/mag_image.c:
-       * util/mag_image.h:
-               Onscreen magnifier utility that
-                       is implemented as a bonobo service.
-       
-       * util/mag_client.c:
-       * util/mag_client.h:
-               Client-side support (simple C bindings) 
-                       for Magnification service
-       
-       * util/mag_control.c:
-               Client program example for 
-                       Magnification service
-       
-       * util/Accessibility_Magnifier.server.in:
-               Bonobo-activation file for the 
-                       Magnification service.
-       
-       * util/idl:
-       * util/idl/Magnifier.idl:
-               IDL defining the bonobo Magnification
-                       service interface.
-
-       * test/simple-at.c:
-               Modifications to use the bonobo-activated magnifier
-                       above, in place of trying to connect to an existing
-                       magnifier that uses socket-listening IPC.
-
-               If env variable MAGNIFIER is set, a magnifier service
-                       will be started if one does not exist.
-       
-2001-09-25  Bill Haneman <bill.haneman@sun.com>
-
-       * at-bridge/bridge.c:
-               applied patch from Marc to build and run 
-               against new glib and gtk+ (seemed like a change 
-               to bonobo_init signature was made ?)
-       * test/simple-at.c:
-               made festival-server support turned off by default.
-               Added support for a simple magnifier (off by default)
-               which will be added to a 'util' directory later.
-       * at-bridge/Makefile.am:
-               Changed "application.h" header from a 'source'
-               to a 'dependency' of libat-bridge.
-
-2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       * cspi/Makefile.am:
-               Added spi-util.c.
-
-       * cspi/spi-util.c:
-               Fixed typo
-
-       * cspi/spi.c:
-               Added interface implementation c files to list of
-                       includes so they are included in libcspi.
-
-       * cspi/spi.h:
-               Changed prototype of AccessibleAction_doAction to return a
-                       boolean.
-               Changed prototype of AccessibleTable_getCaption to
-                       return an Accessible.
-               Changed prototype of AccessibleTable_getSelectedRows
-                       and AccessibleTable_getSelectedColumns to
-                       return a long (returns the number of selected rows
-                       or columns respectively).
-               Changed name of AccessibleText_refRunAttributes to
-                       AccessibleText_getAttributes.
-               Changed prototype of AccessibleText_getCharacterExtents to
-                       return a void rather than a boolean. 
-               Added support for a AccessibleCoordType parameter
-                       specifying what type of coordinates are desired.
-               Added an AccessibleCordType parameter to
-                       AccessibleText_getPointAtOffset.
-
-       * cspi/spi_accessible.c:
-               Added code to return the outstanding interfaces from
-                       Accessible_queryInterface.
-
-       * cspi/spi_action.c:
-               Fixed typos.
-               Corrected call to getNActions to call the c binding
-                       for an attribute.
-
-       * cspi/spi_editabletext.c:
-               Fixed typos.
-               Changed name from setRunAttributes to setAttributes.
-
-       * cspi/spi_hyperlink.c:
-               Fixed typos.
-               Changed call to getNAnchors to correctly call the c
-                       binding for an attribute.
-
-       * cspi/spi_hypertext.c:
-               Fixed typos.
-               Changed getImageDescription to correctly call the
-                       binding for an attribute.
-
-       * cspi/spi_selection.c:
-               Changed getNSelectedChildren to correctly call the c
-                       binding for the attribute.
-               Changed refSelectedChild to getSelectedChild.
-
-       * cspi/spi_table.c:
-               Fixed typos.
-               Changed getCaption to return an Accessible.
-               Fixed calls which retrieve attributes.
-               Changed refAt to getAccessibleAt.
-               Changed getNSelectedRows and getNSelectedColumns to
-                       return longs.
-
-       * cspi/spi_text.c:
-               Changed getCharacterExtents and getPointAtOffset to accept an
-                       AccessibleCoordType.
-               Fixed typos.
-               Changed calls which retrieve attributes.
-               Changed refRunAttributes to getAttributes.
-
-       * cspi/spi_value.c:
-               Fixed typos.
-
-       * idl/Hyperlink.idl:
-               Changed n_anchors attribute to nAnchors to keep naming
-                       convention consistent.
-
-       * idl/Table.idl:
-               Made Table inherit from Bonobo::Unknown.
-               Added nSelectedColumns and nSelectedRows attributes.
-
-       * idl/Value.idl:
-               Made Value inherit from Bonobo::Unknown.
-
-       * libspi/hyperlink.c:
-               Change for nAnchors attributte name change.
-
-2001-09-12  Marc Mulcahy <marc.mulcahy@sun.com>
-       * cspi/Makefile.am:
-               Added spi-util.c.
-
-       * cspi/spi-util.c:
-               Fixed typo
-
-       * cspi/spi.c:
-               Added interface implementation c files to list of
-                       includes so they are included in libcspi.
-
-       * cspi/spi.h:
-               Changed prototype of AccessibleAction_doAction to return a
-                       boolean.
-               Changed prototype of AccessibleTable_getCaption to
-                       return an Accessible.
-               Changed prototype of AccessibleTable_getSelectedRows
-                       and AccessibleTable_getSelectedColumns to
-                       return a long (returns the number of selected rows
-                       or columns respectively).
-               Changed name of AccessibleText_refRunAttributes to
-                       AccessibleText_getAttributes.
-               Changed prototype of AccessibleText_getCharacterExtents to
-                       return a void rather than a boolean. 
-               Added support for a AccessibleCoordType parameter
-                       specifying what type of coordinates are desired.
-               Added an AccessibleCordType parameter to
-                       AccessibleText_getPointAtOffset.
-
-       * cspi/spi_accessible.c:
-               Added code to return the outstanding interfaces from
-                       Accessible_queryInterface.
-
-       * cspi/spi_action.c:
-               Fixed typos.
-               Corrected call to getNActions to call the c binding
-                       for an attribute.
-
-       * cspi/spi_editabletext.c:
-               Fixed typos.
-               Changed name from setRunAttributes to setAttributes.
-
-       * cspi/spi_hyperlink.c:
-               Fixed typos.
-               Changed call to getNAnchors to correctly call the c
-                       binding for an attribute.
-
-       * cspi/spi_hypertext.c:
-               Fixed typos.
-               Changed getImageDescription to correctly call the
-                       binding for an attribute.
-
-       * cspi/spi_selection.c:
-               Changed getNSelectedChildren to correctly call the c
-                       binding for the attribute.
-               Changed refSelectedChild to getSelectedChild.
-
-       * cspi/spi_table.c:
-               Fixed typos.
-               Changed getCaption to return an Accessible.
-               Fixed calls which retrieve attributes.
-               Changed refAt to getAccessibleAt.
-               Changed getNSelectedRows and getNSelectedColumns to
-                       return longs.
-
-       * cspi/spi_text.c:
-               Changed getCharacterExtents and getPointAtOffset to accept an
-                       AccessibleCoordType.
-               Fixed typos.
-               Changed calls which retrieve attributes.
-               Changed refRunAttributes to getAttributes.
-
-       * cspi/spi_value.c:
-               Fixed typos.
-
-       * idl/Hyperlink.idl:
-               Changed n_anchors attribute to nAnchors to keep naming
-                       convention consistent.
-
-       * idl/Table.idl:
-               Made Table inherit from Bonobo::Unknown.
-               Added nSelectedColumns and nSelectedRows attributes.
-
-       * idl/Value.idl:
-               Made Value inherit from Bonobo::Unknown.
-
-       * libspi/hyperlink.c:
-               Change for nAnchors attributte name change.
-
-
-2001-09-05  Marc Mulcahy <marc.mulcahy@sun.com>
-
-       implementations-- made server implementations own AtkObject pointers
-       rather than their respective AtkInterrface pointers to fix
-       refcounting.  AtkHyperlink is still broken.
-
-2001-09-04  Bill Haneman <bill.haneman@sun.com>
-       * cspi/spi_accessible.c:
-               Added method Accessible_Role_getName(),
-                       and requisite string array (role_names).
-               Added conversion string_from_corba_strin() call
-                       to Accessible_getName and _getDescription.
-       * libspi/accessible.c:
-               Added implementation for Accessible_getRole()
-       * test/simple-at.c:
-               Added festival support, used if environment variable
-                       FESTIVAL is set.
-       
-2001-09-04  Bill Haneman <bill.haneman@sun.com>
-
-       * at-bridge/bridge.c:
-           Now allocate Accessibility_Event using
-           Accessibility_Event__alloc() instead of g_new0().
-       * libspi/accessibleeventlistener.c:
-           Initialize AccessibleEventListener->callbacks to NULL.
-           Fixed accessible__event_listener_init() param, changed to
-           "AccessibleEventListener *" type.
-           Changed a bonobo_object_release_unref() call to
-           Accessibility_Accessible_unref().
-       * libspi/listener.c:
-           Changed Bonobo_Unknown_unref to (equivalent) 
-           Accessibility_Accessible_unref.
-       * libspi/registry.c:
-           Changed bonobo_object_release_unref to 
-           Accessibility_Accessible_unref.
-       
-2001-09-04  Marc Mulcahy <marc.mulcahy@sun.com>
-       
-       * Added files:
-           spi_action.c spi_editabletext.c spi_hyperlink.c spi_hypertext.c
-           spi_image.c spi_selection.c spi_table.c spi_text.c spi_value.c
-           spi-util.c spi-util.h
-           Implementations for C bindings to remaining accessibility 
-           interfaces.
-
-2001-09-04 Marc Mulcahy <marc.mulcahy@sun.com>
-       
-       * idl/Action.idl:
-           changed return value of Action from void to boolean to 
-           bring in line with ATK.
-
-       * idl/Text.idl:
-           Changed getText funcions to return "out" start and end offsets.
-           Changed getAttributes to take and offset and return the start 
-           and end offset of the attribute run.
-           Changed getOffsetAtPoint and getCharacterExtents to take an 
-            enum describing whether coordinates are window or screen.
-
-       * Added files:
-           libspi/action.c libspi/action.h libspi/editabletext.c 
-           libspi/editabletext.h libspi/hyperlink.c libspi/hyperlink.h
-           libspi/hypertext.c libspi/hypertext.h libspi/image.c 
-           libspi/image.h libspi/selection.c libspi/selection.h
-           libspi/table.c libspi/table.h libspi/text.c libspi/text.h 
-           libspi/value.c libspi/value.h
-           Added server implementations for outstanding ATK interfaces 
-           not yet implemented.
-2001-09-04  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Action.idl:
-               Added (missing) getName() method. 
-               Made nActions an attribute.
-       * idl/EditableText.idl:
-               Changed order of params in setAttributes.
-       * idl/Hyperlink.idl:
-               Removed getAnchor, added getURI.
-       * idl/Image.idl:
-               Changed attributes to methods, for efficiency
-               (so that getting extents can be done in one call)
-       * idl/Selection.idl:
-               Changed nSelectedChildren to attribute, and re-indented.
-       * idl/Table.idl: changed nrows, ncolumns, caption, summary 
-               to attributes.
-       * idl/Text.idl: reformatted to match our coding style.
-               (temporarily?) removed getRowColumnAtOffset().
-               Changed text selection API to support multi-select and
-               non-contiguous selections, as in ATK.
-       * idl/Value.idl: changed some methods to attributes.
-
-2001-08-24  Mark McLoughlin <mark@skynet.ie>
-
-       * libspi/listener.c(impl_notify_event):
-       BonoboUnkown_unref the source instead
-       of bonobo_object_release_unref - the ORB
-       handles the releasing.
-
-       * configure.in: require ORBit-2.3.94 for
-       this behaviour.
-
-2001-08-21  Bill Haneman <bill.haneman@sun.com>
-
-        Tagged CVS repository 'EA_1_0'.
-       * README.EARLY_ACCESS:
-        Alphabetized acknowledgements list, and
-        added someone.
-        Listed some known dependencies of at-spi.
-
-2001-08-20  Bill Haneman <bill.haneman@sun.com>
-
-       * docs/at-spi-docs.sgml:
-       * docs/at-spi-sections.txt:
-       * docs/at-spi-overrides.txt: (Added zero-length file)
-       Documentation improvements - gtk-doc should build
-       docs for all implemented C bindings now.
-       * cspi/Makefile.am:
-       * cspi/spi_main.c:
-       * cspi/spi.c: (New file)
-       * cspi/spi_event.c: (New file)
-       * cspi/spi_registry.c: (New file)
-       * cspi/spi_accessible.c: (New file)
-       * cspi/spi_application.c: (New file)
-       * cspi/spi_component.c: (New file)
-       Split spi_main.c into six parts, and included them from
-       "spi.c".  This is a bit of a hack, probably temporary,
-       but required by gtk-doc, apparently.
-       
-2001-08-20  Bill Haneman <bill.haneman@sun.com>
-
-       * docs/Makefile.am:
-       * docs/at-spi-docs.sgml:
-       * docs/at-spi-sections.txt:
-       * configure.in:
-       Initial checkins/modifications for gtk-doc generation.
-       * cspi/spi.h:
-       * cspi/spi.c:
-       Added (missing) interface query methods to Accessible's C binding.
-       * cspi/spi-impl.h:
-       Added GenericInterface type definition.
-       * test/simple-at.c:
-       Added query for AccessibleComponent interface to focus event handler.
-       Added printout of bounding box for focussed component.
-       * libspi/component.c:
-       Added partial implementation for AccessibleComponent to C binding.
-       * idl/Application.idl:
-       * libspi/registry.c:
-       * libspi/listener.c:
-       * libspi/application.c:
-       * libspi/application.h:
-       Changed "ID" attribute type from string to long.
-
-2001-08-19  Bill Haneman <bill.haneman@sun.com>
-
-       * cspi/spi.h:
-       * cspi/spi.c:
-       Made method naming consistent: methods taking object args
-       start with uppercase, other methods (except those using
-       acronyms) start with lowercase.  Underscores delimit between
-       object names and method names:
-       SPI_init() - uppercase since it starts with an acronym.
-       getDesktopCount () - lowercase start since no object param0.
-       Accessible_getName() - uppercase object type name, studlyCaps method
-                              name.
-
-       * cspi/spi.h:
-       Added gtk-doc documentation for all currently implemented
-       methods in the C bindings API.
-
-2001-08-18  Bill Haneman <bill.haneman@sun.com>
-
-       * Makefile.am : changed build order to build test last.
-       * cspi/spi.h :
-       * cspi/spi_main.c :
-       Changed "createEventListener" to "CreateEventListener".
-       * libspi/accessibleeventlistener.c :
-       Bugfix for addition of callbacks.
-       * test/Makefile.am :
-       * test/simple-at.c :
-       Added new test that uses the C bindings API.
-       * idl/Event.idl :
-       * libspi/listener.c :
-       * libspi/registry.c :
-       * libspi/accessibleeventlistener.c :
-       * at-bridge/bridge.c :
-       Renamed member "target" of Accessibility_Event to "source",
-       which is more descriptive.
-       
-
-2001-08-18  Bill Haneman <bill.haneman@sun.com>
-
-       * Makefile.am: 
-       * configure.in :
-       * cspi/Makefile.am :
-       Added makefile support for at-spi/cspi directory.
-       * cspi/spi.h : 
-       * cspi/spi-impl.h :
-       * cspi/spi-listener.h : (NEW FILE)
-       Added support for/use of spi-listener.h.
-       * cspi/spi_main.c :
-       C bindings now build successfully, with no warnings.
-       * libspi/accessibleeventlistener.h : (NEW FILE)
-       * libspi/accessibleeventlistener.c : (NEW FILE)
-       * libspi/Makefile.am :
-       Added new object type "AccessibleEventListener"
-       which inherits from Listener, and allows attachment
-       of in-process callbacks (so that a client with a listening
-       object instance can add functionality to the local 
-       implementation, dynamically).
-
-2001-08-18  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c: 
-       Add implementation for get_index_in_parent().
-       * cspi/spi.h : 
-       Added #include of "spi-roletypes.h", and
-       added enumerated type AccessibleCoordType.
-       Added definition for KeystrokeListener (function type).
-
-       ADDED FILES:
-       * cspi/spi-statetypes.h :
-       * cspi/spi-roletypes.h :
-       * cspi/spi-impl.h :
-       Added these headers, used by spi.h.
-       * cspi/spi_main.c : 
-       Added code (NOTE: not yet built by make).
-
-2001-08-18  Mark McLoughlin <mark@skynet.ie>
-
-       * libspi/Makefile.am: generate imodule
-       at the same time as other idl compiler 
-       generated files. 
-
-2001-08-17  Bill Haneman <bill.haneman@sun.com>
-       * libspi/registry.c :
-       * libspi/application.c :
-       * idl/Application.idl :
-       Made registration with toolkit an application method,
-       which is required since each app has its own toolkit static
-       environment.  Thus the bridge must register for 
-       notification of toolkit events from each application in turn.
-       Toolkit notifications are now successfully registered for, and
-       sent to the listening at client.
-       * test/at.c :
-       Changed toolkit event string to use hyphens rather than underscores.
-       * libspi/listener.c :
-       listner now gives more info in debug mode - it reports the
-       name of the event received, as well as the name of the source.
-       
-
-2001-08-16  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/registry.c :
-       added more implementation for toolkit events.
-       Fixed bug such that toolkit event registrations
-       (via atk) use the whole event name string, not 
-       just minor+detail.
-       Removed a useless call to an ORBit_ method.
-       * at-bridge/bridge.c :
-       Removed unused local sbuf[] variable.
-       * test/at.c :
-       We now register for Gtk:GtkWidget:button_press_event 
-       events as well as "focus:" events.
-       * cspi/spi.h :
-       Add some more API from Registry.idl that was missing,
-       for keystroke listening, keystroke and mouse event
-       synthesis, and enumeration of accessible desktops.
-
-2001-08-16  Michael Meeks  <michael@ximian.com>
-
-       * configure.in: use AM_GLIB_GNU_GETTEXT.
-
-       * Makefile.am (SUBDIRS): kill intl.
-
-2001-08-15  Michael Meeks  <michael@ximian.com>
-
-       * registryd/Makefile.am: s/oaf/server/ relocate info file.
-
-       * configure.in: upd.
-
-       * configure.in: depend on a recent bonobo-activation that
-       will find our server files ...
-
-2001-08-16  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c : accessible_new() :
-       Now we add the Component interface via bonobo_object_add_interface,
-       if the contained AtkObject implements AtkComponent.
-       * libspi/accessible.h : now include "component.h"
-       * libspi/component.h :
-       * libspi/component.c : added files - implementation of
-       bonobo wrapper object for Accessibility/Component
-       * libspi/listener.c :
-       Added test code to check for Accessibility/Component:1.0
-       interface and report whether it is implemented by the
-       event source.
-       * libspi/registry.c :
-       Now we check for not only the hash of the whole event 
-       string before relaying the event, we also check the
-       "minor" event string (without the detail string).
-       This allows event listeners to be registered against
-       all events of a certain major+minor type, or just
-       against a specific major+minor+detail type.
-       * libspi/accessible.c :
-       Added implementations for Accessible:get_parent(),
-       Accessible:getChildCount(), and Accessible:getChildAtIndex().
-       * libspi/registry.c :
-       * libspi/listener.c :
-       Replaced calls to Accessibility_Accessible_ref() and
-       Accessibility_Accessible_unref() with 
-       calls to bonobo_object_dup_ref() and 
-       bonobo_object_release_unref(), so that the CORBA object
-       is dup-ed and released when relayed, as well as the bonobo object.
-
-2001-08-15  Mark McLoughlin <mark@skynet.ie>
-
-       * libspi/Makefile.am,
-          registryd/Makefile.am,
-          at-bridge/Makefile.am.
-          test/Makefile.am, configure.in:
-       reverse previous changes.
-
-       * /idl/Image.idl: fix typo.
-
-       * test/Makefile.am: put DEBUG_FLAGS
-       in CFLAGS.
-
-2001-08-15  Mark McLoughlin <mark@skynet.ie>
-
-       * test/app.c: use argv[0] instead of
-       g_type_prgname.
-
-2001-08-15  Mark McLoughlin <mark@skynet.ie>
-
-       * libspi/Makefile.am,
-         registryd/Makefile.am,
-         at-bridge/Makefile.am.
-         test/Makefile.am, configure.in:
-       cleanup, replace individual LIBS/CFLAGS with
-       AT_COMMON_{LIBS|CFLAGS}.
-
-       * README: format.
-
-2001-08-15  Mark McLoughlin <mark@skynet.ie>
-       
-       * configure.in, libspi/Makefile.am:
-       Change IDL path checking for bonobo-activation
-       as opposed to oaf.
-
-2001-08-15  Bill Haneman <bill.haneman@sun.com>
-
-       * registryd/registry.c : separated event listeners to use
-       3 separate lists (focus, window, toolkit).  Began testing
-       event names against hashes before relaying events.
-       * test/at.c : now register for events of type "focus:"
-       * test/app.c : now generate events of type "focus:"
-       * at-bridge/bridge.c : register with ATK for focus events,
-       and we now relay those focus events to any "focus:" listeners.
-       This now works with the bridge as a GTK_MODULE when running test/at.
-       * libspi/registry.c :
-       * libspi/listener.c : 
-       now we ref event sources before propagating, and unref on receipt.
-       * libspi/registry.c : 
-       some changes to internal structs, to support event typestring hashes.
-       * text/app.c : changed the way the appname is generated.
-       * cspi : added directory that will hold the C bindings library for 
-               non-CORBA/bonobo-savvy clients.
-       * cspi/spi.h : header file that contains the function prototypes for the C binding.
-       * idl/Component.idl : added in parameter to indicate coord system for
-               geometry-related calls.
-       * idl/Hyperlink.idl : added readonly n_links attribute
-       * idl/Image.idl : changed methods to attributes.
-       
-2001-08-15  Mark McLoughlin <mark@skynet.ie>
-
-       * at-bridge/Makefile.am: link against
-       ../libspi/libspi.la instead of -lspi.
-
-       * at-spi/test/app.c: include 
-       bonobo-activation.h. Use a default appname
-       if one is not provided.
-
-2001-08-14  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Registry.idl : temporarily changed register_Application
-       to oneway, to work around issue with initial registration 
-       re-entrancy.
-       * idl/Application.idl : changed attribute "id" from readonly 
-       to read-write, since it needs to be assigned by Registry.
-       * registryd/registryd.c : added call to set application id 
-       on registration.
-       * registryd/registry.c : changed de-registration procedure to
-       use CORBA_Object_hash() to find matching object ref in application
-       lists and listener lists.
-       * registryd/registry.c : defined EventTypeStruct and EventTypeMajor,
-       began distinguishing between event types (work in progress).
-
-2001-08-13  Bill Haneman <bill.haneman@sun.com>
-
-       CHANGES:
-       * libspi/application.c:
-       Added implementations for get/set id, get_toolkitName,
-       get_version.
-       * registryd/registryd.c :
-       * test/at.c :
-       * test/app.c :
-       * Makefile.am :
-       Converted from use of OAF to bonobo-activation.
-       * libspi/desktop.h :
-       * libspi/desktop.c :
-       * test/app.c :
-       Removed references to atksimpleobject, since base atkobject
-       implementation now provides functionality we need.
-       * libspi/atksimpleobject.c :
-       * libspi/atksimpleobject.h :
-       Removed.
-       
-       ADDITIONS:
-       * at-bridge
-       * at-bridge/Makefile.am
-       * at-bridge/bridge.c
-       * configure.in
-       * Makefile.am
-       Added directory "bridge" and contents, and added dependencies
-       in Makefile.am/configure.in.  
-       Initial checkin of "at-bridge".
-       This code is a GTK_MODULE which automatically registers
-       GTK+ apps with the accessibility registry, using an object
-       reference to the root ATK object.
-       
-2001-08-10  Mark McLoughlin <mark@skynet.ie>
-
-       * po/Makefile.in.in: Remove. Again. If this
-       doesn't get autogenerated - you need to update
-       gnome-common.
-
-2001-08-07  Mark McLoughlin <mark@skynet.ie>
-
-       * po/Makefile.in.in: Add. Again.
-
-2001-07-31  Bill Haneman <bill.haneman@sun.com>
-
-       * libspi/accessible.c : added support for 'description' property.
-       * libspi/accessible.c
-       * libspi/desktop.c
-       * libspi/registry.c : changed to use bonobo_object instead of bonobo_x_object
-           (since the two are now equivalent in libbonobo)
-       * idl/Action.idl
-       * idl/Component.idl
-       * idl/Hyperlink.idl
-       * idl/Image.idl
-       * idl/Selection.idl
-       * idl/Table.idl
-       * idl/Text.idl
-       * idl/Value.idl : changed these 'secondary' interfaces to inherit from
-            Bonobo::Unknown as does Accessibility::Accessible.
-       * idl/StreamableContent.idl : as above, and replaced internal InputStream
-            interface with Bonobo::Stream, since it was redundant with it.
-            (The Stream returned by a StreamableContext object is expected to
-            implement only a subset of Bonobo::Stream)
-
-2001-07-28  Anders Carlsson  <andersca@gnome.org>
-
-       * libspi/accessible.c (accessible_object_finalize): Change
-          g_free to g_object_unref since the AtkObject is a GObject.
-
-2001-07-30  Bill Haneman <bill.haneman@sun.com>
-
-       * idl/Accessibility.idl: add new IDL files
-       
-       Added:
-       * idl/Action.idl: Definitions of actionable UI object
-       * idl/Component.idl: Definitions of UI component geometry, etc.
-       * idl/Hyperlink.idl: Defs of hyperlink behavior
-       * idl/Image.idl: Def of accessible image
-       * idl/Selection.idl: Definition of UI object with selectable children
-       * idl/StreamableContent.idl: Definition of UI object with streamable backing data
-       * idl/Table.idl: Definitions for access to table ('spreadsheet') elements
-       * idl/Text.idl: Interface defs for UI elements with complex textual content
-       * idl/Value.idl: Definition of UI element that is a value controller or display
-       
-2001-07-27  Michael Meeks  <michael@ximian.com>
-
-       * po/Makefile.in.in: remove autogenerated file from CVS.
-
-       * libspi/Makefile.am: Radicaly re-vamp to simplify & add ORBit2
-       type library.
-
-       * idl/Registry.idl: include guard.
-
-       * idl/Accessibility.idl: Add, and include all the other IDL
-       files.
-
-       * idl/*.idl: remove mass of pragmas etc.
-
-2001-07-26  Michael Meeks  <michael@ximian.com>
-
-       * registryd/Makefile.am (registryd_SOURCES): remove
-       redundant at_.
-
-2001-07-27  Mark McLoughlin <mark@skynet.ie>
-
-       * libspi/.cvsignore, registryd/.cvsignore,
-         test/.cvsignore: updated.
-
-       * po/Makefile.in.in: gettext update.
-
-2001-07-25  Bill Haneman <bill.haneman@sun.com>
-
-       * initial CVS checkin
-
-2001-06-29  Michael Meeks  <michael@ximian.com>
-
-       * configure.in: add AM_CONFIG_HEADER to gen config.h
-
-       * acconfig.h: add.
-
diff --git a/HACKING b/HACKING
deleted file mode 100644 (file)
index c2f1489..0000000
--- a/HACKING
+++ /dev/null
@@ -1,29 +0,0 @@
-Contributing to AT-SPI:
-
-AT-SPI is a complex package, with lots of dependencies.  We
-(maintainers) are not experts in every area; we welcome contributions
-and corrections.  However we do ask that all changes to AT-SPI go
-through the normal patch approval process (i.e. diff -u).
-Please post patches to gnome-accessibility-devel@gnome.org; if in 
-doubt you may wish to email questions ahead of time. 
-
-The current maintainers are Bill Haneman (bill.haneman@sun.com) 
-and Marc Mulcahy (marc.mulcahy@sun.com).  As a general rule,
-Non-trivial maintainer-submitted patches should be posted to 
-gnome-accessibility-devel for comment and informational purposes 
-prior to commit.
-
-"Build Sheriff" patches are welcome and are exempt from the
-normal approval process, provided:
-
-(a) care is taken that the Solaris build does not regress,
-as at-spi is a cross-platform package;
-(b) the build patches are, generally speaking, not controversial.
-
-At any rate we appreciate being told where we've screwed up, so
-let us know if you encounter a significant issue.
-
-Other contributions to AT-SPI are welcome, though we expect
-that most accessibility contributions will be to other modules.
-
--Bill
index 7ac7ebd..2116f29 100644 (file)
@@ -1,14 +1,5 @@
-Bill Haneman
-E-mail: bill.haneman@sun.com
+Mike Gorse
+E-mail: mgorse@novell.com
 
 
-Li Yuan
-E-mail: li.yuan@sun.com
-Userid: liyuan
-
-Willie Walker
-E-mail: william.walker@sun.com
-Userid: wwalker
-
-Eitan Isaacson
-E-mail: <eitan@ascender.com>
-Userid: eitani
+Mark Doffman
+E-mail: mark.doffman@gmail.com
index be89915..d92ac75 100644 (file)
@@ -1 +1 @@
-SUBDIRS=xml tools libspi atk-bridge registryd
+SUBDIRS=xml idl tests tools droute spi-common atk-adaptor registryd
diff --git a/NEWS b/NEWS
deleted file mode 100644 (file)
index 397e156..0000000
--- a/NEWS
+++ /dev/null
@@ -1,615 +0,0 @@
-What's new in at-spi-1.22.0:
-
-* Translation update.
-* Bugfixes: #496232.
-
-What's new in at-spi-1.21.92:
-
-* bugfixes: #508147, #517761, #517250, #512702.
-
-What's new in at-spi-1.21.5:
-
-* Bugfixes: #474480, #503091.
-
-What's new in at-spi-1.21.3:
-
-* Bugfixes: #446277, #493547, #326516, #491805, #492469, #490202.
-
-What's new in at-spi-1.21.1:
-
-* Bugfixes: #490205, #490202, #489273.
-* Add Willie Walker and Eitan Isaacson to maintainers.
-
-What's new in at-spi-1.20.0:
-
-* Bugfixes: #462412, #467612, #474796, #467366, #472301.
-
-What's new in at-spi-1.19.5:
-
-* Bugfixes: #446277, #450897, #433802.
-
-What's new in at-spi-1.19.3:
-
-* We add pyatspi into at-spi. pyatspi is an unified python binding.
-* Bugfixes: #439057, #439436.
-
-What's new in at-spi-1.19.1:
-
-* Bugfixes: #430938, #427836, #428007, #405774, #407600, #329454.
-
-What's new in at-spi-1.18.0:
-
-* Release 1.18.0 for GNOME 2.18.0.
-
-What's new in at-spi-1.17.2:
-
-* Bugfixes: #412286.
-
-What's new in at-spi-1.17.1:
-
-* Bugfixes: #404584, #401299, #375319. Fixes some build warnings.
-
-What's new in at-spi-1.17.0:
-
-* Bugfixes: #404592, #400709.
-
-What's new in at-spi-1.7.16:
-
-* Bugfixes: #329454, #393010.
-
-What's new in at-spi-1.7.15:
-
-* Bugfixes: #372988, #381670, #387960, #364839.
-
-What's new in at-spi-1.7.14:
-
-* We now get te value of display using the env var DISPLAY rather than
-  using the gdk_display_get_default to avoid dependancy of gdk. Also, 
-  once the registry is started, we set the ior of the registry as 
-  an X property.
-
-* Bugfixes: #361386, #369377, #382271, #372172, #163132, #377079, #352444
-
-What's new in at-spi-1.7.12:
-
-* Modified parameter names in some IDL to avoid class name collisions
-  (Gary Cramblitt).  This is a bincompat change which improves portability
-  of the IDL.
-
-* Bugfixes: #353226, #356688 (Neo Liu), #350552 (Ginn Chen), #350958.
-
-What's new in at-spi-1.7.11:
-
-* Docs fixes.
-
-* Fixed getAttributes APIs.
-
-* Export Hyperlink interface for AtkHyperlinkImpl peers.
-
-* Aggregate Document interface.
-
-What's new in at-spi-1.7.10:
-
-* New method Selection::deselectChild.  RFE #326535.
-
-What's new in at-spi-1.7.9:
-
-* I18n uses po/LINGUAS now.
-
-* Table enhancement: new method Table::getRowColumnExtentsAtIndex
-  RFE #326536.  Assistance from Ariel Rios.
-
-* Text enhancement: Text::getAttributeRun, Text::getDefaultAttributeSet
-  RFE #326540.  Assistance from Ariel Rios.
-
-* New interface, Document.  RFE #326520.
-
-* New roles, LINK, REDUNDANT_OBJECT, INPUT_METHOD_WINDOW, FORM.
-
-* Meaningful implementation and bridges for StreamableContent. 
-  RFE #326532.
-
-* Added STATE_VISITED, and relations DESCRIBED_BY, DESCRIPTION_FOR, 
-  and PARENT_WINDOW_OF.
-
-What's new in at-spi-1.7.4:
-
-* Fixed dist to include Accessibility_Selector.idl (missing from dist though
-  in cvs since 1.7.3).
-
-* Bugfixes to EventDetails event support, and fixed event emission for 
-  implementors of SPI_REMOTE_OBJECT.
-
-What's new in at-spi-1.7.0 through 1.7.3:
-
-* Added idl/Accessibility_Selector.idl to the repository (missing in 1.7.0
-        through 1.7.2, added in 1.7.3)
-
-* DOCS:
-  
-  All the IDL is now documented with doxygen-compatible docs.
-  Just run 'doxygen oxyfile' in the IDL directory.  (This will
-  be automated in a future version).
-
-* NEW API:
-
-  idl: 
-       Accessibility::Accessible:getAttributes (name/value pair annotation
-       for all objects)
-       Accessibility::Accessible:getApplication (retrieves ref to host app)
-       Accessibility::Component:getAlpha (get transparency/opacity value of component)
-       Accessibility::Image:getLocale (get POSIX locale for image and
-       imagedesc)
-       Accessibility::Text:getAttributeValue (retrieve a single named
-       attribute value)
-       Accessibility::Relation:RELATION_PARENT_WINDOW_OF
-       Accessibility::Role:ROLE_ENTRY, ROLE_CHART, ROLE_CAPTION,
-       ROLE_DOCUMENT_FRAME, ROLE_HEADING, ROLE_PAGE, ROLE_SECTION (New roles
-       for complex docs and forms.)
-       Accessibility::State:STATE_REQUIRED, STATE_TRUNCATED, STATE_ANIMATED, 
-       STATE_INVALID_ENTRY, STATE_SUPPORTS_AUTOCOMPLETION,
-       STATE_SELECTABLE_TEXT, STATE_IS_DEFAULT (New states, for complex forms)
-       Accessibility::EventDetails (new, more detailed info marshalled with events)
-
-  cspi:
-       (AccessibleEvent_getSourceName):
-       (AccessibleEvent_getSourceRole):
-       (AccessibleEvent_getSourceApplication):
-       (AccessibleEvent_getSourceDetails):
-       New methods for interrogating/demarshalling
-       event details i.e. source's accessible name, role, 
-       and host app.
-       (Accessible_getAttributes): New, retrieve annotations/attributes 
-       on objects.
-       (Accessible_getHostApplication): New, retrieve enclosing Application
-       instance for an object.
-       (AccessibleImage_getImageLocale): New, retrieve Locale info for an
-       image.
-       (AccessibleComponent_getAlpha): New, retrieve alpha value for 
-       an AccessibleComponent (see discussion in idl section above).
-
-* BUGFIXES:
-       Some compiler fixes from Kjartan Marass.
-       Some thread-related fixes from Michael Meeks.
-       Don't allow non-preemptive listeners to pre-empt events! (Bill Haneman).
-
-What's new in at-spi-1.6.5:
-
-* Fixed some discrepancies in event listener deregistration, improves
-on-the-fly deregistration of event listeners.  Fixed some tests.
-
-* Fixed brokenness in 'make check.'
-
-What's new in at-spi-1.6.4:
-
-* Fixed XEVIE detection and configuration on XOrg version 6.8.2.
-
-* Added locale 'rw' (Steve Murphy)
-
-* Tweaked event-listener-test program.
-
-* Leakfixes, from billh and Kjartan Marass.
-What's new in at-spi-1.6.3: 
-
-* bugfix for #165129
-
-* Added locale 'xh' (Adi Attar)
-
-What's new in at-spi-1.6.2: 
-
-* fixes for problems at logout time (hangs, crashes)
-
-* bugfixes for #160862, #152147.
-
-* minor enhancements to test login-helper-server-test.
-
-(Padraig O'Briain)
-
-What's new in at-spi-1.6.1: 
-
-* LoginHelper API docs improved.
-
-* fixed bug which caused problems if an
-  app which loaded atk-bridge forks, and one fork exits.
-  (Padraig O'Briain).
-
-* New language: Galician (gl), Jesus Bravo Alvarez.
-
-* Ansi build fixes (Kjartan Maraas).
-
-What's new in at-spi-1.6.0: 
-
-Nothing.
-
-What's new in at-spi-1.5.4: 
-
-* Registration failure at SPI_init is now detected and
-  an error code is returned to the caller (bug #147648).
-
-* We now use polling as our default for detecting mouse
-  button changes (this was formerly our fallback method);
-  this prevents conflict with Xstroke.
-  [a better long-term fix requires the Xevie extension]
-
-* We now register on a per-DISPLAY, but not per-SCREEN, basis.
-  This fixes several issues, see bugs #149962, #136986, #144086.
-
-* New languages in configure.in:
-  bs (Christian Rose)
-  nb (Kjartan Maraas)  
-
-============
-
-What's new in at-spi-1.5.3: 
-
-* New role EMBEDDED (bug #144415).
-
-* Added object:bounds-changed event, for detecting when the 
-  component bounds of an object have changed onscreen.
-
-==============
-
-What's new in at-spi-1.5.2: 
-
-* Added Accessibility_LoginHelper interface, and
-  LoginHelper GType.  Also added client and server tests
-  for this interface.  The purpose is to identify services
-  (typically, assistive technologies) which need access to 
-  system or device services (keyboard, audio, serial ports,
-  posting windows, etc.) during login or re-login/authentication.
-
-* fixed make distcheck.
-
-* Added a check in cspi_object_unref, which should help in detecting
-  refcount bugs in clients (Padraig O'Briain).
-
-* New languages:
-  Walloon (Pablo Saratxaga)
-  Bulgarian (Alexander Shopov)
-
-What's new in at-spi-1.5.1: 
-
-* Allow synthesis of keysyms that aren't in the current X keymap.
-
-* languages: Gujarati (Guntupalli Karunakar), Canadian English
-  (Alexander Winston)
-
-* Added omitted declarations for already-existing methods
-       AccessibleTable_addRowSelection(),
-       AccessibleTable_addColumnSelection(),
-       AccessibleTable_removeRowSelection(),
-       AccessibleTable_removeColumnSelection().
-
-* bug fixes: 136660, 120659 (partial), 132237, 134332.
-
-==========
-
-What's new in at-spi-1.4.0: [GNOME 2.6.0 release]
-
-* build improvements from Laszlo Peter.
-* en_GB added to ALL_LINGUAS.
-
-=======
-
-What's new in at-spi-1.3.16: [GNOME 2.6 RC1 release]
-
-* Fix for bug #134036, which could steal keystrokes from applications
-  if at-spi registry failed.
-
-* Build fixes, added .pc.in files (from Laszlo Peter).
-
-======
-
-This is the gnome-2.6 beta release of at-spi.
-What's new in at-spi-1.3.15:
-
-* translations:
-       Amanpreet Singh Alam (pa)
-       Bojan Suzic (sr@ije)
-
-
-What's new in at-spi-1.3.14:
-
-* reduced debug output in normal usage.  Don't PRIT_LEAKS
-  unless DEBUG_OBJECTS is #defined.  Reduces SEGVs when reporting
-  on noncritical refcount issues.
-
-What's new in at-spi-1.3.13:
-
-* Build improvements: Requires automake-1.7, and calls GTK_DOC_CHECK.
-  (Padraig O'Briain, Matthias Clasen, some from Tomas Kloczko)
-
-* bugfixes (bad g_free, and a null string issue that caused SEGV on
-  Solaris when running sample programs).
-
-
-What's new in at-spi-1.3.11:
-
-* Fix for docs bug #129728 (Sebastien Bacher).
-
-* Fix for bug #129479, allows distinction between
-  multiple DISPLAY instances of at-spi registry.
-
-* Fix for #124837, which could cause 'hang' interactions
-  between desktop and clients such as gnopernicus.
-
-* Fixes for NUMLOCK mask behavior, bug #129103.
-
-* Greatly improved key synthesis for non-Latin characters.
-  We can now synthesize any KeySym which is defined in the current
-  X keymap. (bug #128824).  Thanks to Marcus G Kuhn for
-  the public-domain code borrowed here.
-
-* Fixes for: 128912.
-
-* new languages: 
-  fa (Roozber Pournader), 
-  ar (Arafat Medini).
-  id (Ahmad Riza H Nst)
-
-
-What's new in at-spi-1.3.9:
-
-* New api:  AccessibleApplication_getLocale (app, type),
-  returns a POSIX locale string for a locale category,
-  for instance Accessibility_LOCALE_TYPE_MESSAGES.
-
-* New SPI_ROLE_EDITBAR.
-
-* New Accessible_getLocalizedRoleName.
-
-* New AccessibleText_getDefaultAttributes.
-
-* fixes to AccessibleStreamableContent, including a 'seek'
-  implementation for cspi.  Thanks to Michael Meeks for some
-  related bugfixes in StreamableContent.
-
-* now we emit key-released events to appropriate keylisteners.
-
-* new LINGUAS in configure.in: nn (Asmund Sjeveland), lt (Gediminas Paulauskas),
-  no (Kjartan Masass), eu (Christian Rose).
-
-* bugfixes for: #120991, #120473, #118581, #127463, #116009, #114926,
-  #125834, #111429, #121974.
-
-What's new in at-spi-1.3.7:
-
-This is the official GNOME 2.4.0 release of at-spi.
-
-* fixed event-name bug, "object:active-descendant" is now 
-  "object:active-descendant-changed".
-
-* fixes for 120220, 120725, some code cleanups.  
-* Improved code that rejects
-  spurious "window:activate/deactivate" pairs when X key grabs occur.
-  [108664]
-
-* Documentation improvements for SpiAccessibleKeyListenerCB and related.
-
-* new languages: hi, fi, et, mn, nl, is, ja, ro, bn.
-
-
-What's new in at-spi-1.3.6:
-
-* Add XEvIE support for those systems which have XEvIE.
-
-* Correct values for MODIFIER_SHIFTLOCK and MODIFIER_ALT as part of fix
-for bug #118114.
-
-* Store event so that it can subsequently be referred to. Fixes bugs 
-#116949 and #116624.
-
-* Add support for AccessibleAction on hyperlink object.
-
-* Defer focus: events to reduce number of window switch events reported.
-This a partial fix for bug #108664.
-
-* Eliminate warning messages reported when out-of-process applet starts.
-Fixes bug #115014.
-
-* Register out-of-process applet as application only while it has top level
-window displayed. This fixes bug #111578.
-
-* Add translations: Simplified Chinese [Yi Yang],  Azerbaijani [Metin Amiroff],
-Icelandic [Richard Allen], Italian [Alessio Frusciante], 
-Korean [Changwoo Ryu], Danish [Ole Alursen], Albanian [Lauent Dhima],
-Malay [Hasbullah Bin Pit], Vietnamese [Pablo Saratxaga],
-Belarusian [Belarusian team <i18n@mova.org>], 
-Russian [Russian team <gnome-cyr@gnome.org>], Portuguese [Duarte Loreto], 
-Slovak [Marcel Telka], Serbian [Serbian team (Prevod.org)]
-Esperanto [Charles Voelger], Brazilian [Gustavo Noronha Silva], 
-Welsh [Dafydd Harries], Dutch [Vincent van Adrighem], 
-Spanish [Pablo Gonzalo del Campo], Polish [Artur Flinta], 
-Catalan [Jordi Mallach], French [Chistophe Marlet], 
-Hebrew [Gil "Dolfin" Osher], German [Christian Neumair], 
-Czech [Miloslav Trmac], Swedish [Christian Rose]
-
-What's new in at-spi-1.3.4:
-
-* require atk 1.3.4 throughout.
-
-* Fix for crasher bug in cspi, exceptions were not being properly 
-caught internally.
-
-* added cspi_peek_ev()
-
-* added SPI_ROLE_AUTOCOMPLETE, SPI_STATE_INDETERMINATE (for 
-       checkboxes in the 'inconsistent' state)
-
-* initial wrapper implementations for AccessibleStreamableContent.
-  (partial)
-
-* implement "string" synthesis type in SPI_generateKeyEvent.
-
-* Added cspi client-side APIs for exception handling.
-
-* bugfixes for #114370,  #113268,  #108664, #92143,  
-
-What's new in at-spi-1.3.2:
-
-* Fix for #113268.
-
-What's new in at-spi-1.3.1:
-
-* Fixes for 109626, 89350, 100424, 100426, 110419, 107261, 107479,
-  108666, 104730, 111793.
-
-* build fixes.
-
-* gnome-2-2 branch created.
-
-What's new in at-spi-1.1.9:
-
-* Fixes for 107985, 107988, 105291, 107256, 107254, 105836,
-  104622, 105291, 104744, 104741, 101524, 102830, 98120, 94275.
-
-* added support for mouse buttons 4 and 5.
-
-* compiler warning fixes.
-
-What's new in at-spi-1.1.8:
-
-* Added getRangeExtents() and getBoundedRanges() API for more
-  efficient screen review [100944].
-
-What's new in at-spi-1.1.7:
-
-* Added spi_keymask values for Mod4 and Mod5.
-* Performance improvements and bugfixes from Michael.
-
-What's new in at-spi-1.1.6:
-
-* Fixes for #99799, #10530.
-
-* New methods in cspi:
-  'AccessibleEvent_ref' and 'AccessibleEvent_unref'
-  to allow lifecycle management of AccessibleEvents outside of
-  the emission handler.
-
-What's new in at-spi-1.1.6:
-
-* event struct in libspi is bigger, increased unimplemented
-  slot count for sufficient future bincompatible expansion. 
- (WARNING: breaks bincompat for direct CORBA clients. CSPI clients
-  not affected.)
-
-* New accessor methods allow state-coherent query of many
-  event types.
-
-* API Frozen for GNOME 2.2.
-
-* New role types: APPLICATION, HEADER, FOOTER, PARAGRAPH, RULER.
-
-* New relations, FLOWS_FROM, FLOWS_TO, EMBEDS, EMBEDDED_BY,
-       SUBWINDOW_OF.
-
-* New state, MANAGES_DESCENDANTS.  New event, "active-descendant-changed".
-
-* reduced debug output, unless you set AT_SPI_DEBUG environment
-  variable to string which parses to an integer value > 0.
-
-* added definitions for SPI_KEYMASK_BUTTON1, etc.
-
-* added SPI_LAYER_WINDOW.
-
-* Added ability to register 'device event listeners' which can
-  consume device events, such as mouse events.
-
-* Added support for mouse and key-modifier event notification.
-
-* deprecated KeyEventType in favor of EventType.
-
-* bugfixes for >50 bugs including: 98836, 98842, 97916, 95828, 
-       93592, 95940, 95517, 93658, 95055, 94555, 84856.
-
-* updated copyrights to include Ximian.
-
-What's new in at-spi-1.1.0:
-
-* event listener notifications are no longer oneways.
-* bugfixes for 84900, 84908, 84897, 84898.
-* performance improvement for event listeners.
-
-What's new in at-spi-1.0.1:
-
-* bugfix for 82509
-
-What's new in at-spi-1.0.0:
-
-* API Freeze (1.0 API is now FINAL)
-* added boolean return for
-Accessibility_Registry_registerKeystrokeListener.
-* Revved activation ID for registry to "1.0"
-* many bugfixes and improvements to global key listener implementation.
-* improvements to regression test "test-simple", added key
-listener/synthesis test.
-* added sample code in "test" to demonstrate how flat line-mode
-screen-review can be implemented with at-spi.
-
-What's new in at-spi-0.13.1:
-
-(note: 0.13.1 is not binary compatible with 0.12.1, clients will need
- to recompile )
-
-* fix for bugzilla bug 80616
-* IDL change which will affect direct CORBA users of the keystroke
-  listener API
-* added a new test harness, event-listener-test, which also
-  has a simple tree traversal timing benchmark. event-listener-test
-  attaches listeners to all currently supported events (and a few
-  events which are not fully implemented yet); it thus serves
-  as useful event listener sample code as well as being a diagnostic
-  tool. 
-
-What's new in at-spi-0.12.1:
-
-* fixes for bugzilla bugs 78249,68929,76615,71686,72300,78247,72300,78249
-  relating to build issues on some architectures (some of these were
-  fixed in 0.10 but additional fixes were included in 0.12.1).
-* added new test program for our key listener API.
-* added implementation of IDL 'exit' method to our
-  magnifier and mag_control client.
-* Badly broken AccessibleStateSet implementation fixed by
-  Marc.
-* Added implementation for AccessibleComponent_grabFocus method.
-* Improvements to documentation.
-
-API CHANGES:
-
-* Added missing seek_type param in
-  AccessibleStreamableContent_seek [78888], 
-  previously documented but not in signature;
-  this was unused API but needed fixing for the future.
-
-* Added API for AccessibleTable_selectRow and _selectColumn,
-  corresponding to similar API in ATK, and provided
-  implementation. [76201]
-
-* Added boolean return types to a number of IDL methods whose
-  corresponding cspi wrappers and ATK methods already had boolean
-  returns.
-
-* Made Accessibility_StateSet inherit from BonoboUnknown as it should;
-this was the main existing breakage in StateSet.
-
-
-=================
-
-
-TODO API Additions:
-
-getStateName () and STATE_EXTENDED to allow extension of State API (already 
-in ATK).
-
-AccessibleAction_getType () and AccessibleAction_getTypeName ().
-
-need getBaseAttributes () 
-for AccessibleText (available in ATK I think).
-
-table: getVisibleRange
-
-state: HEADER, etc. for spreadsheet cells
-
-
diff --git a/README b/README
index 4f2391a..f7bc782 100644 (file)
--- a/README
+++ b/README
@@ -1,9 +1,13 @@
 README
 
 README
 
-at-spi version 1.22.0
+at-spi version 1.9.0
 
 This version of at-spi requires atk 1.17.0 or later.
 
 
 This version of at-spi requires atk 1.17.0 or later.
 
+This version of at-spi is a MAJOR break from previous versions.
+It has been completely rewritten to use D-Bus rather than
+ORBIT / CORBA for its transport protocol.
+
 *** Welcome to the Gnome Accessibility Project! ***
 
 If you have not already done so, please visit 
 *** Welcome to the Gnome Accessibility Project! ***
 
 If you have not already done so, please visit 
@@ -17,37 +21,20 @@ Contents of this package ==================================
 
 The directories within this package are arranged as follows:
 
 
 The directories within this package are arranged as follows:
 
-    idl : this directory contains the interface definitions
+    idl : This directory contains the interface definitions
        (in Interface Definition Language) for the
        accessibility support interfaces exposed by
        the AT central registry, accessible applications,
        and UI components.
        (in Interface Definition Language) for the
        accessibility support interfaces exposed by
        the AT central registry, accessible applications,
        and UI components.
-       Though IDL is often associated with CORBA, and this
-       implementation of the at-spi is CORBA-based, these
-       interfaces are not CORBA-specific, rather they define
-       the abstract "contract" between accessible application
-       and client assistive technology.  
-
-       Assistive Technologies will not normally be concerned
-       with the underlying implementation details of the IDL.
-
-    libspi : this directory contains implementation-specific
-       code which connects the in-process ATK interfaces
-       (implemented by GTK+ and, potentially, by other 
-       native-code UI toolkits) to the interprocess SPI.
-       It also contains implementation code used by the
-       central accessibility registry. These sources are
-       used to build libspi.so, a shared object library which 
-       is used by accessibility clients and servers alike. 
-       This interfaces exposed in this library are ordinarily 
-       not directly used by AT, but are used by the C bindings,
-       thus AT must dynamically link to this library.
+       This is possibly historic. The idl formed the basis
+       for the XML protocol definitions now located
+       in the directory "xml".
 
 
-    registryd : this directory contains code specific to the
+    registryd : This directory contains code specific to the
        central accessibility registry, and the registry
        executable is built in this directory.
 
        central accessibility registry, and the registry
        executable is built in this directory.
 
-    atk-bridge : this directory contains code that bridges 
+    atk-adaptor : This directory contains code that bridges 
        the at-spi to the GTK+ toolkit, and which is
        loaded at runtime by GTK+-based Gnome applications.
        The 'bridge' automatically registers GTK+-2.0
        the at-spi to the GTK+ toolkit, and which is
        loaded at runtime by GTK+-based Gnome applications.
        The 'bridge' automatically registers GTK+-2.0
@@ -56,87 +43,3 @@ The directories within this package are arranged as follows:
        It is also responsible for servicing requests from
        the registry to register handlers for specific event
        types.
        It is also responsible for servicing requests from
        the registry to register handlers for specific event
        types.
-
-    cspi : this directory contains the C bindings for use by
-       ATs, and the code which adapts the implementation-specific
-       code to the C bindings API.  The header file
-       "spi.h" contains the API declarations used by AT clients.
-
-    pyatspi: this directory is an unified python binding used by ATs.
-
-    tests : this directory should be called 'examples', since
-       it contains not only test programs, but examples
-       of how to use the AT-SPI.  The sample program
-       "simple-at.c" is currently the primary example of
-       how the C bindings API should be used.
-
-    docs : this directory contains documentation for the AT-SPI.
-       Documentation is currently limited to API documentation
-       for the C bindings API, and is built from sources
-       via the 'gtk-doc' system.
-
-Building the documentation ============================
-
-Pre-built versions of the HTML documentation are available at 
-http://developer.gnome.org/projects/gap/tech-docs/at-spi-docs/book1.html.
-However the documentation in the docs directory is the most up-to-date.
-Building the docs requires docbook and jade, see the 'gtk-doc'
-package (from Gnome CVS) for more information.
-
-Use of the AT-SPI ======================================
-
-Accessible applications will register with this registry service 
-(via bonobo-activation) and adaptive/assistive technologies will 
-register with the service as well, to indicate their interest in 
-receiving UI events.  ATs can also use the registry's services 
-programmatically to query accessible applications.
-
-Running the test programs: ============================
-
-At the moment the only clients and are two test at clients
-('at' and 'simple-at').  There is also a test app ('app) in 
-the 'tests' subdirectory.
-
-If you have a working ORBit2/bonobo-activation installation you can 
-run the tests after adding the registryd directory to the 
-bonobo-activation directory list with bonobo-activation-sysconf,
-or by installing Accessibility_Registry.server in your 
-bonobo-activation 'servers' directory.
-
-You can then run './at' and './app' from the 'test' directory, to see
-'app' register as an application, and 'at' as a listening client.
-Bonobo should take care of the job of bootstrapping the registry daemon
-('registryd') for you.  These test programs use the bonobo/CORBA
-C bindings directly.  
-
-The third test program, "simple-at", is a better illustration of how 
-most actual AT should use the at-spi, via the C bindings library 
-(documented online at 
-http://developer.gnome.org/projects/gap/tech-docs/at-spi-docs/book1.html).
-Though 'simple-at' will work with the test application 'app', 
-a better demonstration of the AT-SPI can be made after installing
-libspi and libcspi (via 'make install').  If you set the GTK_MODULES
-environment variable to "gail:atk-bridge", any GTK+2.0
-application run subsequently will register with the at-spi registry,
-and 'simple-at' will register for and receive focus and 
-buttonpress events from those applications.
-
-At the moment application and at deregistration are not 100% reliable, 
-so if you get you are advised to kill the registry daemon if you exit either 'at' or 'app' 
-instances, via the 'bonobo-slay' command. You may run as many instances 
-of each application or sample AT client as you like, concurrently - 
-you may find it useful to do so in separate terminal windows.  
-
-'at' connects to the registry as an event listener, then queries the
-service for the number of virtual desktops (currently always 0 or 1),
-and queries each desktop for the accessible applications it is running.
-It then prints out the name of each such application (as reported by the
-application's accessibility interfaces), and then waits to receive events.
-
-'app' connects to the registry as an application, then dispatches an
-event which the registry should relay to all registered listeners.
-Thus instances of 'app' run after 'at' should cause the 'at' instances
-to receive events.
-
-
--Bill
diff --git a/TODO b/TODO
deleted file mode 100644 (file)
index 7f36c82..0000000
--- a/TODO
+++ /dev/null
@@ -1,121 +0,0 @@
-Optimisation:
-       + async unref's ...
-       + cache Role & queryInterface results ... [!]
-
-2.0.0:
-
-       + fix bug #82509 which prevents return of boolean FALSE from 
-         SPI_registerKeystrokeListener for ALL_WINDOWS events
-         when XGrabKey fails.
-
-       + fix bug #84100 which means that keygrabs are not released
-          by the registry when a client dies.  Test to make sure
-          grabs are released when a client requests deregistration
-         of a key listener.
-
-2.0.1:
-       + fix bug affecting multihead at-spi behavior.
-
-
-1.1 API Proposed Additions:
-
-        + Need API for getting stacking order of toplevel windows.
-         (bug #84097)
-
-1.2 API Proposed Additions:
-
-       + SPI_dupString ()
-       + Additional relation types: FLOWS_TO, FLOWS_FROM
-       + SPIBoolean
-         AccessibleText_getTextBounds (AccessibleText *text, 
-                                       long start_offset, 
-                                       long end_offset,
-                                       long *x,
-                                       long *y,
-                                       long *width,
-                                       long *height, 
-                                       SPI_COORD_TYPE type);
-       + char *
-          AccessibleText_getTextWithin (AccessibleText *text,
-                                       long x,
-                                       long y,
-                                       long width,
-                                       long height,
-                                       SPI_COORD_TYPE type);
-
-/* *********************************************************** */
-                                       
-TODO:
-
-idl: 
-
-//     + audit IDL for conformance with bonobo/doc/FAQ's [Java]
-//       naming practice [Michael]
-
-cspi: 
-       + ensure spi-listener-impl's list notification methods don't
-         have a re-enterancy hazard. [Michael]
-
-registry:
-       + move code into here from libspi [Michael]
-       + fire an event on dead application & re-factor the listen for
-         broken code.
-
-bridge:
-       + move code into here from libspi
-
-libspi: 
-       + remove redundant casts throughout
-       + determine if there are other headers we don't need to install
-       + consider moving the non-impl. parts into registryd/ bridge/ etc.
-       + complete conversion of static methods to "spi_" namespace. [Bill]
-
-test:
-       + update test-simple to do complete API tests
-       + Expand tests for AtkTable
-
-=================
-
-for 2.4/'dev complete'
-
-[** denotes API extension!]
-
-** ATK API for text range bounds?
-
-** add ROLE_EDITBAR [describes objects, usually text entries, 
-                    that describe and/or control the operation of other
-                   components.  They both reflect stateful information 
-                   about the application or the currently-focussed 
-                   object within the app, and contain editable text.
-                   Examples include the URI/location entry field in
-                   browsers, the currently-active-file field in an editor,
-                    and the formula/edit field in a spreadsheet.]
-
-* multiple-workspace awareness
-
-* in deviceeventcontroller, better keysym/unicode mapping 
-       (i.e. more complete)
-
-* type checking in the 'event detail' methods
-        (see TODO comments in cspi/spi_event.c)
-
-* fix silly assumption(s) about apps DISPLAY being 
-        same as registry, and being the GDK_DISPLAY()
-       default.
-
-* remove listeners from the list if their processes die.
-
-* do better deregistration on registry finalize.
-
-* check what happens if XKB isn't available - make registry and bridges
-       at least not trash things (even if nonfunctional).
-
-* deviceeventcontroller.c: Distinguish between physical and logical
-       (i.e. button 1 versus "left mouse") mouse buttons.
-
-========
-
-2.6: 
-
-* use XIM for keysym/unicode mapping, string insertion.
-* toplevel windows: implement Z ordering via Component mdi_zorder API.
diff --git a/acconfig.h b/acconfig.h
deleted file mode 100644 (file)
index 611dce3..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-#undef ENABLE_NLS
-#undef HAVE_GETTEXT
-#undef HAVE_CATGETS
-#undef HAVE_DLADDR
-#undef HAVE_GET_TEXT
-#undef HAVE_LC_MESSAGES
-#undef HAVE_STPCPY
-#undef HAVE_XKB
-#undef HAVE_XEVIE
diff --git a/atk-adaptor/Makefile.am b/atk-adaptor/Makefile.am
new file mode 100644 (file)
index 0000000..18efb50
--- /dev/null
@@ -0,0 +1,38 @@
+gtkmoduledir = $(libdir)/$(GTK_MODULE_DIR)
+gtkmodule_LTLIBRARIES = libspiatk.la
+
+libspiatk_la_CFLAGS = $(DBUS_GLIB_CFLAGS) $(ATK_CFLAGS) -I$(top_srcdir)
+
+libspiatk_la_LDFLAGS = -no-undefined       \
+                      -module             \
+                      -avoid-version      \
+                      -rpath $(gtkmoduledir)
+
+libspiatk_la_LIBADD = $(DBUS_GLIB_LIBS)                        \
+                     $(ATK_LIBS)                       \
+                     $(top_builddir)/droute/libdroute.la       \
+                     $(top_builddir)/spi-common/libspicommon.la
+
+libspiatk_la_SOURCES =         \
+       accessible.h            \
+       accessible.c            \
+       bitarray.h              \
+       action.c                \
+       application.c           \
+       bridge.c                \
+       component.c             \
+       document.c              \
+       editabletext.c          \
+       hyperlink.c             \
+       hypertext.c             \
+       atk-dbus.c              \
+       image.c                 \
+       keymasks.h              \
+       selection.c             \
+       spi-private.h           \
+       table.c                 \
+       text.c                  \
+       tree.c                  \
+       util.c                  \
+       value.c                 \
+       introspectable.c 
similarity index 100%
rename from libspi/accessible.c
rename to atk-adaptor/accessible.c
similarity index 55%
rename from libspi/accessible.h
rename to atk-adaptor/accessible.h
index d36b6ee..4ebf8b4 100644 (file)
 #ifndef SPI_ACCESSIBLE_H_
 #define SPI_ACCESSIBLE_H_
 
 #ifndef SPI_ACCESSIBLE_H_
 #define SPI_ACCESSIBLE_H_
 
-#include <libspi/droute.h>
-#include "Accessibility.h"
+#include <droute/droute.h>
+#include <spi-common/spi-dbus.h>
+#include <spi-common/spi-types.h>
+
 #include "atk/atk.h"
 
 G_BEGIN_DECLS
 #include "atk/atk.h"
 
 G_BEGIN_DECLS
@@ -46,75 +48,24 @@ void spi_initialize_table(DRouteData *data);
 void spi_initialize_text(DRouteData *data);
 void spi_initialize_value(DRouteData *data);
 void spi_initialize_introspectable(DRouteData *data);
 void spi_initialize_text(DRouteData *data);
 void spi_initialize_value(DRouteData *data);
 void spi_initialize_introspectable(DRouteData *data);
-
-void spi_register_tree_object(DBusConnection *bus, const char *path);
-
-dbus_bool_t spi_dbus_append_tree (DBusMessage * message, AtkObject * obj, DRouteData * data);
-
-typedef unsigned long Accessibility_ControllerEventMask;
-
-// TODO: auto-generate the below structs
-typedef struct _Accessibility_DeviceEvent Accessibility_DeviceEvent;
-struct _Accessibility_DeviceEvent
-{
-  Accessibility_EventType type;
-  dbus_uint32_t id;
-dbus_uint16_t hw_code;
-  dbus_uint16_t modifiers;
-  dbus_uint32_t timestamp;
-  char * event_string;
-  dbus_bool_t is_text;
-};
-
-typedef struct _Accessibility_EventListenerMode Accessibility_EventListenerMode;
-struct _Accessibility_EventListenerMode
-{
-  dbus_bool_t synchronous;
-  dbus_bool_t preemptive;
-  dbus_bool_t global;
-};
-
-typedef struct _Accessibility_KeyDefinition Accessibility_KeyDefinition;
-struct _Accessibility_KeyDefinition
-{
-  dbus_int32_t keycode;
-  dbus_int32_t keysym;
-  char *keystring;
-  dbus_int32_t unused;
-};
-
-#define SPI_DBUS_NAME_REGISTRY "org.freedesktop.atspi.registry"
-#define SPI_DBUS_PATH_REGISTRY "/org/freedesktop/atspi/registry"
-#define SPI_DBUS_INTERFACE_REGISTRY "org.freedesktop.atspi.registry"
-#define SPI_DBUS_PATH_DEC "/org/freedesktop/atspi/registry/dec"
-#define SPI_DBUS_INTERFACE_DEC "org.freedesktop.atspi.deviceEventController"
-#define SPI_DBUS_PATH_DESKTOP "/org/freedesktop/atspi/registry/desktop"
-#define SPI_DBUS_PATH_NULL "/"
+void spi_dbus_initialize(DRouteData *data);
 
 AtkObject *spi_dbus_get_object(const char *path);
 
 AtkObject *spi_dbus_get_object(const char *path);
-
 gchar *spi_dbus_get_path(AtkObject *obj);
 gchar *spi_dbus_get_path(AtkObject *obj);
-DBusMessage *spi_dbus_general_error(DBusMessage *message);
-DBusMessage *spi_dbus_return_rect(DBusMessage *message, gint ix, gint iy, gint iwidth, gint iheight);
+
 DBusMessage *spi_dbus_return_object(DBusMessage *message, AtkObject *obj, int unref);
 dbus_bool_t spi_dbus_return_v_object(DBusMessageIter *iter, AtkObject *obj, int unref);
 
 DBusMessage *spi_dbus_return_object(DBusMessage *message, AtkObject *obj, int unref);
 dbus_bool_t spi_dbus_return_v_object(DBusMessageIter *iter, AtkObject *obj, int unref);
 
-#define SPI_DBUS_RETURN_ERROR(m, e) dbus_message_new_error(m, (e)->name, (e)->message)
+/* tree.c */
+void spi_register_tree_object(DBusConnection *bus, const char *path);
 
 
-void spi_dbus_initialize(DRouteData *data);
-void spi_dbus_emit_valist(DBusConnection *bus, const char *path, const char *interface, const char *name, int first_arg_type, va_list args);
-dbus_bool_t spi_dbus_message_iter_get_struct(DBusMessageIter *iter, ...);
-dbus_bool_t spi_dbus_message_iter_append_struct(DBusMessageIter *iter, ...);
-dbus_bool_t spi_dbus_marshall_deviceEvent(DBusMessage *message, const Accessibility_DeviceEvent *e);
-dbus_bool_t spi_dbus_demarshall_deviceEvent(DBusMessage *message, Accessibility_DeviceEvent *e);
+dbus_bool_t spi_dbus_append_tree (DBusMessage * message, AtkObject * obj, DRouteData * data);
 
 
-/* tree.c */
 void spi_dbus_notify_change(AtkObject *obj, gboolean new, DRouteData *data);
 void spi_dbus_notify_remove(AtkObject *obj, DRouteData *data);
 gboolean spi_dbus_update_cache(DRouteData *data);
 gboolean spi_dbus_object_is_known(AtkObject *obj);
 void spi_dbus_notify_change(AtkObject *obj, gboolean new, DRouteData *data);
 void spi_dbus_notify_remove(AtkObject *obj, DRouteData *data);
 gboolean spi_dbus_update_cache(DRouteData *data);
 gboolean spi_dbus_object_is_known(AtkObject *obj);
+
 G_END_DECLS
 
 G_END_DECLS
 
-/* introspect-loader.c */
-void spi_append_interface (GString *str, const char *interface);
 #endif /* SPI_ACCESSIBLE_H_ */
 #endif /* SPI_ACCESSIBLE_H_ */
similarity index 100%
rename from libspi/action.c
rename to atk-adaptor/action.c
similarity index 100%
rename from libspi/action.h
rename to atk-adaptor/action.h
diff --git a/atk-adaptor/atk-dbus.c b/atk-adaptor/atk-dbus.c
new file mode 100644 (file)
index 0000000..ac5e3c2
--- /dev/null
@@ -0,0 +1,154 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2008 Novell, 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 <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "accessible.h"
+
+extern GHashTable *path2ptr;
+
+AtkObject *
+spi_dbus_get_object (const char *path)
+{
+  guint index;
+  void *data;
+
+  g_assert (path);
+  if (strncmp(path, "/org/freedesktop/atspi/accessible", 33) != 0) return NULL;
+  path += 33;  /* skip over preamble */
+  if (path[0] == '\0') return atk_get_root();
+  if (path[0] != '/') return NULL;
+  path++;
+  index = atoi (path);
+  data = g_hash_table_lookup (path2ptr, &index);
+  if (data)
+    return ATK_OBJECT (data);
+  return NULL;
+}
+
+gchar *
+spi_dbus_get_path (AtkObject * obj)
+{
+  if (!obj) return NULL;
+  guint index = (guint) g_object_get_data (G_OBJECT (obj), "dbus-id");
+  if (!index)
+    index = register_object (obj);
+  return g_strdup_printf ("/org/freedesktop/atspi/accessible/%d", index);
+}
+
+/* Reply with the given object and dereference it if unref is TRUE */
+DBusMessage *
+spi_dbus_return_object (DBusMessage * message, AtkObject * obj, int unref)
+{
+  DBusMessage *reply;
+  const char *path = spi_dbus_get_path (obj);
+  if (unref)
+    g_object_unref (obj);
+  if (!path)
+    {
+      /* Should we have a more specific error for this? */
+      return spi_dbus_general_error (message);
+    }
+  reply = dbus_message_new_method_return (message);
+  if (reply)
+    {
+      dbus_message_append_args (reply, DBUS_TYPE_OBJECT_PATH, path,
+                               DBUS_TYPE_INVALID);
+    }
+  return reply;
+}
+
+dbus_bool_t
+spi_dbus_return_v_object (DBusMessageIter * iter, AtkObject * obj, int unref)
+{
+  const char *path = spi_dbus_get_path (obj);
+  if (unref)
+    g_object_unref (obj);
+  if (!path)
+    return FALSE;
+  return droute_return_v_object (iter, path);
+}
+
+void
+spi_dbus_initialize (DRouteData * data)
+{
+  spi_initialize_accessible (data);
+  spi_initialize_action(data);
+  spi_initialize_component (data);
+  spi_initialize_document (data);
+  spi_initialize_editabletext (data);
+  spi_initialize_hyperlink (data);
+  spi_initialize_hypertext (data);
+  spi_initialize_image (data);
+  spi_initialize_selection (data);
+  spi_initialize_table (data);
+  spi_initialize_text (data);
+  spi_initialize_value (data);
+  spi_initialize_introspectable(data);
+}
+
+static GString *
+spi_get_tree (AtkObject * obj, GString * str, DRouteData * data)
+{
+  int role;
+  const char *name;
+  gchar *path;
+  GSList *l;
+  gint childcount;
+  gint i;
+
+  if (!obj)
+    return NULL;
+  role = spi_accessible_role_from_atk_role (atk_object_get_role (obj));;
+  name = atk_object_get_name (obj);
+  if (!name)
+    name = "";
+  path = spi_dbus_get_path (obj);
+  g_string_append_printf (str,
+                         "<object path=\"%s\" name=\"%s\" role=\"%d\">\n",
+                         path, name, role);
+  for (l = data->interfaces; l; l = g_slist_next (l))
+    {
+      DRouteInterface *iface_def = (DRouteInterface *) l->data;
+      void *datum = NULL;
+      if (iface_def->get_datum)
+       datum = (*iface_def->get_datum) (path, data->user_data);
+      if (datum)
+       {
+         g_string_append_printf (str, "<interface name=\"%s\"/>\n",
+                                 iface_def->name);
+         if (iface_def->free_datum)
+           (*iface_def->free_datum) (datum);
+       }
+    }
+  childcount = atk_object_get_n_accessible_children (obj);
+  for (i = 0; i < childcount; i++)
+    {
+      AtkObject *child = atk_object_ref_accessible_child (obj, i);
+      str = spi_get_tree (child, str, data);
+      g_object_unref (child);
+    }
+  str = g_string_append (str, "</object>\n");
+  return str;
+}
similarity index 100%
rename from libspi/base.c
rename to atk-adaptor/base.c
similarity index 100%
rename from libspi/base.h
rename to atk-adaptor/base.h
similarity index 100%
rename from libspi/bitarray.h
rename to atk-adaptor/bitarray.h
similarity index 100%
rename from atk-bridge/bridge.c
rename to atk-adaptor/bridge.c
similarity index 100%
rename from libspi/collection.c
rename to atk-adaptor/collection.c
similarity index 100%
rename from libspi/collection.h
rename to atk-adaptor/collection.h
similarity index 100%
rename from libspi/component.c
rename to atk-adaptor/component.c
similarity index 100%
rename from libspi/component.h
rename to atk-adaptor/component.h
similarity index 100%
rename from libspi/document.c
rename to atk-adaptor/document.c
similarity index 100%
rename from libspi/document.h
rename to atk-adaptor/document.h
similarity index 100%
rename from libspi/hyperlink.c
rename to atk-adaptor/hyperlink.c
similarity index 100%
rename from libspi/hyperlink.h
rename to atk-adaptor/hyperlink.h
similarity index 100%
rename from libspi/hypertext.c
rename to atk-adaptor/hypertext.c
similarity index 100%
rename from libspi/hypertext.h
rename to atk-adaptor/hypertext.h
similarity index 100%
rename from libspi/image.c
rename to atk-adaptor/image.c
similarity index 100%
rename from libspi/image.h
rename to atk-adaptor/image.h
similarity index 98%
rename from libspi/introspectable.c
rename to atk-adaptor/introspectable.c
index 3ce29c3..4909e30 100644 (file)
@@ -23,8 +23,8 @@
 #include <glib.h>
 #include <accessible.h>
 
 #include <glib.h>
 #include <accessible.h>
 
-#include "droute.h"
-#include "introspect-loader.h"
+#include "droute/droute.h"
+#include "droute/introspect-loader.h"
 
 /*
  * This file contains an implementation of the D-Bus introspectable interface.
 
 /*
  * This file contains an implementation of the D-Bus introspectable interface.
similarity index 100%
rename from libspi/keymasks.h
rename to atk-adaptor/keymasks.h
similarity index 100%
rename from libspi/libspi.h
rename to atk-adaptor/libspi.h
similarity index 100%
rename from libspi/listener.c
rename to atk-adaptor/listener.c
similarity index 100%
rename from libspi/listener.h
rename to atk-adaptor/listener.h
similarity index 100%
rename from libspi/matchrule.c
rename to atk-adaptor/matchrule.c
similarity index 100%
rename from libspi/matchrule.h
rename to atk-adaptor/matchrule.h
similarity index 100%
rename from libspi/relation.c
rename to atk-adaptor/relation.c
similarity index 100%
rename from libspi/relation.h
rename to atk-adaptor/relation.h
similarity index 100%
rename from libspi/selection.c
rename to atk-adaptor/selection.c
similarity index 100%
rename from libspi/selection.h
rename to atk-adaptor/selection.h
diff --git a/atk-adaptor/spi-private.h b/atk-adaptor/spi-private.h
new file mode 100644 (file)
index 0000000..aff2ecb
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 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.
+ */
+
+#ifndef SPI_PRIVATE_H_
+#define SPI_PRIVATE_H_
+
+#include <glib/glist.h>
+#include <atk/atk.h>
+
+#include <spi-common/spi-types.h>
+
+G_BEGIN_DECLS
+
+Accessibility_Role spi_role_from_atk_role (AtkRole role);
+G_END_DECLS
+
+#endif /* SPI_PRIVATE_H_ */
similarity index 100%
rename from libspi/stateset.c
rename to atk-adaptor/stateset.c
similarity index 100%
rename from libspi/stateset.h
rename to atk-adaptor/stateset.h
similarity index 100%
rename from libspi/table.c
rename to atk-adaptor/table.c
similarity index 100%
rename from libspi/table.h
rename to atk-adaptor/table.h
similarity index 100%
rename from libspi/text.c
rename to atk-adaptor/text.c
similarity index 100%
rename from libspi/text.h
rename to atk-adaptor/text.h
similarity index 99%
rename from libspi/tree.c
rename to atk-adaptor/tree.c
index fe26fbe..d84cd54 100644 (file)
@@ -23,9 +23,9 @@
  */
 
 #include <string.h>
  */
 
 #include <string.h>
+#include <droute/introspect-loader.h>
 
 #include "accessible.h"
 
 #include "accessible.h"
-#include "introspect-loader.h"
 
 #define get_object(message) spi_dbus_get_object(dbus_message_get_path(message))
 
 
 #define get_object(message) spi_dbus_get_object(dbus_message_get_path(message))
 
similarity index 58%
rename from cspi/spi_matchrule.c
rename to atk-adaptor/util.c
index 199ea7f..27d6f93 100644 (file)
@@ -1,8 +1,9 @@
 /*
  * AT-SPI - Assistive Technology Service Provider Interface
 /*
  * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap) 
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
  *
  *
- * Copyright 2007 IBM Corp.
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 Ximian, Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
  * Boston, MA 02111-1307, USA.
  */
 
  * Boston, MA 02111-1307, USA.
  */
 
-#include <cspi/spi.h>
-#include <cspi/spi-private.h>
+#include <config.h>
+#include <spi-common/spi-types.h>
 
 
-/**
- * AccessibleMatchrule_ref:
- * @obj: a pointer to the #AccessibleMatchrule object on which to operate.
- *
- * Increment the reference count for an #AccessibleMatchrule object.
- **/
-void
-AccessibleMatchRule_ref (AccessibleMatchRule *obj)
-{
-  cspi_object_ref (obj);
-}
+#include "spi-private.h"
 
 
-/**
- * AccessibleMatchrule_unref:
- * @obj: a pointer to the #AccessibleMatchrule object on which to operate.
- *
- * Decrement the reference count for an #AccessibleMatchrule object.
- **/
+Accessibility_Role spi_accessible_role_from_atk_role (AtkRole role);
 
 
-void
-AccessibleMatchRule_unref (AccessibleMatchRule *obj)
+Accessibility_Role
+spi_role_from_atk_role (AtkRole role)
 {
 {
-  cspi_object_unref (obj);
+    return spi_accessible_role_from_atk_role (role);
 }
 }
similarity index 100%
rename from libspi/value.c
rename to atk-adaptor/value.c
similarity index 100%
rename from libspi/value.h
rename to atk-adaptor/value.h
diff --git a/atk-bridge/Makefile.am b/atk-bridge/Makefile.am
deleted file mode 100644 (file)
index 3a8d671..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-NULL =
-
-moduledir = $(libdir)/gtk-2.0/modules
-module_LTLIBRARIES = libatk-bridge.la
-
-libatk_bridge_la_SOURCES =     \
-       bridge.c
-
-libatk_bridge_la_DEPENDENCIES =        \
-       $(top_srcdir)/libspi/accessible.h
-
-INCLUDES = -I $(top_srcdir) \
-          -I $(top_builddir) \
-          -I $(top_srcdir)/libspi \
-          -I $(top_builddir)/libspi \
-          -I $(top_builddir)/atk-bridge \
-          $(WARN_CFLAGS) \
-          $(ATK_BRIDGE_CFLAGS) \
-          -DG_LOG_DOMAIN=\"atk-bridge\" \
-          $(X_CFLAGS) \
-          $(NULL)
-
-DEPS =         \
-       $(libatk)       \
-       $(libdbus-1) \
-       $(libdbus-glib-1) \
-       $(libat-spi)
-
-libatk_bridge_la_LDFLAGS =     \
-       -rpath $(moduledir) -module -avoid-version -no-undefined \
-       @LDFLAGS@
-
-libatk_bridge_la_LIBADD = \
-       $(top_builddir)/libspi/libspi.la        \
-       $(ATK_BRIDGE_LIBS)      
diff --git a/configure.ac b/configure.ac
new file mode 100644 (file)
index 0000000..978cd69
--- /dev/null
@@ -0,0 +1,114 @@
+
+AC_INIT([at-spi], [1.9.0], [accessibility-atspi@lists.linux-foundation.org])
+AM_INIT_AUTOMAKE([-Wall foreign])
+
+AC_PROG_CC
+AM_PATH_PYTHON(2.4)
+AM_DISABLE_STATIC
+AM_PROG_LIBTOOL
+PKG_PROG_PKG_CONFIG
+
+AC_CONFIG_HEADERS([config.h])
+
+PKG_CHECK_MODULES(DBUS_GLIB, [dbus-glib-1 >= 0.7.0])
+AC_SUBST(DBUS_GLIB_LIBS)
+AC_SUBST(DBUS_GLIB_CFLAGS)
+
+PKG_CHECK_MODULES(GOBJ, [gobject-2.0 >= 2.0.0])
+AC_SUBST(GOBJ_LIBS)
+AC_SUBST(GOBJ_CFLAGS)
+
+PKG_CHECK_MODULES(ATK, [atk >= 1.17.0])
+AC_SUBST(ATK_LIBS)
+AC_SUBST(ATK_CFLAGS)
+
+PKG_CHECK_MODULES(GTK, [gtk+-2.0 >= 2.10.0])
+AC_SUBST(GTK_LIBS)
+AC_SUBST(GTK_CFLAGS)
+
+PKG_CHECK_MODULES(GDK, [gdk-2.0 >= 2.0.0])
+AC_SUBST(GDK_LIBS)
+AC_SUBST(GDK_CFLAGS)
+
+PKG_CHECK_MODULES(GAIL, [gail >= 1.9.0])       
+AC_SUBST(GAIL_LIBS)
+AC_SUBST(GAIL_CFLAGS)
+
+AC_PATH_XTRA
+
+if test x$no_x = xyes ; then
+       AC_MSG_ERROR([X development libraries not found])
+else
+       X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
+fi
+AC_SUBST(X_LIBS)
+
+#LIBS="$LIBS $X_LIBS"
+AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTST_LIBS=-lXtst,[
+       AC_MSG_ERROR([Couldn't find the Xtst library. Check config.log])],
+       -lX11 -lXext)
+AC_SUBST(XTST_LIBS)
+
+have_xkb=
+AC_CHECK_LIB(X11, XkbQueryExtension, have_xkb="maybe")
+if test "x$have_xkb" = "xmaybe"; then 
+       AC_CHECK_HEADER(X11/XKBlib.h, have_xkb=yes)
+fi
+if test "x$have_xkb" = "xyes"; then
+       AC_MSG_RESULT(yes)
+       AC_DEFINE([HAVE_XKB], [], Xkb is present)
+fi
+
+have_xinput=
+AC_CHECK_LIB(Xi, XOpenDevice, XINPUT_LIBS=-lXi,,-lXext)
+if test "x$XINPUT_LIBS" = x; then
+       AC_MSG_ERROR(Couldn't find the XInput library. Check config.log for details)
+fi                            
+AC_CHECK_HEADER(X11/extensions/XInput.h, have_xinput=yes)
+AC_SUBST(XINPUT_LIBS)
+
+AC_ARG_ENABLE(xevie, [--enable-xevie  Build with XEViE support [default=yes]], enable_xevie="$enableval", enable_xevie=yes)
+
+if test x$enable_xevie = xyes ; then
+       have_xevie=
+       AC_CHECK_LIB(Xext, XevieStart, have_xevie="yes")
+
+       if test "x$have_xevie" = "xyes"; then
+               XEVIE_LIBS="-lXext"
+               AC_DEFINE([HAVE_XEVIE], [], Xevie is present)
+       else
+          AC_CHECK_LIB(Xevie, XevieQueryVersion, have_xevie="maybe",,-lXevie -lXext)
+          if test "x$have_xevie" = "xmaybe"; then
+             AC_CHECK_HEADER(X11/extensions/Xevie.h, have_xevie=yes, [], [#include <X11/Xlib.h>])
+             if test "x$have_xevie" = "xyes"; then
+                     XEVIE_LIBS="-lXext -lXevie"              
+                     AC_DEFINE([HAVE_XEVIE], [], Xevie is present)
+             fi
+          fi   
+       fi
+       AC_SUBST(XEVIE_LIBS)
+fi
+
+AC_ARG_VAR([DEFAULT_ATSPI_INTROSPECTION_PATH],
+          [Set the default path for the DBus introspection XML])
+if test -z "$DEFAULT_ATSPI_INTROSPECTION_PATH"; then
+         DEFAULT_ATSPI_INTROSPECTION_PATH=atspi/dbus
+fi
+
+AC_ARG_VAR([GTK_MODULE_DIR],
+          [Where to place the atk-adaptor gtk module])
+if test -z "$GTK_MODULE_DIR"; then
+         GTK_MODULE_DIR=gtk-2.0/modules
+fi
+
+AC_CONFIG_FILES([Makefile
+                xml/Makefile
+                idl/Makefile
+                tests/Makefile
+                tools/Makefile
+                droute/Makefile
+                spi-common/Makefile
+                registryd/Makefile
+                atk-adaptor/Makefile])
+
+AC_OUTPUT
diff --git a/configure.in b/configure.in
deleted file mode 100644 (file)
index 76206df..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-AC_INIT(xml/Accessibility.xml)
-
-AT_SPI_MAJOR_VERSION=1
-AT_SPI_MINOR_VERSION=22
-AT_SPI_MICRO_VERSION=0
-AT_SPI_INTERFACE_AGE=0
-AT_SPI_BINARY_AGE=0
-AT_SPI_VERSION="$AT_SPI_MAJOR_VERSION.$AT_SPI_MINOR_VERSION.$AT_SPI_MICRO_VERSION"
-AM_INIT_AUTOMAKE(at-spi, $AT_SPI_VERSION)
-AC_SUBST(AT_SPI_MAJOR_VERSION)
-AC_SUBST(AT_SPI_MINOR_VERSION)
-AC_SUBST(AT_SPI_MICRO_VERSION)
-AC_SUBST(AT_SPI_INTERFACE_AGE)
-AC_SUBST(AT_SPI_BINARY_AGE)
-
-# libtool versioning
-LT_RELEASE=$AT_SPI_MAJOR_VERSION.$AT_SPI_MINOR_VERSION
-LT_CURRENT=10
-LT_REVISION=11
-LT_AGE=10
-LT_VERSION_INFO='-version-info ${LT_CURRENT}:${LT_REVISION}:${LT_AGE}'
-AC_SUBST(LT_VERSION_INFO)
-AC_SUBST(LT_RELEASE)
-AC_SUBST(LT_CURRENT)
-AC_SUBST(LT_REVISION)
-AC_SUBST(LT_AGE)
-
-dnl required versions of other tools.
-m4_define([req_ver_atk],       [1.17.0])
-m4_define([req_ver_gtk],       [2.10.0])
-m4_define([req_ver_gail],      [1.9.0])
-m4_define([req_ver_dbus_glib], [0.7.0])
-
-dnl Specify a header configuration file
-AM_CONFIG_HEADER(config.h)
-
-dnl Initialize maintainer mode
-AM_MAINTAINER_MODE
-
-dnl translation of any at-spi strings: used only for .server
-IT_PROG_INTLTOOL([0.35.0])
-
-dnl Checks for programs
-AC_PROG_CC
-AC_PROG_INSTALL
-AC_ISC_POSIX
-
-# Check for Python
-
-AM_PATH_PYTHON(2.4)
-
-GNOME_COMMON_INIT
-GNOME_COMPILE_WARNINGS(maximum)
-
-dnl Initialize libtool
-AM_DISABLE_STATIC
-AM_PROG_LIBTOOL
-
-GETTEXT_PACKAGE="${PACKAGE}"
-AC_SUBST(GETTEXT_PACKAGE)
-dnl internationalization support; uncomment if translatable strings are reintroduced
-AM_GLIB_GNU_GETTEXT
-
-# AM_GLIB_GNU_GETTEXT above subst. $DATADIRNAME
-# this is the directory where the *.{mo,gmo} files are installed
-localedir='${prefix}/${DATADIRNAME}/locale'
-AC_SUBST(localedir)
-
-GTK_DOC_CHECK([1.0])
-
-AC_PATH_XTRA
-
-if test x$no_x = xyes ; then
-       AC_MSG_ERROR([X development libraries not found])
-else
-       X_LIBS="$X_LIBS $X_PRE_LIBS -lX11 $X_EXTRA_LIBS"
-fi
-
-AC_SUBST(X_LIBS)
-
-dnl Check for obsolete (mis-numbered) versions of at-spi
-dnl oldlibs=`echo $(libdir)/libspi.so.1.*`
-dnl if test $$oldlibs != "$(libdir)/libspi.so.1.*" ; then
-dnl   AC_MSG_ERROR(Old libspi.1.x library found in $libdir. Please remove $(libdir)/libspi.so.1 and $$oldlibs)
-dnl fi
-
-dnl Checks for libraries
-PKG_CHECK_MODULES(LIBSPI, [
-       dbus-glib-1     >= req_ver_dbus_glib
-       atk             >= req_ver_atk
-])
-AC_SUBST(LIBSPI_LIBS)
-AC_SUBST(LIBSPI_CFLAGS)
-
-PKG_CHECK_MODULES(REGISTRYD, [
-       dbus-glib-1     >= req_ver_dbus_glib
-       atk             >= req_ver_atk
-       gtk+-2.0        >= req_ver_gtk
-])
-AC_SUBST(REGISTRYD_LIBS)
-AC_SUBST(REGISTRYD_CFLAGS)
-
-PKG_CHECK_MODULES(TESTS, [
-       dbus-glib-1     >= req_ver_dbus_glib
-       atk             >= req_ver_atk
-       gtk+-2.0        >= req_ver_gtk
-       gail            >= req_ver_gail
-])
-AC_SUBST(TESTS_LIBS)
-AC_SUBST(TESTS_CFLAGS)
-
-PKG_CHECK_MODULES(ATK_BRIDGE, [
-       dbus-glib-1     >= req_ver_dbus_glib
-       atk             >= req_ver_atk
-])     
-AC_SUBST(ATK_BRIDGE_LIBS)
-AC_SUBST(ATK_BRIDGE_CFLAGS)
-
-PKG_CHECK_MODULES(LIBCSPI, [
-       dbus-glib-1     >= req_ver_dbus_glib
-       atk             >= req_ver_atk
-])
-AC_SUBST(LIBCSPI_LIBS)
-AC_SUBST(LIBCSPI_CFLAGS)
-
-PKG_CHECK_MODULES(ORBIT, [
-       ORBit-2.0
-])
-AC_SUBST(ORBIT_LIBS)
-AC_SUBST(ORBIT_CFLAGS)
-
-dnl orbit-idl.
-ORBIT_IDL="`$PKG_CONFIG --variable=orbit_idl ORBit-2.0`"
-AC_SUBST(ORBIT_IDL)
-
-LIBS="$LIBS $X_LIBS"
-dnl path to Xtst
-AC_CHECK_LIB(Xtst, XTestFakeKeyEvent, XTST_LIBS=-lXtst,[
-       AC_MSG_ERROR([Couldn't find the Xtst library. Check config.log])],
-       -lX11 -lXext)
-AC_SUBST(XTST_LIBS)
-
-have_xkb=
-AC_CHECK_LIB(X11, XkbQueryExtension, have_xkb="maybe")
-if test "x$have_xkb" = "xmaybe"; then 
-       AC_CHECK_HEADER(X11/XKBlib.h, have_xkb=yes)
-fi
-if test "x$have_xkb" = "xyes"; then
-       AC_MSG_RESULT(yes)
-       AC_DEFINE(HAVE_XKB)
-fi
-
-have_xinput=
-AC_CHECK_LIB(Xi, XOpenDevice, XINPUT_LIBS=-lXi,,-lXext)
-if test "x$XINPUT_LIBS" = x; then
-       AC_MSG_ERROR(Couldn't find the XInput library. Check config.log for details)
-fi                            
-AC_CHECK_HEADER(X11/extensions/XInput.h, have_xinput=yes)
-AC_SUBST(XINPUT_LIBS)
-
-dnl Allow disabling XEViE.
-AC_ARG_ENABLE(xevie, [  --enable-xevie  Build with XEViE support [default=yes]], enable_xevie="$enableval", enable_xevie=yes)
-
-if test x$enable_xevie = xyes ; then
-       have_xevie=
-       AC_CHECK_LIB(Xext, XevieStart, have_xevie="yes")
-
-       if test "x$have_xevie" = "xyes"; then
-               XEVIE_LIBS="-lXext"
-               AC_DEFINE(HAVE_XEVIE)
-       else
-          AC_CHECK_LIB(Xevie, XevieQueryVersion, have_xevie="maybe",,-lXevie -lXext)
-          if test "x$have_xevie" = "xmaybe"; then
-             AC_CHECK_HEADER(X11/extensions/Xevie.h, have_xevie=yes, [], [#include <X11/Xlib.h>])
-             if test "x$have_xevie" = "xyes"; then
-                     XEVIE_LIBS="-lXext -lXevie"              
-                     AC_DEFINE(HAVE_XEVIE)
-             fi
-          fi   
-       fi
-       AC_SUBST(XEVIE_LIBS)
-fi
-
-dnl CFLAGS="$CFLAGS -Wall"
-AC_SUBST(CFLAGS)
-AC_SUBST(CPPFLAGS)
-AC_SUBST(LDFLAGS)
-
-AC_CHECK_LIB(popt, poptGetContext, [POPT_LIBS="-lpopt"],
-AC_MSG_ERROR([popt is required to build at-spi.
-You can download the latest version from ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/]))
-AC_SUBST(POPT_LIBS)
-AC_MSG_CHECKING([for POPT_ARG_FLOAT in popt.h])
-AC_TRY_CPP([#include <popt.h>
-#ifndef POPT_ARG_FLOAT
-#error popt too old
-#endif], AC_MSG_RESULT(yes), [
-       AC_MSG_RESULT(no)
-       AC_MSG_ERROR([A newer version of popt is required to build at-spi.
-You can download the latest version from ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/])
-])
-
-#libtool option to strip symbols starting with cspi
-#
-LIBTOOL_EXPORT_OPTIONS='-export-symbols-regex "^[[^cspi]].*"'
-AC_SUBST(LIBTOOL_EXPORT_OPTIONS)
-
-REBUILD=\#
-if test "x$enable_rebuilds" = "xyes" && \
-       test -n "$PERL" && \
-       $PERL -e 'exit !($] >= 5.002)' > /dev/null 2>&1 && \
-       test -n "$AWK" ; then
-               REBUILD=
-fi
-AC_SUBST(REBUILD)
-
-AC_OUTPUT([
-Makefile
-po/Makefile.in
-libspi-1.0.pc
-libspi-1.0-uninstalled.pc
-libloginhelper-1.0.pc
-cspi-1.0.pc
-cspi-1.0-uninstalled.pc
-atk-bridge/Makefile
-libspi/Makefile
-registryd/Makefile
-tools/Makefile
-xml/Makefile
-])
-
-echo "AT-SPI setup:
-
-       Source code location:   ${srcdir}
-       Compiler:               ${CC} 
-       Prefix:                 ${prefix}
-
-       Welcome to the wonderful world of Accessibility.
-          http://developer.gnome.org/projects/gap/
-"
diff --git a/cspi-1.0-uninstalled.pc.in b/cspi-1.0-uninstalled.pc.in
deleted file mode 100644 (file)
index ea8fe1a..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-idldir=${pc_top_builddir}/${pcfiledir}/idl
-
-Name: cspi (Uninstalled)
-Description: Accessibility Technology software simple client library
-Requires: libspi-1.0
-Version: @VERSION@
-Libs: ${pc_top_builddir}/${pcfiledir}/cspi/libcspi.la
-Cflags: -I${pc_top_builddir}/${pcfiledir} @X_CFLAGS@
diff --git a/cspi-1.0.pc.in b/cspi-1.0.pc.in
deleted file mode 100644 (file)
index d23a929..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-idldir=@datadir@/idl/at-spi-1.0
-
-Name: cspi
-Description: Accessibility Technology software simple client library
-Requires: libspi-1.0
-Version: @VERSION@
-Libs: -L${libdir} -lcspi
-Cflags: -I${includedir}/at-spi-1.0 @X_CFLAGS@
diff --git a/cspi/Makefile.am b/cspi/Makefile.am
deleted file mode 100644 (file)
index 8f27d02..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-SUBDIRS = bonobo
-
-NULL=
-
-lib_LTLIBRARIES = libcspi.la
-
-INCLUDES = -I $(top_srcdir)           \
-           -I $(top_builddir)         \
-           $(X_CFLAGS)                \
-           $(WARN_CFLAGS)                \
-           $(LIBCSPI_CFLAGS)
-
-libcspi_la_LDFLAGS = @LDFLAGS@ @LT_VERSION_INFO@ @LIBTOOL_EXPORT_OPTIONS@ -no-undefined
-
-LDADD =                                \
-       $(top_builddir)/libspi/libspi.la        \
-       $(LIBCSPI_LIBS) $(X_LIBS)
-
-libcspidir = $(includedir)/at-spi-1.0/cspi
-libcspi_HEADERS =              \
-       spi.h                   \
-       spi-impl.h              \
-       spi-listener.h          \
-       spi-roletypes.h         \
-       spi-statetypes.h
-
-libcspi_la_SOURCES =           \
-       cspi-lowlevel.h         \
-       spi_accessible.c        \
-       spi_action.c            \
-       spi_application.c       \
-       spi_collection.c        \
-       spi_component.c         \
-       spi_document.c          \
-       spi_editabletext.c      \
-       spi_event.c             \
-       spi_hyperlink.c         \
-       spi_hypertext.c         \
-       spi_image.c             \
-       spi_main.c              \
-       spi_matchrule.c         \
-       spi-private.h           \
-       spi_registry.c          \
-       spi_selection.c         \
-       spi_streamablecontent.c \
-       spi_table.c             \
-       spi_text.c              \
-       spi_value.c
-
-libcspi_la_LIBADD =            \
-       bonobo/libcspi-bonobo.la        \
-       $(top_builddir)/libspi/libspi.la \
-       $(LIBCSPI_LIBS) $(X_LIBS)
diff --git a/cspi/bonobo/Makefile.am b/cspi/bonobo/Makefile.am
deleted file mode 100644 (file)
index ddbf838..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-INCLUDES = -I $(top_srcdir)           \
-           -I $(top_builddir)         \
-           $(X_CFLAGS)                \
-           $(WARN_CFLAGS)                \
-           $(LIBCSPI_CFLAGS)
-
-noinst_LTLIBRARIES = libcspi-bonobo.la
-
-libcspi_bonobo_la_SOURCES =    \
-       cspi-bonobo.c           \
-       cspi-bonobo-listener.c  \
-       cspi-bonobo-listener.h
-
-libcspi_bonobo_la_LIBADD = $(LIBCSPI_LIBS) $(X_LIBS)
diff --git a/cspi/bonobo/cspi-bonobo-listener.c b/cspi/bonobo/cspi-bonobo-listener.c
deleted file mode 100644 (file)
index 7b905f0..0000000
+++ /dev/null
@@ -1,338 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2002 Ximian Inc.
- * Copyright 2002 Sun Microsystems, 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 <libbonobo.h>
-#include "../spi-private.h"
-#include "cspi-bonobo-listener.h"
-
-typedef struct
-{
-  union
-    {
-      AccessibleEventListenerCB     event;
-      AccessibleDeviceListenerCB    device_event;
-      gpointer                      method;
-    } cb;
-  gpointer user_data;
-} EventHandler;
-
-GObjectClass *event_parent_class;
-GObjectClass *device_parent_class;
-
-static guint32 _e_id = 0;
-
-/*
- * Misc. helpers.
- */
-
-static EventHandler *
-cspi_event_handler_new (gpointer method, gpointer user_data)
-{
-  EventHandler *eh = g_new0 (EventHandler, 1);
-
-  eh->cb.method = method;
-  eh->user_data = user_data;
-
-  return eh;
-}
-
-static void
-cspi_event_handler_free (EventHandler *handler)
-{
-  g_free (handler);
-}
-
-static GList *
-cspi_event_list_remove_by_cb (GList *list, gpointer callback)
-{
-  GList *l, *next;
-       
-  for (l = list; l; l = next)
-    {
-      EventHandler *eh = l->data;
-      next = l->next;
-
-      if (eh->cb.method == callback)
-      {
-        list = g_list_delete_link (list, l);
-       cspi_event_handler_free (eh);
-      }
-    }
-
-  return list;
-}
-
-/*
- * Standard event dispatcher
- */
-
-BONOBO_CLASS_BOILERPLATE (CSpiEventListener, cspi_event_listener,
-                         GObject, spi_event_listener_get_type ())
-
-static void
-cspi_event (SpiEventListener    *listener,
-           Accessibility_Event *event)
-{
-  GList *l;
-  CSpiEventListener *clistener = (CSpiEventListener *) listener;
-  InternalEvent     *ievent;
-  AccessibleEvent   *aevent;
-  Accessible        *source = cspi_object_borrow (event->source);
-  
-  ievent = g_new0(InternalEvent, 1);
-  ievent->event.type    = g_strdup (event->type);
-  ievent->event.source  = source;
-  ievent->event.detail1 = event->detail1;
-  ievent->event.detail2 = event->detail2;
-  ievent->id            = _e_id++;
-  ievent->magic         = SPI_INTERNAL_EVENT_MAGIC;
-  ievent->ref_count     = 0;
-  ievent->data          = CORBA_any__alloc ();
-  CORBA_any__copy (ievent->data, &event->any_data);
-  aevent = (AccessibleEvent *)ievent;
-  Accessible_ref (source);
-  AccessibleEvent_ref (aevent);
-
-  /* FIXME: re-enterancy hazard on this list */
-  for (l = clistener->callbacks; l; l = l->next)
-    {
-      EventHandler *eh = l->data;
-      /* cast hides our private stuff from client handlers */
-      eh->cb.event (aevent, eh->user_data);
-    }
-
-  AccessibleEvent_unref (aevent);
-  cspi_object_return (source);
-}
-
-static void
-cspi_event_listener_instance_init (CSpiEventListener *listener)
-{
-}
-
-static void
-cspi_event_listener_finalize (GObject *object)
-{
-  CSpiEventListener *listener = (CSpiEventListener *) object;
-  GList *l;
-  
-  for (l = listener->callbacks; l; l = l->next)
-    {
-      cspi_event_handler_free (l->data);
-    }
-  
-  g_list_free (listener->callbacks);
-
-  event_parent_class->finalize (object);
-}
-
-static void
-cspi_event_listener_class_init (CSpiEventListenerClass *klass)
-{
-  GObjectClass *object_class = (GObjectClass *) klass;
-
-  event_parent_class = g_type_class_peek_parent (klass);
-  object_class->finalize = cspi_event_listener_finalize;
-
-  klass->event = cspi_event;
-}
-
-gpointer
-cspi_event_listener_new (void)
-{
-  CSpiEventListener *listener;
-
-  listener = g_object_new (cspi_event_listener_get_type (), NULL);
-
-  return listener;
-}
-
-void
-cspi_event_listener_add_cb (AccessibleEventListener  *al,
-                           AccessibleEventListenerCB callback,
-                           void                     *user_data)
-{
-  CSpiEventListener *listener = al;
-
-  g_return_if_fail (CSPI_IS_EVENT_LISTENER (listener));
-
-  listener->callbacks = g_list_prepend (listener->callbacks,
-                                       cspi_event_handler_new ((void *) callback, user_data));
-}
-
-void
-cspi_event_listener_remove_cb (AccessibleEventListener  *al,
-                              AccessibleEventListenerCB callback)
-{
-  CSpiEventListener *listener = al;
-
-  g_return_if_fail (CSPI_IS_EVENT_LISTENER (listener));
-
-  listener->callbacks = cspi_event_list_remove_by_cb (listener->callbacks, (void *) callback);
-}
-
-/* 
- * Device event handler
- */
-static gboolean
-cspi_device_event (SpiDeviceListener               *listener,
-                  const Accessibility_DeviceEvent *event)
-{
-  GList *l;
-  CSpiDeviceListener *clistener = (CSpiDeviceListener *) listener;
-  AccessibleDeviceEvent anevent;
-  gboolean handled = FALSE;
-
-  switch (event->type)
-    {
-      case Accessibility_KEY_PRESSED_EVENT:
-       anevent.type = SPI_KEY_PRESSED;
-       break;
-      case Accessibility_KEY_RELEASED_EVENT:
-       anevent.type = SPI_KEY_RELEASED;
-       break;
-      case Accessibility_BUTTON_PRESSED_EVENT:
-       anevent.type = SPI_BUTTON_PRESSED;
-       break;
-      case Accessibility_BUTTON_RELEASED_EVENT:
-       anevent.type = SPI_BUTTON_RELEASED;
-       break;
-      default:
-       anevent.type = 0;
-       break;
-    }
-  anevent.keyID     = event->id;
-  anevent.keycode   = event->hw_code;
-  anevent.timestamp = event->timestamp;
-  anevent.keystring = g_strdup (event->event_string);
-  anevent.modifiers = event->modifiers;
-  anevent.is_text = event->is_text;
-
-  /* FIXME: re-enterancy hazard on this list */
-  for (l = clistener->callbacks; l; l = l->next)
-    {
-      EventHandler *eh = l->data;
-
-      if ((handled = eh->cb.device_event (&anevent, eh->user_data)))
-        {
-         break;
-       }
-    }
-  g_free (anevent.keystring);
-
-  return handled;
-}
-
-static void
-cspi_device_listener_init (CSpiDeviceListener *listener)
-{
-}
-
-static void
-cspi_device_listener_finalize (GObject *object)
-{
-  CSpiDeviceListener *listener = (CSpiDeviceListener *) object;
-  GList *l;
-  
-  for (l = listener->callbacks; l; l = l->next)
-    {
-      cspi_event_handler_free (l->data);
-    }
-  
-  g_list_free (listener->callbacks);
-
-  device_parent_class->finalize (object);
-}
-
-static void
-cspi_device_listener_class_init (CSpiDeviceListenerClass *klass)
-{
-  GObjectClass *object_class = (GObjectClass *) klass;
-
-  device_parent_class = g_type_class_peek_parent (klass);
-  object_class->finalize = cspi_device_listener_finalize;
-
-  klass->device_event = cspi_device_event;
-}
-
-BONOBO_TYPE_FUNC (CSpiDeviceListener, 
-                 spi_device_listener_get_type (),
-                 cspi_device_listener)
-
-gpointer
-cspi_device_listener_new (void)
-{
-  CSpiEventListener *listener = g_object_new (cspi_device_listener_get_type (), NULL);
-
-  return listener;
-}
-
-void
-cspi_device_listener_add_cb (AccessibleDeviceListener  *al,
-                            AccessibleDeviceListenerCB callback,
-                            void                      *user_data)
-{
-  CSpiDeviceListener *listener = al;
-
-  g_return_if_fail (CSPI_IS_DEVICE_LISTENER (listener));
-
-  listener->callbacks = g_list_prepend (listener->callbacks,
-                                       cspi_event_handler_new ((void *)callback, user_data));
-}
-
-void
-cspi_device_listener_remove_cb (AccessibleDeviceListener  *al,
-                               AccessibleDeviceListenerCB callback)
-{
-  CSpiDeviceListener *listener = al;
-
-  g_return_if_fail (CSPI_IS_DEVICE_LISTENER (listener));
-
-  listener->callbacks = cspi_event_list_remove_by_cb (listener->callbacks, (void *) callback);
-}
-
-void
-cspi_event_listener_unref (AccessibleEventListener *listener)
-{
-  bonobo_object_unref (BONOBO_OBJECT (listener));
-}
-
-void
-cspi_device_listener_unref (AccessibleDeviceListener *listener)
-{
-  bonobo_object_unref (BONOBO_OBJECT (listener));
-}
-
-
-CORBA_Object
-cspi_event_listener_get_corba (AccessibleEventListener *listener)
-{
-  return BONOBO_OBJREF (listener);
-}
-
-CORBA_Object
-cspi_device_listener_get_corba (AccessibleDeviceListener *listener)
-{
-  return BONOBO_OBJREF (listener);
-}
-
diff --git a/cspi/bonobo/cspi-bonobo-listener.h b/cspi/bonobo/cspi-bonobo-listener.h
deleted file mode 100644 (file)
index a3e1321..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2002 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.
- */
-
-#ifndef __SPI_LISTENER_IMPL_H__
-#define __SPI_LISTENER_IMP_H__
-
-#include <libspi/eventlistener.h>
-#include <libspi/devicelistener.h>
-#include <cspi/spi-impl.h>
-#include <cspi/spi-listener.h>
-
-G_BEGIN_DECLS
-
-#define CSPI_EVENT_LISTENER_TYPE        (cspi_event_listener_get_type ())
-#define CSPI_EVENT_LISTENER(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), CSPI_EVENT_LISTENER_TYPE, CSpiEventListener))
-#define CSPI_EVENT_LISTENER_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), CSPI_EVENT_LISTENER_TYPE, CSpiEventListenerClass))
-#define CSPI_IS_EVENT_LISTENER(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), CSPI_EVENT_LISTENER_TYPE))
-#define CSPI_IS_EVENT_LISTENER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CSPI_EVENT_LISTENER_TYPE))
-
-typedef struct {
-       SpiEventListener parent;
-       GList           *callbacks;
-} CSpiEventListener;
-typedef SpiEventListenerClass CSpiEventListenerClass;
-
-GType cspi_event_listener_get_type (void);
-
-#define CSPI_DEVICE_LISTENER_TYPE        (cspi_device_listener_get_type ())
-#define CSPI_DEVICE_LISTENER(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), CSPI_DEVICE_LISTENER_TYPE, CSpiDeviceListener))
-#define CSPI_DEVICE_LISTENER_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), CSPI_DEVICE_LISTENER_TYPE, CSpiDeviceListenerClass))
-#define CSPI_IS_DEVICE_LISTENER(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), CSPI_DEVICE_LISTENER_TYPE))
-#define CSPI_IS_DEVICE_LISTENER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), CSPI_DEVICE_LISTENER_TYPE))
-
-typedef struct {
-       SpiDeviceListener parent;
-       GList            *callbacks;
-} CSpiDeviceListener;
-typedef SpiDeviceListenerClass CSpiDeviceListenerClass;
-
-CORBA_Object
-cspi_device_listener_get_corba (AccessibleDeviceListener *listener);
-GType cspi_device_listener_get_type (void);
-gpointer cspi_device_listener_new (void);
-void cspi_device_listener_add_cb (AccessibleDeviceListener  *al,
-                                  AccessibleDeviceListenerCB callback,
-                                  void                      *user_data);
-void cspi_device_listener_remove_cb (AccessibleDeviceListener  *al,
-                                     AccessibleDeviceListenerCB callback);
-void cspi_device_listener_unref (AccessibleDeviceListener *listener);
-
-
-G_END_DECLS
-
-#endif /* __SPI_LISTENER_IMPL_H__ */
diff --git a/cspi/bonobo/cspi-bonobo.c b/cspi/bonobo/cspi-bonobo.c
deleted file mode 100644 (file)
index 797f361..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 Ximian, Inc.
- *           2002 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 <string.h>
-#include <libbonobo.h>
-#include "../cspi-lowlevel.h"
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-
-CORBA_Object
-cspi_dup_ref (CORBA_Object object)
-{
-  return bonobo_object_dup_ref (object, cspi_ev ());
-}
-
-void
-cspi_release_unref (CORBA_Object object)
-{
-    bonobo_object_release_unref (object, NULL); 
-}
-
-SPIBoolean
-cspi_check_ev (const char *error_string)
-{
-  CORBA_Environment *ev = cspi_peek_ev ();
-
-  if (ev->_major != CORBA_NO_EXCEPTION)
-    {
-      char *err;
-
-      err = bonobo_exception_get_text (ev);
-
-      if (!cspi_exception_throw (ev, (char *) error_string)) {
-       fprintf (stderr, "Warning: AT-SPI error: %s: %s\n",
-                error_string, err);
-      }
-
-      g_free (err);
-
-      CORBA_exception_free (ev);
-
-      return FALSE;
-    }
-  else
-    {
-      return TRUE;
-    }
-}
-
-char *
-cspi_exception_get_text (void)
-{
-  char *ret, *txt;
-
-  txt = bonobo_exception_get_text (cspi_ev ());
-  ret = strdup (txt);
-  g_free (txt);
-
-  return ret;
-}
-
-/* 
- * Returns a 'canonicalized' value for DISPLAY,
- * with the screen number stripped off if present.
- */
-static const gchar*
-cspi_display_name (void)
-{
-    static const char *canonical_display_name = NULL;
-    if (!canonical_display_name)
-    {
-        const gchar *display_env = g_getenv ("AT_SPI_DISPLAY");
-       if (!display_env)
-       {
-           display_env = g_getenv ("DISPLAY");
-           if (!display_env || !display_env[0]) 
-               canonical_display_name = ":0";
-           else
-           {
-               gchar *display_p, *screen_p;
-               canonical_display_name = g_strdup (display_env);
-               display_p = strrchr (canonical_display_name, ':');
-               screen_p = strrchr (canonical_display_name, '.');
-               if (screen_p && display_p && (screen_p > display_p))
-               {
-                   *screen_p = '\0';
-               }
-           }
-       }
-       else
-       {
-           canonical_display_name = display_env;
-       }
-    }
-    return canonical_display_name;
-}
-
-static gchar *
-cspi_get_registry_ior (void)
-{
-  Atom AT_SPI_IOR;
-  Atom actual_type;
-  int actual_format;
-  unsigned char *data = NULL;
-  unsigned long nitems;
-  unsigned long leftover;
-  static Display *display = NULL;
-  if (!display)
-    display = XOpenDisplay (cspi_display_name ());
-
-  AT_SPI_IOR = XInternAtom (display, "AT_SPI_IOR", False);
-  XGetWindowProperty(display,
-                     XDefaultRootWindow (display),
-                     AT_SPI_IOR, 0L,
-                     (long)BUFSIZ, False,
-                     (Atom) 31, &actual_type, &actual_format,
-                     &nitems, &leftover, &data);
-  if (data == NULL)
-    g_warning ("AT_SPI_REGISTRY was not started at session startup.");
-
-  return (gchar *) data;
-}
-
-CORBA_Object
-cspi_init (void)
-{
-  CORBA_Object registry = NULL;
-  CORBA_Environment ev;
-  char *ior =  NULL;
-
-  if (!bonobo_init (NULL, NULL))
-    {
-      g_error ("Could not initialize Bonobo");
-    }
-
-  CORBA_exception_init (&ev);
-
-  ior = (char *) cspi_get_registry_ior ();
-  if (ior != NULL)
-    {
-      registry = CORBA_ORB_string_to_object (bonobo_activation_orb_get (),
-                                                ior, &ev);
-    }
-
-  if (ev._major != CORBA_NO_EXCEPTION)
-    {
-      g_error ("AT-SPI error: during registry activation: %s\n",
-              bonobo_exception_get_text (&ev));
-    }
-
-  if (registry == CORBA_OBJECT_NIL)
-    {
-      g_warning ("Could not locate registry");
-    }
-
-  bonobo_activate ();
-
-  return registry;
-}
-
-SPIBoolean
-cspi_ping (CORBA_Object object)
-{
-       return bonobo_unknown_ping (object, NULL);
-}
-
-void
-cspi_main (void)
-{
-  bonobo_main ();
-}
-
-void
-cspi_main_quit (void)
-{
-  bonobo_main_quit ();
-}
diff --git a/cspi/cspi-lowlevel.h b/cspi/cspi-lowlevel.h
deleted file mode 100644 (file)
index cda8931..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2002 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.
- */
-
-#ifndef _SPI_LOWLEVEL_H_
-#define _SPI_LOWLEVEL_H_
-
-/*
- * Private internal - details of the lowlevel at-spi
- * implementation abstraction
- *
- * These methods are implemented in cspi/bonobo/
- */
-
-#include "cspi/spi-private.h"
-
-/* Misc CORBA / bonobo bits */
-
-SPIBoolean   cspi_check_ev           (const char *error_string);
-CORBA_Object cspi_dup_ref            (CORBA_Object object);
-void         cspi_release_unref      (CORBA_Object object);
-char        *cspi_exception_get_text (void);
-CORBA_Object cspi_init               (void);
-SPIBoolean   cspi_ping               (CORBA_Object object);
-void         cspi_main               (void);
-void         cspi_main_quit          (void);
-
-/* Listener bits */
-
-gpointer     cspi_event_listener_new           (void);
-void         cspi_event_listener_unref         (AccessibleEventListener      *listener);
-CORBA_Object cspi_event_listener_get_corba     (AccessibleEventListener      *listener);
-void         cspi_event_listener_add_cb        (AccessibleEventListener      *listener,
-                                               AccessibleEventListenerCB     callback,
-                                               void                         *user_data);
-void         cspi_event_listener_remove_cb     (AccessibleEventListener      *listener,
-                                               AccessibleEventListenerCB     callback);
-
-gpointer     cspi_keystroke_listener_new       (void);
-void         cspi_keystroke_listener_unref     (AccessibleKeystrokeListener  *listener);
-CORBA_Object cspi_keystroke_listener_get_corba (AccessibleKeystrokeListener  *listener);
-void         cspi_keystroke_listener_add_cb    (AccessibleKeystrokeListener  *listener,
-                                               AccessibleKeystrokeListenerCB callback,
-                                               void                         *user_data);
-void         cspi_keystroke_listener_remove_cb (AccessibleKeystrokeListener  *listener,
-                                               AccessibleKeystrokeListenerCB callback);
-
-#endif /* _SPI_LOWLEVEL_H_ */
diff --git a/cspi/spi-impl.h b/cspi/spi-impl.h
deleted file mode 100644 (file)
index 66e8fd8..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-/*
- * A load of opaque handles that people can't poke at.
- */
-#ifndef _SPI_IMPL_H_
-#define _SPI_IMPL_H_
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-typedef struct _Accessible AccessibleUnknown;
-typedef AccessibleUnknown  Accessible;
-
-typedef Accessible AccessibleAction;
-typedef Accessible AccessibleApplication;
-typedef Accessible AccessibleCollection;
-typedef Accessible AccessibleComponent;
-typedef Accessible AccessibleDocument;
-typedef Accessible AccessibleEditableText;
-typedef Accessible AccessibleHyperlink;
-typedef Accessible AccessibleHypertext;
-typedef Accessible AccessibleImage;
-typedef Accessible AccessibleMatchRule;
-typedef Accessible AccessibleRelation;
-typedef Accessible AccessibleSelection;
-typedef Accessible AccessibleStreamableContent;
-typedef Accessible AccessibleTable;
-typedef Accessible AccessibleText;
-typedef Accessible AccessibleValue;
-typedef Accessible AccessibilityRegistry;
-
-/** 
- * AccessibleStateSet:
- * @ref_count: private
- * @states: private
- *
- * An opaque structure representing an accessible object's state,
- * which can then be queried via AccessibleStateSet APIs.
- **/
-typedef void AccessibleStateSet;
-typedef void AccessibleEventListener;
-typedef void AccessibleKeystrokeListener;
-typedef void AccessibleDeviceListener;
-
-typedef unsigned int SPIBoolean;
-#define SPI_FALSE (0)
-#define SPI_TRUE (!SPI_FALSE)
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/cspi/spi-listener.h b/cspi/spi-listener.h
deleted file mode 100644 (file)
index 364d4e3..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-#ifndef _SPI_LISTENER_H_
-#define _SPI_LISTENER_H_
-
-#include <cspi/spi-impl.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/**
- * AccessibleEvent:
- * @type: a string representing the type of the event, with increasing specificity
- * from left to right, delimited by colons.  Leftmost token represents event source type,
- * next token represents event category, and next token represents the subcategory
- * of the event, for instance the specific property, state, or attribute being notified.
- * @source: The #Accessible from which the event originated.
- * @detail1: an event-type-specific integer value.
- * @detail2: an event-type-specific integer value.
- *
- * A structure used to encapsulate event information.
- **/
-typedef struct {
-  const char  *type;
-  Accessible  *source;
-  long         detail1;
-  long         detail2;
-} AccessibleEvent;
-  
-/**
- *AccessibleDeviceEventType:
- *@SPI_KEY_PRESSED: A device key has been pressed.
- *@SPI_KEY_RELEASED: A device key has been released.
- *@SPI_BUTTON_PRESSED: A device button or switch (other than a keyboard key) 
- * has been pressed.
- *@SPI_BUTTON_RELEASED: A device button or switch has been released.
- *
- *The type of an AccessibleDeviceEvent.
- **/
-typedef enum {
-  SPI_KEY_PRESSED  = 1<<0,
-  SPI_KEY_RELEASED = 1<<1,
-  SPI_BUTTON_PRESSED = 1<<2,
-  SPI_BUTTON_RELEASED = 1<<3
-} AccessibleDeviceEventType;
-
-/**
- *AccessibleKeyEventType:
- *
- *This is a synonym for AccessibleDeviceEventType
- **/
-typedef AccessibleDeviceEventType AccessibleKeyEventType;
-
-/**
- * AccessibleDeviceEvent:
- * @keyID: Symbolic representation for the key or switch generating the event, e.g. keysym or button number.
- * @keystring: A symbolic name for the key or switch, or, if is_text is true, a string approximating the
- * inserted text characters which would result from this event, if a text entry field has keyboard focus.
- * @timestamp: A time in ms when this event occurred, relative to some unspecified starting point.  
- * Timestamp values should therefore be used to compare events but should not be tested against a 
- * fixed time.
- * @type: The #AccessibleDeviceEventType identifying the specific type of event.
- * @is_text: A boolean value indicating whether the event represents 'printable' text (i.e. whether it
- * changes the current insertion buffer of a focussed text entry component or not).  Whitespace
- * is considered "printable" in this context, since it typically inserts characters into the buffer.
- *
- * A structure encapsulating information relevant to a device event notification.
- **/
-typedef struct {
-  long                   keyID;
-  short                  keycode;
-  char *                 keystring;
-  long                   timestamp;
-  AccessibleDeviceEventType type;
-  unsigned short         modifiers;
-  SPIBoolean             is_text;      
-} AccessibleDeviceEvent;
-
-typedef AccessibleDeviceEvent AccessibleKeystroke;
-
-/*
- * Function prototype typedefs for Event Listener Callbacks.
- * (see libspi/accessibleeventlistener.h for definition of SpiVoidEventListenerCB).
- *
- * usage: signatures should be
- * void (*AccessibleEventListenerCB) (AccessibleEvent *event);
- *
- * SPIBoolean (*AccessibleKeystrokeListenerCB) (AccessibleKeystrokeEvent *Event);
- * Note that AccessibleKeystrokeListeners may consume the event received
- * if one of their callbacks returns TRUE (see SPI_registerAccessibleKeystrokeListener)
- */
-
-/**
- * AccessibleEventListenerCB:
- * @event: The event for which notification is sent.
- * @user_data: User data which is passed to the callback each time a notification takes place.
- *
- * A function prototype for callbacks via which clients are notified of AT-SPI events.
- * 
- **/
-typedef void       (*AccessibleEventListenerCB)     (const AccessibleEvent     *event,
-                                                    void                      *user_data);
-/**
- * AccessibleKeystrokeListenerCB:
- * @stroke: the #AccessibleKeystroke event for which notification is taking place.
- * @user_data: data passed to the callback each time it is notified, according to the data
- * which was passed in when the listener/callback was registered.
- *
- * A function prototype for a callback function called when a key event notification takes place.
- *
- * Returns: %TRUE if the client wishes to consume the event and prevent its
- * dispatch to other listeners or the currently focussed application, if
- * the relevant callback was registered with the #SPI_KEYLISTENER_CANCONSUME flag.
- **/
-typedef SPIBoolean (*AccessibleKeystrokeListenerCB) (const AccessibleKeystroke *stroke,
-                                                    void                      *user_data);
-/**
- * AccessibleDeviceListenerCB:
- * @stroke: The #AccessibleDeviceEvent for which notification is being received.
- * @user_data: Data which is passed to the client each time this callback is notified.
- *
- * A callback function prototype via which clients receive device event notifications.
- *
- * Returns: %TRUE if the client wishes to consume/preempt the event, preventing it from being
- * relayed to the currently focussed application, %FALSE if the event delivery should proceed as normal.
- **/
-typedef SPIBoolean (*AccessibleDeviceListenerCB)    (const AccessibleDeviceEvent *stroke,
-                                                    void                      *user_data);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/cspi/spi-private.h b/cspi/spi-private.h
deleted file mode 100644 (file)
index 1ea32bf..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2002 Ximian, Inc.
- *           2002 Sun Microsystems 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.
- */
-
-#ifndef _SPI_PRIVATE_H_
-#define _SPI_PRIVATE_H_
-
-/* Private internal implementation details of at-spi. */
-
-#include <libspi/Accessibility.h>
-#include <cspi/spi.h>
-#include "cspi/cspi-lowlevel.h"
-#include "cspi/spi-listener.h"
-
-struct _Accessible {
-       CORBA_Object objref;
-       /* And some other bits */
-       guint        on_loan : 1;
-       guint        ref_count : 30;
-};
-
-struct _AccessibleStateSet {
-       guint   ref_count;
-       GArray *states;
-};
-
-#define SPI_INTERNAL_EVENT_MAGIC 0xc3
-/* 
- * For internal use by CSPI implementation only
- */
-typedef struct {
-  AccessibleEvent event;
-  guint           id;
-  guchar          magic;
-  guchar          type;
-  guint16         ref_count;
-  void           *data; 
-} InternalEvent;
-
-struct _SPIException {
-  SPIExceptionType type;
-  CORBA_Object source;
-  CORBA_Environment *ev;
-  SPIExceptionCode code;
-  char * desc;
-};
-
-#define CSPI_OBJREF(a) (((Accessible *)(a))->objref)
-
-CORBA_Environment     *cspi_ev                (void);
-CORBA_Environment     *cspi_peek_ev           (void);
-SPIBoolean             cspi_exception         (void);
-Accessibility_Registry cspi_registry          (void);
-Accessible            *cspi_object_add        (CORBA_Object corba_object);
-void                   cspi_object_ref        (Accessible  *accessible);
-void                   cspi_object_unref      (Accessible  *accessible);
-Accessible            *cspi_object_borrow     (CORBA_Object corba_object);
-Accessible            *cspi_object_take       (CORBA_Object corba_object);
-void                   cspi_object_return     (Accessible  *accessible);
-SPIBoolean             cspi_accessible_is_a   (Accessible  *accessible,
-                                              const char  *interface_name);
-AccessibleRole         cspi_role_from_spi_role (Accessibility_Role role);
-void                   cspi_streams_close_all (void);
-gboolean               cspi_exception_throw (CORBA_Environment *ev, char *desc_prefix);
-
-AccessibleAttributeSet 
-                     *_cspi_attribute_set_from_sequence (const Accessibility_AttributeSet *seq);
-#define cspi_return_if_fail(val)               \
-       if (!(val))                             \
-               return
-#define cspi_return_val_if_fail(val, ret)      \
-       if (!(val))                             \
-               return (ret)
-
-#define cspi_return_if_ev(err)                 \
-       if (!cspi_check_ev (err))               \
-               return;
-#define cspi_return_val_if_ev(err, ret)        \
-       if (!cspi_check_ev (err))               \
-               return (ret);
-
-#endif /* _SPI_PRIVATE_H_ */
diff --git a/cspi/spi-roletypes.h b/cspi/spi-roletypes.h
deleted file mode 100644 (file)
index 15b8bc0..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-#ifndef _SPI_ROLETYPES_H_
-#define _SPI_ROLETYPES_H_
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/**
- * AccessibleRole:
- * @SPI_ROLE_INVALID: role is not legal, something is wrong with this object
- * @SPI_ROLE_ACCEL_LABEL: object is a label indicating keyboard
- *                              accelerators for the parent
- * @SPI_ROLE_ALERT: Object is used to alert the user about something
- * @SPI_ROLE_ANIMATION: Object contains a dynamic or moving image
- * @SPI_ROLE_ARROW: Object is a 2d directional indicator
- * @SPI_ROLE_CALENDAR: Object contains one or more dates, usually arranged into
- *                     a 2d list
- * @SPI_ROLE_CANVAS: Object that can be drawn into and is used to trap events
- * @SPI_ROLE_CHECK_BOX: Object representd a choice that can be checked or unchecked
- *                    and provides a separate indicator for the current state.
- * @SPI_ROLE_CHECK_MENU_ITEM: Object is a menu item that behaves like a CHECK_BOX
- * @SPI_ROLE_COLOR_CHOOSER: A specialized dialog that lets the user choose a color.
- * @SPI_ROLE_COLUMN_HEADER: The header for a column of data 
- * @SPI_ROLE_COMBO_BOX: A list of choices the user can select from
- * @SPI_ROLE_DATE_EDITOR: Allows entry of a date
- * @SPI_ROLE_DESKTOP_ICON: An inconifed internal frame within a DESKTOP_PANE
- * @SPI_ROLE_DESKTOP_FRAME: A pane that supports internal frames and
- *              iconified versions of those internal frames.
- * @SPI_ROLE_DIAL: A rotating/rotatable valuator
- * @SPI_ROLE_DIALOG: A top level window with title bar and a border
- * @SPI_ROLE_DIRECTORY_PANE: A pane that allows the user to navigate
- *              through and select the contents of a directory.
- * @SPI_ROLE_DRAWING_AREA: An object used for drawing custom user interface elements
- * @SPI_ROLE_FILE_CHOOSER: A specialized dialog that displays the files in the
- *               directory and lets the user select a file, browse a different
- *              directory, or specify a filename.
- * @SPI_ROLE_FILLER: A object that fills up space in a user interface
- * @SPI_ROLE_FONT_CHOOSER: Allows selection of a display font
- * @SPI_ROLE_FRAME: A top level window with a title bar, border, menubar, etc.
- * @SPI_ROLE_GLASS_PANE: A pane that is guaranteed to be painted on top of all
- *               panes beneath it
- * @SPI_ROLE_HTML_CONTAINER: A document container for HTML, whose children
- *               represent the document content.
- * @SPI_ROLE_ICON: A small fixed size picture, typically used to decorate components.
- * @SPI_ROLE_IMAGE: An image, typically static
- * @SPI_ROLE_INTERNAL_FRAME: A frame-like object that is clipped by a desktop pane.
- * @SPI_ROLE_LABEL: An object used to present an icon or short string in an interface
- * @SPI_ROLE_LAYERED_PANE: A specialized pane that allows its children to be drawn in layers
- *                         providing a  form of stacking order.
- * @SPI_ROLE_LIST: An object that presents a list of objects to the user and allows the
- *                         user to select one or more of them.
- * @SPI_ROLE_LIST_ITEM: An object that represents an element of a list.
- * @SPI_ROLE_MENU: An object usually found inside a menu bar that contains a list of
- *                 actions the user can choose from.
- * @SPI_ROLE_MENU_BAR: An object usually drawn at the top of the primary dialog box of an
- *                 application that contains a list of menus the user can choose from.
- * @SPI_ROLE_MENU_ITEM: An object usually contained in a menu that presents an
- *                action the user can choose.
- * @SPI_ROLE_OPTION_PANE: A specialized pane whose primary use is inside a DIALOG 
- * @SPI_ROLE_PAGE_TAB: An object that is a child of a page tab list
- * @SPI_ROLE_PAGE_TAB_LIST: An object that presents a series of panels (or page tabs),
- *       one at a time, through some mechanism provided by the object.
- * @SPI_ROLE_PANEL: A generic container that is often used to group objects.
- * @SPI_ROLE_PASSWORD_TEXT: A text object uses for passwords, or other places where
- *        the text content is not shown visibly to the user.
- * @SPI_ROLE_POPUP_MENU: A temporary window that is usually used to offer the user a
- *        list of choices, and then hides when the user selects one of those choices.
- * @SPI_ROLE_PROGRESS_BAR: An object used to indicate how much of a task has been completed.
- * @SPI_ROLE_PUSH_BUTTON: A specialized object which the user can interact with to tell
- *        the application to do something.
- * @SPI_ROLE_RADIO_BUTTON: A specialized check box that will cause other radio buttons in the
- *        same group to become uncghecked when this one is checked.
- * @SPI_ROLE_RADIO_MENU_ITEM: A specialized menu item that behaves like a 
- *        radio button.
- * @SPI_ROLE_ROOT_PANE: A specialized pane that has a glass pane and a layered pane as its
- *        children.
- * @SPI_ROLE_ROW_HEADER: The header for a row of data
- * @SPI_ROLE_SCROLL_BAR: An object usually used to allow a user to incrementally
- *        view a large amount of data.
- * @SPI_ROLE_SCROLL_PANE: An object that allows a user to incrementally view a large amount
- *         of information.
- * @SPI_ROLE_SEPARATOR: An object usually contained in a menu to provide a visible and
- *        logical separation of the contents in a menu.
- * @SPI_ROLE_SLIDER: An object that allows the user to select from a bounded range.
- * @SPI_ROLE_SPIN_BUTTON: An object which allows selection from a set of choices and
- *                        displays the current choice.
- * @SPI_ROLE_SPLIT_PANE: A specialized panel that presents two other panels at the same time.
- * @SPI_ROLE_STATUS_BAR: An object the display qualitative status information. c.f. PROGRESS_BAR
- * @SPI_ROLE_TABLE: An object used to rpesent information in terms of rows and columns.
- * @SPI_ROLE_TABLE_CELL: An object which is a descendant of a table,
- *        with a row/column location.  A cell may span multiple rows and columns.
- * @SPI_ROLE_TABLE_COLUMN_HEADER: An object which serves to describe a column in a table.
- * @SPI_ROLE_TABLE_ROW_HEADER: An object which serves to label or describe a row in a table.
- * @SPI_ROLE_TEAROFF_MENU_ITEM: A menu item which allows the menu to be removed from
- *                              a menubar and placed in its own window
- * @SPI_ROLE_TERMINAL: An object that emulates a teletype or terminal
- * @SPI_ROLE_TEXT: An object that presents text to the user
- * @SPI_ROLE_TOGGLE_BUTTON: A specialized push button that can be checked or unchecked,
- *       but does not provide a separate indicator for the current state.
- * @SPI_ROLE_TOOL_BAR: A bar or palette usually composed of push buttons or toggle buttons
- * @SPI_ROLE_TOOL_TIP: An object that provides information about another object
- * @SPI_ROLE_TREE: An object used to represent hierarchical information to the user
- * @SPI_ROLE_TREE_TABLE: An object which represents both hierarchical and tabular information
- * @SPI_ROLE_UNKNOWN: The object contains some SpiAccessible information, but its role is
- *                    not known.
- * @SPI_ROLE_VIEWPORT: An object usually used in a scroll pane, which restricts the visual
- *                    area into which its contents are presented.
- * @SPI_ROLE_WINDOW: A top level window with no title or border.
- * @SPI_ROLE_EXTENDED: This object's role is not included in the standard role list and
- *                     should be queried by name.
- * @SPI_ROLE_HEADER: An object that serves as a document header.
- * @SPI_ROLE_FOOTER: An object that serves as a document footer.
- * @SPI_ROLE_PARAGRAPH: An object which is contains a paragraph of text content.
- * @SPI_ROLE_RULER: An object which describes margins and tab stops, etc.  for text objects 
- *                  which it controls (should have CONTROLLER_FOR relation to such). 
- * @SPI_ROLE_APPLICATION: An object which corresponds to a desktop application,
- *                  which may have children of @SPI_ROLE_FRAME or other type.
- * @SPI_ROLE_AUTOCOMPLETE: The object is a dialog or list containing items for 
- *                         insertion into an entry widget, for instance a list 
- *                          of words for completion of a text entry.
- * @SPI_ROLE_EDITBAR: The object is an editable text object in a toolbar
- * @SPI_ROLE_EMBEDDED: The object is an embedded component container.  
- *                     This role is a  "grouping" hint that the contained 
- *                     objects share a context which is different from the 
- *                     container in which this accessible is embedded.
- *                     Uses: document embedding, "panel applets", etc.
- * @SPI_ROLE_ENTRY: The object is a component whose textual content may be entered or modified by the user, provided @SPI_STATE_EDITABLE is present.
- * @SPI_ROLE_CHART: The object is a graphical depiction of quantitative data. It may contain multiple subelements whose attributes and/or description may be queried to obtain both the quantitative data and information about how the data is being presented. The LABELLED_BY relation is particularly important in interpreting objects of this type, as is the accessible-description property.
- * @SPI_ROLE_CAPTION: The object contains descriptive information, usually textual, about another user interface element such as a table, chart, or image.
- * @SPI_ROLE_DOCUMENT_FRAME: The object is a visual frame or container which contains a view of document content. Document frames may occur within another Document instance, in which case the second document may be said to be embedded in the containing instance. HTML frames are often ROLE_DOCUMENT_FRAME. Either this object, or a singleton descendant, should implement the Document interface.
- * @SPI_ROLE_HEADING: The object serves as a heading for content which follows it in a document. The 'heading level' of the heading, if availabe, may be obtained by querying the object's attributes.
- * @SPI_ROLE_PAGE: The object is a containing instance which encapsulates a page of information. @SPI_ROLE_PAGE is used in documents and content which support a paginated navigation model.
- * @SPI_ROLE_SECTION: The object is a containing instance of document content which constitutes a particular 'logical' section of the document. The type of content within a section, and the nature of the section division itself, may be obtained by querying the object's attributes. Sections may be nested.
- * @SPI_ROLE_REDUNDANT_OBJECT: The object is redundant with another object in the hierarchy, and is exposed for purely technical reasons.  Objects of this role should normally be ignored by clients. 
- * @SPI_ROLE_FORM: The object is a container for form controls, for instance as part of a 
- * web form or user-input form within a document.  This role is primarily a tag/convenience for 
- * clients when navigating complex documents, it is not expected that ordinary GUI containers will 
- * always have ATK_ROLE_FORM.
- * @SPI_ROLE_LINK: The object is a hypertext anchor.
- * @SPI_ROLE_INPUT_METHOD_WINDOW: The object is an input method window used
- * to input or compose a text character (typically a "complex text" character).
- * @SPI_ROLE_LAST_DEFINED: Used to determine the end of the role enumeration.
- *
- * Describes the role of an object
- *
- * These are the built-in enumerated roles that UI components can have.
- * Other roles may be added at runtime, so an AccessibleRole >=
- * SPI_ROLE_LAST_DEFINED is not necessarily an error.
- **/
-typedef enum
-{
-  SPI_ROLE_INVALID,
-  SPI_ROLE_ACCEL_LABEL,
-  SPI_ROLE_ALERT,
-  SPI_ROLE_ANIMATION,
-  SPI_ROLE_ARROW,
-  SPI_ROLE_CALENDAR,
-  SPI_ROLE_CANVAS,
-  SPI_ROLE_CHECK_BOX,
-  SPI_ROLE_CHECK_MENU_ITEM,
-  SPI_ROLE_COLOR_CHOOSER,
-  SPI_ROLE_COLUMN_HEADER,
-  SPI_ROLE_COMBO_BOX,
-  SPI_ROLE_DATE_EDITOR,
-  SPI_ROLE_DESKTOP_ICON,
-  SPI_ROLE_DESKTOP_FRAME,
-  SPI_ROLE_DIAL,
-  SPI_ROLE_DIALOG,
-  SPI_ROLE_DIRECTORY_PANE,
-  SPI_ROLE_DRAWING_AREA,
-  SPI_ROLE_FILE_CHOOSER,
-  SPI_ROLE_FILLER,
-  SPI_ROLE_FONT_CHOOSER,
-  SPI_ROLE_FRAME,
-  SPI_ROLE_GLASS_PANE,
-  SPI_ROLE_HTML_CONTAINER,
-  SPI_ROLE_ICON,
-  SPI_ROLE_IMAGE,
-  SPI_ROLE_INTERNAL_FRAME,
-  SPI_ROLE_LABEL,
-  SPI_ROLE_LAYERED_PANE,
-  SPI_ROLE_LIST,
-  SPI_ROLE_LIST_ITEM,
-  SPI_ROLE_MENU,
-  SPI_ROLE_MENU_BAR,
-  SPI_ROLE_MENU_ITEM,
-  SPI_ROLE_OPTION_PANE,
-  SPI_ROLE_PAGE_TAB,
-  SPI_ROLE_PAGE_TAB_LIST,
-  SPI_ROLE_PANEL,
-  SPI_ROLE_PASSWORD_TEXT,
-  SPI_ROLE_POPUP_MENU,
-  SPI_ROLE_PROGRESS_BAR,
-  SPI_ROLE_PUSH_BUTTON,
-  SPI_ROLE_RADIO_BUTTON,
-  SPI_ROLE_RADIO_MENU_ITEM,
-  SPI_ROLE_ROOT_PANE,
-  SPI_ROLE_ROW_HEADER,
-  SPI_ROLE_SCROLL_BAR,
-  SPI_ROLE_SCROLL_PANE,
-  SPI_ROLE_SEPARATOR,
-  SPI_ROLE_SLIDER,
-  SPI_ROLE_SPIN_BUTTON,
-  SPI_ROLE_SPLIT_PANE,
-  SPI_ROLE_STATUS_BAR,
-  SPI_ROLE_TABLE,
-  SPI_ROLE_TABLE_CELL,
-  SPI_ROLE_TABLE_COLUMN_HEADER,
-  SPI_ROLE_TABLE_ROW_HEADER,
-  SPI_ROLE_TEAROFF_MENU_ITEM,
-  SPI_ROLE_TERMINAL,
-  SPI_ROLE_TEXT,
-  SPI_ROLE_TOGGLE_BUTTON,
-  SPI_ROLE_TOOL_BAR,
-  SPI_ROLE_TOOL_TIP,
-  SPI_ROLE_TREE,
-  SPI_ROLE_TREE_TABLE,
-  SPI_ROLE_UNKNOWN,
-  SPI_ROLE_VIEWPORT,
-  SPI_ROLE_WINDOW,
-  SPI_ROLE_EXTENDED,
-  SPI_ROLE_HEADER,
-  SPI_ROLE_FOOTER,
-  SPI_ROLE_PARAGRAPH,
-  SPI_ROLE_RULER,
-  SPI_ROLE_APPLICATION,
-  SPI_ROLE_AUTOCOMPLETE,
-  SPI_ROLE_EDITBAR,
-  SPI_ROLE_EMBEDDED,
-  SPI_ROLE_ENTRY,
-  SPI_ROLE_CHART,
-  SPI_ROLE_CAPTION,
-  SPI_ROLE_DOCUMENT_FRAME,
-  SPI_ROLE_HEADING,
-  SPI_ROLE_PAGE,
-  SPI_ROLE_SECTION,
-  SPI_ROLE_FORM,
-  SPI_ROLE_REDUNDANT_OBJECT,
-  SPI_ROLE_LINK,
-  SPI_ROLE_INPUT_METHOD_WINDOW,
-  SPI_ROLE_LAST_DEFINED
-} AccessibleRole;
-
-char* AccessibleRole_getName (AccessibleRole role);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/cspi/spi-statetypes.h b/cspi/spi-statetypes.h
deleted file mode 100644 (file)
index 06f2155..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-#ifndef _SPI_STATETYPES_H_
-#define _SPI_STATETYPES_H_
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/**
- *AccessibleState:
- *@SPI_STATE_INVALID: Indicates an invalid state
- *@SPI_STATE_ACTIVE: Indicates a window is currently the active window 
- *@SPI_STATE_ARMED: Indicates that the object is armed
- *@SPI_STATE_BUSY: Indicates the current object is busy 
- *@SPI_STATE_CHECKED: Indicates this object is currently checked 
- *@SPI_STATE_COLLAPSED: Indicates this object is collapsed 
- *@SPI_STATE_DEFUNCT: Indicates the user interface object corresponding to this object no longer exists 
- *@SPI_STATE_EDITABLE: Indicates the user can change the contents of this object
- *@SPI_STATE_ENABLED: Indicates that this object is enabled 
- *@SPI_STATE_EXPANDABLE: Indicates this object allows progressive disclosure of its children 
- *@SPI_STATE_EXPANDED: Indicates this object its expanded
- *@SPI_STATE_FOCUSABLE: Indicates this object can accept keyboard focus, which means all events resulting from typing on the keyboard will normally be passed to it when it has focus
- *@SPI_STATE_FOCUSED: Indicates this object currently has the keyboard focus 
- *@SPI_STATE_HORIZONTAL: Indicates the orientation of thsi object is horizontal
- *@SPI_STATE_ICONIFIED: Indicates this object is minimized and is represented only by an icon
- *@SPI_STATE_MODAL: Indicates something must be done with this object before the user can interact with an object in a different window
- *@SPI_STATE_MULTI_LINE: Indicates this (text) object can contain multiple lines of text
- *@SPI_STATE_MULTISELECTABLE: Indicates this object allows more than one of its children to be selected at the same time
- *@SPI_STATE_OPAQUE: Indicates this object paints every pixel within its rectangular region
- *@SPI_STATE_PRESSED: Indicates this object is currently pressed
- *@SPI_STATE_RESIZABLE: Indicates the size of this object is not fixed
- *@SPI_STATE_SELECTABLE: Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that can be selected
- *@SPI_STATE_SELECTED: Indicates this object is the child of an object that allows its children to be selected and that this child is one of those children that has been selected
- *@SPI_STATE_SENSITIVE: Indicates this object is sensitive
- *@SPI_STATE_SHOWING: Indicates this object, the object's parent, the object's parent's parent, and so on, are all visible
- *@SPI_STATE_SINGLE_LINE: Indicates this (text) object can contain only a single line of text
- *@SPI_STATE_STALE: Indicates that the index associated with this object has changed since the user accessed the object
- *@SPI_STATE_TRANSIENT: Indicates this object is transient
- *@SPI_STATE_VERTICAL: Indicates the orientation of this object is vertical
- *@SPI_STATE_VISIBLE: Indicates this object is visible 
- *@SPI_STATE_MANAGES_DESCENDANTS: Indicates that "active-descendant-changed" 
- * event is sent when children become 'active' (i.e. are selected or navigated 
- * to onscreen).  Used to prevent need to enumerate all children in very large 
- * containers, like tables.
- *@SPI_STATE_INDETERMINATE: Indicates that a check box is in a state other than checked or not checked.
- *@SPI_STATE_TRUNCATED: Indicates that an object is truncated, e.g. a text value in a speradsheet cell.
- *@SPI_STATE_REQUIRED: Indicates that explicit user interaction with an object is required by the user interface, e.g. a required field in a "web-form" interface.
- *@SPI_STATE_INVALID_ENTRY: Indicates that the object has encountered an error condition due to failure of input validation. For instance, a form control may acquire this state in response to invalid or malformed user input.
- *@SPI_STATE_SUPPORTS_AUTOCOMPLETION: Indicates that the object may exhibit "typeahead" behavior in response to user keystrokes, e.g. one keystroke may result in the insertion of several characters into an entry, or result in the auto-selection of an item in a list.  This state supplants @SPI_ROLE_AUTOCOMPLETE.
- *@SPI_STATE_SELECTABLE_TEXT:Indicates that the object in question supports text selection. It should only be exposed on objects which implement the Text interface, in order to distinguish this state from @SPI_STATE_SELECTABLE, which infers that the object in question is a selectable child of an object which implements Selection. While similar, text selection and subelement selection are distinct operations.
- *@SPI_STATE_IS_DEFAULT: Indicates that the object is the "default" active component, i.e. the object which is activated by an end-user press of the "Enter" or "Return" key.  Typically a "close" or "submit" button.
- *@SPI_STATE_VISITED: Indicates that the object (typically a hyperlink) has already been 'activated', and/or its backing data has already been downloaded, rendered, or otherwise "visited".
- *@SPI_STATE_LAST_DEFINED: Not a valid state, used for finding end of enumeration
- *
- *The possibles states of an object.
- **/
-typedef enum
-{
-  SPI_STATE_INVALID,
-  SPI_STATE_ACTIVE,
-  SPI_STATE_ARMED,
-  SPI_STATE_BUSY,
-  SPI_STATE_CHECKED,
-  SPI_STATE_COLLAPSED,
-  SPI_STATE_DEFUNCT,
-  SPI_STATE_EDITABLE,
-  SPI_STATE_ENABLED,
-  SPI_STATE_EXPANDABLE,
-  SPI_STATE_EXPANDED,
-  SPI_STATE_FOCUSABLE,
-  SPI_STATE_FOCUSED,
-  SPI_STATE_HORIZONTAL,
-  SPI_STATE_ICONIFIED,
-  SPI_STATE_MODAL,
-  SPI_STATE_MULTI_LINE,
-  SPI_STATE_MULTISELECTABLE,
-  SPI_STATE_OPAQUE,
-  SPI_STATE_PRESSED,
-  SPI_STATE_RESIZABLE,
-  SPI_STATE_SELECTABLE,
-  SPI_STATE_SELECTED,
-  SPI_STATE_SENSITIVE,
-  SPI_STATE_SHOWING,
-  SPI_STATE_SINGLE_LINE,
-  SPI_STATE_STALE,
-  SPI_STATE_TRANSIENT,
-  SPI_STATE_VERTICAL,
-  SPI_STATE_VISIBLE,
-  SPI_STATE_MANAGES_DESCENDANTS, 
-  SPI_STATE_INDETERMINATE, 
-  SPI_STATE_TRUNCATED,
-  SPI_STATE_REQUIRED,
-  SPI_STATE_INVALID_ENTRY,
-  SPI_STATE_SUPPORTS_AUTOCOMPLETION,
-  SPI_STATE_SELECTABLE_TEXT,
-  SPI_STATE_IS_DEFAULT,
-  SPI_STATE_VISITED,
-  SPI_STATE_LAST_DEFINED
-} AccessibleState;
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/cspi/spi.h b/cspi/spi.h
deleted file mode 100644 (file)
index ba2d319..0000000
+++ /dev/null
@@ -1,1244 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-#ifndef _SPI_H
-#define _SPI_H
-
-#include <cspi/spi-impl.h>
-/*
- * Definitions for AccessibleRole, AccessibleState,
- * and event listeners.
- */
-#include <cspi/spi-roletypes.h>
-#include <cspi/spi-statetypes.h>
-#include <cspi/spi-listener.h>
-
-/*
- * Auxiliary typedefs and mask definitions
- */
-#include <libspi/keymasks.h>
-
-#ifdef  __cplusplus
-extern "C" {
-#endif
-
-/**
- *AccessibleCollectionMatchType:
- *
- *@SPI_COLLECTION_MATCH_INVALID        
- *@SPI_COLLECTION_MATCH_ALL    TRUE if all of the criteria are met
- *@SPI_COLLECTION_MATCH_ANY    TRUE if any of the criteria are met
- *@SPI_COLLECTION_MATCH_NONE   TRUE if none of the criteria are met
- *@SPI_COLLECTION_MATCH_EMPTY  Same as MATCH_ALL if the criteria is non-empty; 
- * for empty criteria this rule requires returned value to also have empty set.
- *@SPI_COLLECTION_MATCH_LAST_DEFINED   
- *
- **/
-typedef enum
-{
-     SPI_COLLECTION_MATCH_INVALID,
-     SPI_COLLECTION_MATCH_ALL,
-     SPI_COLLECTION_MATCH_ANY,
-     SPI_COLLECTION_MATCH_NONE,
-     SPI_COLLECTION_MATCH_EMPTY,
-     SPI_COLLECTION_MATCH_LAST_DEFINED
-}AccessibleCollectionMatchType;
-
-
-/**
- *AccessibleTextBoundaryType:
- *@SPI_TEXT_BOUNDARY_CHAR: Delimiter is the current character's bounds.
- *@SPI_TEXT_BOUNDARY_CURSOR_POS: Delimiter is the current text caret position.
- *@SPI_TEXT_BOUNDARY_WORD_START: Bounds run from the first character of a word to the first 
- * character of the following word (i.e. including trailing whitespace, if any) within the text object.
- *@SPI_TEXT_BOUNDARY_WORD_END: Bounds run from the last character of a word to the last 
- * character of the following word (i.e. including leading whitespace) within the text object.
- *@SPI_TEXT_BOUNDARY_SENTENCE_START: Bounds run from the first character of a sentence to the first 
- * character of the next sentence in the text object.
- *@SPI_TEXT_BOUNDARY_SENTENCE_END: Bounds run from the last character of a sentence to the last 
- * character of the next sentence in the text object.
- *@SPI_TEXT_BOUNDARY_LINE_START: Bounds span one line of text, with the line delimiter at the end of the
- * bounds, if present, within the current text object.
- *@SPI_TEXT_BOUNDARY_LINE_END: Bounds span one line of text, including a preceding line delimiter
- * if present within the current text object.
- *@SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE: Bounds span the run, relative to the specified offset and
- * text accessor API rules, over which the attributes of the text object are invariant.  
- *
- *Text boundary types used for specifying boundaries for regions of text.
- **/
-typedef enum
-{
-  SPI_TEXT_BOUNDARY_CHAR,
-  SPI_TEXT_BOUNDARY_CURSOR_POS,
-  SPI_TEXT_BOUNDARY_WORD_START,
-  SPI_TEXT_BOUNDARY_WORD_END,
-  SPI_TEXT_BOUNDARY_SENTENCE_START,
-  SPI_TEXT_BOUNDARY_SENTENCE_END,
-  SPI_TEXT_BOUNDARY_LINE_START,
-  SPI_TEXT_BOUNDARY_LINE_END,
-  SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE
-} AccessibleTextBoundaryType;
-
-/**
- *AccessibleTextClipType
- *@SPI_TEXT_CLIP_NONE: No clipping to be done
- *@SPI_TEXT_CLIP_MIN: Text clipped by min coordinate is omitted
- *@SPI_TEXT_CLIP_MAX: Text clipped by max coordinate is omitted
- *@SPI_TEXT_CLIP_BOTH: Only text fully within mix/max bound is retained
- *
- *Describes the type of clipping required.
- **/
-typedef enum
-{
-  SPI_TEXT_CLIP_NONE,
-  SPI_TEXT_CLIP_MIN,
-  SPI_TEXT_CLIP_MAX,
-  SPI_TEXT_CLIP_BOTH
-} AccessibleTextClipType;
-
-/**
- *AccessibleRelationType:
- *@SPI_RELATION_NULL: Not used, this is an invalid value for this enumeration.
- *@SPI_RELATION_LABEL_FOR: Indicates an object is a label for one or more target objects.
- *@SPI_RELATION_LABELED_BY: Indicates an object is labelled by one or more target objects.
- *@SPI_RELATION_CONTROLLED_BY: Indicates an object controlled by one or more target objects.
- *@SPI_RELATION_CONTROLLER_FOR: Indicates an object is an controller for one or more target objects.
- *@SPI_RELATION_MEMBER_OF: Indicates an object is a member of a group of one or
-more target objects.
- *@SPI_RELATION_NODE_CHILD_OF: Indicates an object is a cell in a treetable which is displayed because a cell in the same column is expanded and identifies that cell.
- *@SPI_RELATION_EXTENDED: This value indicates that a relation other than those pre-specified by this version of AT-SPI
- * is present.
- *@SPI_RELATION_FLOWS_TO: Indicates that the object has content that flows logically to another
- *  AtkObject in a sequential way, (for instance text-flow).
- *@SPI_RELATION_FLOWS_FROM: Indicates that the object has content that flows logically from
- *  another AtkObject in a sequential way, (for instance text-flow).
- *@SPI_RELATION_SUBWINDOW_OF: Indicates a subwindow attached to a component but otherwise has no connection in the UI heirarchy to that component.
- *@SPI_RELATION_EMBEDS: Indicates that the object visually embeds
- *  another object's content, i.e. this object's content flows around
- *  another's content.
- *@SPI_RELATION_EMBEDDED_BY: Inverse of %SPI_RELATION_EMBEDS, indicates that
- *  this object's content is visualy embedded in another object.
- *@SPI_RELATION_POPUP_FOR: Indicates that an object is a popup for another object.
- *@SPI_RELATION_PARENT_WINDOW_OF: Indicates that an object is a parent window of another object.
- *@SPI_RELATION_DESCRIBED_BY: Indicates that another object provides descriptive information about this object; more verbose than %SPI_RELATION_LABELLED_BY.
- *@SPI_RELATION_DESCRIPTION_FOR: Indicates that an object provides descriptive information about another object; more verbose than %SPI_RELATION_LABEL_FOR.
- *@SPI_RELATION_LAST_DEFINED: Do not use, this is an implementation detail used
- *  to identify the size of this enumeration.
- *
- *Describes the type of the relation
- **/
-typedef enum
-{
-  SPI_RELATION_NULL,
-  SPI_RELATION_LABEL_FOR,
-  SPI_RELATION_LABELED_BY,
-  SPI_RELATION_CONTROLLER_FOR,
-  SPI_RELATION_CONTROLLED_BY,
-  SPI_RELATION_MEMBER_OF,
-  SPI_RELATION_NODE_CHILD_OF,
-  SPI_RELATION_EXTENDED,
-  SPI_RELATION_FLOWS_TO,
-  SPI_RELATION_FLOWS_FROM,
-  SPI_RELATION_SUBWINDOW_OF,
-  SPI_RELATION_EMBEDS,
-  SPI_RELATION_EMBEDDED_BY,
-  SPI_RELATION_POPUP_FOR,
-  SPI_RELATION_PARENT_WINDOW_OF,
-  SPI_RELATION_DESCRIPTION_FOR,
-  SPI_RELATION_DESCRIBED_BY,
-  SPI_RELATION_LAST_DEFINED
-} AccessibleRelationType;
-
-
-/* don't change the order of these ! */
-/**
- *AccessibleCoordType:
- *@SPI_COORD_TYPE_SCREEN: specifies xy coordinates relative to the screen
- *@SPI_COORD_TYPE_WINDOW: specifies xy coordinates relative to an object's
- * top-level window
- *
- *Specifies how xy coordinates are to be interpreted. Used by functions such
- *as AccessibleComponent_getPosition() and AccessibleText_getCharacterExtents()
- **/
-typedef enum {
-  SPI_COORD_TYPE_SCREEN,
-  SPI_COORD_TYPE_WINDOW
-} AccessibleCoordType;
-
-/**
- *AccessibleKeySynthType:
- *@SPI_KEY_PRESS: Generates a keypress event (requires a subsequent #SPI_KEY_RELEASE event)
- *@SPI_KEY_RELEASE: Generates a key-release event
- *@SPI_KEY_PRESSRELEASE: Generates a key press/release event pair.
- *@SPI_KEY_SYM: Injects a "keysym" event into the stream, as if a press/release pair occurred; allows 
- * the user to specify the key via its symbolic name, as opposed to simulating a hardware press of a 
- * specific key.
- *@SPI_KEY_STRING: Injects one or more keysym events into the keyboard buffer, or directly inserts 
- * a string value into the currently focussed text widget, if the widgets supports this.
- * #SPI_KEY_STRING synthesis provides a shortcut for text substring insertion, and also allows the
- * insertion of text which is not currently available via the current keyboard's keymap.
- *
- * Specifies the type of a generated event.
- **/
-typedef enum {
-  SPI_KEY_PRESS,
-  SPI_KEY_RELEASE, 
-  SPI_KEY_PRESSRELEASE,
-  SPI_KEY_SYM,
-  SPI_KEY_STRING
-} AccessibleKeySynthType;
-
-/**
- *AccessibleKeyListenerSyncType:
- *@SPI_KEYLISTENER_NOSYNC: Events may be delivered asynchronously, 
- * which means in some cases they may already have been delivered to the 
- * application before the AT client receives the notification.  
- *@SPI_KEYLISTENER_SYNCHRONOUS: Events are delivered synchronously, before the 
- * currently focussed application sees them.  
- *@SPI_KEYLISTENER_CANCONSUME: Events may be consumed by the AT client.  Presumes and
- * requires #SPI_KEYLISTENER_SYNCHRONOUS, incompatible with #SPI_KEYLISTENER_NOSYNC.
- *@SPI_KEYLISTENER_ALL_WINDOWS: Events are received not from the application toolkit layer, but
- * from the device driver or windowing system subsystem; such notifications are 'global' in the 
- * sense that they are not broken or defeated by applications that participate poorly
- * in the accessibility APIs, or not at all; however because of the intrusive nature of
- * such snooping, it can have side-effects on certain older platforms.  If unconditional
- * event notifications, even when inaccessible or "broken" applications have focus, are not
- * required, it may be best to avoid this enum value/flag.
- *
- *Specified the tyupe of a key listener event.
- * Certain of the values above can and should be bitwise-'OR'ed
- * together, observing the compatibility limitations specified in the description of
- * each value.  For instance, #SPI_KEYLISTENER_ALL_WINDOWS | #SPI_KEYLISTENER_CANCONSUME is
- * a commonly used combination which gives the AT complete control over the delivery of matching
- * events.  However, such filters should be used sparingly as they may have a negative impact on 
- * system performance.
- **/
-typedef enum {
-  SPI_KEYLISTENER_NOSYNC = 0,
-  SPI_KEYLISTENER_SYNCHRONOUS = 1,
-  SPI_KEYLISTENER_CANCONSUME = 2,
-  SPI_KEYLISTENER_ALL_WINDOWS = 4
-} AccessibleKeyListenerSyncType;
-
-
-/**
- *AccessibleStreamableContentSeekType
- *@SPI_STREAM_SEEK_SET: seek from the 'top' of the streamable
- *@SPI_STREAM_SEEK_CUR: seek from the current position in the stream
- *@SPI_STREAM_SEEK_END: seek from the end of the stream (if known)
- *
- *The seek type for a specified offset in AccessibleStreamableContent_seek.
- **/
-typedef enum
-{
-  SPI_STREAM_SEEK_SET,
-  SPI_STREAM_SEEK_CUR,
-  SPI_STREAM_SEEK_END
-} AccessibleStreamableContentSeekType;
-
-/**
- * SPIException:
- * @type: private
- * @source: private
- * @ev: private
- * @code: private
- * @desc: private
- *
- * An opaque object encapsulating information about thrown exceptions.
- **/
-typedef struct _SPIException SPIException;
-
-/**
- * SPIExceptionHandler:
- * @err: points to the SPIException opaque object.
- * @is_fatal: indicates whether the exception is a fatal error or not.
- *
- * A function type for functions to be called when exceptions occur.
- *
- * Returns 
- **/
-typedef SPIBoolean (*SPIExceptionHandler) (SPIException *err, SPIBoolean is_fatal);
-
-/**
- * SPIExceptionCode:
- * @SPI_EXCEPTION_UNSPECIFIED: An exception of unknown type, or which doesn't fit the other types.
- * @SPI_EXCEPTION_DISCONNECT: Communication with the object or service has been disconnected;
- * this usually means that the object or service has died or exited.
- * @SPI_EXCEPTION_NO_IMPL: The object or service is missing the implementation for a request.
- * @SPI_EXCEPTION_IO: The communications channel has become corrupted, blocked, or is otherwise in a bad state.
- * @SPI_EXCEPTION_BAD_DATA: The data received or sent over the interface has been identified as 
- * improperly formatted or otherwise fails to match the expectations.
- *
- * Exception codes indicating what's gone wrong in an AT-SPI call.
- **/
-typedef enum {
-       SPI_EXCEPTION_UNSPECIFIED,
-       SPI_EXCEPTION_DISCONNECT,
-       SPI_EXCEPTION_NO_IMPL,
-       SPI_EXCEPTION_IO,
-       SPI_EXCEPTION_BAD_DATA
-} SPIExceptionCode;
-
-/**
- * SPIExceptionType:
- * @SPI_EXCEPTION_SOURCE_UNSPECIFIED: Don't know or can't tell where the problem is
- * @SPI_EXCEPTION_SOURCE_ACCESSIBLE: The source of an event or query (i.e. an app) has thrown the exception.
- * @SPI_EXCEPTION_SOURCE_REGISTRY: The AT-SPI registry has thrown the exception or cannot be reached.
- * @SPI_EXCEPTION_SOURCE_DEVICE: The device event subsystem has encountered an error condition.
- *
- * The general source of the failure, i.e. whether the app, registry, or device system has encountered trouble.
- **/
-typedef enum {
-       SPI_EXCEPTION_SOURCE_UNSPECIFIED,
-       SPI_EXCEPTION_SOURCE_ACCESSIBLE,
-       SPI_EXCEPTION_SOURCE_REGISTRY,
-       SPI_EXCEPTION_SOURCE_DEVICE
-} SPIExceptionType;
-
-typedef unsigned long AccessibleKeyEventMask;
-typedef unsigned long AccessibleDeviceEventMask;
-/**
- * SPIRect:
- * @x: The position of the minimum x value of the rectangle (i.e. left hand corner)
- * @y: The position of the minimum y value of the rectangle's bounds.
- * @width: Width of the rectangle in pixels.
- * @height: Height of the rectangle in pixels.
- *
- * A structure encapsulating a rectangle. 
- **/
-typedef struct {
-       long x;
-       long y;
-       long width;
-       long height;
-} SPIRect;
-
-/**
- *AccessibleComponentLayer:
- *@SPI_LAYER_INVALID: The layer cannot be determined or is somehow undefined.
- *@SPI_LAYER_BACKGROUND: Component belongs to the destop background.
- *@SPI_LAYER_CANVAS: Component is a canvas backdrop or drawing area.
- *@SPI_LAYER_WIDGET: Component is a 'normal' widget.
- *@SPI_LAYER_MDI: Component is drawn in the MDI layer and may have valid
- *                         Z-information relative to other MDI-layer components.
- *@SPI_LAYER_POPUP: Component is in the popup layer, above other widgets and
- *                         MDI components.
- *@SPI_LAYER_OVERLAY: Component is in the overlay plane - this value is reserved
- *                         for future use.
- *@SPI_LAYER_WINDOW: Component is in the window layer and have valid Z-information
- *                   relative to other window-layer components.
- *@SPI_LAYER_LAST_DEFINED: Used to determine the last valid value in the enum,
- *                         should not be encountered.  
- *
- * Describes the layer of a component.
- *
- * These enumerated "layer values" are used when determining which UI
- * rendering layer a component is drawn into, which can help in making
- * determinations of when components occlude one another.
- **/
-typedef enum {
-    SPI_LAYER_INVALID,
-    SPI_LAYER_BACKGROUND,
-    SPI_LAYER_CANVAS,
-    SPI_LAYER_WIDGET,
-    SPI_LAYER_MDI,
-    SPI_LAYER_POPUP,
-    SPI_LAYER_OVERLAY,
-    SPI_LAYER_WINDOW,
-    SPI_LAYER_LAST_DEFINED     
-} AccessibleComponentLayer;
-
-
-/**
- * AccessibleTextRange:
- * @start: the first nominal character position within the range.
- * @end: the first nominal character position following the range.
- * @content: The actual text content between @start and @end, as a UTF-8 string.
- *
- * Structure which encapsulates a text range - must be associated with an
- *          AccessibleText-implementing object.
- **/
-typedef struct _AccessibleTextRange
-{
-  long int        start;
-  long int        end;
-  char           *contents;
-} AccessibleTextRange;
-
-/**
- * AccessibleKeySet:
- * @keysyms:
- * @keycodes:
- * @len:
- *
- * Structure containing identifying information about a set of keycode or
- *        keysyms.
- **/
-typedef struct _AccessibleKeySet
-{
-  unsigned long  *keysyms;
-  unsigned short *keycodes;
-  char          **keystrings;
-  short           len;
-} AccessibleKeySet;
-
-/*
- * A special value for an AccessibleKeySet type, which tacitly
- * includes all keycodes and keyvals for the specified modifier set.
- */
-#define SPI_KEYSET_ALL_KEYS NULL
-
-typedef unsigned long AccessibleModifierMaskType;
-/**
- *AccessibleKeyMaskType:
- *
- *AccessibleKeyMaskType is a mask which is a set of key event modifiers
- *which is specified in SPI_registerAccessibleKeystrokeListener.
- **/
-
-typedef AccessibleModifierMaskType AccessibleKeyMaskType;
-
-typedef struct _AccessibleAttributeSet
-{
-    int len;
-    char **attributes;
-} AccessibleAttributeSet;
-
-typedef struct _AccessibleRoleSet
-{
-     int len;
-     AccessibleRole *roles;
-} AccessibleRoleSet;
-
-
-
-/* Basic SPI initialization and event loop function prototypes */
-
-int              SPI_init         (void);
-void             SPI_event_main   (void);
-void             SPI_event_quit   (void);
-SPIBoolean       SPI_eventIsReady (void);
-AccessibleEvent *SPI_nextEvent    (SPIBoolean waitForEvent);
-int              SPI_exit         (void);
-
-/* Event Listener creation and support.  */
-
-void                      SPI_freeAccessibleKeySet (
-                                                  AccessibleKeySet         *keyset);
-AccessibleKeySet        * SPI_createAccessibleKeySet (
-                                                  int                       len,
-                                                  const char               *keysyms,
-                                                  short                    *keycodes,
-                                                  const char              **keystrings);
-AccessibleEventListener * SPI_createAccessibleEventListener (
-                                                  AccessibleEventListenerCB callback,
-                                                  void                     *user_data);
-SPIBoolean                AccessibleEventListener_addCallback (
-                                                  AccessibleEventListener  *listener,
-                                                  AccessibleEventListenerCB callback,
-                                                  void                     *user_data);
-SPIBoolean                AccessibleEventListener_removeCallback (
-                                                  AccessibleEventListener  *listener,
-                                                  AccessibleEventListenerCB callback);
-void                      AccessibleEventListener_unref (
-                                                  AccessibleEventListener  *listener);
-
-/* Device Event Listener creation and support.  */
-
-/* First four are deprecated in favor of the last four; really just a re-name */
-
-AccessibleKeystrokeListener * SPI_createAccessibleKeystrokeListener (
-                                       AccessibleKeystrokeListenerCB callback,
-                                       void                         *user_data);
-SPIBoolean                    AccessibleKeystrokeListener_addCallback (
-                                       AccessibleKeystrokeListener  *listener,
-                                       AccessibleKeystrokeListenerCB callback,
-                                       void                         *user_data);
-SPIBoolean                    AccessibleKeystrokeListener_removeCallback (
-                                       AccessibleKeystrokeListener *listener,
-                                       AccessibleKeystrokeListenerCB callback);
-void                          AccessibleKeystrokeListener_unref (
-                                       AccessibleKeystrokeListener *listener);
-
-AccessibleDeviceListener   * SPI_createAccessibleDeviceListener (
-                                       AccessibleDeviceListenerCB callback,
-                                       void                      *user_data);
-SPIBoolean                    AccessibleDeviceListener_addCallback (
-                                       AccessibleDeviceListener  *listener,
-                                       AccessibleDeviceListenerCB callback,
-                                       void                      *user_data);
-SPIBoolean                    AccessibleDeviceListener_removeCallback (
-                                       AccessibleDeviceListener  *listener,
-                                       AccessibleDeviceListenerCB callback);
-void                          AccessibleDeviceListener_unref (
-                                       AccessibleDeviceListener *listener);
-
-/* Global functions serviced by the registry */
-
-SPIBoolean SPI_registerGlobalEventListener           (
-                                      AccessibleEventListener *listener,
-                                      const char              *eventType);
-SPIBoolean SPI_deregisterGlobalEventListener         (
-                                      AccessibleEventListener *listener,
-                                      const char              *eventType);
-SPIBoolean SPI_deregisterGlobalEventListenerAll      (
-                                      AccessibleEventListener *listener);
-SPIBoolean SPI_registerAccessibleKeystrokeListener   (
-                                       AccessibleKeystrokeListener *listener,
-                                      AccessibleKeySet             *keys,
-                                      AccessibleKeyMaskType         modmask,
-                                      AccessibleKeyEventMask        eventmask,
-                                      AccessibleKeyListenerSyncType sync_type);
-SPIBoolean SPI_deregisterAccessibleKeystrokeListener (
-                                      AccessibleKeystrokeListener *listener,
-                                      AccessibleKeyMaskType        modmask);
-
-SPIBoolean SPI_registerDeviceEventListener   (
-                                       AccessibleDeviceListener   *listener,
-                                      AccessibleDeviceEventMask   eventmask,
-                                      void                       *filter);
-SPIBoolean SPI_deregisterDeviceEventListener (
-                                      AccessibleDeviceListener   *listener,
-                                      void                       *filter);
-
-int         SPI_getDesktopCount                  (void);
-Accessible *SPI_getDesktop                       (int i);
-int         SPI_getDesktopList                   (Accessible ***desktop_list);
-void        SPI_freeDesktopList                  (Accessible  **desktop_list);
-
-SPIBoolean  SPI_generateKeyboardEvent            (long int                    keyval,
-                                                 char                       *keystring,
-                                                 AccessibleKeySynthType      synth_type);
-
-SPIBoolean  SPI_generateMouseEvent               (long int x, long int y, char *name);
-
-/* Accessible function prototypes  */
-
-void                 Accessible_ref              (Accessible *obj);
-void                 Accessible_unref            (Accessible *obj);
-char *               Accessible_getName          (Accessible *obj);
-char *               Accessible_getDescription   (Accessible *obj);
-Accessible *         Accessible_getParent        (Accessible *obj);
-long                 Accessible_getChildCount    (Accessible *obj);
-Accessible *         Accessible_getChildAtIndex  (Accessible *obj,
-                                                 long int    childIndex);
-long                 Accessible_getIndexInParent (Accessible *obj);
-AccessibleRelation **Accessible_getRelationSet   (Accessible *obj);
-AccessibleRole       Accessible_getRole          (Accessible *obj);
-char *               Accessible_getRoleName      (Accessible *obj);
-char *               Accessible_getLocalizedRoleName (Accessible *obj);
-AccessibleStateSet * Accessible_getStateSet      (Accessible *obj);
-AccessibleAttributeSet *Accessible_getAttributes (Accessible *obj);
-AccessibleApplication *Accessible_getHostApplication (Accessible *obj);
-
-/* Interface query methods */
-
-SPIBoolean Accessible_isAction            (Accessible *obj);
-SPIBoolean Accessible_isApplication       (Accessible *obj);
-SPIBoolean Accessible_isCollection        (Accessible *obj);
-SPIBoolean Accessible_isComponent         (Accessible *obj);
-SPIBoolean Accessible_isDocument          (Accessible *obj);
-SPIBoolean Accessible_isEditableText      (Accessible *obj);
-SPIBoolean Accessible_isHypertext         (Accessible *obj);
-SPIBoolean Accessible_isImage             (Accessible *obj);
-SPIBoolean Accessible_isMatchRule         (Accessible *obj);
-SPIBoolean Accessible_isSelection         (Accessible *obj);
-SPIBoolean Accessible_isStreamableContent (Accessible *obj);
-SPIBoolean Accessible_isTable             (Accessible *obj);
-SPIBoolean Accessible_isText              (Accessible *obj);
-SPIBoolean Accessible_isValue             (Accessible *obj);
-
-AccessibleAction *            Accessible_getAction            (Accessible *obj);
-AccessibleApplication *       Accessible_getApplication       (Accessible *obj);
-AccessibleCollection *        Accessible_getCollection        (Accessible *obj);
-AccessibleComponent *         Accessible_getComponent         (Accessible *obj);
-AccessibleDocument *          Accessible_getDocument          (Accessible *obj);
-AccessibleEditableText *      Accessible_getEditableText      (Accessible *obj);
-AccessibleHypertext *         Accessible_getHypertext         (Accessible *obj);
-AccessibleImage *             Accessible_getImage             (Accessible *obj);
-AccessibleMatchRule *         Accessible_getMatchRule         (Accessible *obj);
-AccessibleSelection *         Accessible_getSelection         (Accessible *obj);
-AccessibleStreamableContent * Accessible_getStreamableContent (Accessible *obj);
-AccessibleTable *             Accessible_getTable             (Accessible *obj);
-AccessibleText *              Accessible_getText              (Accessible *obj);
-AccessibleValue *             Accessible_getValue             (Accessible *obj);
-AccessibleUnknown *           Accessible_queryInterface       (Accessible *obj,
-                                                  const char *interface_name);
-
-/* AccessibleAction function prototypes  */
-
-void       AccessibleAction_ref            (AccessibleAction *obj);
-void       AccessibleAction_unref          (AccessibleAction *obj);
-long       AccessibleAction_getNActions    (AccessibleAction *obj);
-char      *AccessibleAction_getName        (AccessibleAction *obj,
-                                           long int          i);
-char      *AccessibleAction_getDescription (AccessibleAction *obj,
-                                           long int          i);
-SPIBoolean AccessibleAction_doAction       (AccessibleAction *obj,
-                                           long int          i);
-char      *AccessibleAction_getKeyBinding  (AccessibleAction *obj,
-                                           long int          i);
-
-/* AccessibleApplication function prototypes  */
-
-void       AccessibleApplication_ref            (AccessibleApplication *obj);
-void       AccessibleApplication_unref          (AccessibleApplication *obj);
-char      *AccessibleApplication_getToolkitName (AccessibleApplication *obj);
-char      *AccessibleApplication_getVersion     (AccessibleApplication *obj);
-long       AccessibleApplication_getID          (AccessibleApplication *obj);
-char      *AccessibleApplication_getLocale      (AccessibleApplication *obj, int lc_category);
-SPIBoolean AccessibleApplication_pause          (AccessibleApplication *obj);
-SPIBoolean AccessibleApplication_resume         (AccessibleApplication *obj);
-
-/* AccessibleCollection function prototypes */
-void       AccessibleCollection_ref (AccessibleCollection *obj);
-void       AccessibleCollection_unref (AccessibleCollection *obj);
-AccessibleMatchRule *
-AccessibleCollection_createMatchRule (AccessibleCollection *obj,
-                                     AccessibleStateSet *states,
-                                     AccessibleCollectionMatchType statematchtype,
-                                     AccessibleAttributeSet *attributes,
-                                     AccessibleCollectionMatchType attributematchtype,
-                                     AccessibleRoleSet *roles,
-                                     AccessibleCollectionMatchType rolematchtype,
-                                     char *interfaces,
-                                     AccessibleCollectionMatchType interfacematchtype,
-                                     long int invert);
-void
-AccessibleCollection_freeMatchRule (AccessibleCollection *obj,
-                                   AccessibleMatchRule  *matchrule);
-/* AccessibleComponent function prototypes */
-
-void        AccessibleComponent_ref         (AccessibleComponent *obj);
-void        AccessibleComponent_unref       (AccessibleComponent *obj);
-SPIBoolean  AccessibleComponent_contains    (AccessibleComponent *obj,
-                                            long int             x,
-                                            long int             y,
-                                            AccessibleCoordType  ctype);
-Accessible *AccessibleComponent_getAccessibleAtPoint (
-                                             AccessibleComponent *obj,
-                                            long int             x,
-                                            long int             y,
-                                            AccessibleCoordType  ctype);
-void        AccessibleComponent_getExtents  (AccessibleComponent *obj,
-                                            long int            *x,
-                                            long int            *y,
-                                            long int            *width,
-                                            long int            *height,
-                                            AccessibleCoordType  ctype);
-void        AccessibleComponent_getPosition (AccessibleComponent *obj,
-                                            long int            *x,
-                                            long int            *y,
-                                            AccessibleCoordType  ctype);
-void        AccessibleComponent_getSize     (AccessibleComponent *obj,
-                                            long int            *width,
-                                            long int            *height);
-AccessibleComponentLayer
-            AccessibleComponent_getLayer    (AccessibleComponent *obj);
-SPIBoolean  AccessibleComponent_grabFocus   (AccessibleComponent *obj);
-short       AccessibleComponent_getMDIZOrder(AccessibleComponent *obj);
-double      AccessibleComponent_getAlpha    (AccessibleComponent *obj);
-
-/* AccessibleDocument function prototypes  */
-
-void        AccessibleDocument_ref               (AccessibleDocument *obj);
-void        AccessibleDocument_unref             (AccessibleDocument *obj);
-char       *AccessibleDocument_getLocale         (AccessibleDocument *obj);
-char       *AccessibleDocument_getAttributeValue (AccessibleDocument *obj,
-                                                 char *attribute);
-AccessibleAttributeSet *AccessibleDocument_getAttributes     (AccessibleDocument *obj);
-
-/* AccessibleEditableText function prototypes  */
-
-void
-AccessibleEditableText_ref (AccessibleEditableText *obj);
-
-void
-AccessibleEditableText_unref (AccessibleEditableText *obj);
-
-SPIBoolean
-AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
-                                     const char *attributes,
-                                     long int startOffset,
-                                     long int endOffset);
-
-SPIBoolean
-AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
-                                        const char *newContents);
-
-SPIBoolean
-AccessibleEditableText_insertText (AccessibleEditableText *obj,
-                                   long int position,
-                                   const char *text,
-                                   long int length);
-
-SPIBoolean
-AccessibleEditableText_copyText (AccessibleText *obj,
-                                 long int startPos,
-                                 long int endPos);
-
-SPIBoolean
-AccessibleEditableText_cutText (AccessibleEditableText *obj,
-                                long int startPos,
-                                long int endPos);
-
-SPIBoolean
-AccessibleEditableText_deleteText (AccessibleEditableText *obj,
-                                   long int startPos,
-                                   long int endPos);
-
-SPIBoolean
-AccessibleEditableText_pasteText (AccessibleEditableText *obj,
-                                  long int position);
-
-/*
- *
- * AccessibleHyperlink function prototypes
- *
- */
-void
-AccessibleHyperlink_ref (AccessibleHyperlink *obj);
-void
-AccessibleHyperlink_unref (AccessibleHyperlink *obj);
-
-long
-AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj);
-
-char *
-AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
-                            long int i);
-
-Accessible *
-AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
-                               long int i);
-
-void
-AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
-                                   long int *startIndex,
-                                   long int *endIndex);
-
-SPIBoolean
-AccessibleHyperlink_isValid (AccessibleHyperlink *obj);
-
-/*
- *
- * AccessibleHypertext function prototypes
- *
- */
-
-void
-AccessibleHypertext_ref (AccessibleHypertext *obj);
-
-void
-AccessibleHypertext_unref (AccessibleHypertext *obj);
-
-long
-AccessibleHypertext_getNLinks (AccessibleHypertext *obj);
-
-AccessibleHyperlink *
-AccessibleHypertext_getLink (AccessibleHypertext *obj,
-                             long int linkIndex);
-
-long
-AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
-                                  long int characterOffset);
-
-/*
- *
- * AccessibleImage function prototypes
- *
- */
-
-void
-AccessibleImage_ref (AccessibleImage *obj);
-
-void
-AccessibleImage_unref (AccessibleImage *obj);
-
-char *
-AccessibleImage_getImageDescription (AccessibleImage *obj);
-
-void
-AccessibleImage_getImageSize (AccessibleImage *obj,
-                              long int *width,
-                              long int *height);
-
-void
-AccessibleImage_getImagePosition (AccessibleImage *obj,
-                                  long int *x,
-                                  long int *y,
-                                  AccessibleCoordType ctype);
-
-void
-AccessibleImage_getImageExtents (AccessibleImage *obj,
-                                long int *x,
-                                long int *y,
-                                long int *width,
-                                long int *height,
-                                AccessibleCoordType ctype);
-char *
-AccessibleImage_getImageLocale  (AccessibleImage *obj);
-
-/*
- *
- * AccessibleMatchRule function prototypes
- *
- */
-void       AccessibleMatchRule_ref (AccessibleMatchRule *obj);
-void       AccessibleMatchRule_unref (AccessibleMatchRule *obj);
-
-/*
- *
- * AccessibleRelation function prototypes
- *
- */
-
-void AccessibleRelation_ref   (AccessibleRelation *obj);
-void AccessibleRelation_unref (AccessibleRelation *obj);
-
-AccessibleRelationType
-AccessibleRelation_getRelationType (AccessibleRelation *obj);
-
-int
-AccessibleRelation_getNTargets (AccessibleRelation *obj);
-
-Accessible *
-AccessibleRelation_getTarget (AccessibleRelation *obj, int i);
-
-
-/*
- *
- * AccessibleSelection function prototypes
- *
- */
-
-void AccessibleSelection_ref   (AccessibleSelection *obj);
-void AccessibleSelection_unref (AccessibleSelection *obj);
-
-long
-AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj);
-
-Accessible *
-AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
-                                      long int selectedChildIndex);
-
-SPIBoolean
-AccessibleSelection_selectChild (AccessibleSelection *obj,
-                                 long int childIndex);
-
-SPIBoolean
-AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
-                                           long int selectedChildIndex);
-
-SPIBoolean
-AccessibleSelection_deselectChild (AccessibleSelection *obj,
-                                  long int childIndex);
-
-SPIBoolean
-AccessibleSelection_isChildSelected (AccessibleSelection *obj,
-                                     long int childIndex);
-
-SPIBoolean
-AccessibleSelection_selectAll (AccessibleSelection *obj);
-
-SPIBoolean
-AccessibleSelection_clearSelection (AccessibleSelection *obj);
-
-
-/*
- *
- * AccessibleStateSet function prototypes
- *
- */
-
-void AccessibleStateSet_ref   (AccessibleStateSet *obj);
-void AccessibleStateSet_unref (AccessibleStateSet *obj);
-
-SPIBoolean
-AccessibleStateSet_contains (AccessibleStateSet *obj,
-                             AccessibleState state);
-
-void
-AccessibleStateSet_add (AccessibleStateSet *obj,
-                        AccessibleState state);
-
-void
-AccessibleStateSet_remove (AccessibleStateSet *obj,
-                           AccessibleState state);
-
-SPIBoolean
-AccessibleStateSet_equals (AccessibleStateSet *obj,
-                           AccessibleStateSet *obj2);
-
-AccessibleStateSet *
-AccessibleStateSet_compare (AccessibleStateSet *obj,
-                            AccessibleStateSet *obj2);
-
-SPIBoolean
-AccessibleStateSet_isEmpty (AccessibleStateSet *obj);
-
-void
-AccessibleStreamableContent_ref (AccessibleStreamableContent *obj);
-void
-AccessibleStreamableContent_unref (AccessibleStreamableContent *obj);
-char **
-AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj);
-
-void
-AccessibleStreamableContent_freeContentTypesList (AccessibleStreamableContent *obj,
-                                                char **content_types);
-#define AccessibleStreamableContent_freeContentTypeList(a, b) AccessibleStreamableContent_freeContentTypesList(a,b)
-
-SPIBoolean
-AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
-                                 const char *content_type);
-SPIBoolean
-AccessibleStreamableContent_close (AccessibleStreamableContent *obj);
-
-long
-AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
-                                 long int offset,
-                                 AccessibleStreamableContentSeekType seek_type);
-SPIBoolean
-AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
-                                 void *buff,
-                                 long int nbytes,
-                                 unsigned int read_type);
-/*
- *
- * AccessibleTable function prototypes
- *
- */
-
-void AccessibleTable_ref   (AccessibleTable *obj);
-void AccessibleTable_unref (AccessibleTable *obj);
-
-Accessible *
-AccessibleTable_getCaption (AccessibleTable *obj);
-
-Accessible *
-AccessibleTable_getSummary (AccessibleTable *obj);
-
-long
-AccessibleTable_getNRows (AccessibleTable *obj);
-
-long
-AccessibleTable_getNColumns (AccessibleTable *obj);
-
-Accessible *
-AccessibleTable_getAccessibleAt (AccessibleTable *obj,
-                                 long int row,
-                                 long int column);
-
-long
-AccessibleTable_getIndexAt (AccessibleTable *obj,
-                            long int row,
-                            long int column);
-
-long
-AccessibleTable_getRowAtIndex (AccessibleTable *obj,
-                               long int index);
-
-long
-AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
-                                  long int index);
-
-char *
-AccessibleTable_getRowDescription (AccessibleTable *obj,
-                                  long int row);
-
-char *
-AccessibleTable_getColumnDescription (AccessibleTable *obj,
-                                     long int column);
-
-long
-AccessibleTable_getRowExtentAt (AccessibleTable *obj,
-                                long int row,
-                                long int column);
-
-long
-AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
-                                   long int row,
-                                   long int column);
-
-SPIBoolean
-AccessibleTable_getRowColumnExtentsAtIndex (AccessibleTable *obj,
-                                           long int index, long int *row, long int *col, 
-                                           long int *row_extents, long int *col_extents, 
-                                           long int *is_selected);
-
-Accessible *
-AccessibleTable_getRowHeader (AccessibleTable *obj,
-                             long int row);
-
-Accessible *
-AccessibleTable_getColumnHeader (AccessibleTable *obj,
-                                long int column);
-
-long
-AccessibleTable_getNSelectedRows (AccessibleTable *obj);
-
-long
-AccessibleTable_getSelectedRows (AccessibleTable *obj,
-                                 long int **selectedRows);
-
-long
-AccessibleTable_getNSelectedColumns (AccessibleTable *obj);
-
-long
-AccessibleTable_getSelectedColumns (AccessibleTable *obj,
-                                    long int **selectedColumns);
-
-SPIBoolean
-AccessibleTable_isRowSelected (AccessibleTable *obj,
-                               long int row);
-
-SPIBoolean
-AccessibleTable_isColumnSelected (AccessibleTable *obj,
-                                  long int column);
-
-SPIBoolean
-AccessibleTable_isSelected (AccessibleTable *obj,
-                            long int row,
-                            long int column);
-
-SPIBoolean
-AccessibleTable_addRowSelection (AccessibleTable *obj,
-                                long int row);
-SPIBoolean
-AccessibleTable_addColumnSelection (AccessibleTable *obj,
-                                   long int column);
-
-SPIBoolean
-AccessibleTable_removeRowSelection (AccessibleTable *obj,
-                                   long int row);
-SPIBoolean
-AccessibleTable_removeColumnSelection (AccessibleTable *obj,
-                                      long int column);
-
-/*
- *
- * AccessibleText function prototypes
- *
- */
-
-void AccessibleText_ref   (AccessibleText *obj);
-void AccessibleText_unref (AccessibleText *obj);
-
-long
-AccessibleText_getCharacterCount (AccessibleText *obj);
-
-char *
-AccessibleText_getText (AccessibleText *obj,
-                        long int startOffset,
-                        long int endOffset);
-
-long
-AccessibleText_getCaretOffset (AccessibleText *obj);
-
-char *
-AccessibleText_getAttributes (AccessibleText *obj,
-                                long int offset,
-                                long int *startOffset,
-                                long int *endOffset);
-
-char *
-AccessibleText_getDefaultAttributes (AccessibleText *obj);
-
-SPIBoolean
-AccessibleText_setCaretOffset (AccessibleText *obj,
-                               long int newOffset);
-
-char *
-AccessibleText_getTextBeforeOffset (AccessibleText *obj,
-                                    long int offset,
-                                    AccessibleTextBoundaryType type,
-                                   long int *startOffset,
-                                   long int *endOffset);
-
-char *
-AccessibleText_getTextAtOffset (AccessibleText *obj,
-                               long int offset,
-                               AccessibleTextBoundaryType type,
-                               long int *startOffset,
-                               long int *endOffset);
-
-char *
-AccessibleText_getTextAfterOffset (AccessibleText *obj,
-                                  long int offset,
-                                  AccessibleTextBoundaryType type,
-                                  long int *startOffset,
-                                  long int *endOffset);
-
-unsigned long
-AccessibleText_getCharacterAtOffset (AccessibleText *obj,
-                                     long int offset);
-
-void
-AccessibleText_getCharacterExtents (AccessibleText *obj,
-                                    long int offset,
-                                    long int *x,
-                                    long int *y,
-                                    long int *width,
-                                    long int *height,
-                                   AccessibleCoordType type);
-
-void
-AccessibleText_getRangeExtents (AccessibleText *obj,
-                               long int startOffset,
-                               long int endOffset,
-                               long int *x,
-                               long int *y,
-                               long int *width,
-                               long int *height,
-                               AccessibleCoordType type);
-
-AccessibleTextRange **
-AccessibleText_getBoundedRanges (AccessibleText *obj,
-                                long int x,
-                                long int y,
-                                long int width,
-                                long int height,
-                                AccessibleCoordType type,
-                                AccessibleTextClipType clipTypeX,
-                                AccessibleTextClipType clipTypeY);
-
-void
-AccessibleTextRange_freeRanges (AccessibleTextRange **ranges);
-
-long
-AccessibleText_getOffsetAtPoint (AccessibleText *obj,
-                                 long int x,
-                                 long int y,
-                                AccessibleCoordType type);
-
-long
-AccessibleText_getNSelections (AccessibleText *obj);
-
-void
-AccessibleText_getSelection (AccessibleText *obj,
-                            long int selectionNum,
-                            long int *startOffset,
-                            long int *endOffset);
-
-
-SPIBoolean
-AccessibleText_addSelection (AccessibleText *obj,
-                            long int startOffset,
-                            long int endOffset);
-
-SPIBoolean
-AccessibleText_removeSelection (AccessibleText *obj,
-                               long int selectionNum);
-
-SPIBoolean
-AccessibleText_setSelection (AccessibleText *obj,
-                            long int selectionNum,
-                            long int startOffset,
-                            long int endOffset);
-AccessibleAttributeSet *
-AccessibleText_getAttributeRun  (AccessibleText *obj,
-                                long int offset,
-                                long int *startOffset,
-                                long int *endOffset,
-                                long int includeDefaults);
-AccessibleAttributeSet *
-AccessibleText_getDefaultAttributeSet (AccessibleText *obj);
-
-/* AccessibleValue Function Prototypes:  */
-
-void       AccessibleValue_ref             (AccessibleValue *obj);
-void       AccessibleValue_unref           (AccessibleValue *obj);
-double     AccessibleValue_getMinimumValue (AccessibleValue *obj);
-double     AccessibleValue_getCurrentValue (AccessibleValue *obj);
-double     AccessibleValue_getMaximumValue (AccessibleValue *obj);
-SPIBoolean AccessibleValue_setCurrentValue (AccessibleValue *obj,
-                                           double           newValue);
-double     AccessibleValue_getMinimumIncrement (AccessibleValue *obj);
-
-/* Persistance and lifecycle control for AccessibleEvents. */
-SPIBoolean AccessibleEvent_ref (const AccessibleEvent *e);
-void AccessibleEvent_unref (const AccessibleEvent *e);
-
-/*
- * Prototypes for accessor functions, to obtain context
- * information for accessible events.
- */
-
-char*                  AccessibleEvent_getSourceName (const AccessibleEvent *e);
-AccessibleRole         AccessibleEvent_getSourceRole (const AccessibleEvent *e);
-AccessibleApplication* AccessibleEvent_getSourceApplication (const AccessibleEvent *e);
-SPIBoolean             AccessibleEvent_getSourceDetails (const AccessibleEvent *e, char **name, 
-                                                        AccessibleRole *role, 
-                                                        AccessibleApplication **app);
-
-char*        AccessibleTextChangedEvent_getChangeString (const AccessibleEvent *e);
-Accessible * AccessibleChildChangedEvent_getChildAccessible (const AccessibleEvent *e);
-
-Accessible * AccessibleParentChangedEvent_getParentAccessible (const AccessibleEvent *e);
-
-char*        AccessibleTextSelectionChangedEvent_getSelectionString (const AccessibleEvent *e);
-
-char*        AccessibleWindowEvent_getTitleString (const AccessibleEvent *e);
-
-Accessible * AccessibleActiveDescendantChangedEvent_getActiveDescendant (const AccessibleEvent *e);
-
-Accessible * AccessibleTableSummaryChangedEvent_getSummaryAccessible (const AccessibleEvent *e); 
-
-Accessible * AccessibleTableHeaderChangedEvent_getHeaderAccessible (const AccessibleEvent *e);
-
-char *       AccessibleTableCaptionChangedEvent_getCaptionString (const AccessibleEvent *e);
-
-char *       AccessibleTableRowDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
-
-char *       AccessibleTableColumnDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
-
-char *       AccessibleDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e);
-
-char *       AccessibleNameChangedEvent_getNameString (const AccessibleEvent *e);
-SPIRect *    AccessibleBoundsChangedEvent_getNewBounds (const AccessibleEvent *e);
-
-/* Misc methods and error handling */
-void SPI_freeString (char *s);
-
-char* SPI_dupString (char *s);
-
-void SPI_freeRect (SPIRect *r);
-
-SPIBoolean SPI_exceptionHandlerPush (SPIExceptionHandler *handler);
-
-SPIExceptionHandler* SPI_exceptionHandlerPop (void);
-
-SPIExceptionType SPIException_getSourceType (SPIException *err);
-
-SPIExceptionCode SPIException_getExceptionCode (SPIException *err);
-
-Accessible* SPIAccessibleException_getSource (SPIException *err);
-
-char* SPIException_getDescription (SPIException *err);
-
-#ifdef  __cplusplus
-}
-#endif
-
-#endif
diff --git a/cspi/spi_accessible.c b/cspi/spi_accessible.c
deleted file mode 100644 (file)
index c2acdfe..0000000
+++ /dev/null
@@ -1,1510 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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> /* for malloc */
-#include <libspi/stateset.h>
-#include <cspi/spi-private.h>
-
-static const char *role_names [] =
-{
-  "invalid",
-  "accel-label",
-  "alert",
-  "animation",
-  "arrow",
-  "calendar",
-  "canvas",
-  "check-box",
-  "check-menu-item",
-  "color-chooser",
-  "column-header",
-  "combo-box",
-  "date-editor",
-  "desktop-icon",
-  "desktop-frame",
-  "dial",
-  "dialog",
-  "directory-pane",
-  "drawing-area",
-  "file-chooser",
-  "filler",
-  "font-chooser",
-  "frame",
-  "glass-pane",
-  "html-container",
-  "icon",
-  "image",
-  "internalframe",
-  "label",
-  "layered-pane",
-  "list",
-  "list-item",
-  "menu",
-  "menu-bar",
-  "menu-item",
-  "option-pane",
-  "page-tab",
-  "page-tab-list",
-  "panel",
-  "password-text",
-  "popup-menu",
-  "progress-bar",
-  "push-button",
-  "radio-button",
-  "radio-menu-item",
-  "root-pane",
-  "row-header",
-  "scroll-bar",
-  "scroll-pane",
-  "separator",
-  "slider",
-  "spin-button",
-  "split-pane",
-  "statusbar",
-  "table",
-  "table-cell",
-  "table-column-header",
-  "table-row-header",
-  "tear-off-menu-item",
-  "terminal",
-  "text",
-  "toggle-button",
-  "tool-bar",
-  "tool-tip",
-  "tree",
-  "tree-table",
-  "unknown",
-  "viewport",
-  "window",
-  NULL,
-  "header",
-  "fooler",
-  "paragraph",
-  "ruler",
-  "application",
-  "autocomplete",
-  "editbar",
-  "embedded",
-  "entry",
-  "chart",
-  "caption",
-  "document_frame",
-  "heading",
-  "page",
-  "section",
-  "form",
-  "redundant object",
-  "link",
-  "input method window"
-};
-
-#define MAX_ROLES (sizeof (role_names) / sizeof (char *))
-
-static SPIBoolean
-cspi_init_role_table (AccessibleRole *role_table)
-{
-  int i;
-  for (i = 0; i < Accessibility_ROLE_LAST_DEFINED; ++i)
-    {
-      role_table [i] = SPI_ROLE_UNKNOWN;
-    }
-  role_table [Accessibility_ROLE_INVALID] = SPI_ROLE_INVALID;
-  role_table [Accessibility_ROLE_ACCELERATOR_LABEL] = SPI_ROLE_ACCEL_LABEL;
-  role_table [Accessibility_ROLE_ALERT] = SPI_ROLE_ALERT;
-  role_table [Accessibility_ROLE_ANIMATION] = SPI_ROLE_ANIMATION;
-  role_table [Accessibility_ROLE_ARROW] = SPI_ROLE_ARROW;
-  role_table [Accessibility_ROLE_CALENDAR] = SPI_ROLE_CALENDAR;
-  role_table [Accessibility_ROLE_CANVAS] = SPI_ROLE_CANVAS;
-  role_table [Accessibility_ROLE_CHECK_BOX] = SPI_ROLE_CHECK_BOX;
-  role_table [Accessibility_ROLE_CHECK_MENU_ITEM] = SPI_ROLE_CHECK_MENU_ITEM;
-  role_table [Accessibility_ROLE_COLOR_CHOOSER] = SPI_ROLE_COLOR_CHOOSER;
-  role_table [Accessibility_ROLE_COLUMN_HEADER] = SPI_ROLE_COLUMN_HEADER;
-  role_table [Accessibility_ROLE_COMBO_BOX] = SPI_ROLE_COMBO_BOX;
-  role_table [Accessibility_ROLE_DATE_EDITOR] = SPI_ROLE_DATE_EDITOR;
-  role_table [Accessibility_ROLE_DESKTOP_ICON] = SPI_ROLE_DESKTOP_ICON;
-  role_table [Accessibility_ROLE_DESKTOP_FRAME] = SPI_ROLE_DESKTOP_FRAME;
-  role_table [Accessibility_ROLE_DIAL] = SPI_ROLE_DIAL;
-  role_table [Accessibility_ROLE_DIALOG] = SPI_ROLE_DIALOG;
-  role_table [Accessibility_ROLE_DIRECTORY_PANE] = SPI_ROLE_DIRECTORY_PANE;
-  role_table [Accessibility_ROLE_DRAWING_AREA] = SPI_ROLE_DRAWING_AREA;
-  role_table [Accessibility_ROLE_FILE_CHOOSER] = SPI_ROLE_FILE_CHOOSER;
-  role_table [Accessibility_ROLE_FILLER] = SPI_ROLE_FILLER;
-  role_table [Accessibility_ROLE_FONT_CHOOSER] = SPI_ROLE_FONT_CHOOSER;
-  role_table [Accessibility_ROLE_FRAME] = SPI_ROLE_FRAME;
-  role_table [Accessibility_ROLE_GLASS_PANE] = SPI_ROLE_GLASS_PANE;
-  role_table [Accessibility_ROLE_HTML_CONTAINER] = SPI_ROLE_HTML_CONTAINER;
-  role_table [Accessibility_ROLE_ICON] = SPI_ROLE_ICON;
-  role_table [Accessibility_ROLE_IMAGE] = SPI_ROLE_IMAGE;
-  role_table [Accessibility_ROLE_INTERNAL_FRAME] = SPI_ROLE_INTERNAL_FRAME;
-  role_table [Accessibility_ROLE_LABEL] = SPI_ROLE_LABEL;
-  role_table [Accessibility_ROLE_LAYERED_PANE] = SPI_ROLE_LAYERED_PANE;
-  role_table [Accessibility_ROLE_LIST] = SPI_ROLE_LIST;
-  role_table [Accessibility_ROLE_LIST_ITEM] = SPI_ROLE_LIST_ITEM;
-  role_table [Accessibility_ROLE_MENU] = SPI_ROLE_MENU;
-  role_table [Accessibility_ROLE_MENU_BAR] = SPI_ROLE_MENU_BAR;
-  role_table [Accessibility_ROLE_MENU_ITEM] = SPI_ROLE_MENU_ITEM;
-  role_table [Accessibility_ROLE_OPTION_PANE] = SPI_ROLE_OPTION_PANE;
-  role_table [Accessibility_ROLE_PAGE_TAB] = SPI_ROLE_PAGE_TAB;
-  role_table [Accessibility_ROLE_PAGE_TAB_LIST] = SPI_ROLE_PAGE_TAB_LIST;
-  role_table [Accessibility_ROLE_PANEL] = SPI_ROLE_PANEL;
-  role_table [Accessibility_ROLE_PASSWORD_TEXT] = SPI_ROLE_PASSWORD_TEXT;
-  role_table [Accessibility_ROLE_POPUP_MENU] = SPI_ROLE_POPUP_MENU;
-  role_table [Accessibility_ROLE_PROGRESS_BAR] = SPI_ROLE_PROGRESS_BAR;
-  role_table [Accessibility_ROLE_PUSH_BUTTON] = SPI_ROLE_PUSH_BUTTON;
-  role_table [Accessibility_ROLE_RADIO_BUTTON] = SPI_ROLE_RADIO_BUTTON;
-  role_table [Accessibility_ROLE_RADIO_MENU_ITEM] = SPI_ROLE_RADIO_MENU_ITEM;
-  role_table [Accessibility_ROLE_ROOT_PANE] = SPI_ROLE_ROOT_PANE;
-  role_table [Accessibility_ROLE_ROW_HEADER] = SPI_ROLE_ROW_HEADER;
-  role_table [Accessibility_ROLE_SCROLL_BAR] = SPI_ROLE_SCROLL_BAR;
-  role_table [Accessibility_ROLE_SCROLL_PANE] = SPI_ROLE_SCROLL_PANE;
-  role_table [Accessibility_ROLE_SEPARATOR] = SPI_ROLE_SEPARATOR;
-  role_table [Accessibility_ROLE_SLIDER] = SPI_ROLE_SLIDER;
-  role_table [Accessibility_ROLE_SPIN_BUTTON] = SPI_ROLE_SPIN_BUTTON;
-  role_table [Accessibility_ROLE_SPLIT_PANE] = SPI_ROLE_SPLIT_PANE;
-  role_table [Accessibility_ROLE_STATUS_BAR] = SPI_ROLE_STATUS_BAR;
-  role_table [Accessibility_ROLE_TABLE] = SPI_ROLE_TABLE;
-  role_table [Accessibility_ROLE_TABLE_CELL] = SPI_ROLE_TABLE_CELL;
-  role_table[Accessibility_ROLE_TABLE_COLUMN_HEADER] = SPI_ROLE_TABLE_COLUMN_HEADER;
-  role_table[Accessibility_ROLE_TABLE_ROW_HEADER] = SPI_ROLE_TABLE_ROW_HEADER;
-  role_table [Accessibility_ROLE_TEAROFF_MENU_ITEM] = SPI_ROLE_TEAROFF_MENU_ITEM;
-  role_table[Accessibility_ROLE_TERMINAL] = SPI_ROLE_TERMINAL;
-  role_table [Accessibility_ROLE_TEXT] = SPI_ROLE_TEXT;
-  role_table [Accessibility_ROLE_TOGGLE_BUTTON] = SPI_ROLE_TOGGLE_BUTTON;
-  role_table [Accessibility_ROLE_TOOL_BAR] = SPI_ROLE_TOOL_BAR;
-  role_table [Accessibility_ROLE_TOOL_TIP] = SPI_ROLE_TOOL_TIP;
-  role_table [Accessibility_ROLE_TREE] = SPI_ROLE_TREE;
-  role_table [Accessibility_ROLE_TREE_TABLE] = SPI_ROLE_TREE_TABLE;
-  role_table [Accessibility_ROLE_VIEWPORT] = SPI_ROLE_VIEWPORT;
-  role_table [Accessibility_ROLE_WINDOW] = SPI_ROLE_WINDOW;
-  role_table [Accessibility_ROLE_EXTENDED] = SPI_ROLE_EXTENDED;
-  role_table [Accessibility_ROLE_HEADER] = SPI_ROLE_HEADER;
-  role_table [Accessibility_ROLE_FOOTER] = SPI_ROLE_FOOTER;
-  role_table [Accessibility_ROLE_PARAGRAPH] = SPI_ROLE_PARAGRAPH;
-  role_table [Accessibility_ROLE_RULER] = SPI_ROLE_RULER;
-  role_table [Accessibility_ROLE_APPLICATION] = SPI_ROLE_APPLICATION;
-  role_table [Accessibility_ROLE_AUTOCOMPLETE] = SPI_ROLE_AUTOCOMPLETE;
-  role_table [Accessibility_ROLE_EDITBAR] = SPI_ROLE_EDITBAR;
-  role_table [Accessibility_ROLE_EMBEDDED] = SPI_ROLE_EMBEDDED;
-  role_table [Accessibility_ROLE_ENTRY] = SPI_ROLE_ENTRY;
-  role_table [Accessibility_ROLE_CHART] = SPI_ROLE_CHART;
-  role_table [Accessibility_ROLE_CAPTION] = SPI_ROLE_CAPTION;
-  role_table [Accessibility_ROLE_DOCUMENT_FRAME] = SPI_ROLE_DOCUMENT_FRAME;
-  role_table [Accessibility_ROLE_HEADING] = SPI_ROLE_HEADING;
-  role_table [Accessibility_ROLE_PAGE] = SPI_ROLE_PAGE;
-  role_table [Accessibility_ROLE_SECTION] = SPI_ROLE_SECTION;
-  role_table [Accessibility_ROLE_FORM] = SPI_ROLE_FORM;
-  role_table [Accessibility_ROLE_REDUNDANT_OBJECT] = SPI_ROLE_REDUNDANT_OBJECT;
-  role_table [Accessibility_ROLE_LINK] = SPI_ROLE_LINK;
-  role_table [Accessibility_ROLE_INPUT_METHOD_WINDOW] = SPI_ROLE_INPUT_METHOD_WINDOW;
-
-  return TRUE;
-}
-
-AccessibleRole
-cspi_role_from_spi_role (Accessibility_Role role)
-{
-  /* array is sized according to IDL roles because IDL roles are the index */  
-  static AccessibleRole cspi_role_table [Accessibility_ROLE_LAST_DEFINED];
-  static SPIBoolean is_initialized = FALSE;
-  AccessibleRole cspi_role;
-  if (!is_initialized)
-    {
-      is_initialized = cspi_init_role_table (cspi_role_table);     
-    }
-  if (role >= 0 && role < Accessibility_ROLE_LAST_DEFINED)
-    {
-      cspi_role = cspi_role_table [role];          
-    }
-  else
-    {
-      cspi_role = SPI_ROLE_EXTENDED;
-    }
-  return cspi_role; 
-}
-
-AccessibleAttributeSet *
-_cspi_attribute_set_from_sequence (const Accessibility_AttributeSet *seq)
-{
-    AccessibleAttributeSet *set = g_new0 (AccessibleAttributeSet, 1);
-    int i;
-
-    set->len = seq->_length;
-    set->attributes = g_new0 (char *, set->len);
-    for (i = 0; i < set->len; ++i)
-    {
-       set->attributes[i] = g_strdup (seq->_buffer [i]);
-    }
-    return set;
-}
-
-/**
- * AccessibleRole_getName:
- * @role: an #AccessibleRole object to query.
- *
- * Get a localizeable string that indicates the name of an #AccessibleRole.
- * <em>DEPRECATED.</em>
- *
- * Returns: a localizable string name for an #AccessibleRole enumerated type.
- **/
-char *
-AccessibleRole_getName (AccessibleRole role)
-{
-  if (role < MAX_ROLES && role_names [(int) role])
-    {
-      return CORBA_string_dup (role_names [(int) role]);
-    }
-  else
-    {
-      return CORBA_string_dup ("");
-    }
-}
-
-/**
- * Accessible_ref:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Increment the reference count for an #Accessible object.
- **/
-void
-Accessible_ref (Accessible *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * Accessible_unref:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Decrement the reference count for an #Accessible object.
- **/
-void
-Accessible_unref (Accessible *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * Accessible_getName:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get the name of an #Accessible object.
- *
- * Returns: a UTF-8 string indicating the name of the #Accessible object.
- * or NULL on exception
- **/
-char *
-Accessible_getName (Accessible *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = Accessibility_Accessible__get_name (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getName", NULL); 
-
-  return retval;
-}
-
-/**
- * Accessible_getDescription:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get the description of an #Accessible object.
- *
- * Returns: a UTF-8 string describing the #Accessible object.
- * or NULL on exception
- **/
-char *
-Accessible_getDescription (Accessible *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = Accessibility_Accessible__get_description (CSPI_OBJREF (obj),
-                                              cspi_ev ());
-
-  cspi_return_val_if_ev ("getDescription", NULL); 
-
-  return retval;
-}
-
-/**
- * Accessible_getParent:
- * @obj: a pointer to the #Accessible object to query.
- *
- * Get an #Accessible object's parent container.
- *
- * Returns: a pointer tothe #Accessible object which contains the given
- *          #Accessible instance, or NULL if the @obj has no parent container.
- *
- **/
-Accessible *
-Accessible_getParent (Accessible *obj)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = cspi_object_add (
-    Accessibility_Accessible__get_parent (CSPI_OBJREF (obj),
-                                         cspi_ev ()));
-
-  cspi_return_val_if_ev ("getParent", NULL); 
-
-  return retval;
-}
-
-/**
- * Accessible_getChildCount:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get the number of children contained by an #Accessible object.
- *
- * Returns: a #long indicating the number of #Accessible children
- *          contained by an #Accessible object. or -1 on exception
- *
- **/
-long
-Accessible_getChildCount (Accessible *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval = Accessibility_Accessible__get_childCount (CSPI_OBJREF (obj),
-                                             cspi_ev ());
-
-  cspi_return_val_if_ev ("getChildCount", -1); 
-
-  return retval;
-}
-
-/**
- * Accessible_getChildAtIndex:
- * @obj: a pointer to the #Accessible object on which to operate.
- * @childIndex: a #long indicating which child is specified.
- *
- * Get the #Accessible child of an #Accessible object at a given index.
- *
- * Returns: a pointer to the #Accessible child object at index
- *          @childIndex. or NULL on exception
- **/
-Accessible *
-Accessible_getChildAtIndex (Accessible *obj,
-                            long int    childIndex)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = cspi_object_add (
-    Accessibility_Accessible_getChildAtIndex (CSPI_OBJREF (obj),
-                                             childIndex, cspi_ev ()));
-
-  cspi_return_val_if_ev ("getChildAtIndex", NULL);
-  return retval;
-}
-
-/**
- * Accessible_getIndexInParent:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get the index of an #Accessible object in its containing #Accessible.
- *
- * Returns: a #long indicating the index of the #Accessible object
- *          in its parent (i.e. containing) #Accessible instance,
- *          or -1 if @obj has no containing parent or on exception.
- **/
-long
-Accessible_getIndexInParent (Accessible *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval = Accessibility_Accessible_getIndexInParent (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getIndexInparent", -1); 
-  return retval;
-}
-
-/**
- * Accessible_getRelationSet:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get the set of #AccessibleRelation objects which describe this #Accessible object's
- *       relationships with other #Accessible objects.
- *
- * Returns: an array of #AccessibleRelation pointers. or NULL on exception
- **/
-AccessibleRelation **
-Accessible_getRelationSet (Accessible *obj)
-{
-  int i;
-  int n_relations;
-  AccessibleRelation **relations;
-  Accessibility_RelationSet *relation_set;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  g_assert (!cspi_exception ());
-
-  relation_set =
-    Accessibility_Accessible_getRelationSet (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getRelationSet", NULL); 
-  
-  n_relations = relation_set->_length;
-  relations = malloc (sizeof (AccessibleRelation *) * (n_relations + 1));
-  
-  for (i = 0; i < n_relations; ++i)
-    {
-      relations[i] = cspi_object_add (CORBA_Object_duplicate (
-             relation_set->_buffer[i], cspi_ev ()));
-    }
-  relations[i] = NULL;
-
-  CORBA_free (relation_set);
-
-  return relations;
-}
-
-/**
- * Accessible_getRole:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get the UI role of an #Accessible object.
- * A UTF-8 string describing this role can be obtained via Accessible_getRoleName ().
- *
- * Returns: the #AccessibleRole of the object.
- *
- **/
-AccessibleRole
-Accessible_getRole (Accessible *obj)
-{
-  Accessibility_Role retval;
-
-  cspi_return_val_if_fail (obj != NULL, SPI_ROLE_INVALID);
-
-  retval = 
-    Accessibility_Accessible_getRole (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getRole", SPI_ROLE_INVALID); 
-
-  return cspi_role_from_spi_role (retval);
-}
-
-/**
- * Accessible_getRoleName:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get a UTF-8 string describing the role this object plays in the UI.
- * This method will return useful values for roles that fall outside the
- * enumeration used in Accessible_getRole ().
- *
- * Returns: a UTF-8 string specifying the role of this #Accessible object.
- *
- **/
-char *
-Accessible_getRoleName (Accessible *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, CORBA_string_dup ("invalid"));
-
-  retval = 
-    Accessibility_Accessible_getRoleName (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getRoleName", CORBA_string_dup ("invalid")); 
-
-  return retval;
-}
-
-/**
- * Accessible_getLocalizedRoleName:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Get a UTF-8 string describing the (localized) role this object plays in the UI.
- * This method will return useful values for roles that fall outside the
- * enumeration used in Accessible_getRole ().
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: a UTF-8 string specifying the role of this #Accessible object.
- *
- **/
-char *
-Accessible_getLocalizedRoleName (Accessible *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, CORBA_string_dup ("invalid"));
-
-  retval = 
-    Accessibility_Accessible_getLocalizedRoleName (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getLocalizedRoleName", CORBA_string_dup ("invalid")); 
-
-  return retval;
-}
-
-/**
- * Accessible_getStateSet:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Gets the current state of an object.
- *
- * Returns: a pointer to an #AccessibleStateSet representing the object's current state.
- **/
-AccessibleStateSet *
-Accessible_getStateSet (Accessible *obj)
-{
-  AccessibleStateSet *retval;
-  Accessibility_StateSet corba_stateset;
-  Accessibility_StateSeq *corba_seq;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  corba_stateset = Accessibility_Accessible_getState (
-         CSPI_OBJREF (obj), cspi_ev ());
-  cspi_return_val_if_ev ("getState", NULL);
-
-  cspi_return_val_if_fail (corba_stateset != CORBA_OBJECT_NIL, NULL);
-  cspi_return_val_if_fail (cspi_ping (corba_stateset), NULL);
-  corba_seq = Accessibility_StateSet_getStates (corba_stateset, cspi_ev ());
-  cspi_return_val_if_ev ("getState", NULL);
-
-  retval = spi_state_set_cache_new (corba_seq);
-
-  CORBA_free (corba_seq);
-  cspi_release_unref (corba_stateset);
-
-  return retval;
-}
-
-/**
- * Accessible_getAttributes:
- * @obj: The #Accessible being queried.
- *
- * Get the #AttributeSet representing any assigned 
- * name-value pair attributes or annotations for this object.
- * For typographic, textual, or textually-semantic attributes, see
- * AccessibleText_getAttributes instead.
- *
- * Returns: The name-value-pair attributes assigned to this object.
- */
-AccessibleAttributeSet *
-Accessible_getAttributes (Accessible *obj)
-{
-    AccessibleAttributeSet *retval;
-    Accessibility_AttributeSet *corba_seq;
-
-    cspi_return_val_if_fail (obj != NULL, NULL);
-
-    corba_seq = Accessibility_Accessible_getAttributes (
-       CSPI_OBJREF (obj), cspi_ev ());
-    cspi_return_val_if_ev ("getAttributes", NULL);
-    
-    retval = _cspi_attribute_set_from_sequence (corba_seq);
-    CORBA_free (corba_seq);
-
-    return retval;
-}
-
-/**
- * Accessible_getHostApplication:
- * @obj: The #Accessible being queried.
- *
- * Get the containing #AccessibleApplication for an object.
- *
- * Returns: the containing AccessibleApplication instance for this object.
- */
-AccessibleApplication *
-Accessible_getHostApplication (Accessible *obj)
-{
-    AccessibleApplication *retval;
-
-    cspi_return_val_if_fail (obj != NULL, NULL);
-
-    retval = Accessible_getApplication (cspi_object_add (
-                                           Accessibility_Accessible_getApplication (CSPI_OBJREF (obj),
-                                                                                    cspi_ev ())));
-    cspi_return_val_if_ev ("getApplication", NULL);
-
-    return retval;
-}
-
-/* Interface query methods */
-
-/**
- * Accessible_isAction:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleAction.
- *
- * Returns: #TRUE if @obj implements the #AccessibleAction interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isAction (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Action:1.0");
-}
-
-/**
- * Accessible_isApplication:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleApplication.
- *
- * Returns: #TRUE if @obj implements the #AccessibleApplication interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isApplication (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Application:1.0");
-}
-
-/**                      
- * Accessible_isCollection:                                                                                                                                                                          * @obj: a pointer to the #Accessible instance to query.                                                                                                                                          
- *                          
- * Query whether the specified #Accessible implements #AccessibleCollection.    
- * Returns: #TRUE if @obj implements the #AccessibleCollection interface,                                                                                                               
- *          #FALSE otherwise.
- **/
-
-SPIBoolean
-Accessible_isCollection (Accessible *obj)
-{
-     return cspi_accessible_is_a (obj,
-                                 "IDL:Accessibility/Collection:1.0");
-}
-
-/**
- * Accessible_isComponent:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleComponent.
- *
- * Returns: #TRUE if @obj implements the #AccessibleComponent interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isComponent (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Component:1.0");
-}
-
-/**
- * Accessible_isDocument:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleDocument.
- *
- * Returns: #TRUE if @obj implements the #AccessibleDocument interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isDocument (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Document:1.0");
-}
-
-/**
- * Accessible_isEditableText:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleEditableText.
- *
- * Returns: #TRUE if @obj implements the #AccessibleEditableText interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isEditableText (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/EditableText:1.0");
-}
-                                                                                                                                                                        
-/**
- * Accessible_isMatchRule:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleMatchRule.
- *
- * Returns: #TRUE if @obj implements the #AccessibleMatchRule interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isMatchRule (Accessible *obj)
-{
-     return cspi_accessible_is_a (obj, 
-                                 "IDL:Accessibility/MatchRule:1.0");
-}
-
-/**
- * Accessible_isHypertext:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleHypertext.
- *
- * Returns: #TRUE if @obj implements the #AccessibleHypertext interface,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-Accessible_isHypertext (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Hypertext:1.0");
-}
-
-/**
- * Accessible_isImage:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleImage.
- *
- * Returns: #TRUE if @obj implements the #AccessibleImage interface,
- *          #FALSE otherwise.
-**/
-SPIBoolean
-Accessible_isImage (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Image:1.0");
-}
-
-/**
- * Accessible_isSelection:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleSelection.
- *
- * Returns: #TRUE if @obj implements the #AccessibleSelection interface,
- *          #FALSE otherwise.
-**/
-SPIBoolean
-Accessible_isSelection (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Selection:1.0");
-}
-
-/**
- * Accessible_isTable:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleTable.
- *
- * Returns: #TRUE if @obj implements the #AccessibleTable interface,
- *          #FALSE otherwise.
-**/
-SPIBoolean
-Accessible_isTable (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Table:1.0");
-}
-
-/**
- * Accessible_isStreamableContent:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements
- *          #AccessibleStreamableContent.
- *
- * Returns: #TRUE if @obj implements the #AccessibleStreamableContent interface,
- *          #FALSE otherwise.
-**/
-SPIBoolean
-Accessible_isStreamableContent (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/StreamableContent:1.0");
-}
-
-/**
- * Accessible_isText:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleText.
- *
- * Returns: #TRUE if @obj implements the #AccessibleText interface,
- *          #FALSE otherwise.
-**/
-SPIBoolean
-Accessible_isText (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Text:1.0");
-}
-
-/**
- * Accessible_isValue:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Query whether the specified #Accessible implements #AccessibleValue.
- *
- * Returns: #TRUE if @obj implements the #AccessibleValue interface,
- *          #FALSE otherwise.
-**/
-SPIBoolean
-Accessible_isValue (Accessible *obj)
-{
-  return cspi_accessible_is_a (obj,
-                             "IDL:Accessibility/Value:1.0");
-}
-
-/**
- * Accessible_getApplication:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleApplication interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleApplication interface instance, or
- *          NULL if @obj does not implement #AccessibleApplication.
- **/
-AccessibleApplication *
-Accessible_getApplication (Accessible *obj)
-{
-  return (AccessibleApplication *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Application:1.0");
-}
-
-/**
- * Accessible_getAction:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleAction interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleAction interface instance, or
- *          NULL if @obj does not implement #AccessibleAction.
- **/
-AccessibleAction *
-Accessible_getAction (Accessible *obj)
-{
-  return (AccessibleAction *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Action:1.0");
-}
-
-
-/**
- * Accessible_getCollection:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleCollection interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleCollection interface instance, or
- *          NULL if @obj does not implement #AccessibleCollection.
- **/
-AccessibleCollection *
-Accessible_getCollection (Accessible *obj)
-{
-  return (AccessibleCollection *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Collection:1.0");
-}
-
-/**
- * Accessible_getComponent:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleComponent interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleComponent interface instance, or
- *          NULL if @obj does not implement #AccessibleComponent.
- **/
-AccessibleComponent *
-Accessible_getComponent (Accessible *obj)
-{
-  return (AccessibleComponent *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Component:1.0");
-}
-/**
- * Accessible_getDocument:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleDocument interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleDocument interface instance, or
- *          NULL if @obj does not implement #AccessibleDocument.
- **/
-AccessibleDocument *
-Accessible_getDocument (Accessible *obj)
-{
-  return (AccessibleDocument *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Document:1.0");
-}
-
-/**
- * Accessible_getEditableText:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleEditableText interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleEditableText interface instance, or
- *          NULL if @obj does not implement #AccessibleEditableText.
- **/
-AccessibleEditableText *
-Accessible_getEditableText (Accessible *obj)
-{
-  return (AccessibleEditableText *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/EditableText:1.0");
-}
-
-
-
-/**
- * Accessible_getHypertext:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleHypertext interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleHypertext interface instance, or
- *          NULL if @obj does not implement #AccessibleHypertext.
- **/
-AccessibleHypertext *
-Accessible_getHypertext (Accessible *obj)
-{
-  return (AccessibleHypertext *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Hypertext:1.0");
-}
-
-
-
-/**
- * Accessible_getImage:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleImage interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleImage interface instance, or
- *          NULL if @obj does not implement #AccessibleImage.
- **/
-AccessibleImage *
-Accessible_getImage (Accessible *obj)
-{
-  return (AccessibleImage *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Image:1.0");
-}
-
-/**
- * Accessible_getMatchRule:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleMatchRule interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleMatchRule interface instance, or
- *          NULL if @obj does not implement #AccessibleMatchRule.
- **/
-AccessibleMatchRule *
-Accessible_getMatchRule (Accessible *obj)
-{
-  return (AccessibleMatchRule *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/MatchRule:1.0");
-}
-
-/**
- * Accessible_getSelection:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleSelection interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleSelection interface instance, or
- *          NULL if @obj does not implement #AccessibleSelection.
- **/
-AccessibleSelection *
-Accessible_getSelection (Accessible *obj)
-{
-  return (AccessibleSelection *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Selection:1.0");
-}
-
-
-
-/**
- * Accessible_getStreamableContent:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleStreamableContent interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleStreamableContent interface instance, or
- *          NULL if @obj does not implement #AccessibleStreamableContent.
- **/
-AccessibleStreamableContent *
-Accessible_getStreamableContent (Accessible *obj)
-{
-  return (AccessibleStreamableContent *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/StreamableContent:1.0");
-}
-
-/**
- * Accessible_getTable:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleTable interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleTable interface instance, or
- *          NULL if @obj does not implement #AccessibleTable.
- **/
-AccessibleTable *
-Accessible_getTable (Accessible *obj)
-{
-  return (AccessibleTable *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Table:1.0");
-}
-
-/**
- * Accessible_getText:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleText interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleText interface instance, or
- *          NULL if @obj does not implement #AccessibleText.
- **/
-AccessibleText *
-Accessible_getText (Accessible *obj)
-{
-  return (AccessibleText *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Text:1.0");
-}
-
-
-
-/**
- * Accessible_getValue:
- * @obj: a pointer to the #Accessible instance to query.
- *
- * Get the #AccessibleValue interface for an #Accessible.
- *
- * Returns: a pointer to an #AccessibleValue interface instance, or
- *          NULL if @obj does not implement #AccessibleValue.
- **/
-AccessibleValue *
-Accessible_getValue (Accessible *obj)
-{
-  return (AccessibleValue *) Accessible_queryInterface (
-         obj, "IDL:Accessibility/Value:1.0");
-}
-
-
-
-/**
- * Accessible_queryInterface:
- * @obj: a pointer to the #Accessible instance to query.
- * @interface_name: a UTF-8 character string specifiying the requested interface.
- *
- * Query an #Accessible object to for a named interface.
- *
- * Returns: an instance of the named interface object, if it is implemented
- *          by @obj, or NULL otherwise.
- *
- **/
-AccessibleUnknown *
-Accessible_queryInterface (Accessible *obj,
-                          const char *interface_name)
-{
-  Bonobo_Unknown iface;
-  
-  if (!obj)
-    {
-      return NULL;
-    }
-
-  iface = Accessibility_Accessible_queryInterface (CSPI_OBJREF (obj),
-                                                  interface_name,
-                                                  cspi_ev ());
-
-
-  cspi_return_val_if_ev ("queryInterface", NULL); 
-
-  /*
-   * FIXME: we need to be fairly sure that references are going
-   * to mach up if we are going to expose QueryInterface, ie. we
-   * can't allow people to do:
-   * b = a.qi ("b"); b.unref, b.unref to release a's reference.
-   * this should be no real problem though for this level of API
-   * user.
-   */
-
-  return cspi_object_add (iface);
-}
-
-
-/**
- * AccessibleRelation_ref:
- * @obj: a pointer to the #AccessibleRelation object on which to operate.
- *
- * Increment the reference count for an #AccessibleRelation object.
- *
- **/
-void
-AccessibleRelation_ref (AccessibleRelation *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleRelation_unref:
- * @obj: a pointer to the #AccessibleRelation object on which to operate.
- *
- * Decrement the reference count for an #AccessibleRelation object.
- *
- **/
-void
-AccessibleRelation_unref (AccessibleRelation *obj)
-{
-  cspi_object_unref (obj);
-}
-
-static SPIBoolean
-cspi_init_relation_type_table (AccessibleRelationType *relation_type_table)
-{
-  int i;
-  for (i = 0; i < Accessibility_RELATION_LAST_DEFINED; ++i)
-    {
-      relation_type_table [i] = SPI_RELATION_NULL;
-    }
-  relation_type_table [Accessibility_RELATION_NULL] = SPI_RELATION_NULL;
-  relation_type_table [Accessibility_RELATION_LABEL_FOR] = SPI_RELATION_LABEL_FOR;
-  relation_type_table [Accessibility_RELATION_LABELLED_BY] = SPI_RELATION_LABELED_BY;
-  relation_type_table [Accessibility_RELATION_CONTROLLER_FOR] = SPI_RELATION_CONTROLLER_FOR;
-  relation_type_table [Accessibility_RELATION_CONTROLLED_BY] = SPI_RELATION_CONTROLLED_BY;
-  relation_type_table [Accessibility_RELATION_MEMBER_OF] = SPI_RELATION_MEMBER_OF;
-  relation_type_table [Accessibility_RELATION_TOOLTIP_FOR] = SPI_RELATION_NULL;
-  relation_type_table [Accessibility_RELATION_NODE_CHILD_OF] = SPI_RELATION_NODE_CHILD_OF;
-  relation_type_table [Accessibility_RELATION_EXTENDED] = SPI_RELATION_EXTENDED;
-  relation_type_table [Accessibility_RELATION_FLOWS_TO] = SPI_RELATION_FLOWS_TO;
-  relation_type_table [Accessibility_RELATION_FLOWS_FROM] = SPI_RELATION_FLOWS_FROM;
-  relation_type_table [Accessibility_RELATION_SUBWINDOW_OF] = SPI_RELATION_SUBWINDOW_OF;
-  relation_type_table [Accessibility_RELATION_EMBEDS] = SPI_RELATION_EMBEDS;
-  relation_type_table [Accessibility_RELATION_EMBEDDED_BY] = SPI_RELATION_EMBEDDED_BY;
-  relation_type_table [Accessibility_RELATION_POPUP_FOR] = SPI_RELATION_POPUP_FOR;
-  relation_type_table [Accessibility_RELATION_PARENT_WINDOW_OF] = SPI_RELATION_PARENT_WINDOW_OF;
-  relation_type_table [Accessibility_RELATION_DESCRIBED_BY] = SPI_RELATION_DESCRIBED_BY;
-  relation_type_table [Accessibility_RELATION_DESCRIPTION_FOR] = SPI_RELATION_DESCRIPTION_FOR;
-  return TRUE;
-}
-
-static AccessibleRelationType
-cspi_relation_type_from_spi_relation_type (Accessibility_RelationType type)
-{
-  /* array is sized according to IDL RelationType because IDL RelationTypes are the index */   
-  static AccessibleRelationType cspi_relation_type_table [Accessibility_RELATION_LAST_DEFINED];
-  static SPIBoolean is_initialized = FALSE;
-  AccessibleRelationType cspi_type;
-  if (!is_initialized)
-    {
-      is_initialized = cspi_init_relation_type_table (cspi_relation_type_table);           
-    }
-  if (type >= 0 && type < Accessibility_RELATION_LAST_DEFINED)
-    {
-      cspi_type = cspi_relation_type_table [type];         
-    }
-  else
-    {
-      cspi_type = SPI_RELATION_NULL;
-    }
-  return cspi_type; 
-}
-/**
- * AccessibleRelation_getRelationType:
- * @obj: a pointer to the #AccessibleRelation object to query.
- *
- * Get the type of relationship represented by an #AccessibleRelation.
- *
- * Returns: an #AccessibleRelationType indicating the type of relation
- *         encapsulated in this #AccessibleRelation object.
- *
- **/
-AccessibleRelationType
-AccessibleRelation_getRelationType (AccessibleRelation *obj)
-{
-  Accessibility_RelationType retval;
-  
-  cspi_return_val_if_fail (obj, SPI_RELATION_NULL);
-  retval =
-    Accessibility_Relation_getRelationType (CSPI_OBJREF (obj), cspi_ev());
-  cspi_return_val_if_ev ("getRelationType", SPI_RELATION_NULL);
-  return cspi_relation_type_from_spi_relation_type (retval);
-}
-
-/**
- * AccessibleRelation_getNTargets:
- * @obj: a pointer to the #AccessibleRelation object to query.
- *
- * Get the number of objects which this relationship has as its
- *       target objects (the subject is the #Accessible from which this
- *       #AccessibleRelation originated).
- *
- * Returns: a short integer indicating how many target objects which the
- *       originating #Accessible object has the #AccessibleRelation
- *       relationship with.
- **/
-int
-AccessibleRelation_getNTargets (AccessibleRelation *obj)
-{
-  int retval;
-  
-  cspi_return_val_if_fail (obj, -1);
-  retval = Accessibility_Relation_getNTargets (CSPI_OBJREF (obj), cspi_ev());
-  cspi_return_val_if_ev ("getNTargets", -1);
-  return retval;
-}
-
-/**
- * AccessibleRelation_getTarget:
- * @obj: a pointer to the #AccessibleRelation object to query.
- * @i: a (zero-index) integer indicating which (of possibly several) target is requested.
- *
- * Get the @i-th target of a specified #AccessibleRelation relationship.
- *
- * Returns: an #Accessible which is the @i-th object with which the
- *      originating #Accessible has relationship specified in the
- *      #AccessibleRelation object.
- *
- **/
-Accessible *
-AccessibleRelation_getTarget (AccessibleRelation *obj, int i)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj, NULL);
-
-  retval = cspi_object_add (
-                        Accessibility_Relation_getTarget (CSPI_OBJREF(obj),
-                                                          i, cspi_ev()));
-  cspi_return_val_if_ev ("getTarget", NULL);
-  return retval;
-}
-
-/**
- * AccessibleStateSet_ref:
- * @obj: a pointer to the #AccessibleStateSet object on which to operate.
- *
- * Increment the reference count for an #AccessibleStateSet object.
- *
- **/
-void
-AccessibleStateSet_ref (AccessibleStateSet *obj)
-{
-  spi_state_set_cache_ref (obj);
-}
-
-/**
- * AccessibleStateSet_unref:
- * @obj: a pointer to the #AccessibleStateSet object on which to operate.
- *
- * Decrement the reference count for an #AccessibleStateSet object.
- *
- **/
-void
-AccessibleStateSet_unref (AccessibleStateSet *obj)
-{
-  spi_state_set_cache_unref (obj);
-}
-
-static Accessibility_StateType
-spi_state_to_corba (AccessibleState state)
-{
-#define MAP_STATE(a) \
-  case SPI_STATE_##a: \
-    return Accessibility_STATE_##a
-
-  switch (state)
-    {
-      MAP_STATE (INVALID);
-      MAP_STATE (ACTIVE);
-      MAP_STATE (ARMED);
-      MAP_STATE (BUSY);
-      MAP_STATE (CHECKED);
-      MAP_STATE (DEFUNCT);
-      MAP_STATE (EDITABLE);
-      MAP_STATE (ENABLED);
-      MAP_STATE (EXPANDABLE);
-      MAP_STATE (EXPANDED);
-      MAP_STATE (FOCUSABLE);
-      MAP_STATE (FOCUSED);
-      MAP_STATE (HORIZONTAL);
-      MAP_STATE (ICONIFIED);
-      MAP_STATE (MODAL);
-      MAP_STATE (MULTI_LINE);
-      MAP_STATE (MULTISELECTABLE);
-      MAP_STATE (OPAQUE);
-      MAP_STATE (PRESSED);
-      MAP_STATE (RESIZABLE);
-      MAP_STATE (SELECTABLE);
-      MAP_STATE (SELECTED);
-      MAP_STATE (SENSITIVE);
-      MAP_STATE (SHOWING);
-      MAP_STATE (SINGLE_LINE);
-      MAP_STATE (STALE);
-      MAP_STATE (TRANSIENT);
-      MAP_STATE (VERTICAL);
-      MAP_STATE (VISIBLE);
-      MAP_STATE (MANAGES_DESCENDANTS);
-      MAP_STATE (INDETERMINATE);
-      MAP_STATE (TRUNCATED);
-      MAP_STATE (REQUIRED);
-      MAP_STATE (INVALID_ENTRY);
-      MAP_STATE (SUPPORTS_AUTOCOMPLETION);
-      MAP_STATE (SELECTABLE_TEXT);
-      MAP_STATE (IS_DEFAULT);
-      MAP_STATE (VISITED);
-    default:
-      return Accessibility_STATE_INVALID;
-  }
-#undef MAP_STATE
-}            
-
-/**
- * AccessibleStateSet_contains:
- * @obj: a pointer to the #AccessibleStateSet object on which to operate.
- * @state: an #AccessibleState for which the specified #AccessibleStateSet
- *       will be queried.
- *
- * Determine whether a given #AccessibleStateSet includes a given state; that is,
- *       whether @state is true for the stateset in question.
- *
- * Returns: #TRUE if @state is true/included in the given #AccessibleStateSet,
- *          otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleStateSet_contains (AccessibleStateSet *obj,
-                            AccessibleState state)
-{
-  return spi_state_set_cache_contains (obj, spi_state_to_corba (state));
-}
-
-/**
- * AccessibleStateSet_add:
- * @obj: a pointer to the #AccessibleStateSet object on which to operate.
- * @state: an #AccessibleState to be added to the specified #AccessibleStateSet
- *
- * Add a particular #AccessibleState to an #AccessibleStateSet (i.e. set the
- *       given state to #TRUE in the stateset.
- *
- **/
-void
-AccessibleStateSet_add (AccessibleStateSet *obj,
-                       AccessibleState state)
-{
-  spi_state_set_cache_add (obj, spi_state_to_corba (state));
-}
-
-/**
- * AccessibleStateSet_remove:
- * @obj: a pointer to the #AccessibleStateSet object on which to operate.
- * @state: an #AccessibleState to be removed from the specified #AccessibleStateSet
- *
- * Remove a particular #AccessibleState to an #AccessibleStateSet (i.e. set the
- *       given state to #FALSE in the stateset.)
- *
- **/
-void
-AccessibleStateSet_remove (AccessibleStateSet *obj,
-                          AccessibleState state)
-{
-  spi_state_set_cache_remove (obj, spi_state_to_corba (state));
-}
-
-/**
- * AccessibleStateSet_equals:
- * @obj: a pointer to the first #AccessibleStateSet object on which to operate.
- * @obj2: a pointer to the second #AccessibleStateSet object on which to operate.
- *
- * Determine whether two instances of #AccessibleStateSet are equivalent (i.e.
- *         consist of the same #AccessibleStates).  Useful for checking multiple
- *         state variables at once; construct the target state then compare against it.
- *
- * @see AccessibleStateSet_compare().
- *
- * Returns: #TRUE if the two #AccessibleStateSets are equivalent,
- *          otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleStateSet_equals (AccessibleStateSet *obj,
-                           AccessibleStateSet *obj2)
-{
-  SPIBoolean   eq;
-  AtkStateSet *cmp;
-
-  if (obj == obj2)
-    {
-      return TRUE;
-    }
-
-  cmp = spi_state_set_cache_xor (obj, obj2);
-  eq = spi_state_set_cache_is_empty (cmp);
-  spi_state_set_cache_unref (cmp);
-
-  return eq;
-}
-
-/**
- * AccessibleStateSet_compare:
- * @obj: a pointer to the first #AccessibleStateSet object on which to operate.
- * @obj2: a pointer to the second #AccessibleStateSet object on which to operate.
- *
- * Determine the differences between two instances of #AccessibleStateSet.
- * Not Yet Implemented.
- *.
- * @see AccessibleStateSet_equals().
- *
- * Returns: an #AccessibleStateSet object containing all states contained on one of
- *          the two sets but not the other.
- *
- **/
-AccessibleStateSet *
-AccessibleStateSet_compare (AccessibleStateSet *obj,
-                            AccessibleStateSet *obj2)
-{
-  return spi_state_set_cache_xor (obj, obj2);
-}
-
-/**
- * AccessibleStateSet_isEmpty:
- * @obj: a pointer to the #AccessibleStateSet object on which to operate.
- *
- * Determine whether a given #AccessibleStateSet is the empty set.
- *
- * Returns: #TRUE if the given #AccessibleStateSet contains no (true) states,
- *          otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleStateSet_isEmpty (AccessibleStateSet *obj)
-{
-  return spi_state_set_cache_is_empty (obj);
-}
-
-
diff --git a/cspi/spi_action.c b/cspi/spi_action.c
deleted file mode 100644 (file)
index adfd1d1..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleAction_ref:
- * @obj: a pointer to the #AccessibleAction on which to operate.
- *
- * Increment the reference count for an #AccessibleAction.
- **/
-void
-AccessibleAction_ref (AccessibleAction *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleAction_unref:
- * @obj: a pointer to the #AccessibleAction on which to operate.
- *
- * Decrement the reference count for an #AccessibleAction.
- **/
-void
-AccessibleAction_unref (AccessibleAction *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleAction_getNActions:
- * @obj: a pointer to the #AccessibleAction to query.
- *
- * Get the number of actions invokable on an #AccessibleAction implementor.
- *
- * Returns: a #long integer indicatin the number of invokable actions.
- **/
-long
-AccessibleAction_getNActions (AccessibleAction *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Action__get_nActions (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getNActions", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleAction_getDescription:
- * @obj: a pointer to the #AccessibleAction implementor to query.
- * @i: a long integer indicating which action to query.
- *
- * Get the description of '@i-th' action invokable on an
- *      object implementing #AccessibleAction.
- *
- * Returns: a UTF-8 string describing the '@i-th' invokable action.
- **/
-char *
-AccessibleAction_getDescription (AccessibleAction *obj,
-                                 long int          i)
-{
-  char *retval;
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Action_getDescription (CSPI_OBJREF (obj),
-                                        i,
-                                        cspi_ev ());
-
-  cspi_return_val_if_ev ("getDescription", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleAction_getKeyBinding:
- * @obj: a pointer to the #AccessibleAction implementor to query.
- * @i: a long integer indicating which action to query.
- *
- * Get the keybindings for the @i-th action invokable on an
- *      object implementing #AccessibleAction, if any are defined.
- *      The keybindings string format is as follows:
- *        there are multiple parts to a keybinding string (typically 3).
- *        They are delimited with ";".  The first is the action's
- *        keybinding which is usable if the object implementing the action
- *        is currently posted to the screen, e.g. if a menu is posted 
- *        then these keybindings for the corresponding menu-items are
- *        available.  The second keybinding substring is the full key sequence
- *        necessary to post the action's widget and activate it, e.g. for
- *        a menu item such as "File->Open" it would both post the menu and
- *        activate the item.  Thus the second keybinding string is available
- *        during the lifetime of the containing toplevel window as a whole,
- *        whereas the first keybinding string only works while the object
- *        implementing AtkAction is posted.  The third (and optional)
- *        keybinding string is the "keyboard shortcut" which invokes the 
- *        action without posting any menus. 
- *        Meta-keys are indicated by the conventional strings
- *        "<Control>", "<Alt>", "<Shift>", "<Mod2>",
- *        etc. (we use the same string as gtk_accelerator_name() in 
- *        gtk+-2.X.
- *
- * Returns: a UTF-8 string which can be parsed to determine the @i-th
- *       invokable action's keybindings.
- **/
-char *
-AccessibleAction_getKeyBinding (AccessibleAction *obj,
-                               long int          i)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Action_getKeyBinding (CSPI_OBJREF (obj),
-       i,
-       cspi_ev ());
-
-  cspi_return_val_if_ev ("getKeyBinding", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleAction_getName:
- * @obj: a pointer to the #AccessibleAction implementor to query.
- * @i: a long integer indicating which action to query.
- *
- * Get the name of the '@i-th' action invokable on an
- *      object implementing #AccessibleAction.
- *
- * Returns: the 'event type' name of the action, as a UTF-8 string.
- **/
-char *
-AccessibleAction_getName (AccessibleAction *obj,
-                         long int          i)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-   Accessibility_Action_getName (CSPI_OBJREF (obj),
-                                i,
-                                cspi_ev ());
-
-  cspi_return_val_if_ev ("getName", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleAction_doAction:
- * @obj: a pointer to the #AccessibleAction to query.
- * @i: an integer specifying which action to invoke.
- *
- * Invoke the action indicated by #index.
- *
- * Returns: #TRUE if the action is successfully invoked, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleAction_doAction (AccessibleAction *obj,
-                           long int i)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Action_doAction (CSPI_OBJREF (obj),
-                                  i,
-                                  cspi_ev ());
-
-  cspi_return_val_if_ev ("doAction", FALSE);
-
-  return retval;
-}
diff --git a/cspi/spi_application.c b/cspi/spi_application.c
deleted file mode 100644 (file)
index 4be9422..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-/*
- *
- * AccessibleApplication function prototypes
- *
- */
-
-#include <cspi/spi-private.h>
-#include <locale.h>
-
-/**
- * AccessibleApplication_ref:
- * @obj: a pointer to the #AccessibleApplication on which to operate.
- *
- * Increment the reference count for an #AccessibleApplication.
- **/
-void
-AccessibleApplication_ref (AccessibleApplication *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleApplication_unref:
- * @obj: a pointer to the #AccessibleApplication object on which to operate.
- *
- * Decrement the reference count for an #AccessibleApplication.
- **/
-void
-AccessibleApplication_unref (AccessibleApplication *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleApplication_getToolkitName:
- * @obj: a pointer to the #AccessibleApplication to query.
- *
- * Get the name of the UI toolkit used by an #AccessibleApplication.
- *
- * Returns: a UTF-8 string indicating which UI toolkit is
- *          used by an application.
- **/
-char *
-AccessibleApplication_getToolkitName (AccessibleApplication *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Application__get_toolkitName (CSPI_OBJREF (obj),
-                                               cspi_ev ());
-
-  cspi_return_val_if_ev ("toolkitName", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleApplication_getVersion:
- * @obj: a pointer to the #AccessibleApplication being queried.
- *
- * Get the version of the at-spi bridge exported by an
- *      #AccessibleApplication instance.
- *
- * Returns: a UTF-8 string indicating the application's
- *          at-spi version.
- **/
-char *
-AccessibleApplication_getVersion (AccessibleApplication *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Application__get_version (CSPI_OBJREF (obj),
-                                           cspi_ev ());
-
-  cspi_return_val_if_ev ("version", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleApplication_getID:
- * @obj: a pointer to the #AccessibleApplication being queried.
- *
- * Get the unique ID assigned by the Registry to an
- *      #AccessibleApplication instance.
- * (Not Yet Implemented by the registry).
- *
- * Returns: a unique #long integer associated with the application
- *          by the Registry, or 0 if the application is not registered.
- **/
-long
-AccessibleApplication_getID (AccessibleApplication *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, 0);
-
-  retval = Accessibility_Application__get_id (CSPI_OBJREF (obj),
-                                             cspi_ev ());
-
-  cspi_return_val_if_ev ("id", 0);
-
-  return retval;
-}
-
-/**
- * AccessibleApplication_getLocale:
- * @obj: a pointer to the #AccessibleApplication being queried.
- * @lc_category: one of the POSIX LC_TYPE enumeration, for instance
- * LC_MESSAGES.
- *
- * Get a POSIX-compliant string describing the application's current
- * locale setting for a particular @lctype category.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: a POSIX-compliant locale string, e.g. "C", "pt_BR", "sr@latn", etc.
- **/
-char *
-AccessibleApplication_getLocale (AccessibleApplication *obj, int lc_category)
-{
-  gchar *retval;
-  Accessibility_LOCALE_TYPE lctype;
-
-  cspi_return_val_if_fail (obj != NULL, CORBA_string_dup (""));
-
-  switch (lc_category) 
-  {
-  case LC_COLLATE:
-    lctype = Accessibility_LOCALE_TYPE_COLLATE;
-    break;
-  case LC_CTYPE:
-    lctype = Accessibility_LOCALE_TYPE_CTYPE;
-    break;
-  case LC_NUMERIC:
-    lctype = Accessibility_LOCALE_TYPE_NUMERIC;
-    break;
-  case LC_MONETARY:
-    lctype = Accessibility_LOCALE_TYPE_MONETARY;
-    break;
-  case LC_MESSAGES:
-  default:
-    lctype = Accessibility_LOCALE_TYPE_MESSAGES;
-    break;
-  }
-
-  retval = Accessibility_Application_getLocale (CSPI_OBJREF (obj),
-                                               lctype,
-                                               cspi_ev ());
-
-  cspi_return_val_if_ev ("id", CORBA_string_dup (""));
-
-  return CORBA_string_dup (retval);
-}
-
-/**
- * AccessibleApplication_pause:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Attempt to pause the application (used when client event queue is
- *  over-full).
- * Not Yet Implemented.
- *
- * Returns: #TRUE if the application was paused successfully, #FALSE otherwise.
- *
- **/
-SPIBoolean
-AccessibleApplication_pause (AccessibleApplication *obj)
-{
-  return FALSE;
-}
-
-/**
- * AccessibleApplication_resume:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Attempt to resume the application (used after #AccessibleApplication_pause).
- * Not Yet Implemented.
- *
- * Returns: #TRUE if application processing resumed successfully, #FALSE otherwise.
- *
- **/
-SPIBoolean
-AccessibleApplication_resume (AccessibleApplication *obj)
-{
-  return FALSE;
-}
diff --git a/cspi/spi_collection.c b/cspi/spi_collection.c
deleted file mode 100644 (file)
index 9fbcdb3..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2007 IBM Corp.
- *
- * 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 <cspi/spi.h>
-#include <cspi/spi-private.h>
-
-/**
- * AccessibleCollection_ref:
- * @obj: a pointer to the #AccessibleCollection object on which to operate.
- *
- * Increment the reference count for an #AccessibleCollection object.
- **/
-
-void
-AccessibleCollection_ref (AccessibleCollection *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleCollection_unref:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Decrement the reference count for an #AccessibleCollection object.
- **/
-
-void
-AccessibleCollection_unref (AccessibleCollection *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleCollection_createMatchRule:
- * @obj: a pointer to the #Accessible object on which to operate.
- * @states: An #AccessibleStateSet whose states are to be compared with the objects in the collection.
- * @statematchtype A MatchType which determines the match requirements for the 'states' criterion.
- * @attributes: An #AccessibleAttributeSet of attributes which should present 
- * in members of a matching set. 
- * @attributematchtype: A MatchType which determines the match requirements for the 'attributes' criterion.
- * @roles: An #AcceessibleRoleSet specifying the #AccessibleRole values which are to be considered among the match criteria.
- * @rolematchtype: A MatchType which determines the match requirements for the 'roles' criterion.
- * @interfaces: A string which represents one or more IDL interface definitions which should be implemented by matching objects.
- * @interfacematchtype: A MatchType which determines the match requirements for the 'interfaces' criterion.
- * @invert: If TRUE, the resulting MatchRule will return objects which do NOT match the specified criteria, 
- * instead of those which do; i.e. this parameter "inverts" the sense of the resulting query.
- *
- * Returns an #AccesibleMatchRule object which encapsulates the specified criteria.
- **/
-
-AccessibleMatchRule *
-AccessibleCollection_createMatchRule (AccessibleCollection *obj,
-                                     AccessibleStateSet *states,
-                                     AccessibleCollectionMatchType statematchtype,
-                                     AccessibleAttributeSet *attributes,
-                                     AccessibleCollectionMatchType attributematchtype,
-                                     AccessibleRoleSet *roles,
-                                     AccessibleCollectionMatchType rolematchtype,
-                                     char *interfaces,
-                                     AccessibleCollectionMatchType interfacematchtype,
-                                     long int invert)
-{
-
-     Accessibility_AttributeSet *attributeset;
-     Accessibility_RoleSet *roleset;
-     Accessibility_MatchRule retval;
-     int i;
-
-     cspi_return_val_if_fail (obj != NULL, NULL);
-
-     attributeset = CORBA_sequence_CORBA_string__alloc ();
-     attributeset->_length = attributes->len;
-     attributeset->_buffer = CORBA_sequence_CORBA_string_allocbuf (attributeset->_length);
-
-     for (i = 0; i < attributeset->_length; i++)
-         attributeset->_buffer [i] =  CORBA_string_dup (attributes->attributes [i]);
-
-     CORBA_sequence_set_release (attributeset, TRUE);
-
-     roleset =  Accessibility_RoleSet__alloc ();
-     roleset->_length = roles->len;
-     roleset->_buffer =  Accessibility_RoleSet_allocbuf (roleset->_length);
-                                       
-     for (i = 0; i < roleset->_length; i++)
-           roleset->_buffer [i] = roles->roles [i];
-
-     retval =  Accessibility_Collection_createMatchRule (CSPI_OBJREF (obj),
-                                                        states,
-                                                        statematchtype,
-                                                        attributeset, 
-                                                        attributematchtype,
-                                                        roleset, 
-                                                        rolematchtype,
-                                                        interfaces,
-                                                        interfacematchtype,
-                                                        invert,
-                                                        cspi_ev ());
-
-     cspi_return_val_if_ev ("createMatchRule", NULL);
-
-     return cspi_object_add (retval);
-    
-
-}
-
-/**
- * AccessibleCollection_freeMatchRule:
- * @obj: a pointer to the #Accessible object on which to operate.
- * @matchrule: a pointer to the #AccessibleMatchRule to free
- *
- * Frees the resources associated with the specified #AccessibleMatchRule
- **/
-
-void
-AccessibleCollection_freeMatchRule (AccessibleCollection *obj,
-                                   AccessibleMatchRule  *matchrule)
-{
-
-     cspi_return_if_fail (obj != NULL);
-     
-     Accessibility_Collection_freeMatchRule (CSPI_OBJREF (obj),
-                                            CSPI_OBJREF (matchrule),
-                                            cspi_ev ());
-
-      cspi_return_if_ev ("freeMatchRule");
-}
diff --git a/cspi/spi_component.c b/cspi/spi_component.c
deleted file mode 100644 (file)
index 11202b0..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-/*
- *
- * AccessibleComponent function implementations
- *
- */
-
-#include <cspi/spi-private.h>
-
-/**
- * AccessibleComponent_ref:
- * @obj: a pointer to an object implementing #AccessibleComponent on which to operate.
- *
- * Increment the reference count for an #AccessibleComponent.
- **/
-void
-AccessibleComponent_ref (AccessibleComponent *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleComponent_unref:
- * @obj: a pointer to the object implementing #AccessibleComponent on which to operate.
- *
- * Decrement the reference count for an #AccessibleComponent.
- **/
-void
-AccessibleComponent_unref (AccessibleComponent *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleComponent_contains:
- * @obj: a pointer to the #AccessibleComponent to query.
- * @x: a #long specifying the x coordinate in question.
- * @y: a #long specifying the y coordinate in question.
- * @ctype: the desired coordinate system of the point (@x, @y)
- *         (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).
- *
- * Query whether a given #AccessibleComponent contains a particular point.
- *
- * Returns: a #TRUE if the specified component contains the point (@x, @y),
- *          otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleComponent_contains (AccessibleComponent *obj,
-                              long int x,
-                              long int y,
-                              AccessibleCoordType ctype)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Component_contains (CSPI_OBJREF (obj),
-                                            x,
-                                            y,
-                                            ctype,
-                                            cspi_ev ());
-  cspi_return_val_if_ev ("contains", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleComponent_getAccessibleAtPoint:
- * @obj: a pointer to the #AccessibleComponent to query.
- * @x: a #long specifying the x coordinate of the point in question.
- * @y: a #long specifying the y coordinate of the point in question.
- * @ctype: the coordinate system of the point (@x, @y)
- *         (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).
- *
- * Get the accessible child at a given coordinate within an #AccessibleComponent.
- *
- * Returns: a pointer to an #Accessible child of the specified component which
- *          contains the point (@x, @y), or NULL of no child contains the point.
- **/
-Accessible *
-AccessibleComponent_getAccessibleAtPoint (AccessibleComponent *obj,
-                                          long int x,
-                                          long int y,
-                                          AccessibleCoordType ctype)
-{
-  Accessibility_Accessible child;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  child = Accessibility_Component_getAccessibleAtPoint (CSPI_OBJREF (obj),
-                                                       x,
-                                                       y,
-                                                       ctype,
-                                                       cspi_ev ());
-  return cspi_object_add (child);
-}
-
-/**
- * AccessibleComponent_getExtents:
- * @obj: a pointer to the #AccessibleComponent to query.
- * @x: a pointer to a #long into which the minimum x coordinate will be returned.
- * @y: a pointer to a #long into which the minimum y coordinate will be returned.
- * @width: a pointer to a #long into which the x extents (width) will be returned.
- * @height: a pointer to a #long into which the y extents (height) will be returned.
- * @ctype: the desired coordinate system into which to return the results,
- *         (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).
- *
- * Get the bounding box of the specified #AccessibleComponent.
- *
- **/
-void
-AccessibleComponent_getExtents (AccessibleComponent *obj,
-                                long int *x,
-                                long int *y,
-                                long int *width,
-                                long int *height,
-                                AccessibleCoordType ctype)
-{
-  Accessibility_BoundingBox bbox;
-
-  cspi_return_if_fail (obj != NULL);
-
-  bbox = Accessibility_Component_getExtents (CSPI_OBJREF (obj),
-                                            ctype,
-                                            cspi_ev ());
-  if (!cspi_check_ev ("getExtents"))
-    {
-      *x = *y = *width = *height = 0;    
-    }
-  else
-    {
-      *x = bbox.x;
-      *y = bbox.y;
-      *width = bbox.width;
-      *height = bbox.height;
-    }
-}
-
-/**
- * AccessibleComponent_getPosition:
- * @obj: a pointer to the #AccessibleComponent to query.
- * @x: a pointer to a #long into which the minimum x coordinate will be returned.
- * @y: a pointer to a #long into which the minimum y coordinate will be returned.
- * @ctype: the desired coordinate system into which to return the results,
- *         (e.g. CSPI_COORD_TYPE_WINDOW, CSPI_COORD_TYPE_SCREEN).
- *
- * Get the minimum x and y coordinates of the specified #AccessibleComponent.
- *
- **/
-void
-AccessibleComponent_getPosition (AccessibleComponent *obj,
-                                 long int *x,
-                                 long int *y,
-                                 AccessibleCoordType ctype)
-{
-  CORBA_long cx, cy;
-
-  cspi_return_if_fail (obj != NULL);
-
-  Accessibility_Component_getPosition (CSPI_OBJREF (obj),
-                                      &cx, &cy, ctype, cspi_ev ());
-
-  if (!cspi_check_ev ("getPosition"))
-    {
-      *x = *y = 0;
-    }
-  else
-    {
-      *x = cx;
-      *y = cy;
-    }
-}
-
-/**
- * AccessibleComponent_getSize:
- * @obj: a pointer to the #AccessibleComponent to query.
- * @width: a pointer to a #long into which the x extents (width) will be returned.
- * @height: a pointer to a #long into which the y extents (height) will be returned.
- *
- * Get the size of the specified #AccessibleComponent.
- *
- **/
-void
-AccessibleComponent_getSize (AccessibleComponent *obj,
-                             long int *width,
-                             long int *height)
-{
-  CORBA_long cw, ch;
-
-  cspi_return_if_fail (obj != NULL);
-
-  Accessibility_Component_getSize (CSPI_OBJREF (obj),
-                                   &cw,
-                                   &ch,
-                                   cspi_ev ());
-  if (cspi_check_ev ("getSize"))
-  {
-    *width = *height = 0;
-  }
-  else
-  {
-    *width = cw;
-    *height = ch;
-  }
-}
-
-/**
- * AccessibleComponent_getLayer:
- * @obj: a pointer to the #AccessibleComponent to query.
- *
- * Query which layer the component is painted into, to help determine its 
- *      visibility in terms of stacking order.
- *
- * Returns: the #AccessibleComponentLayer into which this component is painted.
- **/
-AccessibleComponentLayer
-AccessibleComponent_getLayer (AccessibleComponent *obj)
-{
-  AccessibleComponentLayer     retval;
-  Accessibility_ComponentLayer zlayer;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  zlayer = Accessibility_Component_getLayer (CSPI_OBJREF (obj),
-                                            cspi_ev ());
-
-  cspi_return_val_if_ev ("getLayer", SPI_LAYER_INVALID);
-
-  switch (zlayer)
-    {
-    case Accessibility_LAYER_BACKGROUND:
-      retval = SPI_LAYER_BACKGROUND;
-      break;
-    case Accessibility_LAYER_CANVAS:     
-      retval = SPI_LAYER_CANVAS;
-      break;
-    case Accessibility_LAYER_WIDGET:     
-      retval = SPI_LAYER_WIDGET;
-      break;
-    case Accessibility_LAYER_MDI:        
-      retval = SPI_LAYER_MDI;
-      break;
-    case Accessibility_LAYER_POPUP:      
-      retval = SPI_LAYER_POPUP;
-      break;
-    case Accessibility_LAYER_OVERLAY:    
-      retval = SPI_LAYER_OVERLAY;
-      break;
-    case Accessibility_LAYER_WINDOW:     
-      retval = SPI_LAYER_WINDOW;
-      break;
-    default:
-      retval = SPI_LAYER_INVALID;
-      break;
-    }
-
-  return retval;
-}
-
-/**
- * AccessibleComponent_getMDIZOrder:
- * @obj: a pointer to the #AccessibleComponent to query.
- *
- * Query the z stacking order of a component which is in the MDI or window
- *       layer. (Bigger z-order numbers mean nearer the top)
- *
- * Returns: a short integer indicating the stacking order of the component 
- *       in the MDI layer, or -1 if the component is not in the MDI layer.
- **/
-short
-AccessibleComponent_getMDIZOrder (AccessibleComponent *obj)
-{
-  short retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Component_getMDIZOrder (CSPI_OBJREF (obj),
-                                                cspi_ev ());
-
-  cspi_return_val_if_ev ("getMDIZOrder", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleComponent_grabFocus:
- * @obj: a pointer to the #AccessibleComponent on which to operate.
- *
- * Attempt to set the keyboard input focus to the specified
- *         #AccessibleComponent.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- *
- **/
-SPIBoolean
-AccessibleComponent_grabFocus (AccessibleComponent *obj)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Component_grabFocus (CSPI_OBJREF (obj),
-                                             cspi_ev ());
-
-  cspi_return_val_if_ev ("grabFocus", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleComponent_getAlpha:
- * @obj: The #AccessibleComponent to be queried.
- *
- * Get the opacity/alpha value of a component, if alpha blending is in use.
- *
- * Returns: the opacity value of a component, as a double between 0.0 and 1.0. 
- **/
-double      
-AccessibleComponent_getAlpha    (AccessibleComponent *obj)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, 1.0);
-
-  retval = Accessibility_Component_getAlpha (CSPI_OBJREF (obj),
-                                             cspi_ev ());
-
-  cspi_return_val_if_ev ("getAlpha", 1.0);
-
-  return retval;
-}
diff --git a/cspi/spi_document.c b/cspi/spi_document.c
deleted file mode 100644 (file)
index 025dcb5..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi.h>
-#include <cspi/spi-private.h>
-
-/**
- * AccessibleDocument_ref:
- * @obj: a pointer to the #AccessibleDocument object on which to operate.
- *
- * Increment the reference count for an #AccessibleDocument object.
- **/
-void
-AccessibleDocument_ref (AccessibleDocument *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleDocument_unref:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Decrement the reference count for an #AccessibleDocument object.
- **/
-
-void
-AccessibleDocument_unref (AccessibleDocument *obj)
-{
-  cspi_object_unref (obj);
-}
-
-
-/**
- * AccessibleDocument_getLocale:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Gets the locale associated with the document's content.
- * e.g. the locale for LOCALE_TYPE_MESSAGES.
- *
- * Returns: a string compliant with the POSIX standard for locale description.
- **/
-char *
-AccessibleDocument_getLocale (AccessibleDocument *obj)
-{
-  char *retval = "C";
-
-  cspi_return_val_if_fail (obj != NULL, "C");
-
-  retval = Accessibility_Document_getLocale (CSPI_OBJREF (obj),
-                                            cspi_ev ());
-  
-  cspi_return_val_if_ev ("getLocale", NULL);
-
-  return retval;
-
-}
-
-/**
- * AccessibleDocument_getAttributeValue:
- * @obj: a pointer to the #Accessible object on which to operate.
- * @attribute: a string indicating the name of a specific attribute 
- *
- * Gets the value of a single attribute, if specified for the document as a whole.
- *
- * (name-value pair) being queried.
- * 
- * Returns a string corresponding to the value of the specified attribute, or
- * an empty string if the attribute is unspecified for the object.
- **/
-char *
-AccessibleDocument_getAttributeValue (AccessibleDocument *obj,
-                                     char *attribute)
-{
-  
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = Accessibility_Document_getAttributeValue (CSPI_OBJREF (obj),
-                                                    attribute,
-                                                    cspi_ev ());
-
-  cspi_return_val_if_ev ("getAttributeValue", NULL);
-
-  return retval;
-  
-}
-                                     
-
-/**
- * AccessibleDocument_getAttributes:
- * @obj: a pointer to the #Accessible object on which to operate.
- * 
- * Gets all attributes specified for a document as a whole.  
- *
- * For attributes which change within 
- * the document content, see Accessibility::Text::getAttributes instead.
- * 
- * Returns an ::AttributeSet containing the attributes of the document, 
- * as name-value pairs.
- *
- * Since AT-SPI 1.8.0
- **/
-AccessibleAttributeSet * 
-AccessibleDocument_getAttributes (AccessibleDocument *obj){
-
-  AccessibleAttributeSet *retval;
-  Accessibility_AttributeSet *corba_seq;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  corba_seq = Accessibility_Document_getAttributes (CSPI_OBJREF (obj),
-                                                   cspi_ev ());
-  cspi_return_val_if_ev ("getAttributes", NULL);
-  
-  retval = _cspi_attribute_set_from_sequence (corba_seq);
-  CORBA_free (corba_seq);
-
-  return retval;
-
-}
diff --git a/cspi/spi_editabletext.c b/cspi/spi_editabletext.c
deleted file mode 100644 (file)
index 30b0fd5..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleEditableText_ref:
- * @obj: a pointer to the #AccessibleEditableText object on which to operate.
- *
- * Increment the reference count for an #AccessibleEditableText object.
- *       Since AccessibleEditableText is derived from AccessibleText,
- *       this is the same as AccessibleText_ref().
- **/
-void
-AccessibleEditableText_ref (AccessibleEditableText *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleEditableText_unref:
- * @obj: a pointer to the #AccessibleEditableText object on which to operate.
- *
- * Decrement the reference count for an #AccessibleEdiitableText object.
- *       Since AccessibleEditableText is derived from AccessibleText,
- *       this is the same as AccessibleText_unref().
- **/
-void
-AccessibleEditableText_unref (AccessibleEditableText *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleEditableText_setAttributes:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @attributes: a character string indicating the attributes to apply to the range,
- *        delimited by ':'.
- * @startOffset: a #long indicating the start of the desired text range.
- * @endOffset: a #long indicating the first character past the desired range.
- *
- * Set the attributes applied to a range of text from an #AccessibleEditableText
- *          object, and the bounds of the range.
- *
- * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleEditableText_setAttributes (AccessibleEditableText *obj,
-                                     const char *attributes,
-                                     long int startPos,
-                                     long int endPos)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = 
-    Accessibility_EditableText_setAttributes (CSPI_OBJREF (obj),
-                                             attributes,
-                                             startPos,
-                                             endPos, cspi_ev ());
-
-  cspi_return_val_if_ev ("setAttributes", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleEditableText_setTextContents:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @newContents: a character string, encoded in UTF-8, which is to
- *      become the new text contents of the #AccessibleEditableText object.
- *
- * Replace the entire text contents of an #AccessibleEditableText object.
- *
- * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleEditableText_setTextContents (AccessibleEditableText *obj,
-                                        const char *newContents)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_EditableText_setTextContents (CSPI_OBJREF (obj),
-                                                                         newContents, cspi_ev ());
-
-  cspi_return_val_if_ev ("setTextContents", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleEditableText_insertText:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @position: an integer indicating the character offset at which to insert
- *       the new text.  
- * @text: a char* pointer to the text to insert, in UTF-8 encoding.
- * @length: (frankly I'm not sure this parameter should be here)
- *
- * Insert text into an #AccessibleEditableText object.
- * As with all character offsets, the specified @position may not be the
- *       same as the resulting byte offset, since the text is in a
- *       variable-width encoding.
- *
- * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleEditableText_insertText (AccessibleEditableText *obj,
-                                   long int position,
-                                   const char *text,
-                                   long int length)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_EditableText_insertText (CSPI_OBJREF (obj),
-                                        position, text,
-                                        length, cspi_ev ());
-
-  cspi_return_val_if_ev ("insertText", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleEditableText_copyText:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @startPos: an integer indicating the starting character offset
- *       of the text to copy.
- * @endPos: an integer indicating the offset of the first character
- *       past the end of the text section to be copied.
- *
- * Copy text from an #AccessibleEditableText object into the clipboard.
- *
- * @see: AccessibleEditableText_pasteText 
- *
- * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleEditableText_copyText (AccessibleText *obj,
-                                 long int startPos,
-                                 long int endPos)
-{
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  Accessibility_EditableText_copyText (
-    CSPI_OBJREF (obj), startPos,
-    endPos, cspi_ev ());
-
-  cspi_return_val_if_ev ("copyText", FALSE);
-
-  return TRUE;
-}
-
-/**
- * AccessibleEditableText_cutText:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @startPos: an integer indicating the starting character offset
- *       of the text to cut.
- * @endPos: an integer indicating the offset of the first character
- *       past the end of the text section to be cut.
- *
- * Delete text from an #AccessibleEditableText object, copying the
- *       excised portion into the clipboard.
- *
- * @see: AccessibleEditableText_pasteText
- *
- * Returns: #TRUE if operation was successful, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleEditableText_cutText (AccessibleEditableText *obj,
-                                long int startPos,
-                                long int endPos)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_EditableText_cutText (
-    CSPI_OBJREF (obj),
-    startPos, endPos, cspi_ev ());
-
-  cspi_return_val_if_ev ("cutText", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleEditableText_deleteText:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @startPos: an integer indicating the starting character offset
- *       of the text to delete.
- * @endPos: an integer indicating the offset of the first character
- *       past the end of the text section to be deleted.
- *
- * Delete text from an #AccessibleEditableText object, without copying the
- *       excised portion into the clipboard.
- *
- * @see: AccessibleEditableText_cutText
- *
- * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleEditableText_deleteText (AccessibleEditableText *obj,
-                                   long startPos,
-                                   long endPos)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_EditableText_deleteText (
-    CSPI_OBJREF (obj),
-    startPos, endPos, cspi_ev ());
-
-  cspi_return_val_if_ev ("deleteText", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleEditableText_pasteText:
- * @obj: a pointer to the #AccessibleEditableText object to modify.
- * @position: an integer indicating the character offset at which to insert
- *       the new text.  
- *
- * Insert text from the clipboard into an #AccessibleEditableText object.
- * As with all character offsets, the specified @position may not be the
- *       same as the resulting byte offset, since the text is in a
- *       variable-width encoding.
- *
- * Returns: #TRUE if the operation was successful, otherwise #FALSE.
- **/
-SPIBoolean
-AccessibleEditableText_pasteText (AccessibleEditableText *obj,
-                                  long int position)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_EditableText_pasteText (
-    CSPI_OBJREF (obj), position, cspi_ev ());
-
-  cspi_return_val_if_ev ("pasteText", FALSE);
-
-  return retval;
-}
diff --git a/cspi/spi_event.c b/cspi/spi_event.c
deleted file mode 100644 (file)
index 07feaed..0000000
+++ /dev/null
@@ -1,914 +0,0 @@
-/*
- * 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 <cspi/spi-private.h>
-#include <cspi/bonobo/cspi-bonobo-listener.h>
-
-static GSList *_cspi_event_queue = NULL;
-
-/**
- * SPI_freeAccessibleKeySet:
- * @keyset: An AccessibleKeyset to free.
- *
- * Release the memory used by an AccessibleKeySet.
- *
- **/
-void
-SPI_freeAccessibleKeySet (AccessibleKeySet *keyset)
-{
-  int i = 0;   
-  g_free (keyset->keysyms);
-  g_free (keyset->keycodes);
-  while (keyset->keystrings [i])
-    {
-      g_free (keyset->keystrings [i++]);
-    }
-  g_free (keyset->keystrings);
-  g_free (keyset);
-}
-
-/**
- * SPI_createAccessibleKeySet:
- * @len: the number of key values in the key set.
- * @keysyms: a UTF-8 string containing symbolic key values to be matched, or NULL if
- *           matching is performed against other key values instead.
- * @keycodes: an array of unsigned short values which are the hardware keycodes
- *           to be matched, or NULL if the keyset is specified solely by keysyms
- *           and/or keystrings.
- * @keystrings: an array of null-terminated character strings which specify key
- *             name values to match, or NULL if the keyset is specified solely by
- *             keycodes and/or keysyms.
- *
- * Create a new #AccessibleKeySet of a specified length.
- * A KeySet is used typically to match key event values, and a matches are made
- * using the following criteria: a match exists with a key event if all non-null
- * i-th members of the keyset match the key event.
- * If both keystring and keysym values are NULL, a keycode value match is
- * forced, thus the match for keysym=0, keycode=0, keystring=NULL is
- * keycode 0.
- *
- * Returns: a pointer to a newly-created #AccessibleKeySet.
- *
- **/
-AccessibleKeySet *
-SPI_createAccessibleKeySet (int len, const char *keysyms, short *keycodes,
-                           const char **keystrings)
-{
-  AccessibleKeySet *keyset = g_new0 (AccessibleKeySet, 1);
-  int i, keysym_len = 0;
-  const char *keysym_ptr = keysyms;
-  keyset->len = len;
-  keyset->keysyms = g_new0 (unsigned long, len);
-  keyset->keycodes = g_new0 (unsigned short, len);
-  keyset->keystrings = g_new0 (char *, len);
-  if (keysyms)
-    {
-      keysym_len = g_utf8_strlen (keysyms, -1);
-    }
-  for (i = 0; i < len; ++i)
-    {
-      if (i < keysym_len)
-        {
-         keyset->keysyms [i] = (unsigned long) g_utf8_get_char (keysym_ptr);
-         keysym_ptr = g_utf8_find_next_char (keysym_ptr, NULL);
-        }
-      else
-        {
-          keyset->keysyms [i] = 0;
-        }
-      if (keycodes)
-        {
-         keyset->keycodes [i] = keycodes [i];
-       }
-      if (keystrings)
-        {
-         keyset->keystrings [i] = g_strdup (keystrings [i]);
-       }
-    }
-  return keyset;       
-}
-
-/**
- * SPI_createAccessibleEventListener:
- * @callback : an #AccessibleEventListenerCB callback function, or NULL.
- * @user_data: a pointer to data which will be passed to the callback when invoked.
- *
- * Create a new #AccessibleEventListener with a specified (in-process) callback function.
- *
- * Returns: a pointer to a newly-created #AccessibleEventListener.
- *
- **/
-AccessibleEventListener *
-SPI_createAccessibleEventListener (AccessibleEventListenerCB callback,
-                                  void                     *user_data)
-{
-  AccessibleEventListener *listener = cspi_event_listener_new ();
-  if (callback)
-    {
-      AccessibleEventListener_addCallback (listener, callback, user_data);
-    }
-  return listener;
-}
-
-/**
- * AccessibleEventListener_addCallback:
- * @listener: the #AccessibleEventListener instance to modify.
- * @callback: an #AccessibleEventListenerCB function pointer.
- * @user_data: a pointer to data which will be passed to the callback when invoked.
- *
- * Add an in-process callback function to an existing AccessibleEventListener.
- * Note that the callback function must live in the same address
- * space as the AccessibleEventListener implementation code, thus one should not
- * use this function to attach callbacks to a 'remote' event listener
- * (that is, one that was not created by a client call to
- * createAccessibleEventListener ();
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleEventListener_addCallback (AccessibleEventListener *listener,
-                                    AccessibleEventListenerCB callback,
-                                    void                     *user_data)
-{
-  cspi_event_listener_add_cb (listener, callback, user_data);
-  return TRUE;
-}
-
-/**
- * AccessibleEventListener_unref:
- * @listener: a pointer to the #AccessibleEventListener being operated on.
- *
- * Decrements an #AccessibleEventListener's reference count.
- **/
-void
-AccessibleEventListener_unref (AccessibleEventListener *listener)
-{
-  cspi_event_listener_unref (listener);
-}
-
-/**
- * AccessibleEventListener_removeCallback:
- * @listener: the #AccessibleEventListener instance to modify.
- * @callback: an #AccessibleEventListenerCB function pointer.
- *
- * Remove an in-process callback function from an existing AccessibleEventListener.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleEventListener_removeCallback (AccessibleEventListener  *listener,
-                                       AccessibleEventListenerCB callback)
-{
-  cspi_event_listener_remove_cb (listener, callback);
-  return TRUE;
-}
-
-/**
- * SPI_createAccessibleKeystrokeListener:
- * @callback : an #AccessibleKeystrokeListenerCB callback function, or NULL.
- * @user_data: a pointer to data which will be passed to the callback when invoked.
- *
- * Create a new #AccessibleKeystrokeListener with a specified callback function.
- *
- * Returns: a pointer to a newly-created #AccessibleKeystrokeListener.
- *
- **/
-AccessibleKeystrokeListener *
-SPI_createAccessibleKeystrokeListener (AccessibleKeystrokeListenerCB callback,
-                                      void                         *user_data)
-{
-  AccessibleDeviceListener *listener = cspi_device_listener_new ();
-  if (callback)
-    {
-      AccessibleDeviceListener_addCallback (listener, callback, user_data);
-    }
-  return listener;
-}
-
-/**
- * AccessibleKeystrokeListener_addCallback:
- * @listener: the #AccessibleKeystrokeListener instance to modify.
- * @callback: an #AccessibleKeystrokeListenerCB function pointer.
- * @user_data: a pointer to data which will be passed to the callback when invoked.
- *
- * Add an in-process callback function to an existing #AccessibleKeystrokeListener.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleKeystrokeListener_addCallback (AccessibleKeystrokeListener *listener,
-                                        AccessibleKeystrokeListenerCB callback,
-                                        void                         *user_data)
-{
-  cspi_device_listener_add_cb (listener, callback, user_data);
-  return TRUE;
-}
-
-/**
- * AccessibleKeystrokeListener_removeCallback:
- * @listener: the #AccessibleKeystrokeListener instance to modify.
- * @callback: an #AccessibleKeystrokeListenerCB function pointer.
- *
- * Remove an in-process callback function from an existing #AccessibleKeystrokeListener.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleKeystrokeListener_removeCallback (AccessibleKeystrokeListener *listener,
-                                           AccessibleKeystrokeListenerCB callback)
-{
-  cspi_device_listener_remove_cb (listener, callback);
-  return TRUE;
-}
-
-/**
- * AccessibleKeystrokeListener_unref:
- * @listener: a pointer to the #AccessibleKeystrokeListener being operated on.
- *
- * Decrements an #AccessibleKeystrokeListener's reference count.
- **/
-void
-AccessibleKeystrokeListener_unref (AccessibleKeystrokeListener *listener)
-{
-  cspi_device_listener_unref (listener);
-}
-
-/**
- * SPI_createAccessibleDeviceListener:
- * @callback : an #AccessibleDeviceListenerCB callback function, or NULL.
- * @user_data: a pointer to data which will be passed to the callback when invoked.
- *
- * Create a new #AccessibleDeviceListener with a specified callback function.
- *
- * Returns: a pointer to a newly-created #AccessibleDeviceListener.
- *
- **/
-AccessibleDeviceListener *
-SPI_createAccessibleDeviceListener (AccessibleDeviceListenerCB callback,
-                                      void                         *user_data)
-{
-  AccessibleDeviceListener *listener = cspi_device_listener_new ();
-  if (callback)
-    {
-      AccessibleDeviceListener_addCallback (listener, callback, user_data);
-    }
-  return listener;
-}
-
-/**
- * AccessibleDeviceListener_addCallback:
- * @listener: the #AccessibleDeviceListener instance to modify.
- * @callback: an #AccessibleDeviceListenerCB function pointer.
- * @user_data: a pointer to data which will be passed to the callback when invoked.
- *
- * Add an in-process callback function to an existing #AccessibleDeviceListener.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleDeviceListener_addCallback (AccessibleDeviceListener *listener,
-                                        AccessibleDeviceListenerCB callback,
-                                        void                         *user_data)
-{
-  cspi_device_listener_add_cb (listener, callback, user_data);
-  return TRUE;
-}
-
-/**
- * AccessibleDeviceListener_removeCallback:
- * @listener: the #AccessibleDeviceListener instance to modify.
- * @callback: an #AccessibleDeviceListenerCB function pointer.
- *
- * Remove an in-process callback function from an existing #AccessibleDeviceListener.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- *
- **/
-SPIBoolean
-AccessibleDeviceListener_removeCallback (AccessibleDeviceListener *listener,
-                                           AccessibleDeviceListenerCB callback)
-{
-  cspi_device_listener_remove_cb (listener, callback);
-  return TRUE;
-}
-
-/**
- * AccessibleDeviceListener_unref:
- * @listener: a pointer to the #AccessibleDeviceListener being operated on.
- *
- * Decrements an #AccessibleDeviceListener's reference count.
- **/
-void
-AccessibleDeviceListener_unref (AccessibleDeviceListener *listener)
-{
-  cspi_device_listener_unref (listener);
-}
-
-static char *
-cspi_internal_event_get_text (const InternalEvent *e)
-{
-  CORBA_any *any;
-  g_return_val_if_fail (e, NULL);
-  g_return_val_if_fail (e->data, NULL);
-  any = (CORBA_any *) e->data;
-  if (CORBA_TypeCode_equivalent (any->_type, TC_Accessibility_EventDetails, NULL)) 
-    {
-      Accessibility_EventDetails *details = (Accessibility_EventDetails *)any->_value;
-      if (CORBA_TypeCode_equal (details->any_data._type, TC_CORBA_string, cspi_ev()))
-         return CORBA_string_dup (* (char **) (details->any_data._value));
-      else
-         return CORBA_string_dup ("");
-      return CORBA_string_dup (* (char **) (details->any_data._value));
-    }
-  else if (CORBA_TypeCode_equivalent (any->_type, TC_CORBA_string, NULL)) 
-    {
-      return CORBA_string_dup (* (char **) any->_value);
-    } 
-  else
-    {
-#ifdef EVENT_CONTEXT_DEBUG
-      fprintf (stderr, "requested string, TC is not TC_CORBA_string! (%u)\n",
-              (unsigned) any->_type);
-#endif
-      return NULL;
-    }
-}
-
-static Accessible *
-cspi_internal_event_get_object (const InternalEvent *e)
-{
-  CORBA_any *any;
-
-  g_return_val_if_fail (e, NULL);
-  g_return_val_if_fail (e->data, NULL);
-
-  any = (CORBA_any *) e->data;
-  if (CORBA_TypeCode_equivalent (any->_type, TC_Accessibility_EventDetails, NULL)) 
-    {
-      Accessibility_EventDetails *details = (Accessibility_EventDetails *)any->_value;
-      if (CORBA_TypeCode_equal (details->any_data._type, TC_CORBA_Object, cspi_ev()))
-         return cspi_object_take (* (CORBA_Object *) (details->any_data._value));
-      else
-         return NULL;
-    }
-  else if (CORBA_TypeCode_equal (any->_type, TC_CORBA_Object, cspi_ev()))
-    return cspi_object_take (* (CORBA_Object *) any->_value);
-  else 
-    return NULL;
-}
-
-static SPIRect *
-cspi_internal_event_get_rect (const InternalEvent *e)
-{
-  CORBA_any *any;
-  g_return_val_if_fail (e, NULL);
-  g_return_val_if_fail (e->data, NULL);
-  any = (CORBA_any *) e->data;
-  if (CORBA_TypeCode_equivalent (any->_type, TC_Accessibility_EventDetails, NULL)) 
-    {
-      Accessibility_EventDetails *details = (Accessibility_EventDetails *)any->_value;
-      SPIRect *rect = g_new (SPIRect, 1);
-      if (CORBA_TypeCode_equal (details->any_data._type, TC_Accessibility_BoundingBox, cspi_ev()))
-      {
-         Accessibility_BoundingBox *bounds = (Accessibility_BoundingBox *) details->any_data._value;
-         rect->x = bounds->x;
-         rect->y = bounds->y;
-         rect->width = bounds->width;
-         rect->height = bounds->height;
-         return rect;
-      }
-      else
-         return NULL;
-    }
-  if (CORBA_TypeCode_equivalent (any->_type, TC_Accessibility_BoundingBox, NULL)) 
-    {
-      SPIRect *rect = g_new (SPIRect, 1);
-      Accessibility_BoundingBox *bounds = (Accessibility_BoundingBox *) any->_value;
-      rect->x = bounds->x;
-      rect->y = bounds->y;
-      rect->width = bounds->width;
-      rect->height = bounds->height;
-      return rect;
-    } 
-  else
-    {
-#ifdef EVENT_CONTEXT_DEBUG
-      fprintf (stderr, "requested string, TC is not TC_Accessible_RectBounds! (%u)\n",
-              (unsigned) any->_type);
-#endif
-      return NULL;
-    }
-}
-
-/**
- * AccessibleEvent_getSourceName:
- * @e: an #AccessibleEvent to be queried. 
- *
- * Get the 'accessible-name' of the object emitting the event.
- *
- * Returns: The name of the event source, or NULL if the event source cannot be identified
- *          or does not report a name.
- */
-char*        AccessibleEvent_getSourceName (const AccessibleEvent *e)
-{
-    InternalEvent *ie = (InternalEvent *)e;
-    CORBA_any *any = ((ie && ie->data) ? (CORBA_any *)ie->data : NULL);
-    if (any &&
-       CORBA_TypeCode_equivalent (any->_type, 
-                                  TC_Accessibility_EventDetails, NULL))
-      {
-         Accessibility_EventDetails *details = (Accessibility_EventDetails *) any->_value;
-         return CORBA_string_dup (details->source_name);
-      }
-    else
-       return NULL;
-}
-
-/**
- * AccessibleEvent_getSourceRole:
- * @e: an #AccessibleEvent to be queried. 
- *
- * Get the #AccessibleRole of the object emitting the event.
- *
- * Returns: #AccessibleRole of the event source, or SPI_ROLE_UNKNOWN
- *          if the event source's role is unknown or unspecified.
- *          (Some kinds of events, such as 'mouse:' events or
- *          toolkit events, don't have associated object roles.)
- */
-AccessibleRole AccessibleEvent_getSourceRole (const AccessibleEvent *e)
-{
-    InternalEvent *ie = (InternalEvent *)e;
-    CORBA_any *any = ((ie && ie->data) ? (CORBA_any *)ie->data : NULL);
-    if (any &&
-       CORBA_TypeCode_equivalent (any->_type, 
-                                  TC_Accessibility_EventDetails, NULL))
-      {
-         Accessibility_EventDetails *details = (Accessibility_EventDetails *) any->_value;
-         return cspi_role_from_spi_role (details->source_role);
-      }
-    else
-       return SPI_ROLE_UNKNOWN;
-}
-
-/**
- * AccessibleEvent_getSourceApplication:
- * @e: an #AccessibleEvent to be queried. 
- *
- * Get the #Application hosting the object which emitted the event.
- *
- * Returns: A pointer to the host #Application contining the event source
- *          component.
- */
-AccessibleApplication* AccessibleEvent_getSourceApplication (const AccessibleEvent *e)
-{
-    InternalEvent *ie = (InternalEvent *)e;
-    CORBA_any *any = ((ie && ie->data) ? (CORBA_any *)ie->data : NULL);
-    if (any &&
-       CORBA_TypeCode_equivalent (any->_type, 
-                                  TC_Accessibility_EventDetails, NULL))
-      {
-         Accessibility_EventDetails *details = (Accessibility_EventDetails *) any->_value;
-         return  cspi_object_take (details->host_application);
-      }
-    else
-       return NULL;
-}
-
-/**
- * AccessibleEvent_getSourceDetails:
- * @e: an #AccessibleEvent to be queried. 
- * @name: a pointer to a character string which will point to the name of the event source 
- * on successful completion of the call.
- * @role: a pointer to an #AccessibleRole which will point to the role of the event source
- * on successful completion of the call.
- * @app: A pointer to an #AccessibleApplication which points to the host application for this event
- * on successful completion of the call.
- *
- * Get the host #Application, "accessible name", and #AccessibleRole 
- * of the object which emitted the event.
- *
- * Returns: TRUE if the source details were successfully retrieved, 
- *          FALSE if they were not, either due to error, incomplete data,
- *          or the fact that the event did not encapsulate the required data.
- */
-SPIBoolean   AccessibleEvent_getSourceDetails (const AccessibleEvent *e, 
-                                              char **name, AccessibleRole *role, 
-                                              AccessibleApplication **app)
-{
-    InternalEvent *ie = (InternalEvent *)e;
-    CORBA_any *any = ((ie && ie->data) ? (CORBA_any *)ie->data : NULL);
-    if (any &&
-       CORBA_TypeCode_equivalent (any->_type, 
-                                  TC_Accessibility_EventDetails, NULL))
-      {
-         Accessibility_EventDetails *details = (Accessibility_EventDetails *) any->_value;
-         *name = CORBA_string_dup (details->source_name);
-         *role = cspi_role_from_spi_role (details->source_role);
-         *app = cspi_object_take (details->host_application);
-         return TRUE;
-      }
-    else
-      {
-        *name = NULL;
-       *role = SPI_ROLE_UNKNOWN;
-       *app = NULL;
-       return FALSE;
-      }
-}
-
-/**
- * AccessibleTextChangedEvent_getChangeString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:text-changed", 
- *         returning the text inserted or deleted.
- *
- * Returns: a UTF-8 text string indicating the text inserted,
- *          deleted, or substituted by this event.
- **/
-char *
-AccessibleTextChangedEvent_getChangeString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleTextSelectionChangedEvent_getSelectionString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:text-selection-changed", 
- *         returning the newly added, removed, or modified selection string.
- *
- * Returns: a UTF-8 text string indicating the recently changed selection.
- **/
-char *
-AccessibleTextSelectionChangedEvent_getSelectionString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleWindowEvent_getTitleString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "window:", 
- *         returning the window title.
- *
- * Returns: a UTF-8 text string representing the title of the 
- *         recently changed window.
- **/
-char *
-AccessibleWindowEvent_getTitleString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleChildChangedEvent_getChildAccessible:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:children_changed"
- *         to get a reference to the changed #Accessible.
- *         Note that context #Accessibles are not guaranteed to outlive
- *         event delivery, in which case this call may return %NULL
- *         even if the object existed at the time of dispatch.
- *
- * Returns: the context #Accessible for the event, or %NULL if
- *          there is no longer a valid context #Accessible 
- *          object for the event.
- **/
-Accessible *
-AccessibleChildChangedEvent_getChildAccessible (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  return (Accessible *) cspi_internal_event_get_object (foo);
-}
-
-/**
- * AccessibleParentChangedEvent_getParentAccessible:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:property-change:accessible-parent"
- *         to get a reference to the changed #Accessible.
- *         Note that context #Accessibles are not guaranteed to outlive
- *         event delivery, in which case this call may return %NULL
- *         even if the object existed at the time of dispatch.
- *
- * Returns: an #Accessible pointer representing the new parent object.
- **/
-Accessible *
-AccessibleParentChangedEvent_getParentAccessible (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  return (Accessible *) cspi_internal_event_get_object (foo);
-}
-
-/**
- * AccessibleActiveDescendantChangedEvent_getActiveDescendant:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:active-descendant-changed"
- *         to get a reference to the changed #Accessible.
- *         Note that context #Accessibles are not guaranteed to outlive
- *         event delivery, in which case this call may return %NULL
- *         even if the object existed at the time of dispatch.
- *
- * Returns: an #Accessible pointer representing the new active descendant.
- **/
-Accessible *
-AccessibleActiveDescendantChangedEvent_getActiveDescendant (const AccessibleEvent *e) 
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  return (Accessible *) cspi_internal_event_get_object (foo);
-}
-
-/**
- * AccessibleTableSummaryChangedEvent_getSummaryAccessible:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:property-changed:accessible-table-summary"
- *         to get a reference to the changed #Accessible.
- *         Note that context #Accessibles are not guaranteed to outlive
- *         event delivery, in which case this call may return %NULL
- *         even if the object existed at the time of dispatch.
- *
- * Returns: an #Accessible pointer representing the new table summary.
- **/
-Accessible *
-AccessibleTableSummaryChangedEvent_getSummaryAccessible (const AccessibleEvent *e) 
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  return (Accessible *) cspi_internal_event_get_object (foo);
-}
-
-/**
- * AccessibleTableHeaderChangedEvent_getHeaderAccessible:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type 
- *         "object:property-changed:accessible-table-row-header" or
- *         "object:property-changed:accessible-table-column-header"
- *         to get a reference to the changed #Accessible.
- *         Note that context #Accessibles are not guaranteed to outlive
- *         event delivery, in which case this call may return %NULL
- *         even if the object existed at the time of dispatch.
- *
- * Returns: an #Accessible pointer representing the new table header.
- **/
-Accessible *
-AccessibleTableHeaderChangedEvent_getHeaderAccessible (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  return (Accessible *) cspi_internal_event_get_object (foo);
-}
-
-
-/**
- * AccessibleTableCaptionChangedEvent_getCaptionString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type 
- *         "object:property-changed:accessible-table-caption-object" 
- *         returning the text in the caption, if present.
- *
- * Returns: a UTF-8 text string indicating the text in the caption.
- **/
-char *
-AccessibleTableCaptionChangedEvent_getCaptionString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleTableRowDescriptionChangedEvent_getDescriptionString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type 
- *         "object:property-changed:accessible-table-row-description" 
- *         returning the new table row description.
- *
- * Returns: a UTF-8 text string representing the recently changed
- *         table row description 
- **/
-char *
-AccessibleTableRowDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleTableColumnDescriptionChangedEvent_getDescriptionString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type 
- *         "object:property-changed:accessible-table-column-description" 
- *         returning the new table column description.
- *
- * Returns: a UTF-8 text string representing the recently changed
- *         table column description 
- **/
-char *
-AccessibleTableColumnDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleDescriptionChangedEvent_getDescriptionString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type 
- *         "object:property-changed:accessible-description" 
- *         returning the new description.
- *
- * Returns: a UTF-8 text string representing the recently changed
- *         description 
- **/
-char *
-AccessibleDescriptionChangedEvent_getDescriptionString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleBoundsChangedEvent_getNewBounds:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:bounds-changed", 
- *         returning a pointer to an SPIRect structure containing the
- *         new bounds, or NULL on error.
- *         The returned structure should be freed with SPI_freeRect when 
- *         the caller has finished referencing it.
- *
- * @Since: AT-SPI 1.6
- *
- * Returns: a pointer to an SPIRect defining the new object bounds.
- **/
-SPIRect *
-AccessibleBoundsChangedEvent_getNewBounds (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  /* TODO: check the event type. */
-  return cspi_internal_event_get_rect (foo);
-}
-
-static gint
-cspi_event_compare (gconstpointer p1, gconstpointer p2)
-{
-  const InternalEvent *e1 = p1, *e2 = p2;
-  return (gint) ((long) e2->id  - (long) e1->id);
-}
-
-static InternalEvent *
-cspi_internal_event_lookup (const InternalEvent *e)
-{
-  InternalEvent *internal = NULL;
-  GSList *p =
-    g_slist_find_custom (_cspi_event_queue, e, cspi_event_compare);
-  if (p)
-    internal = p->data;
-  return internal;
-}
-
-static const InternalEvent *
-cspi_internal_event_check (const AccessibleEvent *e)
-{
-  InternalEvent *internal = (InternalEvent *) e;
-  if (internal->magic == SPI_INTERNAL_EVENT_MAGIC) 
-    return internal;
-  else
-    return NULL;
-}
-
-static InternalEvent *
-cspi_internal_event_add (const InternalEvent *e)
-{
-  _cspi_event_queue = g_slist_prepend (_cspi_event_queue, (gpointer) e);
-  return (InternalEvent *) e;
-}
-
-static void
-cspi_internal_event_remove (const InternalEvent *e)
-{
-  GSList *link = g_slist_find_custom (_cspi_event_queue, e, cspi_event_compare);
-  if (link)
-    _cspi_event_queue = g_slist_remove_link (_cspi_event_queue, link);
-}
-
-/**
- * AccessibleNameChangedEvent_getNameString:
- * @e: a pointer to the #AccessibleEvent being queried.
- *
- * Queries an #AccessibleEvent of type "object:property-change:accessible_name:", 
- *         returning the name.
- *
- * Returns: a UTF-8 text string representing the name of the 
- *         object which recently changed.
- **/
-char *
-AccessibleNameChangedEvent_getNameString (const AccessibleEvent *e)
-{
-  const InternalEvent *foo = (InternalEvent *) e;
-  return cspi_internal_event_get_text (foo);
-}
-
-/**
- * AccessibleEvent_ref:
- * @e: a pointer to the #AccessibleEvent being referenced.
- *
- * Increments by 1 the reference count of the event
- *
- * Returns: TRUE if the function succeeded; FALSE if the pointer is not a
- *         valid event.
- **/
-SPIBoolean
-AccessibleEvent_ref (const AccessibleEvent *e)
-{
-  const InternalEvent *private = cspi_internal_event_check (e);
-  if (private)
-    {
-      InternalEvent *event = cspi_internal_event_lookup (private);
-      /* 
-       * put event in the cache if it's not there already, 
-       * and increment refcount 
-       */
-      if (!event)
-       {
-         event = cspi_internal_event_add (private);
-       }
-      event->ref_count++;
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-/**
- * AccessibleEvent_unref:
- * @e: a pointer to the #AccessibleEvent being referenced.
- *
- * Decrements by 1 the reference count of the event. The event is destroyed
- * when the reference count recahes zero.
- *
- **/
-void
-AccessibleEvent_unref (const AccessibleEvent *e)
-{
-  const InternalEvent *private = cspi_internal_event_check (e);
-  /* decrement refcount and remove if appropriate */
-  if (private)
-    {
-      InternalEvent *event = cspi_internal_event_lookup (private);
-      if (event) 
-       {
-         event->ref_count--;
-         if (event->ref_count < 1)
-            {
-             cspi_internal_event_remove (event);
-              g_free ((gpointer)e->type);
-              Accessible_unref (e->source);
-              CORBA_free (event->data);
-              g_free ((gpointer)e);
-            }
-       }
-    }
-}
diff --git a/cspi/spi_hyperlink.c b/cspi/spi_hyperlink.c
deleted file mode 100644 (file)
index 1eae6ba..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleHyperlink_ref:
- * @obj: a pointer to the #AccessibleHyperlink object on which to operate.
- *
- * Increment the reference count for an #AccessibleHyperlink object.
- **/
-void
-AccessibleHyperlink_ref (AccessibleHyperlink *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleHyperlink_unref:
- * @obj: a pointer to the #AccessibleHyperlink object on which to operate.
- *
- * Decrement the reference count for an #AccessibleHyperlink object.
- **/
-void
-AccessibleHyperlink_unref (AccessibleHyperlink *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleHyperlink_getNAnchors:
- * @obj: a pointer to the #AccessibleHyperlink object on which to operate.
- *
- * Get the total number of anchors which an #AccessibleHyperlink implementor has.
- *       Though typical hyperlinks have only one anchor, client-side image maps and
- *       other hypertext objects may potentially activate or refer to multiple
- *       URIs.  For each anchor there is a corresponding URI and object.
- * @see AccessibleHyperlink_getURI() and AccessibleHyperlink_getObject().
- *
- * Returns: a #long indicating the number of anchors in this hyperlink.
- **/
-long
-AccessibleHyperlink_getNAnchors (AccessibleHyperlink *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Hyperlink__get_nAnchors (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getNAnchors", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleHyperlink_getURI:
- * @obj: a pointer to the #AccessibleHyperlink implementor on which to operate.
- * @i: a (zero-index) long integer indicating which hyperlink anchor to query.
- *
- * Get the URI associated with a particular hyperlink anchor.  
- *
- * Returns: a UTF-8 string giving the URI of the @ith hyperlink anchor.
- **/
-char *
-AccessibleHyperlink_getURI (AccessibleHyperlink *obj,
-                            long int             i)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Hyperlink_getURI (CSPI_OBJREF (obj),
-                                   i, cspi_ev ());
-
-  cspi_return_val_if_ev ("getURI", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleHyperlink_getObject:
- * @obj: a pointer to the #AccessibleHyperlink implementor on which to operate.
- * @i: a (zero-index) long integer indicating which hyperlink anchor to query.
- *
- * Get the object associated with a particular hyperlink anchor, as an #Accessible. 
- *
- * Returns: an #Accessible that represents the object associated with the @ith anchor
- *        of the specified #AccessibleHyperlink.
- **/
-Accessible*
-AccessibleHyperlink_getObject (AccessibleHyperlink *obj,
-                               long int             i)
-{
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  return cspi_object_add (
-    Accessibility_Hyperlink_getObject (CSPI_OBJREF (obj),
-                                      i, cspi_ev ()));
-}
-
-/**
- * AccessibleHyperlink_getIndexRange:
- * @obj: a pointer to the #AccessibleHyperlink implementor on which to operate.
- * @startIndex: a pointer to a long integer into which the starting
- *       offset of the text associated with this #AccessibleHyperlink is returned.
- * @endIndex: a pointer to a long integer into which the offset of the first character
- *       after the text associated with this #AccessibleHyperlink is returned.
- *
- *
- * Get the starting and ending character offsets of the text range associated with
- *       a #AccessibleHyperlink, in its originating #AccessibleHypertext.
- **/
-void
-AccessibleHyperlink_getIndexRange (AccessibleHyperlink *obj,
-                                   long int *startIndex,
-                                   long int *endIndex)
-{
-  CORBA_long si, ei;
-
-  cspi_return_if_fail (obj != NULL);
-
-si = Accessibility_Hyperlink__get_startIndex (CSPI_OBJREF (obj), cspi_ev ());
- cspi_return_if_ev ("startIndex");
- ei = Accessibility_Hyperlink__get_endIndex (CSPI_OBJREF (obj), cspi_ev ());
-
- cspi_return_if_ev ("endIndex");
- *startIndex = si;
- *endIndex = ei; 
-}
-
-/**
- * AccessibleHyperlink_isValid:
- * @obj: a pointer to the #AccessibleHyperlink on which to operate.
- *
- * Tell whether an #AccessibleHyperlink object is still valid with respect to its
- *          originating hypertext object.
- *
- * Returns: #TRUE of the specified #AccessibleHyperlink is still valid with respect
- *          to its originating #AccessibleHypertext object, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleHyperlink_isValid (AccessibleHyperlink *obj)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Hyperlink_isValid (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("isValid", FALSE);
-
-  return retval;
-}
-
-
diff --git a/cspi/spi_hypertext.c b/cspi/spi_hypertext.c
deleted file mode 100644 (file)
index 35a64af..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleHypertext_ref:
- * @obj: a pointer to the #AccessibleHypertext object on which to operate.
- *
- * Increment the reference count for an #AccessibleHypertext object.
- *       Since AccessibleHypertext is derived from AccessibleText,
- *       this is the same as AccessibleText_unref().
- **/
-void
-AccessibleHypertext_ref (AccessibleHypertext *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleHypertext_unref:
- * @obj: a pointer to the #AccessibleHypertext object on which to operate.
- *
- * Decrement the reference count for an #AccessibleHypertext object.
- *       Since AccessibleHypertext is derived from AccessibleText,
- *       this is the same as AccessibleText_unref().
- **/
-void
-AccessibleHypertext_unref (AccessibleHypertext *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleHypertext_getNLinks:
- * @obj: a pointer to the #AccessibleHypertext implementor on which to operate.
- *
- * Get the total number of #AccessibleHyperlinks which an
- *        #AccessibleHypertext implementor has.
- *
- * Returns: a #long indicating the number of #AccessibleHyperlinks
- *        of the #AccessibleHypertext implementor, or -1 if
- *        the number cannot be determined (for example, if the
- *        #AccessibleHypertext object is so large that it is not
- *        all currently in the memory cache).
- **/
-long
-AccessibleHypertext_getNLinks (AccessibleHypertext *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Hypertext_getNLinks (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getNLinks", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleHypertext_getLink:
- * @obj: a pointer to the #AccessibleHypertext implementor on which to operate.
- * @linkIndex: a (zero-index) long integer indicating which hyperlink to query.
- *
- * Get the #AccessibleHyperlink object at a specified index.
- *
- * Returns: the #AccessibleHyperlink object specified by #linkIndex.
- **/
-AccessibleHyperlink *
-AccessibleHypertext_getLink (AccessibleHypertext *obj,
-                             long int             linkIndex)
-{
-  AccessibleHyperlink *retval;
-       
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = cspi_object_add (
-    Accessibility_Hypertext_getLink (CSPI_OBJREF (obj),
-                                    linkIndex,
-                                    cspi_ev ()));
-  
-  cspi_return_val_if_ev ("getLink", NULL); 
-
-  return retval;
-}
-
-/**
- * AccessibleHypertext_getLinkIndex:
- * @obj: a pointer to the #AccessibleHypertext implementor on which to operate.
- * @characterOffset: an integer specifying the character offset to query.
- *
- * Get the index of the #AccessibleHyperlink object at a specified
- *        character offset.
- *
- * Returns: the linkIndex of the #AccessibleHyperlink active at
- *        character offset @characterOffset, or -1 if there is
- *        no hyperlink at the specified character offset.
- **/
-long
-AccessibleHypertext_getLinkIndex (AccessibleHypertext *obj,
-                                  long int             characterOffset)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval = 
-    Accessibility_Hypertext_getLinkIndex (CSPI_OBJREF (obj),
-                                         characterOffset,
-                                         cspi_ev ());
-
-  cspi_return_val_if_ev ("getLinkIndex", -1);
-
-  return retval;
-}
-
-
diff --git a/cspi/spi_image.c b/cspi/spi_image.c
deleted file mode 100644 (file)
index 94d78ad..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleImage_ref:
- * @obj: a pointer to the #AccessibleImage implementor on which to operate.
- *
- * Increment the reference count for an #AccessibleImage object.
- **/
-void
-AccessibleImage_ref (AccessibleImage *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleImage_unref:
- * @obj: a pointer to the #AccessibleImage implementor on which to operate.
- *
- * Decrement the reference count for an #AccessibleImage object.
- **/
-void
-AccessibleImage_unref (AccessibleImage *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleImage_getImageDescription:
- * @obj: a pointer to the #AccessibleImage implementor on which to operate.
- *
- * Get the description of the image displayed in an #AccessibleImage object.
- *
- * Returns: a UTF-8 string describing the image.
- **/
-char *
-AccessibleImage_getImageDescription (AccessibleImage *obj)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = 
-    Accessibility_Image__get_imageDescription (CSPI_OBJREF (obj),
-                                              cspi_ev ());
-
-  cspi_return_val_if_ev ("getImageDescription", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleImage_getImageSize:
- * @obj: a pointer to the #AccessibleImage to query.
- * @width: a pointer to a #long into which the x extents (width) will be returned.
- * @height: a pointer to a #long into which the y extents (height) will be returned.
- *
- * Get the size of the image displayed in a specified #AccessibleImage object.
- **/
-void
-AccessibleImage_getImageSize (AccessibleImage *obj,
-                              long int *width,
-                              long int *height)
-{
-  CORBA_long w, h;
-
-  cspi_return_if_fail (obj != NULL);
-
-  Accessibility_Image_getImageSize (CSPI_OBJREF (obj),
-                                   &w, &h, cspi_ev ());
-
-  if (!cspi_check_ev ("getImageSize"))
-    {
-      *width = 0;
-      *height = 0;
-    }
-  else
-    {
-      *width = w;
-      *height = h;
-    }
-}
-
-/**
- * AccessibleImage_getImagePosition:
- * @obj: a pointer to the #AccessibleImage implementor to query.
- * @x: a pointer to a #long into which the minimum x coordinate will be returned.
- * @y: a pointer to a #long into which the minimum y coordinate will be returned.
- * @ctype: the desired coordinate system into which to return the results,
- *         (e.g. SPI_COORD_TYPE_WINDOW, SPI_COORD_TYPE_SCREEN).
- *
- * Get the minimum x and y coordinates of the image displayed in a
- *         specified #AccessibleImage implementor.
- **/
-void
-AccessibleImage_getImagePosition (AccessibleImage *obj,
-                                  long *x,
-                                  long *y,
-                                  AccessibleCoordType ctype)
-{
-  CORBA_long cx, cy;
-
-  cspi_return_if_fail (obj != NULL);
-
-  Accessibility_Image_getImagePosition (CSPI_OBJREF (obj),
-                                       &cx, &cy, ctype, cspi_ev ());
-
-  if (!cspi_check_ev ("getImagePosition"))
-    {
-      *x = 0;
-      *y = 0;
-    }
-  else
-    {
-      *x = cx;
-      *y = cy;
-    }
-}
-
-/**
- * AccessibleImage_getImageExtents:
- * @obj: a pointer to the #AccessibleImage implementor to query.
- * @x: a pointer to a #long into which the minimum x coordinate will be returned.
- * @y: a pointer to a #long into which the minimum y coordinate will be returned.
- * @width: a pointer to a #long into which the image x extent will be returned.
- * @height: a pointer to a #long into which the image y extent will be returned.
- * @ctype: the desired coordinate system into which to return the results,
- *         (e.g. SPI_COORD_TYPE_WINDOW, SPI_COORD_TYPE_SCREEN).
- *
- * Get the bounding box of the image displayed in a
- *         specified #AccessibleImage implementor.
- **/
-void
-AccessibleImage_getImageExtents (AccessibleImage *obj,
-                                long *x,
-                                long *y,
-                                long *width,
-                                long *height,
-                                AccessibleCoordType ctype)
-{
-  Accessibility_BoundingBox bbox;
-
-  cspi_return_if_fail (obj != NULL);
-
-  bbox = Accessibility_Image_getImageExtents (CSPI_OBJREF (obj),
-                                             ctype,
-                                             cspi_ev ());
-
-  if (!cspi_check_ev ("getImageExtents"))
-    {
-      *x = *y = *width = *height = 0;
-    }
-  else
-    {
-      *x = bbox.x;
-      *y = bbox.y;
-      *width = bbox.width;
-      *height = bbox.height;
-    }
-}
-
-/**
- * AccessibleImage_getImageLocale:
- * @obj: The #AccessibleImage being queried.
- *
- * Get the locale associated with an image and its textual representation.
- *
- * Returns: A POSIX LC_MESSAGES-style Locale value for image description and text.
- **/
-char *
-AccessibleImage_getImageLocale  (AccessibleImage *obj)
-{
-    char *retval = "C";
-
-    cspi_return_val_if_fail (obj != NULL, "C");
-
-    retval = Accessibility_Image__get_imageLocale (CSPI_OBJREF (obj), cspi_ev ());
-
-    cspi_return_val_if_ev ("getImageLocale", NULL);
-
-    return retval;
-}
-
diff --git a/cspi/spi_main.c b/cspi/spi_main.c
deleted file mode 100644 (file)
index b8e11bd..0000000
+++ /dev/null
@@ -1,686 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-/*
- *
- * Basic SPI initialization and event loop function prototypes
- *
- */
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <cspi/spi-private.h>
-#include "spi.h"
-
-#undef DEBUG_OBJECTS
-
-static CORBA_Environment ev = { NULL };
-static Accessibility_Registry registry = CORBA_OBJECT_NIL;
-static GHashTable *live_refs = NULL;
-static GQueue *exception_handlers = NULL;
-
-static guint
-cspi_object_hash (gconstpointer key)
-{
-  CORBA_Object object = (CORBA_Object) key;
-
-  return CORBA_Object_hash (object, 0, &ev);
-}
-
-static gboolean
-cspi_object_equal (gconstpointer a, gconstpointer b)
-{
-  CORBA_Object objecta = (CORBA_Object) a;
-  CORBA_Object objectb = (CORBA_Object) b;
-
-  return CORBA_Object_is_equivalent (objecta, objectb, cspi_ev ());
-}
-
-static void
-cspi_object_release (gpointer value)
-{
-  Accessible *a = (Accessible *) value;
-
-#ifdef DEBUG_OBJECTS
-  g_print ("releasing %p => %p\n", a, a->objref);
-#endif
-
-  if (!a->on_loan)
-    {
-      cspi_release_unref (a->objref);
-    }
-
-  memset (a, 0xaa, sizeof (Accessible));
-  a->ref_count = -1;
-
-#ifndef DEBUG_OBJECTS
-  free (a);
-#endif
-}
-
-gboolean
-cspi_exception_throw (CORBA_Environment *ev, char *desc_prefix)
-{
-  SPIExceptionHandler *handler = NULL;
-  SPIException ex;
-  if (exception_handlers) handler = g_queue_peek_head (exception_handlers);
-
-  ex.type = SPI_EXCEPTION_SOURCE_UNSPECIFIED;
-  ex.source = CORBA_OBJECT_NIL; /* can we get this from here? */
-  ex.ev = CORBA_exception__copy (ev);
-  switch (ev->_major) {
-  case CORBA_SYSTEM_EXCEPTION:
-    ex.code = SPI_EXCEPTION_UNSPECIFIED;
-    break;
-  case CORBA_USER_EXCEPTION: /* help! how to interpret this? */
-    ex.code = SPI_EXCEPTION_UNSPECIFIED;
-    break;
-  default:
-    ex.code = SPI_EXCEPTION_UNSPECIFIED;
-    break;
-  }
-  
-  if (handler)
-    return (*handler) (&ex, FALSE);
-  else
-    return FALSE; /* means exception was not handled */
-}
-
-SPIBoolean
-cspi_accessible_is_a (Accessible *accessible,
-                     const char *interface_name)
-{
-  SPIBoolean        retval;
-  Bonobo_Unknown unknown;
-
-  if (accessible == NULL)
-    {
-      return FALSE;
-    }
-
-  unknown = Bonobo_Unknown_queryInterface (CSPI_OBJREF (accessible),
-                                          interface_name, cspi_ev ());
-
-  if (ev._major != CORBA_NO_EXCEPTION)
-    {
-      g_warning ("Exception '%s' checking if is '%s'",
-                cspi_exception_get_text (),
-                interface_name);
-      retval = FALSE;
-    }
-
-  else if (unknown != CORBA_OBJECT_NIL)
-    {
-      retval = TRUE;
-      cspi_release_unref (unknown);
-    }
-  else
-    {
-      retval = FALSE;
-    }
-
-  return retval;
-}
-
-static GHashTable *
-cspi_get_live_refs (void)
-{
-  if (!live_refs) 
-    {
-      live_refs = g_hash_table_new_full (cspi_object_hash,
-                                        cspi_object_equal,
-                                        NULL,
-                                        cspi_object_release);
-    }
-  return live_refs;
-}
-
-CORBA_Environment *
-cspi_peek_ev (void)
-{
-  return &ev;
-}
-
-CORBA_Environment *
-cspi_ev (void)
-{
-  CORBA_exception_init (&ev);
-  return &ev;
-}
-
-Accessibility_Registry
-cspi_registry (void)
-{
-  if (!cspi_ping (registry))
-    {
-      registry = cspi_init ();
-    }
-  return registry;
-}
-
-SPIBoolean
-cspi_exception (void)
-{
-  SPIBoolean retval;
-
-  if (ev._major != CORBA_NO_EXCEPTION)
-    {
-      CORBA_exception_free (&ev);
-      retval = TRUE;
-    }
-  else
-    {
-      retval = FALSE;
-    }
-
-  return retval;
-}
-
-/*
- *   This method swallows the corba_object BonoboUnknown
- * reference, and returns an Accessible associated with it.
- * If the reference is loaned, it means it is only valid
- * between a borrow / return pair.
- */
-static Accessible *
-cspi_object_get_ref (CORBA_Object corba_object, gboolean on_loan)
-{
-  Accessible *ref;
-
-  if (corba_object == CORBA_OBJECT_NIL)
-    {
-      ref = NULL;
-    }
-  else if (!cspi_check_ev ("pre method check: add"))
-    {
-      ref = NULL;
-    }
-  else
-    {
-      if ((ref = g_hash_table_lookup (cspi_get_live_refs (), corba_object)))
-        {
-          g_assert (ref->ref_count > 0);
-         ref->ref_count++;
-         if (!on_loan)
-           {
-             if (ref->on_loan) /* Convert to a permanant ref */
-               {
-                  ref->on_loan = FALSE;
-               }
-             else
-               {
-                 cspi_release_unref (corba_object);
-               }
-           }
-#ifdef DEBUG_OBJECTS
-          g_print ("returning cached %p => %p\n", ref, ref->objref);
-#endif
-       }
-      else
-        {
-         ref = malloc (sizeof (Accessible));
-         ref->objref = corba_object;
-         ref->ref_count = 1;
-         ref->on_loan = on_loan;
-#ifdef DEBUG_OBJECTS
-          g_print ("allocated %p => %p\n", ref, corba_object);
-#endif
-          g_hash_table_insert (cspi_get_live_refs (), ref->objref, ref);
-       }
-    }
-
-  return ref;
-}
-
-Accessible *
-cspi_object_add (CORBA_Object corba_object)
-{
-  return cspi_object_get_ref (corba_object, FALSE);
-}
-
-Accessible *
-cspi_object_borrow (CORBA_Object corba_object)
-{
-  return cspi_object_get_ref (corba_object, TRUE);
-}
-
-void
-cspi_object_return (Accessible *accessible)
-{
-  int old_ref_count;
-  g_return_if_fail (accessible != NULL);
-
-  if (!accessible->on_loan ||
-      accessible->ref_count == 1)
-    {
-      cspi_object_unref (accessible);
-    }
-  else /* Convert to a permanant ref */
-    {
-      accessible->on_loan = FALSE;
-      old_ref_count = accessible->ref_count;
-      accessible->objref = cspi_dup_ref (accessible->objref);
-      if (old_ref_count != accessible->ref_count &&
-          accessible->ref_count == 1)
-        {
-            cspi_object_unref (accessible);
-        }
-      else    
-        {
-          accessible->ref_count--;
-        }
-    }
-}
-
-Accessible *
-cspi_object_take (CORBA_Object corba_object)
-{
-  Accessible *accessible;
-  accessible = cspi_object_borrow (corba_object);
-
-  cspi_object_ref (accessible);
-  /* 
-   * if the remote object is dead, 
-   * cspi_object_return will throw an exception. 
-   * FIXME: what clears that exception context ever ?
-   */
-  cspi_object_return (accessible);
-  if (cspi_exception ()) 
-    {
-      cspi_object_unref (accessible);
-      accessible = NULL;
-    }
-  return accessible;
-}
-
-void
-cspi_object_ref (Accessible *accessible)
-{
-  g_return_if_fail (accessible != NULL);
-
-  accessible->ref_count++;
-}
-
-void
-cspi_object_unref (Accessible *accessible)
-{
-  if (accessible == NULL)
-    {
-      return;
-    }
-
-  g_return_if_fail (accessible->ref_count > 0);
-  if (--accessible->ref_count == 0)
-    {
-      g_hash_table_remove (cspi_get_live_refs (), accessible->objref);
-    }
-}
-
-static void
-cspi_cleanup (void)
-{
-  GHashTable *refs;
-
-  cspi_streams_close_all ();
-
-  refs = live_refs;
-  live_refs = NULL;
-  if (refs)
-    {
-      g_hash_table_destroy (refs);
-    }
-
-  if (registry != CORBA_OBJECT_NIL)
-    {
-      cspi_release_unref (registry);
-      registry = CORBA_OBJECT_NIL;
-    }
-}
-
-static gboolean SPI_inited = FALSE;
-
-/**
- * SPI_init:
- *
- * Connects to the accessibility registry and initializes the SPI.
- *
- * Returns: 0 on success, otherwise an integer error code.  
- **/
-int
-SPI_init (void)
-{
-  if (SPI_inited)
-    {
-      return 1;
-    }
-
-  SPI_inited = TRUE;
-
-  CORBA_exception_init (&ev);
-
-  registry = cspi_init ();
-
-  g_atexit (cspi_cleanup);
-
-  /* fprintf (stderr, "registry=%x\n", (int) registry); */
-
-  if ((registry != CORBA_OBJECT_NIL) && (cspi_ping (registry)))
-      return 0;
-  else
-      return 2;
-}
-
-/**
- * SPI_event_main:
- *
- * Starts/enters the main event loop for the SPI services.
- *
- * (NOTE: This method does not return control, it is exited via a call to
- *  SPI_event_quit () from within an event handler).
- *
- **/
-void
-SPI_event_main (void)
-{
-  cspi_main ();
-}
-
-/**
- * SPI_event_quit:
- *
- * Quits the last main event loop for the SPI services,
- * see SPI_event_main
- **/
-void
-SPI_event_quit (void)
-{
-  cspi_main_quit ();
-}
-
-/**
- * SPI_eventIsReady:
- *
- * Checks to see if an SPI event is waiting in the event queue.
- * Used by clients that don't wish to use SPI_event_main().
- *
- * Not Yet Implemented.
- *
- * Returns: #TRUE if an event is waiting, otherwise #FALSE.
- *
- **/
-SPIBoolean
-SPI_eventIsReady (void)
-{
-  return FALSE;
-}
-
-/**
- * SPI_nextEvent:
- * @waitForEvent: a #SPIBoolean indicating whether to block or not.
- *
- * Gets the next event in the SPI event queue; blocks if no event
- * is pending and @waitForEvent is #TRUE.
- * Used by clients that don't wish to use SPI_event_main().
- *
- * Not Yet Implemented.
- *
- * Returns: the next #AccessibleEvent in the SPI event queue.
- **/
-AccessibleEvent *
-SPI_nextEvent (SPIBoolean waitForEvent)
-{
-  return NULL;
-}
-
-#ifdef PRINT_LEAKS
-static void
-report_leaked_ref (gpointer key, gpointer val, gpointer user_data)
-{
-  char *name, *role;
-  Accessible *a = (Accessible *) val;
-  
-  name = Accessible_getName (a);
-  if (cspi_exception ())
-    {
-      name = NULL;
-    }
-
-  role = Accessible_getRoleName (a);
-  if (cspi_exception ())
-    {
-      role = NULL;
-    }
-
-  fprintf (stderr, "leaked %d references to object %s, role %s %p\n",
-          a->ref_count, name ? name : "<?>", role ? role : "<?>", a);
-
-  SPI_freeString (name);
-}
-#endif
-
-/**
- * SPI_exit:
- *
- * Disconnects from the Accessibility Registry and releases 
- * any floating resources. Call only once at exit.
- *
- * Returns: 0 if there were no leaks, otherwise non zero.
- **/
-int
-SPI_exit (void)
-{
-  int leaked;
-
-  if (!SPI_inited)
-    {
-      return 0;
-    }
-
-  SPI_inited = FALSE;
-
-  if (live_refs)
-    {
-      leaked = g_hash_table_size (live_refs);
-#ifdef DEBUG_OBJECTS
-      fprintf (stderr, "Leaked %d SPI handles\n", leaked);
-
-#define PRINT_LEAKS
-#ifdef PRINT_LEAKS
-      g_hash_table_foreach (live_refs, report_leaked_ref, NULL);
-#endif
-
-#endif
-    }
-  else
-    {
-      leaked = 0;
-    }
-
-  cspi_cleanup ();
-
-  return leaked;
-}
-
-/**
- * SPI_freeString:
- * @s: a character string returned from another at-spi call.
- *
- * Free a character string returned from an at-spi call.  Clients of
- * at-spi should use this function instead of free () or g_free().
- * A NULL string @s will be silently ignored.
- * This API should not be used to free strings
- * from other libraries or allocated by the client.
- **/
-void
-SPI_freeString (char *s)
-{
-  if (s)
-    {
-      CORBA_free (s);
-    }
-}
-
-/**
- * SPI_freeRect:
- * @r: a pointer to an SPIRect returned from another at-spi call.
- *
- * Free a SPIRect structure returned from an at-spi call.  Clients of
- * at-spi should use this function instead of free () or g_free().
- * A NULL rect @r will be silently ignored.
- * This API should not be used to free data
- * from other libraries or allocated by the client.
- *
- * @Since: AT-SPI 1.6
- **/
-void
-SPI_freeRect (SPIRect *r)
-{
-  if (r)
-    {
-      /* err, okay, in this case the client _could_ 
-        have called g_free, but we don't want to guarantee it */
-      g_free (r);
-    }
-}
-
-/**
- * SPI_dupString:
- * @s: a UTF-8 string to be duplicated
- * 
- * @Since: AT-SPI 1.4
- *
- * Returns: a duplicate of the string passed as a parameter, which should
- * be freed via SPI_freeString after use.
- **/
-char *
-SPI_dupString (char *s)
-{
-  if (s)
-    {
-      return CORBA_string_dup (s);
-    }
-  else 
-    return NULL;
-}
-
-/**
- * SPI_exceptionHandlerPush:
- * @handler: an #SPIExceptionHandler to install as the first code to deal with exceptions.
- *
- * Install a client-side handler for #SPIException instances, which can see and handle any
- * exceptions before chaining them to the next exception handler in the stack.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns %TRUE if the result succeeded, %FALSE if @hander could not be registered.
- **/
-SPIBoolean SPI_exceptionHandlerPush (SPIExceptionHandler *handler)
-{
-  if (!exception_handlers)
-    exception_handlers = g_queue_new ();
-  g_queue_push_head (exception_handlers, handler);
-  return TRUE;
-}
-
-/**
- * SPI_exceptionHandlerPop:
- * 
- * Remove/pop an #SPIExceptionHandler off the error handler stack and return the new handler.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns the #SPIExceptionHandler which is now at the top of the error handler stack after the call.
- **/
-SPIExceptionHandler* SPI_exceptionHandlerPop (void)
-{
-  return (SPIExceptionHandler *) g_queue_pop_head (exception_handlers);
-}
-
-/**
- * SPIException_getSourceType:
- * @err: the exception being queried
- *
- * Get the #SPIExceptionType of an exception which has been thrown.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: the #SPIExceptionType corresponding to exception @err.
- **/
-SPIExceptionType SPIException_getSourceType (SPIException *err)
-{
-  if (err)
-    return err->type;
-  else
-    return SPI_EXCEPTION_SOURCE_UNSPECIFIED;
-}
-
-/**
- * SPIException_getExceptionCode:
- * @err: the #SPIException being queried.
- *
- * Get the #SPIExceptionCode telling what type of exception condition has occurred.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: the #SPIExceptionCode corresponding to exception @err.
- **/
-SPIExceptionCode SPIException_getExceptionCode (SPIException *err)
-{  
-  return err->code;
-}
-
-/**
- * SPIAccessibleException_getSource:
- * @err: the #SPIException being queried.
- *
- * Get the identity of the object which threw an exception.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: a pointer to the #Accessible object which threw the exception.
- **/
-Accessible* SPIAccessibleException_getSource (SPIException *err)
-{
-  if (err->type == SPI_EXCEPTION_SOURCE_ACCESSIBLE)
-    return cspi_object_get_ref (err->source, FALSE);
-  return NULL;
-}
-
-/**
- * SPIException_getDescription:
- * @err: the #SPIException being queried.
- *
- * Get a text description of the exception that has been thrown.
- * Unfortunately these descriptions tend to be terse and limited in
- * the detail which they can provide.
- *
- * Returns: a brief character string describing the exception.
- **/
-char* SPIException_getDescription (SPIException *err)
-{
-  /* TODO: friendlier error messages? */
-  if (err->ev)
-    return CORBA_exception_id (err->ev);
-  return NULL;
-}
diff --git a/cspi/spi_registry.c b/cspi/spi_registry.c
deleted file mode 100644 (file)
index 77341a9..0000000
+++ /dev/null
@@ -1,679 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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.
- */
-
-/* spi_registry.c: Global functions wrapping the registry */
-
-#include <cspi/spi-private.h>
-
-/**
- * SPI_registerGlobalEventListener:
- * @listener: the #AccessibleEventListener to be registered against an
- *            event type.
- * @eventType: a character string indicating the type of events for which
- *            notification is requested.  Format is
- *            EventClass:major_type:minor_type:detail
- *            where all subfields other than EventClass are optional.
- *            EventClasses include "object", "window", "mouse",
- *            and toolkit events (e.g. "Gtk", "AWT").
- *            Examples: "focus:", "Gtk:GtkWidget:button_press_event".
- *
- * Legal object event types:
- *
- *    (property change events)
- *
- *            object:property-change
- *            object:property-change:accessible-name
- *            object:property-change:accessible-description
- *            object:property-change:accessible-parent
- *            object:property-change:accessible-value
- *            object:property-change:accessible-role
- *            object:property-change:accessible-table-caption
- *            object:property-change:accessible-table-column-description
- *            object:property-change:accessible-table-column-header
- *            object:property-change:accessible-table-row-description
- *            object:property-change:accessible-table-row-header
- *            object:property-change:accessible-table-summary
- *
- *    (other object events)
- *
- *            object:state-changed 
- *            object:children-changed
- *            object:visible-data-changed
- *            object:selection-changed
- *            object:text-selection-changed
- *            object:text-changed
- *            object:text-caret-moved
- *            object:row-inserted
- *            object:row-reordered
- *            object:row-deleted
- *            object:column-inserted
- *            object:column-reordered
- *            object:column-deleted
- *            object:model-changed
- *            object:active-descendant-changed
- *
- *  (window events)
- *
- *            window:minimize
- *            window:maximize
- *            window:restore
- *            window:close
- *            window:create
- *            window:reparent
- *            window:desktop-create
- *            window:desktop-destroy
- *            window:activate
- *            window:deactivate
- *            window:raise
- *            window:lower
- *            window:move
- *            window:resize
- *            window:shade
- *            window:unshade
- *            window:restyle
- *
- *  (other events)
- *
- *            focus:
- *            mouse:abs
- *            mouse:rel
- *            mouse:b1p
- *            mouse:b1r
- *            mouse:b2p
- *            mouse:b2r
- *            mouse:b3p
- *            mouse:b3r
- *
- * NOTE: this string may be UTF-8, but should not contain byte value 56
- *            (ascii ':'), except as a delimiter, since non-UTF-8 string
- *            delimiting functions are used internally.
- *            In general, listening to
- *            toolkit-specific events is not recommended.
- *
- * Add an in-process callback function to an existing AccessibleEventListener.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_registerGlobalEventListener (AccessibleEventListener *listener,
-                                const char              *eventType)
-{
-  if (!listener)
-    {
-      return FALSE;
-    }
-
-  Accessibility_Registry_registerGlobalEventListener (
-    cspi_registry (),
-    cspi_event_listener_get_corba (listener),
-    eventType, cspi_ev ());
-
-  return  !cspi_exception ();
-}
-
-/**
- * SPI_deregisterGlobalEventListenerAll:
- * @listener: the #AccessibleEventListener to be registered against
- *            an event type.
- *
- * deregisters an AccessibleEventListener from the registry, for all
- *            event types it may be listening to. Use
- *            AccessibleEventListener_unref to release the
- *            listener reference.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_deregisterGlobalEventListenerAll (AccessibleEventListener *listener)
-{
-  if (!listener)
-    {
-      return FALSE;
-    }
-
-  Accessibility_Registry_deregisterGlobalEventListenerAll (
-    cspi_registry (),
-    cspi_event_listener_get_corba (listener),
-    cspi_ev ());
-
-  return !cspi_exception ();
-}
-
-/**
- * SPI_deregisterGlobalEventListener:
- * @listener: the #AccessibleEventListener registered against an event type.
- * @eventType: a string specifying the event type for which this
- *             listener is to be deregistered.
- *
- * deregisters an AccessibleEventListener from the registry, for a specific
- *             event type.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_deregisterGlobalEventListener (AccessibleEventListener *listener,
-                                  const char              *eventType)
-{
-  if (!listener)
-    {
-      return FALSE;
-    }
-
-  Accessibility_Registry_deregisterGlobalEventListener (
-    cspi_registry (), 
-    cspi_event_listener_get_corba (listener),
-    eventType, cspi_ev ());
-
-  return !cspi_exception ();
-}
-
-/**
- * SPI_getDesktopCount:
- *
- * Get the number of virtual desktops.
- * NOTE: currently multiple virtual desktops are not implemented, this
- *       function always returns '1'.
- *
- * Returns: an integer indicating the number of active virtual desktops.
- **/
-int
-SPI_getDesktopCount ()
-{
-  int retval;
-
-  retval = Accessibility_Registry_getDesktopCount (
-    cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getDesktopCount", -1);
-
-  return retval;
-}
-
-/**
- * SPI_getDesktop:
- * @i: an integer indicating which of the accessible desktops is to be returned.
- *
- * Get the virtual desktop indicated by index @i.
- * NOTE: currently multiple virtual desktops are not implemented, this
- *       function always returns '1'.
- *
- * Returns: a pointer to the 'i-th' virtual desktop's #Accessible representation.
- **/
-Accessible*
-SPI_getDesktop (int i)
-{
-  return cspi_object_add (
-    Accessibility_Registry_getDesktop (
-      cspi_registry (), i, cspi_ev ()));
-}
-
-/**
- * SPI_getDesktopList:
- * @desktop_list: a pointer to an array of #Accessible references.
- *
- * Get the list of virtual desktops.  On return, @list will point
- *     to a newly-created, NULL terminated array of virtual desktop
- *     pointers.
- *     It is the responsibility of the caller to free this array when
- *     it is no longer needed.
- *
- * Not Yet Implemented : this implementation always returns a single
- * #Accessible desktop.
- *
- * Returns: an integer indicating how many virtual desktops have been
- *          placed in the list pointed to by parameter @list.
- **/
-int
-SPI_getDesktopList (Accessible ***desktop_list)
-{
-  int i;
-  Accessible **list;
-  Accessibility_DesktopSeq *desktops;
-
-  if (!desktop_list)
-         return 0;
-
-  *desktop_list = NULL;
-
-  desktops = Accessibility_Registry_getDesktopList (cspi_registry (),
-                                                   cspi_ev ());
-
-  cspi_return_val_if_ev ("getDesktopList", 0);
-
-  list = g_new0 (Accessible *, desktops->_length + 1);
-
-  for (i = 0; i < desktops->_length; i++)
-    {
-      list [i] = cspi_object_add (
-             CORBA_Object_duplicate (desktops->_buffer [i], cspi_ev ()));
-    }
-  list [i] = NULL;
-
-  CORBA_free (desktops);
-
-  *desktop_list = list;
-
-  return i;
-}
-
-/**
- * SPI_freeDesktopList:
- * @desktop_list: a pointer to an array of #Accessible objects
- * as returned from @SPI_getDesktopList
- * 
- * This routine frees the memory associated with the list.
- **/
-void
-SPI_freeDesktopList (Accessible **desktop_list)
-{
-  Accessible **p;
-  
-  for (p = desktop_list; p && *p; p++)
-    {
-      cspi_object_unref (*p);
-    }
-  g_free (desktop_list);
-}
-
-/**
- * SPI_KEYSET_ALL_KEYS:
- * @SPI_KEYSET_ALL_KEYS: A special value for an AccessibleKeySet type, which tacitly
- *                       includes all keycodes and keyvals for the specified modifier set.
- **/
-
-/**
- * SPI_registerAccessibleKeystrokeListener:
- * @listener:  a pointer to the #AccessibleKeystrokeListener for which
- *             keystroke events are requested.
- * @keys:      a pointer to the #AccessibleKeySet indicating which
- *             keystroke events are requested, or #SPI_KEYSET_ALL_KEYS
- *             to indicate that all keycodes and keyvals for the specified
- *             modifier set are to be included.
- * @modmask:   an #AccessibleKeyMaskType mask indicating which
- *             key event modifiers must be set in combination with @keys,
- *             events will only be reported for key events for which all
- *             modifiers in @modmask are set.  If you wish to listen for
- *             events with multiple modifier combinations you must call
- *             registerAccessibleKeystrokeListener() once for each combination.
- * @eventmask: an #AccessibleKeyMaskType mask indicating which
- *             types of key events are requested (#SPI_KEY_PRESSED, etc.).
- * @sync_type: a #AccessibleKeyListenerSyncType parameter indicating
- *             the behavior of the notification/listener transaction.
- *             
- * Register a listener for keystroke events, either pre-emptively for
- *             all windows (SPI_KEYLISTENER_ALL_WINDOWS),
- *             non-preemptively (SPI_KEYLISTENER_NOSYNC), or
- *             pre-emptively at the toolkit level (SPI_KEYLISTENER_CANCONSUME).
- *             If ALL_WINDOWS or CANCONSUME are used, the event is consumed
- *             upon receipt if one of @listener's callbacks returns #TRUE.
- *             ( Other sync_type values may be available in the future )
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_registerAccessibleKeystrokeListener (AccessibleKeystrokeListener  *listener,
-                                        AccessibleKeySet             *keys,
-                                        AccessibleKeyMaskType         modmask,
-                                        AccessibleKeyEventMask        eventmask,
-                                        AccessibleKeyListenerSyncType sync_type)
-{
-  gint                                i;
-  Accessibility_KeySet                key_set;
-  Accessibility_KeyEventTypeSeq       key_events;
-  Accessibility_ControllerEventMask   controller_event_mask;
-  Accessibility_DeviceEventController device_event_controller;
-  Accessibility_EventListenerMode     listener_mode;
-  Accessibility_EventType             key_event_types [2];
-  SPIBoolean                          retval = FALSE;
-
-  if (!listener)
-    {
-      return retval;
-    }
-
-  device_event_controller = 
-    Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getting event controller", FALSE);
-
-  /* copy the keyval filter values from the C api into the CORBA KeySet */
-  if (keys)
-    {
-      key_set._length = keys->len;
-      key_set._buffer = Accessibility_KeySet_allocbuf (keys->len);
-      for (i = 0; i < key_set._length; ++i)
-        {
-          key_set._buffer[i].keycode = keys->keycodes[i];
-         key_set._buffer[i].keysym = keys->keysyms[i];
-         if (keys->keystrings && keys->keystrings[i]) 
-           {
-             key_set._buffer[i].keystring = CORBA_string_dup(keys->keystrings[i]);
-           } 
-          else 
-            {
-             key_set._buffer[i].keystring = CORBA_string_dup("");
-           }
-        }
-    }
-  else
-    {
-      key_set._length = 0;
-      key_set._buffer = NULL;
-    }
-       
-  /* copy the event filter values from the C api into the CORBA KeyEventTypeSeq */
-  i = 0;
-  key_events._buffer = key_event_types;
-  if (eventmask & SPI_KEY_PRESSED)
-    {
-      key_events._buffer[i++] = Accessibility_KEY_PRESSED_EVENT;
-    }
-  if (eventmask & SPI_KEY_RELEASED)
-    {
-      key_events._buffer[i++] = Accessibility_KEY_RELEASED_EVENT;
-    }
-  key_events._length = i;
-  
-  controller_event_mask = (CORBA_unsigned_long) modmask;
-
-  listener_mode.synchronous =
-         (CORBA_boolean) ((sync_type & SPI_KEYLISTENER_SYNCHRONOUS)!=0);
-  listener_mode.preemptive =
-         (CORBA_boolean) ((sync_type & SPI_KEYLISTENER_CANCONSUME)!=0);
-  listener_mode.global =
-         (CORBA_boolean) ((sync_type & SPI_KEYLISTENER_ALL_WINDOWS)!=0);
-
-  retval = Accessibility_DeviceEventController_registerKeystrokeListener (
-    device_event_controller,
-    cspi_event_listener_get_corba (listener),
-    &key_set,
-    controller_event_mask,
-    &key_events,
-    &listener_mode,
-    cspi_ev ());
-
-  CORBA_free (key_set._buffer);
-
-  cspi_return_val_if_ev ("registering keystroke listener", FALSE);
-
-  cspi_release_unref (device_event_controller);
-
-  return retval;
-}
-
-/**
- * SPI_deregisterAccessibleKeystrokeListener:
- * @listener: a pointer to the #AccessibleKeystrokeListener for which
- *            keystroke events are requested.
- * @modmask:  the key modifier mask for which this listener is to be
- *            'deregistered' (of type #AccessibleeyMaskType).
- *
- * Removes a keystroke event listener from the registry's listener queue,
- *            ceasing notification of events with modifiers matching @modmask.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_deregisterAccessibleKeystrokeListener (AccessibleKeystrokeListener *listener,
-                                          AccessibleKeyMaskType        modmask)
-{
-  Accessibility_ControllerEventMask   controller_event_mask;
-  Accessibility_KeySet                key_set;
-  Accessibility_KeyEventTypeSeq       key_events;
-  Accessibility_DeviceEventController device_event_controller;
-
-  if (!listener)
-    {
-      return FALSE;
-    }
-
-  device_event_controller = 
-    Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getting keystroke listener", FALSE);
-
-  controller_event_mask = (CORBA_unsigned_long) modmask;
-
-  key_events._buffer = NULL;
-  key_events._length = 0;
-
-  key_set._buffer = NULL;
-  key_set._length = 0;
-
-  Accessibility_DeviceEventController_deregisterKeystrokeListener (
-    device_event_controller,
-    cspi_event_listener_get_corba (listener),
-    &key_set,
-    controller_event_mask,
-    &key_events,
-    cspi_ev ());
-
-  cspi_release_unref (device_event_controller);
-
-  return TRUE;
-}
-
-/**
- * SPI_registerDeviceEventListener:
- * @listener:  a pointer to the #AccessibleDeviceListener which requests
- *             the events.
- * @eventmask: an #AccessibleDeviceEventMask mask indicating which
- *             types of key events are requested (#SPI_KEY_PRESSED, etc.).
- * @filter: Unused parameter.
- *             
- * Register a listener for device events, for instance button events.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_registerDeviceEventListener (AccessibleDeviceListener  *listener,
-                                AccessibleDeviceEventMask  eventmask,
-                                void                      *filter)
-{
-  Accessibility_DeviceEventController device_event_controller;
-  SPIBoolean                          retval = FALSE;
-  Accessibility_EventTypeSeq          event_types;
-  Accessibility_EventType             event_type_buffer[2];
-  gint                                i;
-
-  if (!listener)
-    {
-      return retval;
-    }
-
-  device_event_controller = 
-    Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getting event controller", FALSE);
-
-  /* copy the event filter values from the C api into the CORBA KeyEventTypeSeq */
-  
-  event_types._buffer = event_type_buffer;
-  i = 0;
-
-  if (eventmask & SPI_BUTTON_PRESSED)
-    {
-      event_types._buffer[i++] = Accessibility_BUTTON_PRESSED_EVENT;
-    }
-  if (eventmask & SPI_BUTTON_RELEASED)
-    {
-      event_types._buffer[i++] = Accessibility_BUTTON_RELEASED_EVENT;
-    }
-
-  event_types._length = i;
-  
-  retval = Accessibility_DeviceEventController_registerDeviceEventListener (
-    device_event_controller,
-    cspi_event_listener_get_corba (listener),
-    &event_types,
-    cspi_ev ());
-
-  cspi_return_val_if_ev ("registering keystroke listener", FALSE);
-
-  cspi_release_unref (device_event_controller);
-
-  return retval;
-}
-
-/**
- * SPI_deregisterDeviceEventListener:
- * @listener: a pointer to the #AccessibleDeviceListener for which
- *            device events are requested.
- * @filter: Unused parameter.
- *
- * Removes a device event listener from the registry's listener queue,
- *            ceasing notification of events of the specified type.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_deregisterDeviceEventListener (AccessibleDeviceListener *listener,
-                                  void                     *filter)
-{
-  Accessibility_DeviceEventController device_event_controller;
-  Accessibility_EventTypeSeq       event_types;
-  Accessibility_EventType          event_type_buff[2];
-
-  if (!listener)
-    {
-      return FALSE;
-    }
-
-  device_event_controller = 
-    Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getting keystroke listener", FALSE);
-
-  event_types._buffer = event_type_buff;
-  event_types._length = 2;
-  event_types._buffer[0] = Accessibility_BUTTON_PRESSED_EVENT;
-  event_types._buffer[1] = Accessibility_BUTTON_RELEASED_EVENT;
-
-  Accessibility_DeviceEventController_deregisterDeviceEventListener (
-    device_event_controller,
-    cspi_event_listener_get_corba (listener),
-    &event_types,    
-    cspi_ev ());
-
-  cspi_release_unref (device_event_controller);
-
-  return TRUE;
-}
-
-/**
- * SPI_generateKeyboardEvent:
- * @keyval: a long integer indicating the keycode or keysym of the key event
- *           being synthesized.
- * @keystring: an (optional) UTF-8 string which, if @keyval is NULL,
- *           indicates a 'composed' keyboard input string which is 
- *           being synthesized; this type of keyboard event synthesis does
- *           not emulate hardware keypresses but injects the string 
- *           as though a composing input method (such as XIM) were used.
- * @synth_type: a #AccessibleKeySynthType flag indicating whether @keyval
- *           is to be interpreted as a keysym rather than a keycode
- *           (CSPI_KEYSYM), or whether to synthesize
- *           SPI_KEY_PRESS, SPI_KEY_RELEASE, or both (SPI_KEY_PRESSRELEASE).
- *
- * Synthesize a keyboard event (as if a hardware keyboard event occurred in the
- * current UI context).
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_generateKeyboardEvent (long int keyval,
-                          char *keystring,
-                          AccessibleKeySynthType synth_type)
-{
-  Accessibility_KeySynthType keysynth_type;
-  Accessibility_DeviceEventController device_event_controller = 
-         Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getting event controller for key event gen", FALSE);
-
-  switch (synth_type)
-    {
-      case SPI_KEY_PRESS:
-         keysynth_type = Accessibility_KEY_PRESS;
-         break;
-      case SPI_KEY_RELEASE:
-         keysynth_type = Accessibility_KEY_RELEASE;
-         break;
-      case SPI_KEY_PRESSRELEASE:
-         keysynth_type = Accessibility_KEY_PRESSRELEASE;
-         break;
-      case SPI_KEY_SYM:
-         keysynth_type = Accessibility_KEY_SYM;
-         break;
-      case SPI_KEY_STRING:
-         keysynth_type = Accessibility_KEY_STRING;
-         break;
-      default:
-          return FALSE;
-    }
-
-  Accessibility_DeviceEventController_generateKeyboardEvent (device_event_controller,
-                                                            keyval,
-                                                            keystring ? keystring : "",
-                                                            keysynth_type,
-                                                            cspi_ev ());
-
-  cspi_return_val_if_ev ("generating keyboard event", FALSE);
-
-  cspi_release_unref (device_event_controller);
-
-  return TRUE;
-}
-
-/**
- * SPI_generateMouseEvent:
- * @x: a #long indicating the screen x coordinate of the mouse event.
- * @y: a #long indicating the screen y coordinate of the mouse event.
- * @name: a string indicating which mouse event to be synthesized
- *        (e.g. "b1p", "b1c", "b2r", "rel", "abs").
- *
- * Synthesize a mouse event at a specific screen coordinate.
- * Most AT clients should use the #AccessibleAction interface when
- * tempted to generate mouse events, rather than this method.
- * Event names: b1p = button 1 press; b2r = button 2 release;
- *              b3c = button 3 click; b2d = button 2 double-click;
- *              abs = absolute motion; rel = relative motion.
- *
- * Returns: #TRUE if successful, otherwise #FALSE.
- **/
-SPIBoolean
-SPI_generateMouseEvent (long x, long y, char *name)
-{
-  Accessibility_DeviceEventController device_event_controller = 
-         Accessibility_Registry_getDeviceEventController (cspi_registry (), cspi_ev ());
-
-  cspi_return_val_if_ev ("getting event controller for mouse event gen", FALSE);
-
-  Accessibility_DeviceEventController_generateMouseEvent (device_event_controller,
-                                                         x, y, name, cspi_ev ());
-  cspi_return_val_if_ev ("generating mouse event", FALSE);
-
-  cspi_release_unref (device_event_controller);
-
-  return TRUE;
-}
-
diff --git a/cspi/spi_selection.c b/cspi/spi_selection.c
deleted file mode 100644 (file)
index 910e9c8..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleSelection_ref:
- * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
- *
- * Increment the reference count for an #AccessibleSelection object.
- *
- **/
-void
-AccessibleSelection_ref (AccessibleSelection *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleSelection_unref:
- * @obj: a pointer to the #AccessibleSelection implementor on which to operate. 
- *
- * Decrement the reference count for an #Accessible object.
- *
- **/
-void
-AccessibleSelection_unref (AccessibleSelection *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleSelection_getNSelectedChildren:
- * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
- *
- * Get the number of children of an #AccessibleSelection implementor which are
- *        currently selected.
- *
- * Returns: a #long indicating the number of #Accessible children
- *        of the #AccessibleSelection implementor which are currently selected.
- *
- **/
-long
-AccessibleSelection_getNSelectedChildren (AccessibleSelection *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Selection__get_nSelectedChildren (CSPI_OBJREF (obj),
-                                                   cspi_ev ());
-
-  cspi_return_val_if_ev ("getNSelectedChildren", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleSelection_getSelectedChild:
- * @obj: a pointer to the #AccessibleSelection on which to operate.
- * @selectedChildIndex: a #long indicating which of the selected
- *      children is specified.
- *
- * Get the i-th selected #Accessible child of an #AccessibleSelection.
- *      Note that @childIndex refers to the index in the list of 'selected'
- *      children and generally differs from that used in
- *      #Accessible_getChildAtIndex() or returned by
- *      #Accessible_getIndexInParent(). @selectedChildIndex must lie between 0
- *      and #AccessibleSelection_getNSelectedChildren()-1, inclusive.
- *
- * Returns: a pointer to a selected #Accessible child object,
- *          specified by @childIndex.
- *
- **/
-Accessible *
-AccessibleSelection_getSelectedChild (AccessibleSelection *obj,
-                                      long int selectedChildIndex)
-{
-  Accessibility_Accessible child;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-  
-  child = Accessibility_Selection_getSelectedChild (
-    CSPI_OBJREF (obj),
-    selectedChildIndex, cspi_ev ());
-
-  return  cspi_object_add (child);
-}
-
-/**
- * AccessibleSelection_selectChild:
- * @obj: a pointer to the #AccessibleSelection on which to operate.
- * @childIndex: a #long indicating which child of the #Accessible
- *              is to be selected.
- *
- * Add a child to the selected children list of an #AccessibleSelection.
- *         For #AccessibleSelection implementors that only allow
- *         single selections, this may replace the (single) current
- *         selection.
- *
- * Returns: #TRUE if the child was successfully selected, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleSelection_selectChild (AccessibleSelection *obj,
-                                 long int childIndex)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Selection_selectChild (CSPI_OBJREF (obj),
-                                        childIndex, cspi_ev ());
-
-  cspi_return_val_if_ev ("selectChild", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleSelection_deselectSelectedChild:
- * @obj: a pointer to the #AccessibleSelection on which to operate.
- * @selectedChildIndex: a #long indicating which of the selected children
- *              of the #Accessible is to be selected.
- *
- * Remove a child to the selected children list of an #AccessibleSelection.
- *          Note that @childIndex is the index in the selected-children list,
- *          not the index in the parent container.  @selectedChildIndex in this
- *          method, and @childIndex in #AccessibleSelection_selectChild
- *          are asymmettric.
- *
- * Returns: #TRUE if the child was successfully deselected, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleSelection_deselectSelectedChild (AccessibleSelection *obj,
-                                           long int selectedChildIndex)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Selection_deselectSelectedChild (
-    CSPI_OBJREF (obj), selectedChildIndex, cspi_ev ());
-
-  cspi_return_val_if_ev ("deselectSelectedChild", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleSelection_deselectChild:
- * @obj: a pointer to the #AccessibleSelection on which to operate.
- * @childIndex: a #long indicating which of the children
- *              of the #Accessible is to be de-selected.
- *
- * Deselect a specific child of an #AccessibleSelection.
- *          Note that @childIndex is the index of the child
- *          in the parent container.
- * 
- * See #AccessibleSelection_deselectSelectedChild
- *
- * Since AT-SPI 1.8.0
- * 
- * Returns: #TRUE if the child was successfully deselected, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleSelection_deselectChild (AccessibleSelection *obj,
-                                  long int childIndex)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Selection_deselectChild (
-    CSPI_OBJREF (obj), childIndex, cspi_ev ());
-
-  cspi_return_val_if_ev ("deselectChild", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleSelection_isChildSelected:
- * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
- * @childIndex: an index into the #AccessibleSelection's list of children.
- *
- * Determine whether a particular child of an #AccessibleSelection implementor
- *        is currently selected.  Note that @childIndex is the index into the
- *        standard #Accessible container's list of children.
- *
- * Returns: #TRUE if the specified child is currently selected,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleSelection_isChildSelected (AccessibleSelection *obj,
-                                     long int childIndex)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Selection_isChildSelected (
-    CSPI_OBJREF (obj),
-    childIndex, cspi_ev ());
-
-  cspi_return_val_if_ev ("isChildSelected", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleSelection_selectAll:
- * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
- *
- * Attempt to select all of the children of an #AccessibleSelection implementor.
- * Not all #AccessibleSelection implementors support this operation.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- *
- **/
-SPIBoolean
-AccessibleSelection_selectAll (AccessibleSelection *obj)
-{
-  SPIBoolean retval;
-  
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Selection_selectAll (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("selectAll", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleSelection_clearSelection:
- * @obj: a pointer to the #AccessibleSelection implementor on which to operate.
- *
- * Clear the current selection, removing all selected children from the
- *       specified #AccessibleSelection implementor's selection list.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- *
- **/
-SPIBoolean
-AccessibleSelection_clearSelection (AccessibleSelection *obj)
-{
-  SPIBoolean retval;
-  
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Selection_clearSelection (CSPI_OBJREF (obj), cspi_ev ());
-  cspi_return_val_if_ev ("clearSelection", FALSE);
-
-  return retval;
-}
-
-
diff --git a/cspi/spi_streamablecontent.c b/cspi/spi_streamablecontent.c
deleted file mode 100644 (file)
index 6c69b75..0000000
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <string.h>
-#include <libbonobo.h>
-#include <cspi/spi-private.h>
-
-#define CORBA_BLOCK_SIZE 65536 /* see libbonobo, dunno where this is officially dictated */
-
-struct StreamCacheItem {
-  Accessibility_ContentStream stream;
-  gchar *mimetype;
-};
-
-static gboolean
-streams_equal_func (gconstpointer a, gconstpointer b)
-{
-  const struct StreamCacheItem *c1 = a, *c2 = b;
-  return CORBA_Object_is_equivalent (c1->stream, c2->stream, cspi_ev ());
-}
-
-static void
-stream_cache_item_free (gpointer a)
-{
-  struct StreamCacheItem *cache_item = a;
-
-  cspi_release_unref (cache_item->stream);
-  SPI_freeString (cache_item->mimetype);
-  g_free (cache_item);
-}
-
-static GHashTable *streams = NULL;
-
-static GHashTable *
-get_streams (void) 
-{
-  if (streams == NULL)
-      streams = g_hash_table_new_full (g_direct_hash, streams_equal_func, 
-                                      NULL, stream_cache_item_free);
-  return streams;
-}
-
-static CORBA_long
-accessible_content_stream_client_seek (const Accessibility_ContentStream stream,
-                                     CORBA_long offset,
-                                     Accessibility_ContentStream_SeekType seek_type,
-                                     CORBA_Environment  *opt_ev)
-{
-       CORBA_Environment  *ev, temp_ev;
-       CORBA_long ret_offset;
-       
-       if (!opt_ev) {
-               CORBA_exception_init (&temp_ev);
-               ev = &temp_ev;
-       } else
-               ev = opt_ev;
-
-       ret_offset = Accessibility_ContentStream_seek (stream, offset, seek_type, ev);
-       if (BONOBO_EX (ev))
-               ret_offset = -1;
-
-       if (!opt_ev)
-               CORBA_exception_free (&temp_ev);
-       
-       return ret_offset;
-}
-
-static guint8*
-accessible_content_stream_client_read (const Accessibility_ContentStream stream,
-                                      const size_t size,
-                                      CORBA_long *length_read,
-                                      CORBA_Environment  *ev)
-{
-       size_t  pos;
-       guint8 *mem;
-       size_t  length;
-
-       g_return_val_if_fail (ev != NULL, NULL);
-
-       if (length_read)
-               *length_read = size;
-
-       length = size;
-
-       if (length == 0)
-               return NULL;
-
-       mem = g_try_malloc (length);
-       if (!mem) {
-               CORBA_exception_set_system (ev, ex_CORBA_NO_MEMORY,
-                                           CORBA_COMPLETED_NO);
-               return NULL;
-       }
-
-       *length_read = 0;
-
-       for (pos = 0; pos < length;) {
-               Accessibility_ContentStream_iobuf *buf;
-               CORBA_long           len;
-
-               len = (pos + CORBA_BLOCK_SIZE < length) ?
-                       CORBA_BLOCK_SIZE : length - pos;
-
-               Accessibility_ContentStream_read (stream, len, &buf, ev);
-
-               if (BONOBO_EX (ev) || !buf)
-                       goto io_error;
-
-               if (buf->_length > 0) {
-                       memcpy (mem + pos, buf->_buffer, buf->_length);
-                       pos += buf->_length;
-                       *length_read += buf->_length;
-                       /* we assume a short read equals EOF ... is that right? */
-                       if (buf->_length < len || *length_read == size)
-                           return mem;
-               } else {
-                       g_warning ("Buffer length %d", buf->_length);
-                       goto io_error;
-               }
-               *length_read += buf->_length;
-
-               CORBA_free (buf);
-       }
-
-       return mem;
-
- io_error:
-       return NULL;
-}
-
-/* internal use only, declared in cspi-private.h */
-void
-cspi_streams_close_all (void)
-{
-  if (streams)
-    {
-      g_hash_table_destroy (streams);
-      streams = NULL;
-    }
-}
-
-/**
- * AccessibleStreamableContent_ref:
- * @obj: a pointer to the #AccessibleStreamableContent implementor on which to
- *       operate.
- *
- * Increment the reference count for an #AccessibleStreamableContent object.
- *
- * @Since: AT-SPI 1.4
- **/
-void
-AccessibleStreamableContent_ref (AccessibleStreamableContent *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleStreamableContent_unref:
- * @obj: a pointer to the #AccessibleStreamableContent implementor
- *       on which to operate. 
- *
- * Decrement the reference count for an #AccessibleStreamableContent object.
- *
- * @Since: AT-SPI 1.4
- **/
-void
-AccessibleStreamableContent_unref (AccessibleStreamableContent *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleStreamableContent_getContentTypes:
- * @obj: a pointer to the #AccessibleStreamableContent implementor on which to operate.
- *
- * Get a list of strings containing the content mimetypes available from an
- *       #AccessibleStreamableContent implementor.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: an array of strings, terminated by a NULL string, specifying the
- *       mimetypes for which the streamed content is available.
- *
- **/
-
-char **
-AccessibleStreamableContent_getContentTypes (AccessibleStreamableContent *obj)
-{
-  Accessibility_StringSeq *mimeseq;
-  char **content_types;
-  int i;
-
-  g_return_val_if_fail (obj != NULL, NULL);
-
-  mimeseq = Accessibility_StreamableContent_getContentTypes (CSPI_OBJREF (obj),
-                                                            cspi_ev ());
-  cspi_return_val_if_ev ("getContentTypes", NULL); 
-  content_types = g_new0 (char *, mimeseq->_length + 1);
-  for (i = 0; i < mimeseq->_length; ++i)
-    content_types[i] = g_strdup (mimeseq->_buffer[i]);
-  content_types [mimeseq->_length] = NULL;
-  CORBA_free (mimeseq);
-  
-  return content_types;
-}
-/**
-* AccessibleStreamableContent_freeContentTypesList:
-* @obj: the AccessibleStreamableContent implementor on which to operate.
-* @content_types: a list of content types previously returned by 
-*     #AccessibleStreamableContent_getContentTypes.
-*
-* Free the memory associated with a call to #AccessibleStreamableContent_getContentTypes, once 
-* the result has been used.
-*
-* Since: AT-SPI 1.4
-**/
-void
-AccessibleStreamableContent_freeContentTypesList (AccessibleStreamableContent *obj,
-                                                 char **content_types)
-{
-  if (content_types) 
-    {
-      gint i = 0;
-      while (content_types[i])
-       {
-         g_free (content_types[i]);
-         i++;
-       }
-      g_free (content_types);
-    }
-}
-
-/**
- * AccessibleStreamableContent_open:
- * @obj: a pointer to the #AccessibleStreamableContent implementor on which to operate.
- * @content_type: a string specifying the content type to retrieve (should match one
- * of the return strings from #AccessibleStreamableContent_getContentTypes ()).
- *
- * Open a streaming connection to an AccessibleStreamableContent implementor,
- *       of a particular content type.  Note that a client may only have one
- *       open stream per streamable interface instance in the current 
- *       implementation.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: #TRUE if successful, #FALSE if unsuccessful.
- *
- **/
-SPIBoolean
-AccessibleStreamableContent_open (AccessibleStreamableContent *obj,
-                                 const char *content_type)
-{
-  Accessibility_ContentStream stream;
-  struct StreamCacheItem *cache;
-  stream = Accessibility_StreamableContent_getStream (CSPI_OBJREF (obj),
-                                                     content_type,
-                                                     cspi_ev ());
-  cspi_return_val_if_ev ("getContent", FALSE); 
-
-  if (stream != CORBA_OBJECT_NIL) {
-    cache = g_new0 (struct StreamCacheItem, 1);
-    cache->stream = stream;
-    cache->mimetype = CORBA_string_dup (content_type);
-
-    g_hash_table_replace (get_streams (), CSPI_OBJREF (obj), cache);
-    /* FIXME 
-     * This limits us to one concurrent stream per streamable interface
-     * for a given client.
-     * It might be reasonable for a client to open more than one stream
-     * to content, in different mime-types, at the same time.
-     */
-
-    return TRUE;
-  }
-  return FALSE;
-}
-
-/**
- * AccessibleStreamableContent_close:
- * @obj: a pointer to the #AccessibleStreamableContent implementor on which to operate.
- *
- * Close the current streaming connection to an AccessibleStreamableContent implementor.
- * This must be called before any subsequent AccessibleStreamableContent_open
- * calls on the same object.
- * 
- * @Since: AT-SPI 1.4
- *
- * Returns: #TRUE if successful, #FALSE if unsuccessful.
- *
- **/
-SPIBoolean
-AccessibleStreamableContent_close (AccessibleStreamableContent *obj)
-{
-  if (CSPI_OBJREF (obj) != CORBA_OBJECT_NIL) {
-    if (g_hash_table_remove (get_streams (), CSPI_OBJREF (obj)))
-      return TRUE;
-  }
-  return FALSE;
-}
-
-/**
- * AccessibleStreamableContent_seek:
- * @obj: a pointer to the #AccessibleStreamableContent implementor on which to operate.
- * @offset: a long int specifying the offset into the stream.
- * @seek_type: an enum indicating the seek offset type, may be SEEK_SET,
- *            SEEK_CUR, SEEK_END (as in the lseek() libc command).
- *
- * Cause the current streamable content connection (obtained via
- *     #AccessibleStreamableContent_open()) to seek to a particular offset in the
- *     stream.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: #TRUE if successful, #FALSE if unsuccessful.
- *
- **/
-long int
-AccessibleStreamableContent_seek (AccessibleStreamableContent *obj,
-                                 long int offset,
-                                 AccessibleStreamableContentSeekType seek_type)
-{
-  Accessibility_ContentStream stream;
-  long int ret_offset = 0;
-  struct StreamCacheItem *cached; 
-  Accessibility_ContentStream_SeekType content_seek_type;
-
-  cached = g_hash_table_lookup (get_streams (), CSPI_OBJREF (obj));
-  if (cached)
-    {
-      stream = cached->stream;
-      if (stream != CORBA_OBJECT_NIL)
-       {
-         switch (seek_type) {
-         case SPI_STREAM_SEEK_SET:
-           content_seek_type = Accessibility_ContentStream_SEEK_SET; 
-           break;
-         case SPI_STREAM_SEEK_END:
-           content_seek_type = Accessibility_ContentStream_SEEK_END; 
-           break;
-         case SPI_STREAM_SEEK_CUR:
-         default:
-           content_seek_type = Accessibility_ContentStream_SEEK_CURRENT; 
-           break;
-         }
-         ret_offset = accessible_content_stream_client_seek (stream, offset, 
-                                                            content_seek_type, cspi_ev ());
-         cspi_return_val_if_ev ("seek", FALSE);
-       }
-    }
-  return ret_offset;
-}
-
-/**
- * AccessibleStreamableContent_read:
- * @obj: a pointer to the #AccessibleStreamableContent implementor on which to operate.
- * @buff: a pointer to a buffer into which the resulting bytes read from the stream
- *        are to be written.
- * @nbytes: a long integer indicating the number of bytes to read/write.
- * @read_type: currently unused, specifies behavior of reads for streamed content
- *        if blocking is not allowed, etc.
- *
- * Copy (read) bytes from the currently open streamable content connection
- *     to a buffer.  This is a blocking API, in the sense that it does not 
- *     return until the bytes have been read, or an error condition is 
- *     detected.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: an integer indicating the number of bytes read, or -1 on error.
- *
- **/
-SPIBoolean
-AccessibleStreamableContent_read (AccessibleStreamableContent *obj,
-                                 void *buff,
-                                 long int nbytes,
-                                 unsigned int read_type)
-{
-  Accessibility_ContentStream stream;
-  struct StreamCacheItem *cached; 
-  cached = g_hash_table_lookup (get_streams (), CSPI_OBJREF (obj));
-  if (cached)
-    {
-      CORBA_long len_read = 0;
-      stream = cached->stream;
-      if (stream != CORBA_OBJECT_NIL)
-       {
-          guint8 *mem;
-
-         mem = accessible_content_stream_client_read (stream, (size_t) nbytes, &len_read, cspi_ev ());
-         cspi_return_val_if_ev ("read", FALSE);
-         if (mem)
-            {
-              memcpy (buff, mem, len_read);
-             g_free (mem);
-             if ((nbytes == -1) || (len_read == nbytes))
-                return TRUE;
-           }
-       }
-    }
-  else g_message ("no matching stream was opened...");
-  return FALSE;
-}
-
diff --git a/cspi/spi_table.c b/cspi/spi_table.c
deleted file mode 100644 (file)
index 759418c..0000000
+++ /dev/null
@@ -1,831 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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> /* for malloc */
-#include <cspi/spi-private.h>
-
-/**
- * AccessibleTable_ref:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Increment the reference count for an #AccessibleTable object.
- **/
-void
-AccessibleTable_ref (AccessibleTable *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleTable_unref:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Decrement the reference count for an #AccessibleTable object.
- **/
-void
-AccessibleTable_unref (AccessibleTable *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleTable_getCaption:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Get an accessible representation of the caption for an #AccessibleTable.
- *
- * Returns: an #Accessible object that serves as the table's caption.
- **/
-Accessible *
-AccessibleTable_getCaption (AccessibleTable *obj)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =  cspi_object_add (
-                            Accessibility_Table__get_caption (CSPI_OBJREF (obj), cspi_ev ()));
-  cspi_return_val_if_ev ("getCaption", NULL);
-  return retval;
-}
-
-/**
- * AccessibleTable_getSummary:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Get an accessible object which summarizes the contents of an #AccessibleTable.
- *
- * Returns: an #Accessible object that serves as the table's summary (often a
- *          reduced #AccessibleTable).
- **/
-Accessible *
-AccessibleTable_getSummary (AccessibleTable *obj)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-retval = cspi_object_add (
-                         Accessibility_Table__get_summary (CSPI_OBJREF (obj), cspi_ev ()));
- cspi_return_val_if_ev ("getSummary", NULL);
- return retval;
-}
-
-/**
- * AccessibleTable_getNRows:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Get the number of rows in an #AccessibleTable,
- *        exclusive of any rows that are programmatically hidden, but inclusive
- *        of rows that may be outside of the current scrolling window or viewport.
- *
- * Returns: a #long integer indicating the number of rows in the table.
- **/
-long
-AccessibleTable_getNRows (AccessibleTable *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table__get_nRows (CSPI_OBJREF (obj), cspi_ev ());
-         
-  cspi_return_val_if_ev ("getNRows", -1);
-
-  return retval;
-         
-}
-
-/**
- * AccessibleTable_getNColumns:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Get the number of columns in an #AccessibleTable,
- *        exclusive of any columns that are programmatically hidden, but inclusive
- *        of columns that may be outside of the current scrolling window or viewport.
- *
- * Returns: a #long integer indicating the number of columns in the table.
- **/
-long
-AccessibleTable_getNColumns (AccessibleTable *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table__get_nColumns (CSPI_OBJREF (obj), cspi_ev ());
-         
-  cspi_return_val_if_ev ("getNColumns", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getAccessibleAt:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the specified table row, zero-indexed.
- * @column: the specified table column, zero-indexed.
- *
- * Get the table cell at the specified row and column indices.
- *          To get the accessible object at a particular (x, y) screen coordinate,
- *          use #Accessible_getAccessibleAtPoint ().
- *
- * Returns: an #Accessible object representing the specified table cell.
- **/
-Accessible *
-AccessibleTable_getAccessibleAt (AccessibleTable *obj,
-                                 long int row,
-                                 long int column)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = cspi_object_add (
-                           Accessibility_Table_getAccessibleAt (
-                                                                CSPI_OBJREF (obj), row,
-                                                                column, cspi_ev ()));
-  cspi_return_val_if_ev ("getAccessibleAt", NULL);
- return retval;
-}
-
-/**
- * AccessibleTable_getIndexAt:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the specified table row, zero-indexed.
- * @column: the specified table column, zero-indexed.
- *
- * Get the 1-D child index corresponding to the specified 2-D row and column indices.
- *          To get the accessible object at a particular (x, y) screen coordinate,
- *          use #Accessible_getAccessibleAtPoint ().
- * @see #AccessibleTable_getRowAtIndex(), #AccessibleTable_getColumnAtIndex()
- *
- * Returns: a long integer which serves as the index of a specified cell in the
- *          table, in a form usable by #Accessible_getChildAtIndex().
- **/
-long
-AccessibleTable_getIndexAt (AccessibleTable *obj,
-                            long int row,
-                            long int column)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table_getIndexAt (
-      CSPI_OBJREF (obj), row,
-      column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("getIndexAt", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getRowAtIndex:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @index: the specified child index, zero-indexed.
- *
- * Get the table row index occupied by the child at a particular 1-D child index.
- *
- * @see #AccessibleTable_getIndexAt(), #AccessibleTable_getColumnAtIndex()
- *
- * Returns: a long integer indicating the first row spanned by the child of a
- *          table, at the specified 1-D (zero-offset) @index.
- **/
-long
-AccessibleTable_getRowAtIndex (AccessibleTable *obj,
-                               long index)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table_getRowAtIndex (CSPI_OBJREF (obj),
-                                      index, cspi_ev ());
-         
-  cspi_return_val_if_ev ("getRowAtIndex", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getColumnAtIndex:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @index: the specified child index, zero-indexed.
- *
- * Get the table column index occupied by the child at a particular 1-D child index.
- *
- * @see #AccessibleTable_getIndexAt(), #AccessibleTable_getRowAtIndex()
- *
- * Returns: a long integer indicating the first column spanned by the child of a
- *          table, at the specified 1-D (zero-offset) @index.
- **/
-long
-AccessibleTable_getColumnAtIndex (AccessibleTable *obj,
-                                  long index)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table_getColumnAtIndex (CSPI_OBJREF (obj),
-                                         index, cspi_ev ());
-         
-  cspi_return_val_if_ev ("getColumnAtIndex", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getRowDescription:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the specified table row, zero-indexed.
- *
- * Get a text description of a particular table row.  This differs from
- * AccessibleTable_getRowHeader, which returns an #Accessible.
- *
- * Returns: a UTF-8 string describing the specified table row, if available.
- **/
-char *
-AccessibleTable_getRowDescription (AccessibleTable *obj,
-                                  long int         row)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Table_getRowDescription (CSPI_OBJREF (obj),
-                                          row, cspi_ev ());
-         
-  cspi_return_val_if_ev ("getRowDescription", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getColumnDescription:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @column: the specified table column, zero-indexed.
- *
- * Get a text description of a particular table column.  This differs from
- * AccessibleTable_getColumnHeader, which returns an #Accessible.
- *
- * Returns: a UTF-8 string describing the specified table column, if available.
- **/
-char *
-AccessibleTable_getColumnDescription (AccessibleTable *obj,
-                                     long int         column)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Table_getColumnDescription (CSPI_OBJREF (obj),
-                                             column, cspi_ev ());
-
-  cspi_return_val_if_ev ("getColumnDescription", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getRowExtentAt:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the specified table row, zero-indexed.
- * @column: the specified table column, zero-indexed.
- *
- * Get the number of rows spanned by the table cell at the specific row and column.
- * (some tables can have cells which span multiple rows and/or columns).
- *
- * Returns: a long integer indicating the number of rows spanned by the specified cell.
- **/
-long
-AccessibleTable_getRowExtentAt (AccessibleTable *obj,
-                                long int         row,
-                                long int         column)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table_getRowExtentAt (
-      CSPI_OBJREF (obj), row,
-      column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("getRowExtentAt", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getColumnExtentAt:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the specified table row, zero-indexed.
- * @column: the specified table column, zero-indexed.
- *
- * Get the number of columns spanned by the table cell at the specific row and column.
- * (some tables can have cells which span multiple rows and/or columns).
- *
- * Returns: a long integer indicating the number of columns spanned by the specified cell.
- **/
-long
-AccessibleTable_getColumnExtentAt (AccessibleTable *obj,
-                                   long int         row,
-                                   long int         column)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table_getColumnExtentAt (
-      CSPI_OBJREF (obj), row,
-      column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("getColumnExtentAt", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getRowHeader:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the specified table row, zero-indexed.
- *
- * Get the header associated with a table row, if available.  This differs from
- * AccessibleTable_getRowDescription, which returns a string.
- *
- * Returns: a #Accessible representatin of the specified table row, if available.
- **/
-Accessible *
-AccessibleTable_getRowHeader (AccessibleTable *obj,
-                             long int         row)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = cspi_object_add (
-                           Accessibility_Table_getRowHeader (CSPI_OBJREF (obj),
-                                                             row, cspi_ev ()));
-  cspi_return_val_if_ev ("getRowHeader", NULL);
-
- return retval;
-}
-
-/**
- * AccessibleTable_getColumnHeader:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @column: the specified table column, zero-indexed.
- *
- * Get the header associated with a table column, if available.  This differs from
- * AccessibleTable_getColumnDescription, which returns a string.
- *
- * Returns: a #Accessible representatin of the specified table column, if available.
- **/
-Accessible *
-AccessibleTable_getColumnHeader (AccessibleTable *obj,
-                                long int column)
-{
-  Accessible *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval = cspi_object_add (
-                           Accessibility_Table_getColumnHeader (CSPI_OBJREF (obj),
-                                                                column, cspi_ev ()));
-  cspi_return_val_if_ev ("getColumnHeader", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getNSelectedRows:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Query a table to find out how many rows are currently selected.  Not all tables
- *  support row selection.
- *
- * Returns: a long integer indicating the number of rows currently selected.
- **/
-long
-AccessibleTable_getNSelectedRows (AccessibleTable *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table__get_nSelectedRows (CSPI_OBJREF (obj), cspi_ev ());
-         
-  cspi_return_val_if_ev ("getNSelectedRows", -1);
-
-  return retval;
-}
-
-static long
-cspi_long_seq_to_array (Accessibility_LongSeq *seq, long int **array)
-{
-  long *j;
-  long length, i;
-
-  if (!cspi_check_ev ("getSelectionItems"))
-    {
-      *array = NULL;
-      return 0;
-    }
-
-  length = seq->_length;
-
-  j = *array = malloc (sizeof (long) * length);
-
-  for (i = 0; i < length; i++)
-    {
-      j[i] = seq->_buffer [i];
-    }
-
-  CORBA_free (seq);
-
-  return length;
-}
-
-/**
- * AccessibleTable_getSelectedRows:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @selectedRows: a doubly indirected pointer which will be set to the address
- *       of an array of long integers, specifying which rows are currently selected.
- *
- * Query a table for a list of indices of rows which are currently selected.
- *
- * Returns: a long integer indicating the length of the array returned in @selectedRows.
- **/
-long
-AccessibleTable_getSelectedRows (AccessibleTable *obj,
-                                 long int       **selectedRows)
-{
-  Accessibility_LongSeq *rows;
-
-  *selectedRows = NULL;
-
-  cspi_return_val_if_fail (obj != NULL, 0);
-
-  rows = Accessibility_Table_getSelectedRows (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getSelectedRows", -1);
-
-  return cspi_long_seq_to_array (rows, selectedRows);
-}
-
-/**
- * AccessibleTable_getNSelectedColumns:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- *
- * Query a table to find out how many columns are currently selected.  Not all tables
- *  support column selection.
- *
- * Returns: a long integer indicating the number of columns currently selected.
- **/
-long
-AccessibleTable_getNSelectedColumns (AccessibleTable *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Table__get_nSelectedColumns (CSPI_OBJREF (obj), cspi_ev ());
-         
-  cspi_return_val_if_ev ("getNSelectedColumns", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getSelectedColumns:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @selectedColumns: a doubly indirected pointer which will be set to the address
- *       of an array of long integers, specifying which columns are currently selected.
- *
- * Query a table for a list of indices of columns which are currently selected.
- *       Not all tables support column selection.
- *
- * Returns: a long integer indicating the length of the array returned in @selectedColumns.
- **/
-long
-AccessibleTable_getSelectedColumns (AccessibleTable *obj,
-                                    long int       **selectedColumns)
-{
-  Accessibility_LongSeq *columns;
-
-  *selectedColumns = NULL;
-
-  cspi_return_val_if_fail (obj != NULL, 0);
-
-  columns = Accessibility_Table_getSelectedColumns (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getSelectedColumns", -1);
-  return cspi_long_seq_to_array (columns, selectedColumns);
-}
-
-/**
- * AccessibleTable_isRowSelected:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the zero-indexed row number of the row being queried.
- *
- * Determine whether a table row is selected.  Not all tables support row selection.
- *
- * Returns: #TRUE if the specified row is currently selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_isRowSelected (AccessibleTable *obj,
-                               long int         row)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_isRowSelected (CSPI_OBJREF (obj),
-                                      row, cspi_ev ());
-
-  cspi_return_val_if_ev ("isRowSelected", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_isColumnSelected:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @column: the zero-indexed column number of the column being queried.
- *
- * Determine whether specified table column is selected.
- * Not all tables support column selection.
- *
- * Returns: #TRUE if the specified column is currently selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_isColumnSelected (AccessibleTable *obj,
-                                  long int         column)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_isColumnSelected (CSPI_OBJREF (obj),
-                                         column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("isColumnSelected", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_addRowSelection:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the zero-indexed row number of the row being selected.
- *
- * Select the specified row, adding it to the current row selection.
- * Not all tables support row selection.
- *
- * Returns: #TRUE if the specified row was successfully selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_addRowSelection (AccessibleTable *obj,
-                                long int         row)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_addRowSelection (CSPI_OBJREF (obj),
-                                        row, cspi_ev ());
-         
-  cspi_return_val_if_ev ("addRowSelection", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_addColumnSelection:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @column: the zero-indexed column number of the column being selected.
- *
- * Select the specified column, adding it to the current column selection.
- * Not all tables support column selection.
- *
- * Returns: #TRUE if the specified column was successfully selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_addColumnSelection (AccessibleTable *obj,
-                                   long int         column)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_addColumnSelection (CSPI_OBJREF (obj),
-                                           column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("addColumnSelection", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_removeRowSelection:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the zero-indexed number of the row being deselected.
- *
- * De-select the specified row, removing it to the current row selection.
- * Not all tables support row selection.
- *
- * Returns: #TRUE if the specified row was successfully de-selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_removeRowSelection (AccessibleTable *obj,
-                                   long int         row)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_removeRowSelection (CSPI_OBJREF (obj),
-                                           row, cspi_ev ());
-         
-  cspi_return_val_if_ev ("removeRowSelection", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_removeColumnSelection:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @column: the zero-indexed column number of the column being de-selected.
- *
- * De-select the specified column, removing it to the current column selection.
- * Not all tables support column selection.
- *
- * Returns: #TRUE if the specified column was successfully de-selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_removeColumnSelection (AccessibleTable *obj,
-                                      long int         column)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_removeColumnSelection (CSPI_OBJREF (obj),
-                                              column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("removeColumnSelection", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleTable_getRowColumnExtentsAtIndex:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @index: the index of the Table child whose row/column 
- * extents are requested.
- * @row: back-filled with the first table row associated with
- * the cell with child index \c index.
- * @col: back-filled with the first table column associated 
- * with the cell with child index \c index.
- * @row_extents: back-filled with the number of table rows 
- * across which child \c i extends.
- * @col_extents: back-filled with the number of table columns
- * across which child \c i extends.
- * @is_selected: a boolean which is back-filled with \c True
- * if the child at index \c i corresponds to a selected table cell,
- * \c False otherwise.
- *
- * Given a child index, determine the row and column indices and 
- * extents, and whether the cell is currently selected.  If
- * the child at \c index is not a cell (for instance, if it is 
- * a summary, caption, etc.), \c False is returned.
- *
- * Example:
- * If the Table child at index '6' extends across columns 5 and 6 of
- * row 2 of a Table instance, and is currently selected, then
- * 
- * retval = table::getRowColumnExtentsAtIndex (6, row, col, 
- *                                             row_extents,
- *                                             col_extents,
- *                                             is_selected);
- * 
- * will return True, and after the call
- * row, col, row_extents, col_extents,
- * and \c is_selected will contain 2, 5, 1, 2, and 
- * True, respectively.
- *
- * Returns: \c True if the index is associated with a valid table
- * cell, \c False if the index does not correspond to a cell.  If 
- * \c False is returned, the values of the out parameters are 
- * undefined.
- * 
- * Since AT-SPI 1.7.0
- **/
-SPIBoolean
-AccessibleTable_getRowColumnExtentsAtIndex (AccessibleTable *obj,
-                                           long int index, long int *row, long int *col, 
-                                           long int *row_extents, long int *col_extents, 
-                                           long int *is_selected){
-  SPIBoolean retval;
-  CORBA_long cRow,  cCol, cRow_extents, cCol_extents; 
-  CORBA_boolean cIs_selected;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Table_getRowColumnExtentsAtIndex (CSPI_OBJREF (obj),
-                                                          index, &cRow, &cCol,
-                                                          &cRow_extents, &cCol_extents,
-                                                          &cIs_selected,
-                                                          cspi_ev ());
-
-  if (!cspi_check_ev ("getRowColumnExtentsAtIndex")){
-    
-    *row = 0;
-    *col = 0;
-    *row_extents = 0;
-    *col_extents = 0;
-    *is_selected = FALSE;
-    retval = FALSE;
-  }
-
-  else {
-    *row = cRow;
-    *col = cCol;
-    *row_extents = cRow_extents;;
-    *col_extents = cCol_extents;
-    *is_selected = cIs_selected;;
-  }
-  
-  return retval;
-
-}
-
-
-/**
- * AccessibleTable_isSelected:
- * @obj: a pointer to the #AccessibleTable implementor on which to operate.
- * @row: the zero-indexed row of the cell being queried.
- * @column: the zero-indexed column of the cell being queried.
- *
- * Determine whether the cell at a specific row and column is selected.
- *
- * Returns: #TRUE if the specified cell is currently selected, #FALSE if not.
- **/
-SPIBoolean
-AccessibleTable_isSelected (AccessibleTable *obj,
-                            long int row,
-                            long int column)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Table_isSelected (CSPI_OBJREF (obj),
-                                   row,
-                                   column, cspi_ev ());
-         
-  cspi_return_val_if_ev ("isSelected", FALSE);
-
-  return retval;
-}
-
diff --git a/cspi/spi_text.c b/cspi/spi_text.c
deleted file mode 100644 (file)
index 13a9be4..0000000
+++ /dev/null
@@ -1,1005 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-static Accessibility_TEXT_BOUNDARY_TYPE
-get_accessible_text_boundary_type (AccessibleTextBoundaryType type)
-{
-  switch (type)
-    {
-    case SPI_TEXT_BOUNDARY_CHAR:
-      return Accessibility_TEXT_BOUNDARY_CHAR;
-      break;
-    case SPI_TEXT_BOUNDARY_CURSOR_POS:
-      /* FixME */
-      return Accessibility_TEXT_BOUNDARY_CHAR;
-      break;
-    case SPI_TEXT_BOUNDARY_WORD_START:
-      return Accessibility_TEXT_BOUNDARY_WORD_START;
-      break;
-    case SPI_TEXT_BOUNDARY_WORD_END:
-      return Accessibility_TEXT_BOUNDARY_WORD_END;
-      break;
-    case SPI_TEXT_BOUNDARY_SENTENCE_START:
-      return Accessibility_TEXT_BOUNDARY_SENTENCE_START;
-      break;
-    case SPI_TEXT_BOUNDARY_SENTENCE_END:
-      return Accessibility_TEXT_BOUNDARY_SENTENCE_END;
-      break;
-    case SPI_TEXT_BOUNDARY_LINE_START:
-      return Accessibility_TEXT_BOUNDARY_LINE_START;
-      break;
-    case SPI_TEXT_BOUNDARY_LINE_END:
-      return Accessibility_TEXT_BOUNDARY_LINE_END;
-      break;
-    case SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE:
-      /* Fixme */
-      return Accessibility_TEXT_BOUNDARY_CHAR;
-      break;
-    default:
-      /* FIXME */
-      return Accessibility_TEXT_BOUNDARY_CHAR;
-    }
-}
-
-static Accessibility_TEXT_CLIP_TYPE
-get_accessible_text_clip_type (AccessibleTextClipType type)
-{
-  switch (type)
-    {
-    case SPI_TEXT_CLIP_NONE:
-      return Accessibility_TEXT_CLIP_NONE;
-      break;
-    case SPI_TEXT_CLIP_MIN:
-      return Accessibility_TEXT_CLIP_MIN;
-      break;
-    case SPI_TEXT_CLIP_MAX:      
-      return Accessibility_TEXT_CLIP_MAX;
-      break;
-    default:
-      return Accessibility_TEXT_CLIP_BOTH;
-    }
-}
-
-static AccessibleTextRange **
-get_accessible_text_ranges_from_range_seq (Accessibility_Text_RangeList *range_seq)
-{
-  AccessibleTextRange **ranges = NULL;
-  AccessibleTextRange *array = NULL;
-  int i;
-  if (range_seq && range_seq->_length > 0) 
-    {
-      ranges = g_new0 (AccessibleTextRange *, range_seq->_length + 1);
-    }
-  array = g_new0 (AccessibleTextRange, range_seq->_length);
-  for (i = 0; i < range_seq->_length; i++) 
-    {
-      AccessibleTextRange *range;
-      range = &array[i];
-      range->start = range_seq->_buffer[i].startOffset;
-      range->end = range_seq->_buffer[i].endOffset;
-      range->contents = CORBA_string_dup (range_seq->_buffer[i].content);
-      ranges[i] = range;
-    }
-  ranges[i] = NULL; /* null-terminated list! */
-  CORBA_free (range_seq);
-
-  return ranges;
-}
-
-
-/**
- * AccessibleText_ref:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- *
- * Increment the reference count for an #AccessibleText object.
- **/
-void
-AccessibleText_ref (AccessibleText *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleText_unref:
- * @obj: a pointer to the #Accessible object on which to operate.
- *
- * Decrement the reference count for an #AccessibleText object.
- **/
-void
-AccessibleText_unref (AccessibleText *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleText_getCharacterCount:
- * @obj: a pointer to the #AccessibleText object to query.
- *
- * Get the character count of an #AccessibleText object.
- *
- * Returns: a long integer indicating the total number of
- *              characters in the #AccessibleText object.
- **/
-long
-AccessibleText_getCharacterCount (AccessibleText *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval = Accessibility_Text__get_characterCount (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getCharacterCount", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getText:
- * @obj: a pointer to the #AccessibleText object to query.
- * @startOffset: a #long indicating the start of the desired text range.
- * @endOffset: a #long indicating the first character past the desired range.
- *
- * Get a range of text from an #AccessibleText object.  The number of bytes
- *          in the returned string may exceed endOffset-startOffset, since
- *          UTF-8 is a variable-width encoding.
- *
- * Returns: a text string containing characters from @startOffset
- *          to @endOffset-1, inclusive, encoded as UTF-8.
- **/
-char *
-AccessibleText_getText (AccessibleText *obj,
-                        long int startOffset,
-                        long int endOffset)
-{
-  char *retval;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  retval =
-    Accessibility_Text_getText (CSPI_OBJREF (obj),
-                               startOffset,
-                               endOffset,
-                               cspi_ev ());
-
-  cspi_return_val_if_ev ("getText", NULL);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getCaretOffset:
- * @obj: a pointer to the #AccessibleText object to query.
- *
- * Get the current offset of the text caret in an #AccessibleText object.
- *
- * Returns: a long integer indicating the current position of the text caret.
- **/
-long
-AccessibleText_getCaretOffset (AccessibleText *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Text__get_caretOffset (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getCaretOffset", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getAttributes:
- * @obj: a pointer to the #AccessibleText object to query.
- * @offset: a long integer indicating the offset from which the attribute
- *        search is based.
- * @startOffset: a #long indicating the start of the desired text range.
- * @endOffset: a #long indicating the first character past the desired range.
- *
- * Get the attributes applied to a range of text from an #AccessibleText
- *          object, and the bounds of the range.
- *          The text attributes correspond to CSS attributes where possible,
- *          keys and values are delimited from one another via ":", and
- *          the delimiter between key/value pairs is ";". Thus 
- *          "font-size:10;foreground-color:0,0,0" would be a valid
- *          return string.
- *
- * Returns: a text string describing the attributes occurring within the
- *          attribute run containing @offset, encoded as UTF-8.
- **/
-char *
-AccessibleText_getAttributes (AccessibleText *obj,
-                             long int offset,
-                             long int *startOffset,
-                             long int *endOffset)
-{
-  CORBA_long retStartOffset, retEndOffset;
-  char *retval;        
-
-  if (obj == NULL)
-    {
-      *startOffset = *endOffset = -1;
-      return NULL;
-    }
-
-  retval = Accessibility_Text_getAttributes (CSPI_OBJREF (obj),
-                                     offset,
-                                     &retStartOffset,
-                                     &retEndOffset,
-                                     cspi_ev ());
-
-  if (!cspi_check_ev ("getAttributes"))
-    {
-      *startOffset = *endOffset = -1;
-      retval = NULL;
-    }
-  else
-    {
-      *startOffset = retStartOffset;
-      *endOffset   = retEndOffset;
-    }
-
-  return retval;
-}
-
-/**
- * AccessibleText_getDefaultAttributes:
- * @obj: a pointer to the #AccessibleText object to query.
- *
- * Get the default attributes applied to an #AccessibleText
- *          object.
- *          The text attributes correspond to CSS attributes where possible,
- *          keys and values are delimited from one another via ":", and
- *          the delimiter between key/value pairs is ";". Thus 
- *          "font-size:10;foreground-color:0,0,0" would be a valid
- *          return string.  The combination of this attribute set and
- *          the attributes reported by #AccessibleText_getAttributes
- *          describes the entire set of text attributes over a range.
- *
- * @Since: AT-SPI 1.4
- *
- * Returns: a text string describing the default attributes 
- *          applied to a text object, (exclusive of explicitly-set
- *          attributes), encoded as UTF-8.
- **/
-char *
-AccessibleText_getDefaultAttributes (AccessibleText *obj)
-{
-  char *retval;        
-
-  if (obj == NULL)
-    {
-      return NULL;
-    }
-
-  retval = Accessibility_Text_getDefaultAttributes (CSPI_OBJREF (obj),
-                                                   cspi_ev ());
-
-  if (!cspi_check_ev ("getAttributes"))
-    {
-      retval = NULL;
-    }
-
-  return retval;
-}
-
-/**
- * AccessibleText_setCaretOffset:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @newOffset: the offset to which the text caret is to be moved.
- *
- * Set the text caret position for an #AccessibleText object.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleText_setCaretOffset (AccessibleText *obj,
-                               long int newOffset)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Text_setCaretOffset (CSPI_OBJREF (obj),
-                                      newOffset, cspi_ev ());
-
-  cspi_return_val_if_ev ("setCaretOffset", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getTextBeforeOffset:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @offset: a long integer indicating the offset from which the delimiter
- *        search is based.
- * @type: an #AccessibleTextBoundaryType indicating whether the desired
- *       text string is a word, sentence, line, or attribute run.
- * @startOffset: a pointer to a long integer which is assigned the
- *       starting offset of the returned string, relative to the
- *       original #AccessibleText.
- * @endOffset: a pointer to a long integer which is assigned the
- *       ending offset of the returned string, relative to the original
- *       #AccessibleText.
- *
- * Get delimited text from an #AccessibleText object which precedes a given
- *          text offset.
- *
- * Returns: a UTF-8 string representing the delimited text, both of whose
- *          delimiting boundaries are before the current offset, or
- *          an empty string if no such text exists.
- **/
-char *
-AccessibleText_getTextBeforeOffset (AccessibleText *obj,
-                                    long int offset,
-                                    AccessibleTextBoundaryType type,
-                                   long int *startOffset,
-                                   long int *endOffset)
-{
-  char *retval;
-  CORBA_long retStartOffset, retEndOffset;
-
-  if (obj == NULL)
-    {
-      *startOffset = *endOffset = -1;
-      return NULL;
-    }
-
-  retval = Accessibility_Text_getTextBeforeOffset (CSPI_OBJREF (obj),
-                                          offset,
-                       get_accessible_text_boundary_type (type),
-                                          &retStartOffset, &retEndOffset,
-                                          cspi_ev ());
-  if (!cspi_check_ev ("getTextBeforeOffset"))
-    {
-      *startOffset = *endOffset = -1;
-      retval = NULL;
-    }
-  else
-    {
-      *startOffset = retStartOffset;
-      *endOffset = retEndOffset;
-    }
-  return retval;
-}
-
-/**
- * AccessibleText_getTextAtOffset:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @offset: a long integer indicating the offset from which the delimiter
- *        search is based.
- * @type: an #AccessibleTextBoundaryType indicating whether the desired
- *       text string is a word, sentence, line, or attribute run.
- * @startOffset: a pointer to a long integer which is assigned the
- *       starting offset of the returned string, relative to the
- *       original #AccessibleText.
- * @endOffset: a pointer to a long integer which is assigned the
- *       ending offset of the returned string, relative to the original
- *       #AccessibleText.
- *
- * Get delimited text from an #AccessibleText object which includes a given
- *          text offset.
- *
- * Returns: a UTF-8 string representing the delimited text, whose
- *          delimiting boundaries bracket the current offset, or
- *          an empty string if no such text exists.
- **/
-char *
-AccessibleText_getTextAtOffset (AccessibleText *obj,
-                               long int offset,
-                               AccessibleTextBoundaryType type,
-                               long int *startOffset, long int *endOffset)
-{
-  CORBA_long corbaStartOffset;
-  CORBA_long corbaEndOffset;
-  char      *retval;
-
-  if (obj == NULL)
-    {
-      *startOffset = *endOffset = -1;
-      return NULL;
-    }
-
-  retval = Accessibility_Text_getTextAtOffset (CSPI_OBJREF (obj),
-                                              offset,
-                         get_accessible_text_boundary_type (type),
-                                              &corbaStartOffset,
-                                              &corbaEndOffset,
-                                              cspi_ev ());
-
-  if (!cspi_check_ev ("getTextAtOffset"))
-    {
-      *startOffset = *endOffset = -1;
-      retval = NULL;
-    }
-  else
-    {
-      *startOffset = corbaStartOffset;
-      *endOffset   = corbaEndOffset;
-    }
-  return retval;
-}
-
-/**
- * AccessibleText_getTextAfterOffset:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @offset: a long integer indicating the offset from which the delimiter
- *        search is based.
- * @type: an #AccessibleTextBoundaryType indicating whether the desired
- *       text string is a word, sentence, line, or attribute run.
- * @startOffset: a pointer to a long integer which is assigned the
- *       starting offset of the returned string, relative to the
- *       original #AccessibleText.
- * @endOffset: a pointer to a long integer which is assigned the
- *       ending offset of the returned string, relative to the original
- *       #AccessibleText.
- *
- * Get delimited text from an #AccessibleText object which follows a given
- *          text offset.
- *
- * Returns: a UTF-8 string representing the delimited text, both of whose
- *          delimiting boundaries are after or inclusive of the current
- *          offset, or an empty string if no such text exists.
- **/
-char *
-AccessibleText_getTextAfterOffset (AccessibleText *obj,
-                                  long int offset,
-                                  AccessibleTextBoundaryType type,
-                                  long int *startOffset, long int *endOffset)
-{
-  char *retval;
-  CORBA_long retStartOffset, retEndOffset;
-
-  if (obj == NULL)
-    {
-      *startOffset = *endOffset = -1;
-      return NULL;
-    }
-
-  retval = Accessibility_Text_getTextAfterOffset (CSPI_OBJREF (obj),
-                                          offset,
-                            get_accessible_text_boundary_type (type),
-                                          &retStartOffset, &retEndOffset,
-                                          cspi_ev ());
-
-  if (!cspi_check_ev ("getTextAfterOffset"))
-    {
-      *startOffset = *endOffset = -1;
-      retval = NULL;
-    }
-  else
-    {
-      *startOffset = retStartOffset;
-      *endOffset   = retEndOffset;
-    }
-  return retval;
-}
-
-/**
- * AccessibleText_getCharacterAtOffset:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @offset: a long integer indicating the text offset where the desired
- *          character is located.
- *
- * Get the character at a given offset for an #AccessibleText object.
- *
- * Returns: an #unsigned long integer which represents the
- *        UCS-4 unicode code point of the given character, or
- *        0xFFFFFFFF if the character in question cannot be represented
- *        in the UCS-4 encoding.
- **/
-unsigned long
-AccessibleText_getCharacterAtOffset (AccessibleText *obj,
-                                     long int offset)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Text_getCharacterAtOffset (CSPI_OBJREF (obj),
-                                            offset,
-                                            cspi_ev ());
-
-  cspi_return_val_if_ev ("getCharacterAtOffset", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getCharacterExtents:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @offset: an integer indicating the offset of the text character for
- *        whom boundary information is requested.
- * @x: a pointer to a long integer into which the nominal x coordinate
- *     of the corresponding glyph will be returned.
- * @y:a pointer to a long integer into which the nominal y coordinate
- *     of the corresponding glyph will be returned.
- * @width:a pointer to a long integer into which the width
- *     of the corresponding glyph will be returned.
- * @height: a pointer to a long integer into which the height
- *     of the corresponding glyph will be returned.
- * @type: an #AccessibleCoordType indicating the coordinate system to use
- *        for the returned values.
- *
- * Get the bounding box containing the glyph representing
- *        the character at a particular text offset.
- **/
-void
-AccessibleText_getCharacterExtents (AccessibleText *obj,
-                                    long int offset,
-                                    long int *x,
-                                    long int *y,
-                                    long int *width,
-                                    long int *height,
-                                   AccessibleCoordType type)
-{
-  CORBA_long retX, retY, retWidth, retHeight;
-
-  if (obj == NULL)
-    {
-      *x = *y = -1;
-      *width = *height = -1;
-      return;
-    }
-
-  Accessibility_Text_getCharacterExtents (CSPI_OBJREF (obj),
-                                         offset,
-                                         &retX,
-                                         &retY,
-                                         &retWidth,
-                                         &retHeight,
-                                         type, cspi_ev ());
-
-  if (!cspi_check_ev ("getCharacterExtents"))
-    {
-      *x = *y = -1;
-      *width = *height = -1;
-    }
-  else
-    {
-      *x = retX;
-      *y = retY;
-      *width = retWidth;
-      *height = retHeight;
-    }
-}
-
-/**
- * AccessibleText_getOffsetAtPoint:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @x: the x coordinate of the point to be queried.
- * @y: the y coordinate of the point to be queried.
- * @type: an #AccessibleCoordType indicating the coordinate system in which
- *       the values should be returned.
- *
- * Get the bounding box for a glyph at a certain #AccessibleText offset.
- *
- * Returns: the offset (as a long integer) at the point (@x, @y)
- *       in the specified coordinate system.
- *
- **/
-long
-AccessibleText_getOffsetAtPoint (AccessibleText *obj,
-                                 long int x,
-                                 long int y,
-                                AccessibleCoordType type)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Text_getOffsetAtPoint (CSPI_OBJREF (obj),
-                                        x,
-                                        y,
-                                        type, cspi_ev ());
-
-  cspi_return_val_if_ev ("getOffsetAtPoint", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getRangeExtents:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @startOffset: an integer indicating the offset of the first text character for
- *        whom boundary information is requested.
- * @endOffset: an integer indicating the offset of the text character 
- *        after the last character for whom boundary information is requested.
- * @x: a pointer to a long integer into which the nominal x coordinate
- *     of the corresponding bounding box will be returned.
- * @y:a pointer to a long integer into which the nominal y coordinate
- *     of the corresponding bounding box will be returned.
- * @width:a pointer to a long integer into which the width
- *     of the corresponding bounding box will be returned.
- * @height: a pointer to a long integer into which the height
- *     of the corresponding bounding box will be returned.
- * @type: an #AccessibleCoordType indicating the coordinate system to use
- *        for the returned values.
- *
- * Get the bounding box for text within a range in an  #AccessibleText object.
- *
- * @Since: AT-SPI 1.2
- **/
-void
-AccessibleText_getRangeExtents (AccessibleText *obj,
-                               long int startOffset,
-                               long int endOffset,
-                               long int *x,
-                               long int *y,
-                               long int *width,
-                               long int *height,
-                               AccessibleCoordType type)
-{
-  CORBA_long retX, retY, retWidth, retHeight;
-
-  if (obj == NULL)
-    {
-      *x = *y = -1;
-      *width = *height = -1;
-      return;
-    }
-
-  Accessibility_Text_getRangeExtents (CSPI_OBJREF (obj),
-                                     startOffset,
-                                     endOffset,
-                                     &retX,
-                                     &retY,
-                                     &retWidth,
-                                     &retHeight,
-                                     type, cspi_ev ());
-
-  if (!cspi_check_ev ("getRangeExtents"))
-    {
-      *x = *y = -1;
-      *width = *height = -1;
-    }
-  else
-    {
-      *x = retX;
-      *y = retY;
-      *width = retWidth;
-      *height = retHeight;
-    }
-}
-
-/**
- * AccessibleText_getBoundedRanges:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @x: the 'starting' x coordinate of the bounding box.
- * @y: the 'starting' y coordinate of the bounding box.
- * @width: the x extent of the bounding box.
- * @height: the y extent of the bounding box.
- * @type: an #AccessibleCoordType indicating the coordinate system to use
- *        for the returned values.
- * @clipTypeX: an #AccessibleTextClipType indicating how to treat characters that
- *        intersect the bounding box's x extents.
- * @clipTypeY: an #AccessibleTextClipType indicating how to treat characters that
- *        intersect the bounding box's y extents.
- *
- * Get the ranges of text from an #AccessibleText object which lie within the
- *          bounds defined by (@x, @y) and (@x+@width, @y+@height).  
- *
- * @Since: AT-SPI 1.2
- *
- * Returns: a null-terminated list of pointers to AccessibleTextRange structs 
- *          detailing the bounded text.
- **/
-AccessibleTextRange **
-AccessibleText_getBoundedRanges (AccessibleText *obj,
-                                long int x,
-                                long int y,
-                                long int width,
-                                long int height,
-                                AccessibleCoordType type,
-                                AccessibleTextClipType clipTypeX,
-                                AccessibleTextClipType clipTypeY)
-{
-  Accessibility_Text_RangeList *range_seq;
-
-  cspi_return_val_if_fail (obj != NULL, NULL);
-
-  range_seq =
-    Accessibility_Text_getBoundedRanges (CSPI_OBJREF (obj), 
-                                        x, y, width, height,
-                                        type, 
-                                        get_accessible_text_clip_type (clipTypeX), 
-                                        get_accessible_text_clip_type (clipTypeY),
-                                        cspi_ev ());
-
-  cspi_return_val_if_ev ("getBoundedRanges", NULL); 
-  return get_accessible_text_ranges_from_range_seq (range_seq);
-}
-
-/**
- * AccessibleTextRange_freeRanges:
- * @ranges: a pointer to an array of AccessibleTextRange structs.
- *
- * Free the memory used by a list of AccessibleTextRange structs.
- * The argument passed in should be an array of pointers 
- * AccessibleTextRange structs.  
- *
- * @Since: AT-SPI 1.2
- **/
-void
-AccessibleTextRange_freeRanges (AccessibleTextRange **ranges)
-{
-  /* this was a contiguously allocated block, only free the first element */
-  g_free (ranges[0]); 
-  g_free (ranges);
-}
-
-/**
- * AccessibleText_getNSelections:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- *
- * Get the number of active non-contiguous selections for an
- *          #AccessibleText object.
- *
- * Returns: a long integer indicating the current
- *          number of non-contiguous text selections active
- *          within an #AccessibleText object.
- **/
-long
-AccessibleText_getNSelections (AccessibleText *obj)
-{
-  long retval;
-
-  cspi_return_val_if_fail (obj != NULL, -1);
-
-  retval =
-    Accessibility_Text_getNSelections (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getNSelections", -1);
-
-  return retval;
-}
-
-/**
- * AccessibleText_getSelection:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @selectionNum: an integer indicating which selection to query.
- * @startOffset: a pointer to a long integer into which the start offset
- *           of the selection will be returned.
- * @endOffset: a pointer to a long integer into which the start offset
- *           of the selection will be returned.
- *
- * Get the bounds of the @selectionNum-th active text selection for an
- *         #AccessibleText object.
- **/
-void
-AccessibleText_getSelection (AccessibleText *obj,
-                            long int selectionNum,
-                            long int *startOffset,
-                            long int *endOffset)
-{
-  CORBA_long retStartOffset, retEndOffset;
-
-  if (obj == NULL)
-    {
-      *endOffset = *startOffset = -1;
-      return;
-    }
-
-  Accessibility_Text_getSelection (CSPI_OBJREF (obj),
-                                  selectionNum,
-                                  &retStartOffset, &retEndOffset,
-                                  cspi_ev ());
-
-  if (!cspi_check_ev ("getSelection"))
-    {
-      *startOffset = *endOffset = -1;
-    }
-  else
-    {
-      *startOffset = retStartOffset;
-      *endOffset   = retEndOffset;
-    }
-}
-
-/**
- * AccessibleText_addSelection:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @startOffset: the starting offset of the desired new selection.
- * @endOffset: the offset of the first character after the new selection.
- *
- * Select some text (add a text selection) in an #AccessibleText object.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleText_addSelection (AccessibleText *obj,
-                            long int startOffset, long int endOffset)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Text_addSelection (
-      CSPI_OBJREF (obj), startOffset,
-      endOffset, cspi_ev ());
-
-  cspi_return_val_if_ev ("addSelection", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleText_removeSelection:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @selectionNum: an integer indicating which (possibly of several)
- *         text selection to remove.
- *
- * De-select a text selection.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleText_removeSelection (AccessibleText *obj,
-                               long int selectionNum)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval =
-    Accessibility_Text_removeSelection (
-      CSPI_OBJREF (obj), selectionNum, cspi_ev ());
-
-  cspi_return_val_if_ev ("removeSelection", FALSE);
-
-  return retval;
-}
-
-/**
- * AccessibleText_setSelection:
- * @obj: a pointer to the #AccessibleText object on which to operate.
- * @selectionNum: a zero-offset index indicating which text selection to modify.
- * @startOffset: a long int, the new starting offset for the selection.
- * @endOffset: a long int, the desired new offset of the first character
- *             after the selection.
- *
- * Change the bounds of an existing #AccessibleText text selection.
- *
- * Returns: #TRUE if successful, #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleText_setSelection (AccessibleText *obj,
-                            long int selectionNum,
-                            long int startOffset,
-                            long int endOffset)
-{
-  SPIBoolean retval;
-
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  retval = Accessibility_Text_setSelection (CSPI_OBJREF (obj),
-                                  selectionNum,
-                                  startOffset,
-                                  endOffset, cspi_ev ());
-
-  cspi_return_val_if_ev ("setSelection", FALSE);
-
-  return retval;
-}
-
-
-/**
- * AccessibleText_getAttributeRun:
- * @obj: a pointer to the #AccessibleText object to query.
- * @offset: a long integer indicating the offset from which the attribute
- *        search is based.
- * @startOffset: a #long indicating the start of the desired text range.
- * @endOffset: a #long indicating the first character past the desired range.
- * @includeDefaults: a #bool if False, the call should only return those 
- *                 attributes which are explicitly set on the current attribute 
- *                 run, omitting any attributes which are inherited from the 
- *                 default values.
- *
- *  @Since: AT-SPI 1.7
- *
- * Returns: the AttributeSet defined at offset, optionally including the 'default' attributes.
- **/
-
-AccessibleAttributeSet *
-AccessibleText_getAttributeRun (AccessibleText *obj,
-                               long int offset,
-                               long int *startOffset,
-                               long int *endOffset,
-                               long int includeDefaults){
-
-  CORBA_long retStartOffset, retEndOffset;
-  AccessibleAttributeSet *retval;
-  Accessibility_AttributeSet *attributes;
-
-  if (obj == NULL)
-  {
-       *startOffset = *endOffset = -1;
-       return NULL;
-  }
-
-  attributes = Accessibility_Text_getAttributeRun (CSPI_OBJREF (obj),
-                                              offset,
-                                              &retStartOffset,
-                                              &retEndOffset,
-                                              (includeDefaults)? TRUE : FALSE,
-                                              cspi_ev ());
-
-  if (!cspi_check_ev ("getAttributeRun"))
-    {
-      *startOffset = *endOffset = -1;
-      retval = NULL;
-    }
-  else 
-  {
-      *startOffset = retStartOffset;
-      *endOffset   = retEndOffset;
-  }
-
-  retval =  _cspi_attribute_set_from_sequence (attributes);
-
-  return retval;
-                                    
-}
-
-/**
- * AccessibleText_getDefaultAttributeSet:
- * @obj: a pointer to the #AccessibleText object to query.
- *
- *
- *  @Since: AT-SPI 1.7
- *
- * Returns: an AttributeSet containing the text attributes 
- * which apply to all text in the object by virtue of the
- * default settings of the document, view, or user agent; e.g.
- * those attributes which are implied rather than explicitly 
- * applied to the text object. For instance, an object whose 
- * entire text content has been explicitly marked as 'bold' 
- * will report the 'bold' attribute via getAttributeRun(), 
- * whereas an object whose text weight is inspecified may 
- * report the default or implied text weight in the default AttributeSet.
- *
- **/
-
-AccessibleAttributeSet *
-AccessibleText_getDefaultAttributeSet (AccessibleText *obj){
-   AccessibleAttributeSet *retval;
-   Accessibility_AttributeSet *attributes;
-
-   cspi_return_val_if_fail (obj != NULL, NULL);
-
-  attributes = Accessibility_Text_getDefaultAttributeSet (CSPI_OBJREF (obj), cspi_ev ());
-  cspi_return_val_if_ev ("getDefaultAttributeSet", NULL);
-  
-  retval = _cspi_attribute_set_from_sequence (attributes);
-  retval = NULL;
-  return retval;
-}
diff --git a/cspi/spi_value.c b/cspi/spi_value.c
deleted file mode 100644 (file)
index 3dd0d6e..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <cspi/spi-private.h>
-
-/**
- * AccessibleValue_ref:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate.
- *
- * Increment the reference count for an #AccessibleValue object.
- **/
-void
-AccessibleValue_ref (AccessibleValue *obj)
-{
-  cspi_object_ref (obj);
-}
-
-/**
- * AccessibleValue_unref:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate. 
- *
- * Decrement the reference count for an #AccessibleValue object.
- **/
-void
-AccessibleValue_unref (AccessibleValue *obj)
-{
-  cspi_object_unref (obj);
-}
-
-/**
- * AccessibleValue_getMinimumValue:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate. 
- *
- * Get the minimum allowed value for an #AccessibleValue.
- *
- * Returns: the minimum allowed value for this object.
- *
- **/
-double
-AccessibleValue_getMinimumValue (AccessibleValue *obj)
-{
-  double retval;
-
-  cspi_return_val_if_fail (obj != NULL, 0.0);
-
-  retval = 
-    Accessibility_Value__get_minimumValue (CSPI_OBJREF (obj), cspi_ev ());
-  
-  cspi_return_val_if_ev ("getMinimumValue", 0.0);
-
-  return retval;
-}
-
-/**
- * AccessibleValue_getCurrentValue:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate. 
- *
- * Get the current value for an #AccessibleValue.
- *
- * Returns: the current value for this object.
- **/
-double
-AccessibleValue_getCurrentValue (AccessibleValue *obj)
-{
-  double retval;
-
-  cspi_return_val_if_fail (obj != NULL, 0.0);
-
-  retval =
-    Accessibility_Value__get_currentValue (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getCurrentValue", 0.0);
-
-  return retval;
-}
-
-/**
- * AccessibleValue_getMaximumValue:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate. 
- *
- * Get the maximum allowed value for an #AccessibleValue.
- *
- * Returns: the maximum allowed value for this object.
- **/
-double
-AccessibleValue_getMaximumValue (AccessibleValue *obj)
-{
-  double retval;       
-  cspi_return_val_if_fail (obj != NULL, 0.0);
-
-  retval =
-    Accessibility_Value__get_maximumValue (CSPI_OBJREF (obj), cspi_ev ());
-
-  cspi_return_val_if_ev ("getMaximumValue", 0.0);
-
-  return retval;
-}
-
-/**
- * AccessibleValue_setCurrentValue:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate.
- * @newValue: a #float value which is the desired new value of the object.
- *
- * Set the current value of an #AccessibleValue.
- *
- * Returns: #TRUE if the value could be assigned the specified value,
- *          #FALSE otherwise.
- **/
-SPIBoolean
-AccessibleValue_setCurrentValue (AccessibleValue *obj,
-                                 double newValue)
-{
-  cspi_return_val_if_fail (obj != NULL, FALSE);
-
-  Accessibility_Value__set_currentValue (
-    CSPI_OBJREF (obj), newValue, cspi_ev ());
-
-  cspi_return_val_if_ev ("setCurrentValue", FALSE);
-
-  return TRUE;
-}
-
-/**
- * AccessibleValue_getMinimumIncrement:
- * @obj: a pointer to the #AccessibleValue implementor on which to operate. 
- *
- * Get the minimum increment by which an #AccessibleValue can be adjusted.
- *
- * Returns: the minimum increment by which the value may be changed, or
- * zero if the minimum increment cannot be determined.
- *
- **/
-double
-AccessibleValue_getMinimumIncrement (AccessibleValue *obj)
-{
-  double retval;
-
-  cspi_return_val_if_fail (obj != NULL, 0.0);
-
-  retval = 
-    Accessibility_Value__get_minimumIncrement (CSPI_OBJREF (obj), cspi_ev ());
-  
-  cspi_return_val_if_ev ("getMinimumIncrement", 0.0);
-
-  return retval;
-}
-
-
diff --git a/docs/Makefile.am b/docs/Makefile.am
deleted file mode 100644 (file)
index e539c08..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-SUBDIRS = reference
diff --git a/docs/reference/Makefile.am b/docs/reference/Makefile.am
deleted file mode 100644 (file)
index 5a2c093..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-SUBDIRS = cspi idl
diff --git a/docs/reference/cspi/Makefile.am b/docs/reference/cspi/Makefile.am
deleted file mode 100644 (file)
index c6c4cb8..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-AUTOMAKE_OPTIONS = 1.6
-
-# Files whose declarations are to be ignored (private)
-IGNORE_HFILES = spi-impl.h
-
-# The name of the module.
-DOC_MODULE=at-spi-cspi
-
-# The top-level SGML file.
-DOC_MAIN_SGML_FILE=at-spi-cspi-docs.sgml
-
-# The directory containing the source code (if it contains documentation).
-DOC_SOURCE_DIR=../../../cspi 
-
-# Used for dependencies
-HFILE_GLOB = $(top_srcdir)/cspi/*.h
-CFILE_GLOB = $(top_srcdir)/cspi/*.c
-
-# CFLAGS and LDFLAGS for compiling scan program. Only needed
-# if $(DOC_MODULE).types is non-empty.
-INCLUDES =                      \
-        -I$(top_srcdir)         \
-        -I$(top_builddir)       \
-        $(DEP_CFLAGS)
-
-#GTKDOC_LIBS = $(top_builddir)/cspilibcspi.la
-
-# gtkdoc-mkdb related varaibles
-MKDB_OPTIONS =
-content_files =
-
-HTML_IMAGES =
-
-include $(top_srcdir)/gtk-doc.make
diff --git a/docs/reference/cspi/at-spi-cspi-docs.sgml b/docs/reference/cspi/at-spi-cspi-docs.sgml
deleted file mode 100644 (file)
index 377e49b..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY at-spi-spi-main SYSTEM "xml/spi_main.xml">
-<!ENTITY at-spi-spi-event SYSTEM "xml/spi_event.xml">
-<!ENTITY at-spi-spi-registry SYSTEM "xml/spi_registry.xml">
-<!ENTITY at-spi-spi-application SYSTEM "xml/spi_application.xml">
-<!ENTITY at-spi-spi-accessible SYSTEM "xml/spi_accessible.xml">
-<!ENTITY at-spi-spi-action SYSTEM "xml/spi_action.xml">
-<!ENTITY at-spi-spi-component SYSTEM "xml/spi_component.xml">
-<!ENTITY at-spi-spi-document SYSTEM "xml/spi_document.xml">
-<!ENTITY at-spi-spi-editabletext SYSTEM "xml/spi_editabletext.xml">
-<!ENTITY at-spi-spi-hypertext SYSTEM "xml/spi_hypertext.xml">
-<!ENTITY at-spi-spi-image SYSTEM "xml/spi_image.xml">
-<!ENTITY at-spi-spi-selection SYSTEM "xml/spi_selection.xml">
-<!ENTITY at-spi-spi-streamable-content SYSTEM "xml/spi_streamable_content.xml">
-<!ENTITY at-spi-spi-table SYSTEM "xml/spi_table.xml">
-<!ENTITY at-spi-spi-text SYSTEM "xml/spi_text.xml">
-<!ENTITY at-spi-spi-value SYSTEM "xml/spi_value.xml">
-<!ENTITY at-spi-spi-hyperlink SYSTEM "xml/spi_hyperlink.xml">
-<!ENTITY at-spi-spi-relation SYSTEM "xml/spi_relation.xml">
-<!ENTITY at-spi-spi-stateset SYSTEM "xml/spi_stateset.xml">
-]>
-
-<book>
-  <bookinfo>
-    <title>AT-SPI C Bindings Reference Manual</title>
-  </bookinfo>
-  <chapter id="spi-main">
-    <title>SPI Main Event Loop and Registry</title>
-    &at-spi-spi-main;
-    &at-spi-spi-event;
-    &at-spi-spi-registry;
-  </chapter>
-  <chapter id="spi-application">
-    <title>AccessibleApplication Methods</title>
-    &at-spi-spi-application;
-   </chapter>
-  <chapter id="spi-accessible">
-    <title>Basic Accessible Object Methods and Interface Query</title>
-    &at-spi-spi-accessible;
-    &at-spi-spi-relation;          
-    &at-spi-spi-stateset;          
-  </chapter>
-  <chapter id="spi-component">
-    <title>Subinterface Methods</title>
-    &at-spi-spi-action;
-    &at-spi-spi-component;
-    &at-spi-spi-document;
-    &at-spi-spi-editabletext;
-    &at-spi-spi-hypertext;
-    &at-spi-spi-image;
-    &at-spi-spi-selection;
-    &at-spi-spi-streamable-content;
-    &at-spi-spi-table;
-    &at-spi-spi-text;
-    &at-spi-spi-value;
-  </chapter>
-  <chapter>
-    <title>Auxiliary Types</title>
-    &at-spi-spi-hyperlink;         
-  </chapter>
-</book>
diff --git a/docs/reference/cspi/at-spi-cspi-overrides.txt b/docs/reference/cspi/at-spi-cspi-overrides.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/docs/reference/cspi/at-spi-cspi-sections.txt b/docs/reference/cspi/at-spi-cspi-sections.txt
deleted file mode 100644 (file)
index 4987a7f..0000000
+++ /dev/null
@@ -1,444 +0,0 @@
-<SECTION>
-<FILE>spi_main</FILE>
-<TITLE>SPI main loop and initialization</TITLE>
-SPI_init
-SPI_event_main
-SPI_event_quit
-SPI_eventIsReady
-SPI_nextEvent
-SPI_exit
-<SUBSECTION Utility Functions>
-SPI_freeString
-SPIAccessibleException_getSource
-SPIException_getDescription
-SPIException_getExceptionCode
-SPIException_getSourceType
-SPIException
-SPIExceptionCode
-SPIExceptionType
-SPIExceptionHandler
-SPIBoolean
-SPIRect
-SPI_freeRect
-SPI_dupString
-SPI_exceptionHandlerPush
-SPI_exceptionHandlerPop
-</SECTION>
-
-<SECTION>
-<FILE>spi_event</FILE>
-<TITLE>Event Listener Support</TITLE>
-AccessibleEvent
-AccessibleEventListenerCB
-AccessibleEvent_getSourceApplication
-AccessibleEvent_getSourceDetails
-AccessibleEvent_getSourceName
-AccessibleEvent_getSourceRole
-AccessibleEvent_ref
-AccessibleEvent_unref
-SPI_createAccessibleEventListener
-AccessibleEventListener_unref
-AccessibleEventListener_addCallback
-AccessibleEventListener_removeCallback
-<SUBSECTION Specific Event Support>
-AccessibleActiveDescendantChangedEvent_getActiveDescendant
-AccessibleChildChangedEvent_getChildAccessible
-AccessibleDescriptionChangedEvent_getDescriptionString
-AccessibleNameChangedEvent_getNameString
-AccessibleParentChangedEvent_getParentAccessible
-AccessibleBoundsChangedEvent_getNewBounds
-AccessibleTableCaptionChangedEvent_getCaptionString
-AccessibleTableColumnDescriptionChangedEvent_getDescriptionString
-AccessibleTableHeaderChangedEvent_getHeaderAccessible
-AccessibleTableRowDescriptionChangedEvent_getDescriptionString
-AccessibleTableSummaryChangedEvent_getSummaryAccessible
-AccessibleTextChangedEvent_getChangeString
-AccessibleTextSelectionChangedEvent_getSelectionString
-AccessibleWindowEvent_getTitleString
-</SECTION>
-
-<SECTION>
-<FILE>spi_registry</FILE>
-<TITLE>Registry queries</TITLE>
-AccessibleKeySynthType
-SPI_getDesktopCount
-SPI_getDesktop
-SPI_getDesktopList
-SPI_freeDesktopList
-<SUBSECTION Event Registration>
-AccessibleKeystrokeListenerCB
-AccessibleKeyEventMask
-AccessibleModifierMaskType
-AccessibleKeyMaskType
-AccessibleKeyEventType
-AccessibleKeyListenerSyncType
-AccessibleKeystroke
-SPI_createAccessibleKeySet
-SPI_freeAccessibleKeySet
-SPI_createAccessibleKeystrokeListener
-SPI_registerGlobalEventListener
-SPI_deregisterGlobalEventListener
-SPI_deregisterGlobalEventListenerAll
-SPI_registerAccessibleKeystrokeListener
-SPI_deregisterAccessibleKeystrokeListener
-AccessibleKeystrokeListener_unref
-AccessibleKeystrokeListener_removeCallback
-AccessibleKeystrokeListener_addCallback
-SPI_generateKeyboardEvent
-SPI_generateMouseEvent
-AccessibleDeviceEvent
-AccessibleDeviceEventMask
-AccessibleDeviceEventType
-AccessibleDeviceListenerCB
-SPI_createAccessibleDeviceListener
-SPI_registerDeviceEventListener
-SPI_deregisterDeviceEventListener
-AccessibleDeviceListener_addCallback
-AccessibleDeviceListener_removeCallback
-AccessibleDeviceListener_unref
-<SUBSECTION Private>
-SPI_KEYSET_ALL_KEYS
-</SECTION>
-
-<SECTION>
-<FILE>spi_accessible</FILE>
-<TITLE>Accessible Objects</TITLE>
-Accessible
-Accessible_ref
-Accessible_unref
-Accessible_getName
-Accessible_getDescription
-Accessible_getParent
-Accessible_getChildCount
-Accessible_getChildAtIndex
-Accessible_getIndexInParent
-Accessible_getRelationSet
-Accessible_getRole
-Accessible_getRoleName
-Accessible_getStateSet
-Accessible_getAttributes
-Accessible_getHostApplication
-Accessible_getLocalizedRoleName
-<SUBSECTION Interface Queries>
-Accessible_isAction
-Accessible_isApplication
-Accessible_isComponent
-Accessible_isDocument
-Accessible_isEditableText
-Accessible_isHypertext
-Accessible_isImage
-Accessible_isSelection
-Accessible_isStreamableContent
-Accessible_isTable
-Accessible_isText
-Accessible_isValue
-Accessible_getAction
-Accessible_getApplication
-Accessible_getComponent
-Accessible_getDocument
-Accessible_getEditableText
-Accessible_getHypertext
-Accessible_getImage
-Accessible_getSelection
-Accessible_getStreamableContent
-Accessible_getTable
-Accessible_getText
-Accessible_getValue
-Accessible_queryInterface
-<SUBSECTION Auxiliary types>
-AccessibleRole
-AccessibleRole_getName
-<SUBSECTION Private>
-InternalEvent
-SPI_INTERNAL_EVENT_MAGIC
-CSPI_OBJREF
-cspi_ev
-cspi_exception
-cspi_registry
-cspi_object_add
-cspi_object_ref
-cspi_object_unref
-cspi_object_borrow
-cspi_object_take
-cspi_object_return
-cspi_accessible_is_a
-cspi_return_if_fail
-cspi_return_val_if_fail
-cspi_return_if_ev
-cspi_return_val_if_ev
-cspi_check_ev
-cspi_peek_ev
-cspi_dup_ref
-cspi_release_unref
-cspi_exception_get_text
-cspi_exception_throw
-cspi_init
-cspi_ping
-cspi_main
-cspi_main_quit
-cspi_role_from_spi_role
-cspi_streams_close_all
-cspi_event_listener_get_type
-cspi_event_listener_new
-cspi_event_listener_get_corba
-cspi_event_listener_add_cb
-cspi_event_listener_remove_cb
-cspi_event_listener_unref
-cspi_keystroke_listener_new
-cspi_keystroke_listener_unref
-cspi_keystroke_listener_get_corba
-cspi_keystroke_listener_add_cb
-cspi_keystroke_listener_remove_cb
-cspi_device_listener_get_type
-cspi_device_listener_new
-cspi_device_listener_add_cb
-cspi_device_listener_remove_cb
-cspi_device_listener_unref
-CSpiEventListener
-CSpiEventListenerClass
-CSPI_EVENT_LISTENER_TYPE
-CSPI_EVENT_LISTENER
-CSPI_EVENT_LISTENER_CLASS
-CSPI_IS_EVENT_LISTENER
-CSPI_IS_EVENT_LISTENER_CLASS
-CSpiDeviceListener
-CSpiDeviceListenerClass
-CSPI_DEVICE_LISTENER_TYPE
-CSPI_DEVICE_LISTENER
-CSPI_DEVICE_LISTENER_CLASS
-CSPI_IS_DEVICE_LISTENER
-CSPI_IS_DEVICE_LISTENER_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>spi_application</FILE>
-<TITLE>AccessibleApplication API</TITLE>
-AccessibleApplication_ref
-AccessibleApplication_unref
-AccessibleApplication_getToolkitName
-AccessibleApplication_getVersion
-AccessibleApplication_getID
-AccessibleApplication_getLocale
-AccessibleApplication_pause
-AccessibleApplication_resume
-</SECTION>
-
-<SECTION>
-<FILE>spi_action</FILE>
-<TITLE>AccessibleAction Interface</TITLE>
-AccessibleAction_ref
-AccessibleAction_unref
-AccessibleAction_getNActions
-AccessibleAction_doAction
-AccessibleAction_getKeyBinding
-AccessibleAction_getName
-AccessibleAction_getDescription
-</SECTION>
-
-<SECTION>
-<FILE>spi_component</FILE>
-<TITLE>AccessibleComponent Interface</TITLE>
-AccessibleCoordType
-AccessibleComponentLayer
-AccessibleComponent_ref
-AccessibleComponent_unref
-AccessibleComponent_contains
-AccessibleComponent_getAccessibleAtPoint
-AccessibleComponent_getExtents
-AccessibleComponent_getPosition
-AccessibleComponent_getSize
-AccessibleComponent_getLayer
-AccessibleComponent_getMDIZOrder
-AccessibleComponent_grabFocus
-AccessibleComponent_getAlpha
-</SECTION>
-
-<SECTION>
-<FILE>spi_document</FILE>
-<TITLE>AccessibleDocument Interface</TITLE>
-AccessibleDocument_ref
-AccessibleDocument_unref
-AccessibleDocument_getAttributeValue
-AccessibleDocument_getAttributes
-AccessibleDocument_getLocale
-</SECTION>
-
-<SECTION>
-<FILE>spi_editabletext</FILE>
-<TITLE>AccessibleEditableText Interface</TITLE>
-AccessibleEditableText_ref
-AccessibleEditableText_unref
-AccessibleEditableText_copyText
-AccessibleEditableText_deleteText
-AccessibleEditableText_insertText
-AccessibleEditableText_cutText
-AccessibleEditableText_pasteText
-AccessibleEditableText_setTextContents
-AccessibleEditableText_setAttributes
-</SECTION>
-
-<SECTION>
-<FILE>spi_hypertext</FILE>
-<TITLE>AccessibleHypertext Interface</TITLE>
-AccessibleHypertext_ref
-AccessibleHypertext_unref
-AccessibleHypertext_getNLinks
-AccessibleHypertext_getLink
-AccessibleHypertext_getLinkIndex
-</SECTION>
-
-<SECTION>
-<FILE>spi_image</FILE>
-<TITLE>AccessibleImage Interface</TITLE>
-AccessibleImage_ref
-AccessibleImage_unref
-AccessibleImage_getImageDescription
-AccessibleImage_getImageSize
-AccessibleImage_getImagePosition
-AccessibleImage_getImageExtents
-AccessibleImage_getImageLocale
-</SECTION>
-
-<SECTION>
-<FILE>spi_selection</FILE>
-<TITLE>AccessibleSelection Interface</TITLE>
-AccessibleSelection_ref
-AccessibleSelection_unref
-AccessibleSelection_getNSelectedChildren
-AccessibleSelection_getSelectedChild
-AccessibleSelection_selectChild
-AccessibleSelection_isChildSelected
-AccessibleSelection_deselectSelectedChild
-AccessibleSelection_deselectChild
-AccessibleSelection_clearSelection
-AccessibleSelection_selectAll
-</SECTION>
-
-<SECTION>
-<FILE>spi_streamable_content</FILE>
-<TITLE>AccessibleStreamableContent Interface</TITLE>
-AccessibleStreamableContentSeekType
-AccessibleStreamableContent_freeContentTypesList
-AccessibleStreamableContent_ref
-AccessibleStreamableContent_unref
-AccessibleStreamableContent_getContentTypes
-AccessibleStreamableContent_open
-AccessibleStreamableContent_seek
-AccessibleStreamableContent_read
-AccessibleStreamableContent_close
-AccessibleStreamableContent_freeContentTypesList
-</SECTION>
-
-<SECTION>
-<FILE>spi_table</FILE>
-<TITLE>AccessibleTable Interface</TITLE>
-AccessibleTable_ref
-AccessibleTable_unref
-AccessibleTable_getAccessibleAt
-AccessibleTable_getCaption
-AccessibleTable_getColumnAtIndex
-AccessibleTable_getColumnDescription
-AccessibleTable_getColumnExtentAt
-AccessibleTable_getColumnHeader
-AccessibleTable_getIndexAt
-AccessibleTable_getNColumns
-AccessibleTable_getNRows
-AccessibleTable_getNSelectedColumns
-AccessibleTable_getNSelectedRows
-AccessibleTable_getRowColumnExtentsAtIndex
-AccessibleTable_getRowAtIndex
-AccessibleTable_getRowDescription
-AccessibleTable_getRowExtentAt
-AccessibleTable_getRowHeader
-AccessibleTable_getSelectedRows
-AccessibleTable_getSelectedColumns
-AccessibleTable_getSummary
-AccessibleTable_isColumnSelected
-AccessibleTable_isRowSelected
-AccessibleTable_isSelected
-AccessibleTable_addColumnSelection
-AccessibleTable_addRowSelection
-AccessibleTable_removeColumnSelection
-AccessibleTable_removeRowSelection
-</SECTION>
-
-<SECTION>
-<FILE>spi_text</FILE>
-<TITLE>AccessibleText Interface</TITLE>
-AccessibleTextBoundaryType
-AccessibleTextClipType
-AccessibleText_ref
-AccessibleText_unref
-AccessibleText_addSelection
-AccessibleText_getAttributes
-AccessibleText_getBoundedRanges
-AccessibleText_getCaretOffset
-AccessibleText_getCharacterCount
-AccessibleText_getCharacterExtents
-AccessibleText_getNSelections
-AccessibleText_getOffsetAtPoint
-AccessibleText_getRangeExtents
-AccessibleText_getSelection
-AccessibleText_getText
-AccessibleText_getTextBeforeOffset
-AccessibleText_getTextAfterOffset
-AccessibleText_getTextAtOffset
-AccessibleText_removeSelection
-AccessibleText_setCaretOffset
-AccessibleText_setSelection
-AccessibleText_getCharacterAtOffset
-AccessibleText_getDefaultAttributes
-AccessibleText_getAttributeRun
-AccessibleText_getDefaultAttributeSet
-AccessibleTextRange_freeRanges
-</SECTION>
-
-<SECTION>
-<FILE>spi_value</FILE>
-<TITLE>AccessibleValue Interface</TITLE>
-AccessibleValue_ref
-AccessibleValue_unref
-AccessibleValue_getCurrentValue
-AccessibleValue_getMaximumValue
-AccessibleValue_getMinimumValue
-AccessibleValue_setCurrentValue
-AccessibleValue_getMinimumIncrement
-</SECTION>
-
-<SECTION>
-<FILE>spi_hyperlink</FILE>
-<TITLE>AccessibleHyperlink Interface</TITLE>
-AccessibleHyperlink_ref
-AccessibleHyperlink_unref
-AccessibleHyperlink_getNAnchors
-AccessibleHyperlink_getIndexRange
-AccessibleHyperlink_getObject
-AccessibleHyperlink_getURI
-AccessibleHyperlink_isValid
-</SECTION>
-
-<SECTION>
-<FILE>spi_stateset</FILE>
-<TITLE>State and StateSets</TITLE>
-AccessibleState
-AccessibleStateSet
-AccessibleStateSet_ref
-AccessibleStateSet_unref
-AccessibleStateSet_add
-AccessibleStateSet_compare
-AccessibleStateSet_contains
-AccessibleStateSet_equals
-AccessibleStateSet_isEmpty
-AccessibleStateSet_remove
-</SECTION>
-
-<SECTION>
-<FILE>spi_relation</FILE>
-<TITLE>AccessibleRelations and RelationSets</TITLE>
-AccessibleRelationType
-AccessibleRelation_ref
-AccessibleRelation_unref
-AccessibleRelation_getNTargets
-AccessibleRelation_getTarget
-AccessibleRelation_getRelationType
-</SECTION>
diff --git a/docs/reference/cspi/at-spi-cspi.types b/docs/reference/cspi/at-spi-cspi.types
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/docs/reference/cspi/tmpl/spi_accessible.sgml b/docs/reference/cspi/tmpl/spi_accessible.sgml
deleted file mode 100644 (file)
index 5de4673..0000000
+++ /dev/null
@@ -1,502 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Accessible Objects
-
-<!-- ##### SECTION Short_Description ##### -->
-The base accessibility interface which all accessible objects implement.
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-The Accessible interface provides for a hierarchical tree of accessible
-objects corresponding to user interface components and content in an
-accessible application.  Accessible objects provide name, descriptive
-information, state information, and information on the "role" of the object in
-the user interface.  The capabilities of these objects may be queried via
-interface queries, as they are implemented via interface aggregation.  These
-objects are located in a containment hierarchy with parent/child
-relationships, and may have other functional relationships to objects within
-the tree.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT Accessible ##### -->
-<para>
-An Accessible object is an opaque object used to refer to an accessible
-object corresponding to an user interface element.
-</para>
-
-@objref: private data
-@on_loan: private data
-@ref_count: private data
-
-<!-- ##### FUNCTION Accessible_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION Accessible_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION Accessible_getName ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getDescription ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getParent ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getChildCount ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getChildAtIndex ##### -->
-<para>
-
-</para>
-
-@obj: 
-@childIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getIndexInParent ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getRelationSet ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getRole ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getRoleName ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getStateSet ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getAttributes ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getHostApplication ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getLocalizedRoleName ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isAction ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isApplication ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isComponent ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isDocument ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isEditableText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isHypertext ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isImage ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isStreamableContent ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isTable ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_isValue ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getAction ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getApplication ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getComponent ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getDocument ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getEditableText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getHypertext ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getImage ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getStreamableContent ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getTable ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_getValue ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION Accessible_queryInterface ##### -->
-<para>
-
-</para>
-
-@obj: 
-@interface_name: 
-@Returns: 
-
-
-<!-- ##### ENUM AccessibleRole ##### -->
-<para>
-
-</para>
-
-@SPI_ROLE_INVALID: 
-@SPI_ROLE_ACCEL_LABEL: 
-@SPI_ROLE_ALERT: 
-@SPI_ROLE_ANIMATION: 
-@SPI_ROLE_ARROW: 
-@SPI_ROLE_CALENDAR: 
-@SPI_ROLE_CANVAS: 
-@SPI_ROLE_CHECK_BOX: 
-@SPI_ROLE_CHECK_MENU_ITEM: 
-@SPI_ROLE_COLOR_CHOOSER: 
-@SPI_ROLE_COLUMN_HEADER: 
-@SPI_ROLE_COMBO_BOX: 
-@SPI_ROLE_DATE_EDITOR: 
-@SPI_ROLE_DESKTOP_ICON: 
-@SPI_ROLE_DESKTOP_FRAME: 
-@SPI_ROLE_DIAL: 
-@SPI_ROLE_DIALOG: 
-@SPI_ROLE_DIRECTORY_PANE: 
-@SPI_ROLE_DRAWING_AREA: 
-@SPI_ROLE_FILE_CHOOSER: 
-@SPI_ROLE_FILLER: 
-@SPI_ROLE_FONT_CHOOSER: 
-@SPI_ROLE_FRAME: 
-@SPI_ROLE_GLASS_PANE: 
-@SPI_ROLE_HTML_CONTAINER: 
-@SPI_ROLE_ICON: 
-@SPI_ROLE_IMAGE: 
-@SPI_ROLE_INTERNAL_FRAME: 
-@SPI_ROLE_LABEL: 
-@SPI_ROLE_LAYERED_PANE: 
-@SPI_ROLE_LIST: 
-@SPI_ROLE_LIST_ITEM: 
-@SPI_ROLE_MENU: 
-@SPI_ROLE_MENU_BAR: 
-@SPI_ROLE_MENU_ITEM: 
-@SPI_ROLE_OPTION_PANE: 
-@SPI_ROLE_PAGE_TAB: 
-@SPI_ROLE_PAGE_TAB_LIST: 
-@SPI_ROLE_PANEL: 
-@SPI_ROLE_PASSWORD_TEXT: 
-@SPI_ROLE_POPUP_MENU: 
-@SPI_ROLE_PROGRESS_BAR: 
-@SPI_ROLE_PUSH_BUTTON: 
-@SPI_ROLE_RADIO_BUTTON: 
-@SPI_ROLE_RADIO_MENU_ITEM: 
-@SPI_ROLE_ROOT_PANE: 
-@SPI_ROLE_ROW_HEADER: 
-@SPI_ROLE_SCROLL_BAR: 
-@SPI_ROLE_SCROLL_PANE: 
-@SPI_ROLE_SEPARATOR: 
-@SPI_ROLE_SLIDER: 
-@SPI_ROLE_SPIN_BUTTON: 
-@SPI_ROLE_SPLIT_PANE: 
-@SPI_ROLE_STATUS_BAR: 
-@SPI_ROLE_TABLE: 
-@SPI_ROLE_TABLE_CELL: 
-@SPI_ROLE_TABLE_COLUMN_HEADER: 
-@SPI_ROLE_TABLE_ROW_HEADER: 
-@SPI_ROLE_TEAROFF_MENU_ITEM: 
-@SPI_ROLE_TERMINAL: 
-@SPI_ROLE_TEXT: 
-@SPI_ROLE_TOGGLE_BUTTON: 
-@SPI_ROLE_TOOL_BAR: 
-@SPI_ROLE_TOOL_TIP: 
-@SPI_ROLE_TREE: 
-@SPI_ROLE_TREE_TABLE: 
-@SPI_ROLE_UNKNOWN: 
-@SPI_ROLE_VIEWPORT: 
-@SPI_ROLE_WINDOW: 
-@SPI_ROLE_EXTENDED: 
-@SPI_ROLE_HEADER: 
-@SPI_ROLE_FOOTER: 
-@SPI_ROLE_PARAGRAPH: 
-@SPI_ROLE_RULER: 
-@SPI_ROLE_APPLICATION: 
-@SPI_ROLE_AUTOCOMPLETE: 
-@SPI_ROLE_EDITBAR: 
-@SPI_ROLE_EMBEDDED: 
-@SPI_ROLE_ENTRY: 
-@SPI_ROLE_CHART: 
-@SPI_ROLE_CAPTION: 
-@SPI_ROLE_DOCUMENT_FRAME: 
-@SPI_ROLE_HEADING: 
-@SPI_ROLE_PAGE: 
-@SPI_ROLE_SECTION: 
-@SPI_ROLE_FORM: 
-@SPI_ROLE_REDUNDANT_OBJECT: 
-@SPI_ROLE_LINK: 
-@SPI_ROLE_INPUT_METHOD_WINDOW: 
-@SPI_ROLE_LAST_DEFINED: 
-
-<!-- ##### FUNCTION AccessibleRole_getName ##### -->
-<para>
-
-</para>
-
-@role: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_action.sgml b/docs/reference/cspi/tmpl/spi_action.sgml
deleted file mode 100644 (file)
index a212ee8..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleAction Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-The interface implemented by interface elements which are 'actionable' by the
-user.
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-The Action interface is implemented by objects with which the user may
-interact using common graphical-user-interface metaphors such as "click",
-"toggle", "activate", and other gestures which are usually invoked via
-interaction with the system pointer or keyboard.  The Action interface allows
-clients and/or assistive technologies to expose these actions to the end user
-for invocation via alternative mechanisms, and to inform the end user or
-assistive technology client that the implementing Accessible object is
-reactive to user input.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleAction_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleAction_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleAction_getNActions ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleAction_doAction ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleAction_getKeyBinding ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleAction_getName ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleAction_getDescription ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_application.sgml b/docs/reference/cspi/tmpl/spi_application.sgml
deleted file mode 100644 (file)
index 3c74bd8..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleApplication API
-
-<!-- ##### SECTION Short_Description ##### -->
-The interface implemented by the topmost Accessible in an application's
-hierarchy of Accessible objects.
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-This interface is implemented on the topmost object in an application's
-hierarchy.  It is primarily a marker interface, though certain properties
-associated with an application, such as the application's current default
-locale, are also exposed.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleApplication_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_getToolkitName ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_getVersion ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_getID ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_getLocale ##### -->
-<para>
-
-</para>
-
-@obj: 
-@lc_category: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_pause ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleApplication_resume ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_component.sgml b/docs/reference/cspi/tmpl/spi_component.sgml
deleted file mode 100644 (file)
index 27aa486..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleComponent Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-An interface implemented by objects which occupy area on screen.
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-The Component interface is implemented by objects which are visible, or are
-potentially visible, onscreen.  The interface exposes onscreen bounds, the
-approximate "layer" in which the object resides, sometimes including z-order
-information, and allows objects to explicitly be told to request focus.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM AccessibleCoordType ##### -->
-<para>
-
-</para>
-
-@SPI_COORD_TYPE_SCREEN: 
-@SPI_COORD_TYPE_WINDOW: 
-
-<!-- ##### ENUM AccessibleComponentLayer ##### -->
-<para>
-
-</para>
-
-@SPI_LAYER_INVALID: 
-@SPI_LAYER_BACKGROUND: 
-@SPI_LAYER_CANVAS: 
-@SPI_LAYER_WIDGET: 
-@SPI_LAYER_MDI: 
-@SPI_LAYER_POPUP: 
-@SPI_LAYER_OVERLAY: 
-@SPI_LAYER_WINDOW: 
-@SPI_LAYER_LAST_DEFINED: 
-
-<!-- ##### FUNCTION AccessibleComponent_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_contains ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@ctype: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getAccessibleAtPoint ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@ctype: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getExtents ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@width: 
-@height: 
-@ctype: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getPosition ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@ctype: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getSize ##### -->
-<para>
-
-</para>
-
-@obj: 
-@width: 
-@height: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getLayer ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getMDIZOrder ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_grabFocus ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleComponent_getAlpha ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_editabletext.sgml b/docs/reference/cspi/tmpl/spi_editabletext.sgml
deleted file mode 100644 (file)
index 5083a28..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleEditableText Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-An interface which allows editable text fields to be programmatically manipulated.
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-An interface implemented by objects whose text content may be (potentially or
-actually) directly modified by user activity.  Text entry fields and text
-editor compose panes are examples of EditableText implementors.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleEditableText_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_copyText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startPos: 
-@endPos: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_deleteText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startPos: 
-@endPos: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_insertText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@position: 
-@text: 
-@length: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_cutText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startPos: 
-@endPos: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_pasteText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@position: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_setTextContents ##### -->
-<para>
-
-</para>
-
-@obj: 
-@newContents: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEditableText_setAttributes ##### -->
-<para>
-
-</para>
-
-@obj: 
-@attributes: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_event.sgml b/docs/reference/cspi/tmpl/spi_event.sgml
deleted file mode 100644 (file)
index ae70925..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Event Listener Support
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### STRUCT AccessibleEvent ##### -->
-<para>
-AccessibleEvent is a struct used to encapsulate event information.
-</para>
-
-@type: 
-@source: 
-
-<!-- ##### USER_FUNCTION AccessibleEventListenerCB ##### -->
-<para>
-This is a function which is specified when creating a EventListener.
-It is called when an event being listened for occurs.
-</para>
-
-@event: 
-@user_data: 
-
-
-<!-- ##### FUNCTION AccessibleEvent_getSourceApplication ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEvent_getSourceDetails ##### -->
-<para>
-
-</para>
-
-@e: 
-@name: 
-@role: 
-@app: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEvent_getSourceName ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEvent_getSourceRole ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEvent_ref ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEvent_unref ##### -->
-<para>
-
-</para>
-
-@e: 
-
-
-<!-- ##### FUNCTION SPI_createAccessibleEventListener ##### -->
-<para>
-
-</para>
-
-@callback: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEventListener_unref ##### -->
-<para>
-
-</para>
-
-@listener: 
-
-
-<!-- ##### FUNCTION AccessibleEventListener_addCallback ##### -->
-<para>
-
-</para>
-
-@listener: 
-@callback: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleEventListener_removeCallback ##### -->
-<para>
-
-</para>
-
-@listener: 
-@callback: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleActiveDescendantChangedEvent_getActiveDescendant ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleChildChangedEvent_getChildAccessible ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleDescriptionChangedEvent_getDescriptionString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleNameChangedEvent_getNameString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleParentChangedEvent_getParentAccessible ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleBoundsChangedEvent_getNewBounds ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTableCaptionChangedEvent_getCaptionString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTableColumnDescriptionChangedEvent_getDescriptionString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTableHeaderChangedEvent_getHeaderAccessible ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTableRowDescriptionChangedEvent_getDescriptionString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTableSummaryChangedEvent_getSummaryAccessible ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTextChangedEvent_getChangeString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTextSelectionChangedEvent_getSelectionString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleWindowEvent_getTitleString ##### -->
-<para>
-
-</para>
-
-@e: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_hyperlink.sgml b/docs/reference/cspi/tmpl/spi_hyperlink.sgml
deleted file mode 100644 (file)
index 5ea4c1d..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleHyperlink Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_getNAnchors ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_getIndexRange ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startIndex: 
-@endIndex: 
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_getObject ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_getURI ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleHyperlink_isValid ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_hypertext.sgml b/docs/reference/cspi/tmpl/spi_hypertext.sgml
deleted file mode 100644 (file)
index b0656f8..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleHypertext Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleHypertext_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleHypertext_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleHypertext_getNLinks ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleHypertext_getLink ##### -->
-<para>
-
-</para>
-
-@obj: 
-@linkIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleHypertext_getLinkIndex ##### -->
-<para>
-
-</para>
-
-@obj: 
-@characterOffset: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_image.sgml b/docs/reference/cspi/tmpl/spi_image.sgml
deleted file mode 100644 (file)
index f5fb808..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleImage Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleImage_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleImage_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleImage_getImageDescription ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleImage_getImageSize ##### -->
-<para>
-
-</para>
-
-@obj: 
-@width: 
-@height: 
-
-
-<!-- ##### FUNCTION AccessibleImage_getImagePosition ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@ctype: 
-
-
-<!-- ##### FUNCTION AccessibleImage_getImageExtents ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@width: 
-@height: 
-@ctype: 
-
-
-<!-- ##### FUNCTION AccessibleImage_getImageLocale ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_main.sgml b/docs/reference/cspi/tmpl/spi_main.sgml
deleted file mode 100644 (file)
index 5683a09..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-SPI main loop and initialization
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION SPI_init ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_event_main ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION SPI_event_quit ##### -->
-<para>
-
-</para>
-
-
-
-<!-- ##### FUNCTION SPI_eventIsReady ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_nextEvent ##### -->
-<para>
-
-</para>
-
-@waitForEvent: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_exit ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_freeString ##### -->
-<para>
-
-</para>
-
-@s: 
-
-
-<!-- ##### FUNCTION SPIAccessibleException_getSource ##### -->
-<para>
-
-</para>
-
-@err: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPIException_getDescription ##### -->
-<para>
-
-</para>
-
-@err: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPIException_getExceptionCode ##### -->
-<para>
-
-</para>
-
-@err: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPIException_getSourceType ##### -->
-<para>
-
-</para>
-
-@err: 
-@Returns: 
-
-
-<!-- ##### STRUCT SPIException ##### -->
-<para>
-
-</para>
-
-@type: 
-@source: 
-@ev: 
-@code: 
-@desc: 
-
-<!-- ##### ENUM SPIExceptionCode ##### -->
-<para>
-
-</para>
-
-@SPI_EXCEPTION_UNSPECIFIED: 
-@SPI_EXCEPTION_DISCONNECT: 
-@SPI_EXCEPTION_NO_IMPL: 
-@SPI_EXCEPTION_IO: 
-@SPI_EXCEPTION_BAD_DATA: 
-
-<!-- ##### ENUM SPIExceptionType ##### -->
-<para>
-
-</para>
-
-@SPI_EXCEPTION_SOURCE_UNSPECIFIED: 
-@SPI_EXCEPTION_SOURCE_ACCESSIBLE: 
-@SPI_EXCEPTION_SOURCE_REGISTRY: 
-@SPI_EXCEPTION_SOURCE_DEVICE: 
-
-<!-- ##### USER_FUNCTION SPIExceptionHandler ##### -->
-<para>
-
-</para>
-
-@err: 
-@is_fatal: 
-@Returns: 
-
-
-<!-- ##### STRUCT SPIRect ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### FUNCTION SPI_freeRect ##### -->
-<para>
-
-</para>
-
-@r: 
-
-
-<!-- ##### FUNCTION SPI_dupString ##### -->
-<para>
-
-</para>
-
-@s: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_exceptionHandlerPush ##### -->
-<para>
-
-</para>
-
-@handler: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_exceptionHandlerPop ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_registry.sgml b/docs/reference/cspi/tmpl/spi_registry.sgml
deleted file mode 100644 (file)
index 458a961..0000000
+++ /dev/null
@@ -1,353 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Registry queries
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM AccessibleKeySynthType ##### -->
-<para>
-
-</para>
-
-@SPI_KEY_PRESS: 
-@SPI_KEY_RELEASE: 
-@SPI_KEY_PRESSRELEASE: 
-@SPI_KEY_SYM: 
-@SPI_KEY_STRING: 
-
-<!-- ##### FUNCTION SPI_getDesktopCount ##### -->
-<para>
-
-</para>
-
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_getDesktop ##### -->
-<para>
-
-</para>
-
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_getDesktopList ##### -->
-<para>
-
-</para>
-
-@desktop_list: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_freeDesktopList ##### -->
-<para>
-
-</para>
-
-@desktop_list: 
-
-
-<!-- ##### USER_FUNCTION AccessibleKeystrokeListenerCB ##### -->
-<para>
-This is a function which is specified when creating a KeystrokeListener.
-It is called when an event being listened for occurs. 
-If it returns TRUE, this indicates that the event should be consumed 
-rather than passed through; only callbacks whose listeners are
-registered with the SPI_KEYLISTENER_ALL_WINDOWS or 
-SPI_KEYLISTENER_CANCONSUME flags can be consumed.
-</para>
-
-@stroke: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### TYPEDEF AccessibleKeyEventMask ##### -->
-<para>
-AccessibleKeyEventMask is a set of types of key events. It is used 
-in SPI_registerAccessibleKeystroketListener to specify the events to be 
-listener for.
-</para>
-
-
-<!-- ##### TYPEDEF AccessibleModifierMaskType ##### -->
-<para>
-AccessibleModifierMaskType is a synonym for AccessibleKeymaskType.
-The defined values for AccessibleModifierMaskType can be found in
-libspi/keymasks.h.
-</para>
-
-
-<!-- ##### TYPEDEF AccessibleKeyMaskType ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### TYPEDEF AccessibleKeyEventType ##### -->
-<para>
-
-</para>
-
-
-<!-- ##### ENUM AccessibleKeyListenerSyncType ##### -->
-<para>
-
-</para>
-
-@SPI_KEYLISTENER_NOSYNC: 
-@SPI_KEYLISTENER_SYNCHRONOUS: 
-@SPI_KEYLISTENER_CANCONSUME: 
-@SPI_KEYLISTENER_ALL_WINDOWS: 
-
-<!-- ##### TYPEDEF AccessibleKeystroke ##### -->
-<para>
-This is a synonym for AccessibleDeviceEvent.
-</para>
-
-
-<!-- ##### FUNCTION SPI_createAccessibleKeySet ##### -->
-<para>
-
-</para>
-
-@len: 
-@keysyms: 
-@keycodes: 
-@keystrings: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_freeAccessibleKeySet ##### -->
-<para>
-
-</para>
-
-@keyset: 
-
-
-<!-- ##### FUNCTION SPI_createAccessibleKeystrokeListener ##### -->
-<para>
-
-</para>
-
-@callback: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_registerGlobalEventListener ##### -->
-<para>
-
-</para>
-
-@listener: 
-@eventType: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_deregisterGlobalEventListener ##### -->
-<para>
-
-</para>
-
-@listener: 
-@eventType: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_deregisterGlobalEventListenerAll ##### -->
-<para>
-
-</para>
-
-@listener: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_registerAccessibleKeystrokeListener ##### -->
-<para>
-
-</para>
-
-@listener: 
-@keys: 
-@modmask: 
-@eventmask: 
-@sync_type: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_deregisterAccessibleKeystrokeListener ##### -->
-<para>
-
-</para>
-
-@listener: 
-@modmask: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleKeystrokeListener_unref ##### -->
-<para>
-
-</para>
-
-@listener: 
-
-
-<!-- ##### FUNCTION AccessibleKeystrokeListener_removeCallback ##### -->
-<para>
-
-</para>
-
-@listener: 
-@callback: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleKeystrokeListener_addCallback ##### -->
-<para>
-
-</para>
-
-@listener: 
-@callback: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_generateKeyboardEvent ##### -->
-<para>
-
-</para>
-
-@keyval: 
-@keystring: 
-@synth_type: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_generateMouseEvent ##### -->
-<para>
-
-</para>
-
-@x: 
-@y: 
-@name: 
-@Returns: 
-
-
-<!-- ##### STRUCT AccessibleDeviceEvent ##### -->
-<para>
-AccessibleDeviceEvent is a struct which encapsulates a device event.
-</para>
-
-@keystring: 
-@type: 
-@is_text: 
-
-<!-- ##### TYPEDEF AccessibleDeviceEventMask ##### -->
-<para>
-AccessibleDeviceEventMask is a set of types of key events. It is used 
-in SPI_registerDeviceEventListener to specify the events to be listener for.
-</para>
-
-
-<!-- ##### ENUM AccessibleDeviceEventType ##### -->
-<para>
-
-</para>
-
-@SPI_KEY_PRESSED: 
-@SPI_KEY_RELEASED: 
-@SPI_BUTTON_PRESSED: 
-@SPI_BUTTON_RELEASED: 
-
-<!-- ##### USER_FUNCTION AccessibleDeviceListenerCB ##### -->
-<para>
-This is a function which is specified when creating a DeviceListener.
-It is called when an event being listened for occurs. 
-</para>
-
-@stroke: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_createAccessibleDeviceListener ##### -->
-<para>
-
-</para>
-
-@callback: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_registerDeviceEventListener ##### -->
-<para>
-
-</para>
-
-@listener: 
-@eventmask: 
-@filter: 
-@Returns: 
-
-
-<!-- ##### FUNCTION SPI_deregisterDeviceEventListener ##### -->
-<para>
-
-</para>
-
-@listener: 
-@filter: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleDeviceListener_addCallback ##### -->
-<para>
-
-</para>
-
-@listener: 
-@callback: 
-@user_data: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleDeviceListener_removeCallback ##### -->
-<para>
-
-</para>
-
-@listener: 
-@callback: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleDeviceListener_unref ##### -->
-<para>
-
-</para>
-
-@listener: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_relation.sgml b/docs/reference/cspi/tmpl/spi_relation.sgml
deleted file mode 100644 (file)
index 9d81c1a..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleRelations and RelationSets
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM AccessibleRelationType ##### -->
-<para>
-
-</para>
-
-@SPI_RELATION_NULL: 
-@SPI_RELATION_LABEL_FOR: 
-@SPI_RELATION_LABELED_BY: 
-@SPI_RELATION_CONTROLLER_FOR: 
-@SPI_RELATION_CONTROLLED_BY: 
-@SPI_RELATION_MEMBER_OF: 
-@SPI_RELATION_NODE_CHILD_OF: 
-@SPI_RELATION_EXTENDED: 
-@SPI_RELATION_FLOWS_TO: 
-@SPI_RELATION_FLOWS_FROM: 
-@SPI_RELATION_SUBWINDOW_OF: 
-@SPI_RELATION_EMBEDS: 
-@SPI_RELATION_EMBEDDED_BY: 
-@SPI_RELATION_POPUP_FOR: 
-@SPI_RELATION_PARENT_WINDOW_OF: 
-@SPI_RELATION_DESCRIPTION_FOR: 
-@SPI_RELATION_DESCRIBED_BY: 
-@SPI_RELATION_LAST_DEFINED: 
-
-<!-- ##### FUNCTION AccessibleRelation_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleRelation_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleRelation_getNTargets ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleRelation_getTarget ##### -->
-<para>
-
-</para>
-
-@obj: 
-@i: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleRelation_getRelationType ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_selection.sgml b/docs/reference/cspi/tmpl/spi_selection.sgml
deleted file mode 100644 (file)
index 39822f5..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleSelection Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleSelection_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_getNSelectedChildren ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_getSelectedChild ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectedChildIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_selectChild ##### -->
-<para>
-
-</para>
-
-@obj: 
-@childIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_isChildSelected ##### -->
-<para>
-
-</para>
-
-@obj: 
-@childIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_deselectSelectedChild ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectedChildIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_deselectChild ##### -->
-<para>
-
-</para>
-
-@obj: 
-@childIndex: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_clearSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleSelection_selectAll ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_stateset.sgml b/docs/reference/cspi/tmpl/spi_stateset.sgml
deleted file mode 100644 (file)
index 7f82e78..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-State and StateSets
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM AccessibleState ##### -->
-<para>
-
-</para>
-
-@SPI_STATE_INVALID: 
-@SPI_STATE_ACTIVE: 
-@SPI_STATE_ARMED: 
-@SPI_STATE_BUSY: 
-@SPI_STATE_CHECKED: 
-@SPI_STATE_COLLAPSED: 
-@SPI_STATE_DEFUNCT: 
-@SPI_STATE_EDITABLE: 
-@SPI_STATE_ENABLED: 
-@SPI_STATE_EXPANDABLE: 
-@SPI_STATE_EXPANDED: 
-@SPI_STATE_FOCUSABLE: 
-@SPI_STATE_FOCUSED: 
-@SPI_STATE_HORIZONTAL: 
-@SPI_STATE_ICONIFIED: 
-@SPI_STATE_MODAL: 
-@SPI_STATE_MULTI_LINE: 
-@SPI_STATE_MULTISELECTABLE: 
-@SPI_STATE_OPAQUE: 
-@SPI_STATE_PRESSED: 
-@SPI_STATE_RESIZABLE: 
-@SPI_STATE_SELECTABLE: 
-@SPI_STATE_SELECTED: 
-@SPI_STATE_SENSITIVE: 
-@SPI_STATE_SHOWING: 
-@SPI_STATE_SINGLE_LINE: 
-@SPI_STATE_STALE: 
-@SPI_STATE_TRANSIENT: 
-@SPI_STATE_VERTICAL: 
-@SPI_STATE_VISIBLE: 
-@SPI_STATE_MANAGES_DESCENDANTS: 
-@SPI_STATE_INDETERMINATE: 
-@SPI_STATE_TRUNCATED: 
-@SPI_STATE_REQUIRED: 
-@SPI_STATE_INVALID_ENTRY: 
-@SPI_STATE_SUPPORTS_AUTOCOMPLETION: 
-@SPI_STATE_SELECTABLE_TEXT: 
-@SPI_STATE_IS_DEFAULT: 
-@SPI_STATE_VISITED: 
-@SPI_STATE_LAST_DEFINED: 
-
-<!-- ##### STRUCT AccessibleStateSet ##### -->
-<para>
-An AccessibleStateSet determines a component's state set. It is composed of 
-a set of AccessibleState values.
-
-</para>
-
-@ref_count: 
-@states: 
-
-<!-- ##### FUNCTION AccessibleStateSet_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_add ##### -->
-<para>
-
-</para>
-
-@obj: 
-@state: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_compare ##### -->
-<para>
-
-</para>
-
-@obj: 
-@obj2: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_contains ##### -->
-<para>
-
-</para>
-
-@obj: 
-@state: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_equals ##### -->
-<para>
-
-</para>
-
-@obj: 
-@obj2: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_isEmpty ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleStateSet_remove ##### -->
-<para>
-
-</para>
-
-@obj: 
-@state: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_table.sgml b/docs/reference/cspi/tmpl/spi_table.sgml
deleted file mode 100644 (file)
index cafd3dd..0000000
+++ /dev/null
@@ -1,299 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleTable Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleTable_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleTable_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getAccessibleAt ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getCaption ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getColumnAtIndex ##### -->
-<para>
-
-</para>
-
-@obj: 
-@index: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getColumnDescription ##### -->
-<para>
-
-</para>
-
-@obj: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getColumnExtentAt ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getColumnHeader ##### -->
-<para>
-
-</para>
-
-@obj: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getIndexAt ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getNColumns ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getNRows ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getNSelectedColumns ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getNSelectedRows ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getRowColumnExtentsAtIndex ##### -->
-<para>
-
-</para>
-
-@obj: 
-@index: 
-@row: 
-@col: 
-@row_extents: 
-@col_extents: 
-@is_selected: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getRowAtIndex ##### -->
-<para>
-
-</para>
-
-@obj: 
-@index: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getRowDescription ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getRowExtentAt ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getRowHeader ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getSelectedRows ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectedRows: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getSelectedColumns ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectedColumns: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_getSummary ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_isColumnSelected ##### -->
-<para>
-
-</para>
-
-@obj: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_isRowSelected ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_isSelected ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_addColumnSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_addRowSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_removeColumnSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@column: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTable_removeRowSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@row: 
-@Returns: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_text.sgml b/docs/reference/cspi/tmpl/spi_text.sgml
deleted file mode 100644 (file)
index 9e151cf..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleText Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### ENUM AccessibleTextBoundaryType ##### -->
-<para>
-
-</para>
-
-@SPI_TEXT_BOUNDARY_CHAR: 
-@SPI_TEXT_BOUNDARY_CURSOR_POS: 
-@SPI_TEXT_BOUNDARY_WORD_START: 
-@SPI_TEXT_BOUNDARY_WORD_END: 
-@SPI_TEXT_BOUNDARY_SENTENCE_START: 
-@SPI_TEXT_BOUNDARY_SENTENCE_END: 
-@SPI_TEXT_BOUNDARY_LINE_START: 
-@SPI_TEXT_BOUNDARY_LINE_END: 
-@SPI_TEXT_BOUNDARY_ATTRIBUTE_RANGE: 
-
-<!-- ##### ENUM AccessibleTextClipType ##### -->
-<para>
-
-</para>
-
-@SPI_TEXT_CLIP_NONE: 
-@SPI_TEXT_CLIP_MIN: 
-@SPI_TEXT_CLIP_MAX: 
-@SPI_TEXT_CLIP_BOTH: 
-
-<!-- ##### FUNCTION AccessibleText_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleText_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleText_addSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getAttributes ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getBoundedRanges ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@width: 
-@height: 
-@type: 
-@clipTypeX: 
-@clipTypeY: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getCaretOffset ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getCharacterCount ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getCharacterExtents ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@x: 
-@y: 
-@width: 
-@height: 
-@type: 
-
-
-<!-- ##### FUNCTION AccessibleText_getNSelections ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getOffsetAtPoint ##### -->
-<para>
-
-</para>
-
-@obj: 
-@x: 
-@y: 
-@type: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getRangeExtents ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startOffset: 
-@endOffset: 
-@x: 
-@y: 
-@width: 
-@height: 
-@type: 
-
-
-<!-- ##### FUNCTION AccessibleText_getSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectionNum: 
-@startOffset: 
-@endOffset: 
-
-
-<!-- ##### FUNCTION AccessibleText_getText ##### -->
-<para>
-
-</para>
-
-@obj: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getTextBeforeOffset ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@type: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getTextAfterOffset ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@type: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getTextAtOffset ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@type: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_removeSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectionNum: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_setCaretOffset ##### -->
-<para>
-
-</para>
-
-@obj: 
-@newOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_setSelection ##### -->
-<para>
-
-</para>
-
-@obj: 
-@selectionNum: 
-@startOffset: 
-@endOffset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getCharacterAtOffset ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getDefaultAttributes ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getAttributeRun ##### -->
-<para>
-
-</para>
-
-@obj: 
-@offset: 
-@startOffset: 
-@endOffset: 
-@includeDefaults: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleText_getDefaultAttributeSet ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleTextRange_freeRanges ##### -->
-<para>
-
-</para>
-
-@ranges: 
-
-
diff --git a/docs/reference/cspi/tmpl/spi_value.sgml b/docs/reference/cspi/tmpl/spi_value.sgml
deleted file mode 100644 (file)
index 4c0a4ae..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-AccessibleValue Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-An interface implemented by valuators, sliders, and other onscren components
-which allow discrete or continuous values to be manipulated.
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-The Value interface is exposed by sliders, scrollbars, dials, and other
-components which are used to change scalar values in an application.  The
-interface may be used to change a value in an "approximately continuous"
-fashion, or in integer increments - the interface allows the client to
-determine the incremental granularity of the adjustments possible, the
-possible range of values, and the current value.  It also allows the value to
-be programmatically set, if the implementor's state does not include READONLY.
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION Stability_Level ##### -->
-
-
-<!-- ##### FUNCTION AccessibleValue_ref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleValue_unref ##### -->
-<para>
-
-</para>
-
-@obj: 
-
-
-<!-- ##### FUNCTION AccessibleValue_getCurrentValue ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleValue_getMaximumValue ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleValue_getMinimumValue ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleValue_setCurrentValue ##### -->
-<para>
-
-</para>
-
-@obj: 
-@newValue: 
-@Returns: 
-
-
-<!-- ##### FUNCTION AccessibleValue_getMinimumIncrement ##### -->
-<para>
-
-</para>
-
-@obj: 
-@Returns: 
-
-
diff --git a/docs/reference/idl/Doxyfile b/docs/reference/idl/Doxyfile
deleted file mode 100644 (file)
index 3c032f8..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-# Doxyfile 1.4.0
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = at-spi-idl
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = 1.0
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = 
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Brazilian, Catalan, Chinese, Chinese-Traditional, Croatian, Czech, Danish, 
-# Dutch, Finnish, French, German, Greek, Hungarian, Italian, Japanese, 
-# Japanese-en (Japanese with English messages), Korean, Korean-en, Norwegian, 
-# Polish, Portuguese, Romanian, Russian, Serbian, Slovak, Slovene, Spanish, 
-# Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# This tag can be used to specify the encoding used in the generated output. 
-# The encoding is not always determined by the language that is chosen, 
-# but also whether or not the output is meant for Windows or non-Windows users. 
-# In case there is a difference, setting the USE_WINDOWS_ENCODING tag to YES 
-# forces the Windows encoding (this is the default for the Windows binary), 
-# whereas setting the tag to NO uses a Unix-style encoding (the default for 
-# all platforms other than Windows).
-
-USE_WINDOWS_ENCODING   = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = 
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-
-STRIP_FROM_PATH        = 
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like the Qt-style comments (thus requiring an 
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the DETAILS_AT_TOP tag is set to YES then Doxygen 
-# will output the detailed description near the top, like JavaDoc.
-# If set to NO, the detailed description appears after the member 
-# documentation.
-
-DETAILS_AT_TOP         = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = YES
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources 
-# only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation.
-
-SHOW_DIRECTORIES       = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from the 
-# version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the progam writes to standard output 
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT                  = ../../../idl 
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm
-
-FILE_PATTERNS          = *.idl
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = 
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories.
-
-EXCLUDE_PATTERNS       = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = 
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = NO
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = NO
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-
-GENERATE_XML           = YES
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
-# powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
-# functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images.
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that a graph may be further truncated if the graph's 
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is disabled by default, which results in a white background. 
-# Warning: Depending on the platform used, enabling this option may lead to 
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
-# read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/docs/reference/idl/Makefile.am b/docs/reference/idl/Makefile.am
deleted file mode 100644 (file)
index e7e5ce1..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-## Process this file with automake to produce Makefile.in
-
-doxygen_configfile = Doxyfile
-
-EXTRA_DIST = Doxyfile README html
-
-html/index.html:
-       -rm -rf html
-       -doxygen $(doxygen_configfile) \
-       2> doxygen-warnings.txt | tee doxygen-output.txt && cat doxygen-warnings.txt
-
-referencetopdir = $(datadir)/doc/at-spi-$(VERSION)/reference
-referencedir = $(referencetopdir)/html
-
-install-reference: html/index.html
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(referencedir)
-       @-dir='$(<D)'; for p in $$dir/*.html $$dir/*.css $$dir/*.png; do \
-         f="`echo $$p | sed -e 's|^.*/||'`"; \
-         echo " $(INSTALL_DATA) $$p $(DESTDIR)$(referencedir)/$$f"; \
-         $(INSTALL_DATA) $$p $(DESTDIR)$(referencedir)/$$f; \
-       done
-
-uninstall-reference: html/index.html
-       @$(NORMAL_UNINSTALL)
-       @-dir='$(<D)'; for p in $$dir/*.html $$dir/*.css $$dir/*.png; do \
-         f="`echo $$p | sed -e 's|^.*/||'`"; \
-         echo " rm -f $(DESTDIR)$(referencedir)/$$f"; \
-         rm -f $(DESTDIR)$(referencedir)/$$f; \
-       done
-
-all-local: html/index.html
-
-install-data-local: install-reference
-
-uninstall-local: uninstall-reference
-
-maintainer-clean-local: doc-clean
-
-.PHONY: doc-clean install-reference uninstall-reference html-clean
-
-# Direct all the doxygen console output to a text file, so we can read it later:
-# In doxywizard, disable EXTRACT_ALL to get warnings about undocumented methods.
-doxygen-warnings: html-clean html/index.html
diff --git a/docs/reference/idl/README b/docs/reference/idl/README
deleted file mode 100644 (file)
index e82db63..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-You need to have doxygen installed.
-
-make targets:
-
-all: builds the reference documentation
\ No newline at end of file
diff --git a/docs/reference/idl/at-spi-idl-docs.sgml b/docs/reference/idl/at-spi-idl-docs.sgml
deleted file mode 100644 (file)
index 03fdd43..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
-               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
-<!ENTITY at-spi-idl-accessible SYSTEM "xml/Accessible.xml">
-<!ENTITY at-spi-idl-registry SYSTEM "xml/Registry.xml">
-<!ENTITY at-spi-idl-application SYSTEM "xml/Application.xml">
-<!ENTITY at-spi-idl-action SYSTEM "xml/Action.xml">
-]>
-
-<book>
-  <bookinfo>
-    <title>AT-SPI Reference Manual : Basic Interface Definitions</title>
-  </bookinfo>
-   <chapter id="registry">
-    <title>The Accessibility Registry</title>
-    &at-spi-idl-registry;
-   </chapter>
-   <chapter id="accessible">
-    <title>Primary Accessibility Interface, Accessible</title>
-    &at-spi-idl-accessible;
-  </chapter>
-  <chapter id="application">
-    <title>Applications and Desktops</title>
-    &at-spi-idl-application;
-  </chapter>
-  <chapter id="action">
-    <title>Subinterfaces</title>
-    &at-spi-idl-action;
-  </chapter>
-</book>
diff --git a/docs/reference/idl/at-spi-idl-overrides.txt b/docs/reference/idl/at-spi-idl-overrides.txt
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/docs/reference/idl/at-spi-idl-sections.txt b/docs/reference/idl/at-spi-idl-sections.txt
deleted file mode 100644 (file)
index a4daa24..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-<SECTION>
-<FILE>Registry</FILE>
-<TITLE>The Accessibility Registry</TITLE>
-</SECTION>
-
-<SECTION>
-<FILE>Accessible</FILE>
-<TITLE>Basic Accessibility Interface, Accessible</TITLE>
-</SECTION>
-
-<SECTION>
-<FILE>Application</FILE>
-<TITLE>Applications and Desktops</TITLE>
-<SUBSECTION Desktops>
-</SECTION>
-
-<SECTION>
-<FILE>Action</FILE>
-<TITLE>Action Interface</TITLE>
-</SECTION>
-
diff --git a/docs/reference/idl/tmpl/accessible.sgml b/docs/reference/idl/tmpl/accessible.sgml
deleted file mode 100644 (file)
index ec18377..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Basic Accessibility Interface, Accessible
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
diff --git a/docs/reference/idl/tmpl/action.sgml b/docs/reference/idl/tmpl/action.sgml
deleted file mode 100644 (file)
index 2f1cddf..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Action Interface
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
diff --git a/docs/reference/idl/tmpl/application.sgml b/docs/reference/idl/tmpl/application.sgml
deleted file mode 100644 (file)
index bb6f241..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-Applications and Desktops
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
diff --git a/docs/reference/idl/tmpl/registry.sgml b/docs/reference/idl/tmpl/registry.sgml
deleted file mode 100644 (file)
index 3635753..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- ##### SECTION Title ##### -->
-The Accessibility Registry
-
-<!-- ##### SECTION Short_Description ##### -->
-
-
-<!-- ##### SECTION Long_Description ##### -->
-<para>
-
-</para>
-
-<!-- ##### SECTION See_Also ##### -->
-<para>
-
-</para>
-
diff --git a/droute/Makefile.am b/droute/Makefile.am
new file mode 100644 (file)
index 0000000..39dccbc
--- /dev/null
@@ -0,0 +1,12 @@
+noinst_LTLIBRARIES = libdroute.la
+
+libdroute_la_CFLAGS = $(DBUS_GLIB_CFLAGS) $(ATK_CFLAGS)\
+                    -DATSPI_INTROSPECTION_PATH=\"$(DEFAULT_ATSPI_INTROSPECTION_PATH)\"\
+                    -I$(top_builddir)\
+                    -I$(top_srcdir)
+
+libdroute_la_SOURCES =         \
+       droute.c                \
+       droute.h                \
+       introspect-loader.c     \
+       introspect-loader.h
similarity index 99%
rename from libspi/droute.c
rename to droute/droute.c
index eb1a24b..e4c1f91 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
  * Boston, MA 02111-1307, USA.
  */
 
-#include "droute.h"
 #include <stdlib.h>
 #include <string.h>
 
 #include <stdlib.h>
 #include <string.h>
 
+#include "droute.h"
+
 static DRouteInterface *
 find_iface (DRouteData * data, const char *name)
 {
 static DRouteInterface *
 find_iface (DRouteData * data, const char *name)
 {
similarity index 100%
rename from libspi/droute.h
rename to droute/droute.h
similarity index 90%
rename from libspi/introspect-loader.c
rename to droute/introspect-loader.c
index 548f78d..723d3d6 100644 (file)
@@ -21,7 +21,6 @@
  */
 
 #include <glib.h>
  */
 
 #include <glib.h>
-#include <accessible.h>
 
 /*
  * This file contains utilities for loading introspection XML
 
 /*
  * This file contains utilities for loading introspection XML
@@ -34,7 +33,7 @@
 /*
  * Provides the path for the introspection directory.
  */
 /*
  * Provides the path for the introspection directory.
  */
-#if !defined ATSPI_DBUS_INTROSPECTION_DIRECTORY
+#if !defined ATSPI_INTROSPECTION_PATH
     #error "No introspection XML directory defined"
 #endif
 
     #error "No introspection XML directory defined"
 #endif
 
@@ -57,9 +56,9 @@ spi_append_interface (GString *str, const char *interface)
 
   GError *err = NULL;
 
 
   GError *err = NULL;
 
-  introspection_directory = (char *) g_getenv("ATSPI_DBUS_INTROSPECTION_DIRECTORY");
+  introspection_directory = (char *) g_getenv("ATSPI_INTROSPECTION_PATH");
   if (introspection_directory == NULL)
   if (introspection_directory == NULL)
-      introspection_directory = ATSPI_DBUS_INTROSPECTION_DIRECTORY;
+      introspection_directory = ATSPI_INTROSPECTION_PATH;
 
   filename = g_build_filename(introspection_directory, interface, NULL);
 
 
   filename = g_build_filename(introspection_directory, interface, NULL);
 
similarity index 98%
rename from libspi/introspect-loader.h
rename to droute/introspect-loader.h
index fc1f70b..bfea0b7 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef SPI_INTROSPECT_LOADER_H_
 #define SPI_INTROSPECT_LOADER_H_
 
 #ifndef SPI_INTROSPECT_LOADER_H_
 #define SPI_INTROSPECT_LOADER_H_
 
+#include <glib.h>
+
 extern const char *spi_introspection_header;
 
 extern const char *spi_introspection_node_element;
 extern const char *spi_introspection_header;
 
 extern const char *spi_introspection_node_element;
index e7fa5ce..41a6dc1 100644 (file)
@@ -1,6 +1,4 @@
-idldir = $(datadir)/idl/at-spi-1.0
-
-idl_DATA =                                     \
+IDL_FILES =                                    \
        Accessibility.idl                       \
        Accessibility_Accessible.idl            \
        Accessibility_Action.idl                \
        Accessibility.idl                       \
        Accessibility_Accessible.idl            \
        Accessibility_Action.idl                \
@@ -26,4 +24,4 @@ idl_DATA =                                    \
        Accessibility_Value.idl                 \
        Accessibility_LoginHelper.idl
 
        Accessibility_Value.idl                 \
        Accessibility_LoginHelper.idl
 
-EXTRA_DIST=$(idl_DATA)
+EXTRA_DIST=$(IDL_FILES)
diff --git a/libloginhelper-1.0.pc.in b/libloginhelper-1.0.pc.in
deleted file mode 100644 (file)
index d8b338d..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-idldir=@datadir@/idl/at-spi-1.0
-
-Name: liblogin-helper
-Description: Login-Helper library for assistive technologies
-Requires: libbonobo-2.0 atk libspi-1.0
-Version: @VERSION@
-Libs: -L${libdir} -lloginhelper
-Cflags: -I${includedir}/at-spi-1.0
diff --git a/libspi-1.0-uninstalled.pc.in b/libspi-1.0-uninstalled.pc.in
deleted file mode 100644 (file)
index d8f4d69..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-idldir=${pc_top_builddir}/${pcfiledir}/idl
-
-Name: libspi
-Description: Accessibility Technology software library
-Requires: libbonobo-2.0 atk
-Version: @VERSION@
-Libs: ${pc_top_builddir}/${pcfiledir}/libspi/libspi.la
-Cflags: -I${pc_top_builddir}/${pcfiledir}
diff --git a/libspi-1.0.pc.in b/libspi-1.0.pc.in
deleted file mode 100644 (file)
index eaced17..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-libdir=@libdir@
-includedir=@includedir@
-idldir=@datadir@/idl/at-spi-1.0
-
-Name: libspi
-Description: Accessibility Technology software library
-Requires: libbonobo-2.0 atk
-Version: @VERSION@
-Libs: -L${libdir} -lspi
-Cflags: -I${includedir}/at-spi-1.0
diff --git a/libspi/Makefile.am b/libspi/Makefile.am
deleted file mode 100644 (file)
index b0a8045..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-lib_LTLIBRARIES = libspi.la
-
-#LIBSPI_DEBUG_CFLAGS=-DSPI_DEBUG
-
-INCLUDES = -I$(top_srcdir)     \
-           -I$(top_builddir)   \
-           $(LIBSPI_DEBUG_CFLAGS)      \
-           $(WARN_CFLAGS)      \
-           $(LIBSPI_CFLAGS)     \
-           $(X_CFLAGS)
-
-libspi_la_LDFLAGS = @LT_VERSION_INFO@ -no-undefined
-libspi_la_CFLAGS = -DATSPI_DBUS_INTROSPECTION_DIRECTORY="\"$(datadir)/at-spi/dbus\""
-libspi_la_LIBADD = $(LIBSPI_LIBS) $(XTST_LIBS)
-
-libspiincludedir = $(includedir)/at-spi-1.0/libspi
-
-libspiinclude_HEADERS =                \
-       Accessibility.h         \
-       accessible.h \
-       bitarray.h \
-       dbus.h \
-       droute.h \
-       introspect-loader.h
-
-BUILT_SOURCES = Accessibility.h
-CLEANFILES = Accessibility.h
-
-libspi_la_SOURCES =            \
-       Accessibility.h         \
-       accessible.c            \
-       action.c                \
-       application.c           \
-       component.c             \
-       dbus.c                  \
-       document.c              \
-       droute.c                \
-       editabletext.c          \
-       hyperlink.c             \
-       hypertext.c             \
-       image.c                 \
-       selection.c             \
-       table.c                 \
-       text.c                  \
-       tree.c                  \
-       value.c                 \
-       introspect-loader.c     \
-       introspectable.c 
-
-Accessibility.h: ../xml/spec.xml ../tools/c-constants-generator.xsl
-       xsltproc --stringparam mixed-case-prefix Accessibility_ ../tools/c-constants-generator.xsl $< >$@
-
-DONT_DIST_SOURCE = Accessibility.h
-
-dist-hook:
-       for file in $(DONT_DIST_SOURCE) ; do \
-           rm -f $(distdir)/$$file ; \
-       done
diff --git a/login-helper/Makefile.am b/login-helper/Makefile.am
deleted file mode 100644 (file)
index 10bd304..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-lib_LTLIBRARIES = libloginhelper.la
-
-LDADD = $(X_LIBS) $(LOGIN_HELPER_LIBS) 
-
-INCLUDES = -I$(top_srcdir)          \
-           -I$(top_builddir)        \
-          $(WARN_CFLAGS)       \
-           $(REGISTRYD_CFLAGS)
-
-IDL_OUT = Accessibility_LoginHelper.h Accessibility_LoginHelper-stubs.c Accessibility_LoginHelper-skels.c Accessibility_LoginHelper-common.c
-
-IDL_DEPS = \
-       $(top_srcdir)/idl/Accessibility_LoginHelper.idl
-
-BUILT_SOURCES = $(IDL_OUT) Accessibility_LoginHelper-imodule.c
-CLEANFILES = $(IDL_OUT) Accessibility_LoginHelper-imodule.c
-
-libloginhelperincludedir = $(includedir)/at-spi-1.0/login-helper
-
-libloginhelper_la_LDFLAGS = -no-undefined
-libloginhelper_la_LIBADD = $(REGISTRYD_LIBS)
-
-libloginhelperinclude_HEADERS = \
-       Accessibility_LoginHelper.h     \
-       login-helper.h                  
-
-libloginhelper_la_SOURCES =            \
-       $(IDL_OUT)              \
-       login-helper.c
-
-IDLFLAGS = -I$(BONOBO_ACTIVATION_IDL_DIR) \
-          -I$(LIBBONOBO_IDL_DIR)         \
-          -I$(top_srcdir)/idl            \
-          --add-imodule
-
-$(IDL_OUT) Accessibility_LoginHelper-imodule.c : $(IDL_DEPS) $(ORBIT_IDL)
-       $(ORBIT_IDL) $(IDLFLAGS) $(top_srcdir)/idl/Accessibility_LoginHelper.idl
-
-orbittypelibdir = $(libdir)/orbit-2.0
-orbittypelib_LTLIBRARIES = Accessibility_LoginHelper_module.la
-
-Accessibility_LoginHelper_module_la_LDFLAGS = \
-       -export-dynamic -module -avoid-version -no-undefined
-Accessibility_LoginHelper_module_la_LIBADD = \
-       $(ORBIT_LIBS)
-Accessibility_LoginHelper_module_la_SOURCES = \
-       Accessibility_LoginHelper-imodule.c
-
-DONT_DIST_SOURCE = $(IDL_OUT) Accessibility_LoginHelper-imodule.c
-
-dist-hook:
-       for file in $(DONT_DIST_SOURCE) ; do \
-           rm -f $(distdir)/$$file ; \
-       done
-
diff --git a/login-helper/login-helper.c b/login-helper/login-helper.c
deleted file mode 100644 (file)
index 180ea93..0000000
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * LoginHelper interface 
- * Copyright 2004 Sun Microsystems 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.
- */
-
-/* login-helper.c: minimal implementation of Accessibility_LoginHelper.idl */
-#include <config.h>
-#include <libbonobo.h>
-#include "login-helper.h"
-
-/* Our parent Gtk object type */
-#define PARENT_TYPE BONOBO_TYPE_OBJECT
-
-/* A pointer to our parent object class */
-static BonoboObjectClass *bonobo_object_parent_class;
-
-static void
-login_helper_finalize (GObject *object)
-{
-  (G_OBJECT_CLASS (bonobo_object_parent_class))->finalize (object);
-}
-
-static gboolean
-login_helper_set_safe (LoginHelper *helper, gboolean safe)
-{
-  LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
-  
-  if (klass->set_safe)
-    return (* klass->set_safe)(helper, safe);
-  else
-    return FALSE;
-}
-
-static CORBA_boolean
-impl_login_helper_set_safe (PortableServer_Servant servant,
-                           const CORBA_boolean safe,
-                           CORBA_Environment *ev)
-{
-  LoginHelper *helper = LOGIN_HELPER (bonobo_object_from_servant (servant));
-
-  return login_helper_set_safe (helper, safe);
-}
-
-static LoginHelperDeviceReqFlags
-login_helper_get_device_reqs (LoginHelper *helper)
-{
-  LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
-  
-  if (klass->get_device_reqs)
-    return  (* klass->get_device_reqs)(helper);
-  else
-    return 0;
-}
-
-static Accessibility_LoginHelper_DeviceReqList*
-impl_login_helper_get_device_reqs (PortableServer_Servant servant,
-                                  CORBA_Environment *ev)
-{
-  LoginHelper *helper = LOGIN_HELPER (bonobo_object_from_servant (servant));
-  LoginHelperDeviceReqFlags flags = 0;
-  gint n_reqs = 0, i = 1, j = 1;
-  Accessibility_LoginHelper_DeviceReqList *list;
-
-  flags = login_helper_get_device_reqs (helper);
-
-  while (i <= LOGIN_HELPER_LAST_DEFINED) 
-  {
-      if (flags & i) n_reqs++;
-      i <<= 1;
-  }
-  
-  list = Accessibility_LoginHelper_DeviceReqList__alloc ();
-  list->_length = n_reqs; 
-  list->_buffer = Accessibility_LoginHelper_DeviceReqList_allocbuf (list->_length);
-
-  for (i = 0, j = 1; i < n_reqs; i++) 
-  {
-      Accessibility_LoginHelper_DeviceReq req;
-      while ((flags & j) == 0) {
-         j <<= 1;
-      }
-      switch (j)
-      {
-         case LOGIN_HELPER_GUI_EVENTS:
-             req = Accessibility_LoginHelper_GUI_EVENTS;
-             break;
-         case LOGIN_HELPER_CORE_KEYBOARD:
-             req = Accessibility_LoginHelper_CORE_KEYBOARD;
-             break;
-         case LOGIN_HELPER_CORE_POINTER:
-             req = Accessibility_LoginHelper_CORE_POINTER;
-             break;
-         case LOGIN_HELPER_EXT_INPUT:
-             req = Accessibility_LoginHelper_EXT_INPUT;
-             break;
-         case LOGIN_HELPER_POST_WINDOWS:
-             req = Accessibility_LoginHelper_POST_WINDOWS;
-             break;
-         case LOGIN_HELPER_AUDIO_OUT:
-             req = Accessibility_LoginHelper_AUDIO_OUT;
-             break;
-         case LOGIN_HELPER_AUDIO_IN:
-             req = Accessibility_LoginHelper_AUDIO_IN;
-             break;
-         case LOGIN_HELPER_NETWORK:
-             req = Accessibility_LoginHelper_NETWORK;
-             break;
-         case LOGIN_HELPER_LOCALHOST:
-             req = Accessibility_LoginHelper_LOCALHOST;
-             break;
-         case LOGIN_HELPER_SERIAL_OUT:
-             req = Accessibility_LoginHelper_SERIAL_OUT;
-             break;
-         case LOGIN_HELPER_SERIAL_IN:
-             req = Accessibility_LoginHelper_SERIAL_IN;
-             break;
-         default:
-             req = 0;
-             break;
-      }
-      list->_buffer[i] = req;
-      j <<= 1;
-  }  
-
-  return list;
-}
-
-static Window*
-login_helper_get_raise_windows (LoginHelper *helper)
-{
-  LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
-  
-  if (klass->get_raise_windows)
-    return (* klass->get_raise_windows)(helper);
-  else
-    return NULL;
-}
-
-static Accessibility_LoginHelper_WindowList*
-impl_login_helper_get_raise_windows (PortableServer_Servant servant,
-                                    CORBA_Environment *ev)
-{
-  LoginHelper *helper = LOGIN_HELPER (bonobo_object_from_servant (servant));
-  unsigned long *wids;
-  Accessibility_LoginHelper_WindowList *windows;
-
-  wids = login_helper_get_raise_windows (helper);
-
-  if (wids && *wids)
-    {
-      gint i, count = 0;
-      while (wids[count])
-       {
-         ++count;
-       }
-      windows = Accessibility_LoginHelper_WindowList__alloc ();
-      windows->_length = count;
-      windows->_buffer = Accessibility_LoginHelper_WindowList_allocbuf (windows->_length);
-      for (i = 0; i < count; ++i)
-       {
-          Accessibility_LoginHelper_WindowInfo winfo;
-         winfo.winID = wids[i];
-         windows->_buffer [i] = winfo;
-       }
-      g_free (wids);
-      return windows;
-    }
-  else
-    {
-      return NULL;
-    }
-}
-
-static void
-login_helper_class_init (LoginHelperClass *klass)
-{
-  GObjectClass * object_class = (GObjectClass *) klass;
-  POA_Accessibility_LoginHelper__epv *epv = &klass->epv;
-
-  bonobo_object_parent_class = g_type_class_peek_parent (klass);
-
-  object_class->finalize = login_helper_finalize;
-  
-  epv->getRaiseWindows = impl_login_helper_get_raise_windows;
-  epv->getDeviceReqs = impl_login_helper_get_device_reqs;
-  epv->setSafe = impl_login_helper_set_safe;
-}
-
-static void
-login_helper_init (GObject *object)
-{
-}
-
-BONOBO_TYPE_FUNC_FULL (LoginHelper,
-                      Accessibility_LoginHelper,
-                      PARENT_TYPE, login_helper)
-
diff --git a/login-helper/login-helper.h b/login-helper/login-helper.h
deleted file mode 100644 (file)
index 951d7f6..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * LoginHelper
- *
- * Copyright 2004 Sun Microsystems 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.
- */
-
-#ifndef LOGIN_HELPER_H_
-#define LOGIN_HELPER_H_
-
-#include <login-helper/Accessibility_LoginHelper.h>
-#include <X11/X.h>
-
-G_BEGIN_DECLS
-
-typedef struct _LoginHelper LoginHelper;
-typedef struct _LoginHelperClass LoginHelperClass;
-
-#define LOGIN_HELPER_TYPE        (login_helper_get_type ())
-#define LOGIN_HELPER(o)          (G_TYPE_CHECK_INSTANCE_CAST ((o), LOGIN_HELPER_TYPE, LoginHelper))
-#define LOGIN_HELPER_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), LOGIN_HELPER_TYPE, LoginHelperClass))
-#define LOGIN_HELPER_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS((o), LOGIN_HELPER_TYPE, LoginHelperClass))
-#define IS_LOGIN_HELPER(o)       (G_TYPE_CHECK_INSTANCE_TYPE ((o), LOGIN_HELPER_TYPE))
-#define IS_LOGIN_HELPER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), LOGIN_HELPER_TYPE))
-
-struct _LoginHelper {
-  BonoboObject      parent;
-
-};
-
-typedef unsigned long LoginHelperDeviceReqFlags;
-
-#define LOGIN_HELPER_GUI_EVENTS 1
-#define LOGIN_HELPER_CORE_KEYBOARD 2
-#define LOGIN_HELPER_CORE_POINTER 4
-#define LOGIN_HELPER_EXT_INPUT 8
-#define LOGIN_HELPER_POST_WINDOWS 16
-#define LOGIN_HELPER_AUDIO_OUT 32
-#define LOGIN_HELPER_AUDIO_IN 64
-#define LOGIN_HELPER_NETWORK 128
-#define LOGIN_HELPER_LOCALHOST 256 
-#define LOGIN_HELPER_SERIAL_OUT 512
-#define LOGIN_HELPER_SERIAL_IN 1024
-#define LOGIN_HELPER_LAST_DEFINED 2048
-
-struct _LoginHelperClass {
-  BonoboObjectClass parent_class;
-
-  POA_Accessibility_LoginHelper__epv epv;
-
-  gboolean (*set_safe) (LoginHelper *helper, gboolean safe);
-  LoginHelperDeviceReqFlags (*get_device_reqs) (LoginHelper *helper);
-  Window*  (*get_raise_windows) (LoginHelper *helper); 
-};
-
-GType        login_helper_get_type (void) G_GNUC_CONST;
-LoginHelper *login_helper_new      (void);
-
-G_END_DECLS
-
-#endif /* LOGIN_HELPER_H */
diff --git a/patches/atk-bridge-log.patch b/patches/atk-bridge-log.patch
deleted file mode 100644 (file)
index 060acaa..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: atk-bridge/bridge.c
-===================================================================
---- atk-bridge/bridge.c        (revision 1010)
-+++ atk-bridge/bridge.c        (working copy)
-@@ -731,6 +731,17 @@
-   CORBA_exception_free (&ev);
- }
-+static gint evcount = 0, evcount_orig = 0, evcount_semi = 0;
-+static gboolean have_idle = FALSE;
-+
-+gboolean theoretical_sig_dispatch(gpointer data)
-+{
-+  have_idle = FALSE;
-+  printf("%s: idle: %d %d\n", atk_object_get_name(atk_get_root()), evcount - evcount_orig, evcount - evcount_semi);
-+  evcount_orig = evcount_semi = evcount;
-+  return FALSE;
-+}
-+
- static void
- spi_atk_emit_eventv (const GObject         *gobject,
-                    long                   detail1,
-@@ -791,6 +802,20 @@
-     bridge_threads_leave (); 
-     Accessibility_Registry_notifyEvent (registry, 
-                                         &e, &ev);
-+  if (!strcmp(e.type, "object:children-changed:add") ||
-+      !strcmp(e.type, "object:children-changed:remove") ||
-+      !strcmp(e.type, "object:property-change:accessible-parent") ||
-+      !strncmp(e.type, "object:state-change", 19) ||
-+      !strcmp(e.type, "object:property-change:accessible-role"))
-+  {
-+  }
-+  else
-+  {
-+    if (evcount - evcount_semi > 10) printf("%s: semi: %d %s\n", atk_object_get_name(atk_get_root()), evcount - evcount_semi, e.type);
-+    evcount_semi = evcount;
-+  }
-+printf("%s: %d: %s: %p %d %d\n", atk_object_get_name(atk_get_root()), ++evcount, e.type, gobject, detail1, detail2);
-+if (!have_idle) g_idle_add(theoretical_sig_dispatch, NULL); have_idle = TRUE;
-     bridge_threads_enter ();
- #ifdef SPI_BRIDGE_DEBUG
-     if (ev._major != CORBA_NO_EXCEPTION)
diff --git a/patches/atk-bridge-log.patch.README b/patches/atk-bridge-log.patch.README
deleted file mode 100644 (file)
index 302d339..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-This is a patch to the original CORBA-based atk-bridge that causes it to
-log events to standard error.  Events are counted, and an idle handler
-is added when an event is received that logs the number of events that
-have occurred since it was last called.  This allows one to analyze
-the number of events that a program generated along with the amount of
-consolidation that could theoretically be done by deferring the sending
-to an idle handler.
-
-Lines starting with "semi" track the number of events that
-could be combined if certain types of events break the flow
-(currently all events other than object:children-changed,
-object:property-change:accessible-praent, and object:state-changed).
diff --git a/po/ChangeLog b/po/ChangeLog
deleted file mode 100644 (file)
index 6f45c44..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-2008-03-21  Erdal Ronahi  <erdal dot ronahi at gmail dot com>
-
-       * LINGUAS: Added Kurdish (ku)
-       * ku.po: Added Kurdish translation.
-
-2008-03-16  Ihar Hrachyshka <booxter@lacinka.org>
-
-       * be@latin.po: Added Belarusian Latin translation.
-       * LINGUAS: Added be@latin.
-
-2008-02-28  Li Yuan  <li.yuan@sun.com>
-
-       * POTFILES.skip:
-       Added Accessibility_Registry.server.in to POTFILES.skip since
-       we have translation strings in Accessibility_Registry.server.in.in.
-
-2006-03-30  Guntupalli Karunakar  <karunakar@indlinux.org>
-
-       * dz.po: Added Dzongkha translation.
-
-2006-03-20  Vladimer Sichinava  <vlsichinava@gmail.com>
-
-       * ka.po: Added Georgian translation.
-
-2005-12-29  Abel Cheung  <maddog@linuxhall.org>
-
-       * zh_HK.po: New Chinese (Hong Kong) translation from GNOME HK Team
-
-2005-11-20  Theppitak Karoonboonyanan  <thep@linux.thai.net>
-
-       * th.po: Added Thai translation.
-
-2005-11-18  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2005-08-21  Kostas Papadimas  <pkst@gmx.net>
-
-       * el.po: Updated Greek translation.
-
-2005-08-15  Mugurel Tudor  <mugurelu@gnome.ro>
-
-       * ro.po: Updated Romanian translation
-       by Mişu Moldovan <dumol@gnome.ro>
-
-2005-08-14  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation updated.
-
-2005-08-11  Marcel Telka  <marcel@telka.sk>
-
-       * POTFILES.skip: Removed registryd/Accessibility_Registry.server.in.
-
-2005-07-09  Alexander Shopov  <ash@contact.bg>
-
-       * bg.po: Updated Bulgarian translation by
-       Alexander Shopov <ash@contact.bg>
-
-2005-06-22  Abel Cheung  <maddog@linuxhall.org>
-
-       * zh_TW.po: Fix language team reference.
-
-2005-06-06  Swapnil Hajare  <dreamil@gmail.com>
-
-       * Added Marathi (mr_IN) translations.
-
-2005-05-04  Priit Laes  <plaes@cvs.gnome.org>
-
-       * et.po: Translation updated.
-
-2005-04-15  Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>
-
-       * ug.po: Uighur translation added.
-
-2005-03-30  Steve Murphy  <murf@e-tools.com>
-
-       * rw.po: Kinyarwanda translation added.
-
-2005-03-18  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation updated.
-
-2005-03-18  Gabor Kelemen  <kelemeng@gnome.hu>
-
-       * hu.po: Hungarian translation added.
-
-2005-03-17  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2005-02-16  Adi Attar  <aattar@cvs.gnome.org>
-
-       * xh.po: Added Xhosa translation.
-
-2005-02-09  Maxim Dziumanenko <mvd@mylinux.com.ua>
-
-       * uk.po: Fix Ukrainian translation.
-
-2005-01-15  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * POTFILES.skip: Add *.server.in file.
-
-2005-01-13  Alexander Winston  <alexander.winston@comcast.net>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2004-10-11  Mətin Əmirov  <metin@karegen.com>
-
-       * ka.po: Translation added by Aiet Kolkhi.
-
-2004-10-02  Jesus Bravo Alvarez  <suso@trasno.net>
-
-       * gl.po: Added Galician translation.
-
-2004-09-14  Abel Cheung  <maddog@linuxhall.org>
-
-       * zh_TW.po: New traditional Chinese translation by GNOME HK Team..
-
-2004-09-07  Adam Weinberger  <adamw@gnome.org>
-
-       * en_CA.po: Updated Canadian English translation.
-
-2004-09-03  Gora Mohanty  <gmohanty@cvs.gnome.org>
-       * or.po: Updated Oriya translation.
-
-2004-08-24  Pawan Chitrakar  <pawan@nplinux.org>
-
-       * ne.po: Updated Nepali Translation
-
-2004-08-20  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-08-18  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-08-16  Christian Rose  <menthos@menthos.com>
-
-       * bs.po: Added Bosnian translation by
-       Kenan Hadžiavdić <kenanh@frisurf.no>.
-
-2004-08-13  Tommi Vainikainen  <thv@iki.fi>
-
-       * fi.po: Unified some fields in po headers for Finnish team.
-
-2004-08-12  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * nb.po: Added correctly named Norwegian translation. 
-
-2004-08-09  David Lodge <dave@cirt.net>
-
-       * en_GB.po: Added Old English translation
-
-2004-07-21  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * hi.po: Updated completed Hindi translation.
-
-2004-06-28  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Translation updated.
-
-2004-05-27  Alexander Shopov <ash@contact.bg>
-       * bg.po: Added Bulgarian translation by
-       Vladimir Petkov <vpetkov@i-space.org>
-
-2004-05-03  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * wa.po: Added Walloon file
-
-2004-04-08  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * gu.po: Added Gujurati translation by
-        Gujarati Team <magnet@magnet-i.com>.
-
-2004-03-24  Alexander Winston  <alexander.winston@comcast.net>
-
-       * en_CA.po: Added Canadian English translation.
-
-2004-03-16  Gareth Owen  <gowen72@yahoo.com>
-
-       * en_GB.po: Added British translation.
-
-2004-03-15  Mugurel Tudor  <mugurelu@go.ro>
-
-       * ro.po: Updated Romanian translation
-       by Mişu Moldovan <dumol@go.ro>
-
-2004-03-15  Nikos Charonitakis  <frolix68@yahoo.gr>
-
-       * el.po: Updated Greek translation.
-
-2004-03-07  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr@ije.po: Added Serbian Jekavian translation by Bojan Suzić
-       <bojans@teol.net>.
-
-2004-03-03  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * pa.po: Added Punjabi translation by
-        Amanpreet Singh Alam <amanlinux@netscape.net>.
-
-2004-02-23  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * hi.po: Updated Hindi translation.
-
-2004-02-20  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Fixed Albanian translation.
-
-2004-02-12  Arafat Medini  <lumina@silverpen.de>
-                                                                                
-        * ar.po: Updated faulty Arabic translation.
-
-=======
-2004-02-12  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po: Reviewed Serbian translation.
-
->>>>>>> 1.79
-2004-02-11  Arafat Medini  <lumina@silverpen.de>
-                                                                                
-        * ar.po: Updated Arabic translation.
-
-2004-02-01  Robert Sedak  <robert.sedak@sk.htnet.hr>
-
-       * hr.po: Updated Croatian translation.
-
-2004-01-31  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Updated Albanian translation.
-
-2004-01-28  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Fixed Czech translation.
-
-2004-01-27  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Updated Norwegian Nynorsk translation.
-
-2004.01.09  Arafat Medini <lumina@silverpen.de>
-                                                                                
-       * ar.po: Changed .po format to UTF-8
-
-2004.01.09  Arafat Medini <lumina@silverpen.de>
-                                                                                
-       * ar.po: Updated Arabic translation
-
-2004-01-01  Roozbeh Pournader  <roozbeh@sharif.edu>
-
-       * fa.po: Added Persian translation.
-
-2003-12-28  Christian Rose  <menthos@menthos.com>
-
-       * hr.po: Updated Croatian translation by
-       Robert Sedak <robert.sedak@sk.tel.hr>.
-
-2003-12-20  Arafat Medini  <lumina@silverpen.de>
-
-       * ar.po: Added Arabic po
-
-2003-12-16     Mohammad DAMT  <mdamt@bisnisweb.com>
-
-       * id.po: Added Indonesian translation by Ahmad Riza H Nst <ari@160c.afraid.org>
-
-2003-12-04   Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Dutch translation updated by Vincent van Adrighem.
-
-2003-12-04   Vincent van Adrighem  <adrighem@gnome.org>
-
-       * nl.po: Dutch translation updated by Vincent van Adrighem.
-
-2003-09-30  Christian Rose  <menthos@menthos.com>
-
-       * eu.po: Added Basque translation by
-       Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>.
-
-2003-09-28  Kjartan Maraas  <kmaraas@gnome.org>
-
-       * no.po: Added Norwegian (bokmal) translation.
-
-2003-09-28  Gediminas Paulauskas  <menesis@delfi.lt>
-
-       * lt.po: Added Lithuanian translation by Tomas Kuliavas.
-
-2003-09-21  Åsmund Skjæveland  <aasmunds@fys.uio.no>
-
-       * nn.po: Created Norwegian (nynorsk) translation.
-
-2003-09-19  Yuriy Syrota  <yuriy@beer.com>
-
-       * uk.po: Added Ukrainian translation by Taras
-       Boychuk <btr1@torba.com>.
-
-2003-09-05  Taneem Ahmed  <taneem@bengalinux.org>
-
-       * bn.po: Added Bangla translation by Sayamindu
-       of Ankur group <gnome-translation@bengalinux.org>.
-
-2003-09-02  Mugurel Tudor <mugurelu@go.ro>
-
-       * ro.po: Added Romanian translation by
-               Mişu Moldovan  <dumol@go.ro>
-
-2003-08-31  Sami Pesonen  <sampeson@iki.fi>
-
-       * fi.po: Updated Finnish translation after QA review.
-
-2003-08-30  KAMAGASAKO Masatoshi  <emerald@gnome.gr.jp>
-
-       * ja.po: Added Japanese translation.
-
-2003-08-28  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>
-
-        * es.po: Revision of Spanish translation by
-                 Francisco Javier F. Serrador <serrador@arrakis.es>.
-
-2003-08-24  Duarte Loreto <happyguy_pt@hotmail.com>
-
-        * pt.po: Updated Portuguese translation.
-
-2003-08-22  Christian Rose  <menthos@menthos.com>
-
-       * ne.po: Added Nepali translation by
-       Pawan Chitrakar <pawan@nplinux.org>.
-
-2003-08-18  Metin Amiroff <metin@karegen.com>
-
-       * az.po: Updated Azerbaijani translation.
-
-2003-08-17  Sanlig Badral  <badral@openmn.org>
-
-       * mn.po: Added Mongolian translation.
-
-2003-08-16  Tõivo Leedjärv  <toivo@linux.ee>
-
-       * et.po: Added Estonian translation
-       by Priit Laes <amd@tt.ee>.
-
-2003-08-10  Kostas Papadimas  <pkst@gmx.net>
-
-       * el.po: Added Greek translation.
-
-2003-08-10  Sami Pesonen  <sampeson@iki.fi>
-
-       * fi.po: Added Finnish translation.
-
-2003-08-08  Guntupalli Karunakar  <karunakar@freedomink.org>
-
-       * hi.po: Added Hindi translation.
-
-2003-08-06  Wang Jian  <lark@linux.net.cn>
-
-       * zh_CN.po: Added Simplified Chinese translation by
-       Yi Yang <yang_yi_cn@yahoo.com>.
-
-2003-08-01  Metin Amiroff<metin@karegen.com>
-
-       * az.po: Added Azerbaijani translation.
-
-2003-08-01  Richard Allen <ra@ra.is>
-
-       * is.po: Added Icelandic translation.
-
-2003-07-30  Alessio Frusciante  <algol@firenze.linux.it>
-
-       * it.po: Added Italian translation.
-
-2003-07-28  Changwoo Ryu  <cwryu@debian.org>
-
-       * da.po: Added Korean translation.
-
-2003-07-28  Ole Laursen  <olau@hardworking.dk>
-
-       * da.po: Added Danish translation.
-
-2003-07-27  Laurent Dhima  <laurenti@alblinux.net>
-
-       * sq.po: Added Albanian translation.
-2003-07-27  Hasbullah Bin Pit  <sebol@ikhlas.com>
-                                                                                
-        * ms.po: Added Malay translation.
-
-2003-07-24  Pablo Saratxaga  <pablo@mandrakesoft.com>
-
-       * vi.po: Added Vietnamese file
-       * nl.po: fixed header
-
-2003-07-24  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * be.po: Added Belarusian translation
-       from Belarusian team <i18n@mova.org>.
-
-2003-07-16  Dmitry G. Mastrukov  <dmitry@taurussoft.org>
-
-       * ru.po: Added Russian translation
-       from Russian team <gnome-cyr@gnome.org>.
-
-2003-07-16  Duarte Loreto <happyguy_pt@hotmail.com>
-
-        * pt.po: Added Portuguese translation.
-
-2003-07-15  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Updated Slovak translation.
-
-2003-07-14  Danilo Šegan  <dsegan@gmx.net>
-
-       * sr.po, sr@Latn.po: Added Serbian translation by Serbian team
-       (Prevod.org).
-
-2003-07-10  Joel Brich <joel.brich@laposte.net>
-
-       * eo.po: Added Esperanto translation
-       from Charles Voelger <cvoelger@dweasel.com>
-
-2003-07-09  Gustavo Noronha Silva  <kov@debian.org>
-
-       * pt_BR.po: Added Brazilian Translation.
-
-2003-07-08  Dafydd Harries  <daf@parnassus.ath.cx>
-
-       * cy.po: Updated Welsh translation.
-
-2003-07-08  Vincent van Adrighem  <V.vanAdrighem@dirck.mine.nu>
-
-       * nl.po: Dutch translation added.
-
-2003-07-07  Pablo Gonzalo del Campo  <pablodc@bigfoot.com>
-
-        * es.po: Added Spanish translation.
-
-2003-07-06  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation.
-
-2003-07-06  Jordi Mallach  <jordi@sindominio.net>
-
-       * ca.po: Added Catalan translation.
-
-2003-07-06  Christophe Merlet  <redfox@redfoxcenter.org>
-
-       * fr.po: Added French translation.
-
-2003-07-05  Gil "Dolfin" Osher <dolfin@rpg.org.il>
-
-       * he.po: Updated Hebrew translation.
-
-2003-07-02  Christian Neumair  <chris@gnome-de.org>
-
-       * de.po: Added German translation.
-
-2003-07-02  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2003-07-02  Christian Rose  <menthos@menthos.com>
-
-       * POTFILES.in: Added missing file.
-       * sv.po: Updated Swedish translation.
-
-2003-07-01  Dafydd Harries  <daf@parnassus.ath.cx>
-
-       * cy.po: New Welsh translation.
-
-2003-07-01  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation.
-
-2003-07-01  Miloslav Trmac  <mitr@volny.cz>
-
-       * cs.po: Updated Czech translation.
-
-2003-07-01  Marcel Telka  <marcel@telka.sk>
-
-       * sk.po: Added Slovak translation.
-
-2003-07-01  Artur Flinta  <aflinta@cvs.gnome.org>
-
-       * pl.po: Updated Polish translation.
-
-2003-07-01  Gil "Dolfin" Osher <dolfin@rpg.org.il>
-
-       * he.po: Added Hebrew translation.
-
-2003-06-28  Christian Rose  <menthos@menthos.com>
-
-       * sv.po: Added Swedish translation.
-
-2003-06-28  Christian Rose  <menthos@menthos.com>
-
-       * POTFILES.in: Added missing file.
-       * .cvsignore: Added more entries.
-
diff --git a/po/LINGUAS b/po/LINGUAS
deleted file mode 100644 (file)
index 4d1c78a..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-# please keep this list sorted alphabetically
-#
-ar
-az
-be
-be@latin
-bg
-bn
-bs
-ca
-cs
-cy
-da
-de
-dz
-el
-en_CA
-en_GB
-eo
-es
-et
-eu
-fa
-fi
-fr
-gl
-gu
-he
-hi
-hr
-hu
-id
-is
-it
-ja
-ka
-ko
-ku
-lt
-mn
-mr
-ms
-nb
-ne
-nl
-nn
-oc
-or
-pa
-pl
-pt_BR
-pt
-ro
-ru
-rw
-sk
-sl
-sq
-sr@ije
-sr@Latn
-sr
-sv
-th
-ug
-uk
-vi
-wa
-xh
-zh_CN
-zh_HK
-zh_TW
diff --git a/po/POTFILES.in b/po/POTFILES.in
deleted file mode 100644 (file)
index f509b7b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# List of source files containing translatable strings.
-# Please keep this file sorted alphabetically.
-registryd/Accessibility_Registry.server.in.in
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
deleted file mode 100644 (file)
index 0357969..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# List of source files containing strings that need not be translated.
-# Please keep this file sorted alphabetically.
-atk-bridge/bridge.c
-registryd/Accessibility_Registry.server.in
diff --git a/po/ang.po b/po/ang.po
deleted file mode 100644 (file)
index e98c164..0000000
--- a/po/ang.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# English/GB translation of PACKAGE.
-# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# James Johnson <modean52@comcast.net>, 2004
-# 
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-09 21:09+0100\n"
-"PO-Revision-Date: 2004-08-09 21:10+0100\n"
-"Last-Translator: James Johnson <modean52@comcast.net>\n"
-"Language-Team: Old English <modean52@comcast.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Nambóc"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Geférnesbóc"
-
diff --git a/po/ar.po b/po/ar.po
deleted file mode 100644 (file)
index c922808..0000000
--- a/po/ar.po
+++ /dev/null
@@ -1,35 +0,0 @@
-# Arabic AT-SPI translation.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the AT-SPI package.
-# Arafat Medini <lumina@silverpen.de>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: AT-SPI 1.3.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-02-12 03:02+0100\n"
-"PO-Revision-Date: 2004-02-12 10:26+0100\n"
-"Last-Translator: Arafat Medini <lumina@silverpen.de>\n"
-"Language-Team: Arabic <doc@arabeyes.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "فشل لم يوجد متحكم لأحداث الأجهزة.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "تنبيه: وقع تقرير حدث مصفر."
-
-# CHECK
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "سجل AT-SPI"
-
-# CHECK
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "سجل الإعانة"
-
diff --git a/po/az.po b/po/az.po
deleted file mode 100644 (file)
index a53ae91..0000000
--- a/po/az.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# at-spi.HEAD.po faylının Azərbaycan dilirnə tərcüməsi.
-# Copyright (C) 2003 THE Mətin Əmirov
-# This file is distributed under the same license as the at-spi package.
-# Mətin Əmirov <metin@karegen.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 2.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-08-11 11:14+0200\n"
-"PO-Revision-Date: 2003-08-06 18:06+0200\n"
-"Last-Translator: Mətin Əmirov <metin@karegen.com>\n"
-"Language-Team: Azerbaijani <gnome@azitt.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "bacarılmadı: avadanlıq hadisə idarəçisi tapılmadı.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "XƏBƏRDARLIQ: NULL açar hadisəsi raport edildi."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Qeydi"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Yetişmə Qabiliyyəti Qeydi"
diff --git a/po/be.po b/po/be.po
deleted file mode 100644 (file)
index ad76109..0000000
--- a/po/be.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Ales Nyakhaychyk <nab@mail.by>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-12 03:51+0200\n"
-"PO-Revision-Date: 2003-07-23 09:52+0300\n"
-"Last-Translator: Ales Nyakhaychyk <nab@mail.by>\n"
-"Language-Team: Belarusian <i18n@mova.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 0.9.6\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "памылка: не адшуканы кіраўнік падзей прылады.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "УВАГА: паведамлены NULL ключ падзеі."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Рэгістар AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Рэгістар даступнасьці"
-
diff --git a/po/be@latin.po b/po/be@latin.po
deleted file mode 100644 (file)
index ddfb589..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# Biełaruski pierakład at-spi
-# Copyright (C) 2008 Ihar Hrachyshka
-# This file is distributed under the same license as the at-spi package.
-# Ihar Hrachyshka <booxter@lacinka.org>.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-16 12:42+0200\n"
-"PO-Revision-Date: 2008-03-16 12:44+0200\n"
-"Last-Translator: Ihar Hrachyshka <booxter@lacinka.org>\n"
-"Language-Team: Belarusian Latin <i18n@mova.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Rehistar AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Rehistar dastupnaści"
diff --git a/po/bg.po b/po/bg.po
deleted file mode 100644 (file)
index 2fe0522..0000000
--- a/po/bg.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of at-spi
-# Copyright (C) 2004 Free Software Foundation
-# This file is distributed under the same license as the at-spi package.
-# Vladimir Petkov <vpetkov@i-space.org>, 2004.
-# Alexander Shopov <ash@contact.bg>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi-gnome-2-6\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-07-09 15:45+0300\n"
-"PO-Revision-Date: 2005-07-08 22:54+0300\n"
-"Last-Translator:  Vladimir Petkov <vpetkov@i-space.org>\n"
-"Language-Team: Bulgarian <dict@fsa-bg.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Регистър AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Регистър за достъпност"
diff --git a/po/bn.po b/po/bn.po
deleted file mode 100644 (file)
index ddb7952..0000000
--- a/po/bn.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# Bengali translation of at-spi.
-# Copyright (C) 2003 THE at-spi'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# Sayamindu Dasgupta <unmadindu@bengalinux.org>, 2003.
-# 
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-09-05 02:26-0400\n"
-"PO-Revision-Date: 2003-08-27 00:33+0530\n"
-"Last-Translator: Sayamindu Dasgupta <unmadindu@bengalinux.org>\n"
-"Language-Team: Bengali <gnome-translation@bengalinux.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "ব্যর্থ: কোন ডিভাইস ইভেন্ট কন্ট্রোলার খুঁজে পাওয়া গেল না।\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "সাবধান: NULL কী ইভেন্ট রিপোর্ট করা হয়েছে। "
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "এ-টি-এস-পি-আই রেজিস্ট্রি"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "সহায়ক প্রযুক্তি রেজিস্ট্রি"
diff --git a/po/bs.po b/po/bs.po
deleted file mode 100644 (file)
index b539d52..0000000
--- a/po/bs.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# translation of at-spi to Bosnian
-# This file is distributed under the same license as the at-spi package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Kenan Hadžiavdić <kenanh@frisurf.no>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-25 19:31+0200\n"
-"PO-Revision-Date: 2004-03-04 02:10+0000\n"
-"Last-Translator: Kenan Hadžiavdić <kenanh@frisurf.no>\n"
-"Language-Team: Bosnian <lokal@lugbih.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI registar"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registar dostupnosti"
-
-#~ msgid "failure: no device event controller found.\n"
-#~ msgstr "greška: nije pronađen kontrolor događaja za uređaj.\n"
-
-#~ msgid "WARNING: NULL key event reported."
-#~ msgstr "UPOZORENJE: prijavljen je NULL događaj tipke."
diff --git a/po/ca.po b/po/ca.po
deleted file mode 100644 (file)
index c2695d4..0000000
--- a/po/ca.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Catalan translation of at-spi.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Jordi Mallach <jordi@sindominio.net>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-06 11:49+0200\n"
-"PO-Revision-Date: 2003-07-06 11:52+0200\n"
-"Last-Translator: Jordi Mallach <jordi@sindominio.net>\n"
-"Language-Team: Catalan <tradgnome@softcatala.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "falla: no s'ha trobat un controlador d'events de dispositiu\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "AVÍS: s'ha rebut un event de tecla NULA."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registre d'AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registre d'accessibilitat"
diff --git a/po/cs.po b/po/cs.po
deleted file mode 100644 (file)
index 687190e..0000000
--- a/po/cs.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Czech translation of at-spin
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# Miloslav Trmac <mitr@volny.cz>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-01-24 03:14+0100\n"
-"PO-Revision-Date: 2003-07-02 17:52+0200\n"
-"Last-Translator: Miloslav Trmac <mitr@volny.cz>\n"
-"Language-Team: Czech <cs@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "selhání: nenalezen řadič události zařízení.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "VAROVÁNÍ: ohlášena NULL událost klávesy."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registr AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registr usnadnění"
diff --git a/po/cy.po b/po/cy.po
deleted file mode 100644 (file)
index d89b9c8..0000000
--- a/po/cy.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# at-spi yn Gymraeg.
-# Copyright (C) 2003 The Free Software Foundation
-# This file is distributed under the same license as the at-spi package.
-# Dafydd Harries <daf@parnassus.ath.cx>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-07-03 07:35+0100\n"
-"PO-Revision-Date: 2003-07-03 07:37+0100\n"
-"Last-Translator: Dafydd Harries <daf@parnassus.ath.cx>\n"
-"Language-Team: Cymraeg <gnome-cy@www.linux.org.uk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "methiant: dim rheolwr digwyddiad dyfaid wedi ei ganfod.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "RHYBUDD: adroddwyd digwyddiad allwedd NULL."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Cofrestrfa AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Cofrestrfa Hygyrchedd"
diff --git a/po/da.po b/po/da.po
deleted file mode 100644 (file)
index aebfce5..0000000
--- a/po/da.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Danish translation of at-spi.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Ole Laursen <olau@hardworking.dk>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-28 00:37+0200\n"
-"PO-Revision-Date: 2003-07-28 00:39+0200\n"
-"Last-Translator: Ole Laursen <olau@hardworking.dk>\n"
-"Language-Team: Danish <dansk@klid.dk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "fejl: ingen enhedshændelseshåndtering fundet.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "ADVARSEL: NULL-nøglehændelse rapporteret."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI-register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Tilgængelighedsregister"
diff --git a/po/de.po b/po/de.po
deleted file mode 100644 (file)
index a5cdfc7..0000000
--- a/po/de.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# German AT-SPI translation.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the AT-SPI package.
-# Christian Neumair <chris@gnome-de.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: AT-SPI 1.3.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-02 19:32+0200\n"
-"PO-Revision-Date: 2003-07-02 19:28+0200\n"
-"Last-Translator: Christian Neumair <chris@gnome-de.org>\n"
-"Language-Team: German <gnome-de@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "Fehlgeschlagen: Kein Geräteereignis-Controller gefunden.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "WARNUNG: SChlüsselereignis »NULL« berichtet."
-
-# CHECK
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI-Registrierung"
-
-# CHECK
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Barrierefreiheitsregistrierung"
diff --git a/po/dz.po b/po/dz.po
deleted file mode 100644 (file)
index 615c7ca..0000000
--- a/po/dz.po
+++ /dev/null
@@ -1,29 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD.dz\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-01-20 12:27+0100\n"
-"PO-Revision-Date: 2006-03-29 17:32-0500\n"
-"Last-Translator: \n"
-"Language-Team: DZONGKHA <pgeyleg@dit.gov.b t>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Dzongkha\n"
-"X-Poedit-Country: BHUTAN\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"Plural-Forms: nplurals=2;plural=(n!=1);\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "ཨེ་ཊི་-ཨེསི་པི་ཨའི་ ཐོ་མཛོད།"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "འཛུལ་སྤྱོད་ཐོ་མཛོད།"
-
diff --git a/po/el.po b/po/el.po
deleted file mode 100644 (file)
index d6542b1..0000000
--- a/po/el.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# translation of el.po to Greek
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# Kostas Papadimas <pkst@gmx.net>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: el\n"
-"POT-Creation-Date: 2004-03-15 16:02+0200\n"
-"PO-Revision-Date: 2004-03-15 16:04-0200\n"
-"Last-Translator: Nikos Charonitakis <charosn@her.fothnet.gr>\n"
-"Language-Team: Greek <nls@tux.hellug.gr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "αποτυχία: δε βρέθηκε ελεγκτής γεγονότος συσκευής.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: αναφέρθηκε  NULL key event."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Μητρώο AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Μητρώο Προσιτότητας"
-
diff --git a/po/en_CA.po b/po/en_CA.po
deleted file mode 100644 (file)
index f35f397..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# Canadian English translation of at-spi 1.4.1.
-# Copyright (C) 2004 Adam Weinberger and the GNOME Foundation
-# This file is distributed under the same licence as the at-spi package.
-# Adam Weinberger <adamw@gnome.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.4.1\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-13 16:34-0500\n"
-"PO-Revision-Date: 2005-01-13 16:39-0500\n"
-"Last-Translator: Adam Weinberger <adamw@gnome.org>\n"
-"Language-Team: Canadian English <adamw@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Registry"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Accessibility Registry"
diff --git a/po/en_GB.po b/po/en_GB.po
deleted file mode 100644 (file)
index b2e0bf1..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# English (British) translation.
-# Copyright (C) 2004 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# Gareth Owen <gowen72@yahoo.com> 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-03-16 21:03-0500\n"
-"PO-Revision-Date: 2004-03-07 16:58-0500\n"
-"Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
-"Language-Team: en_GB\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "failure: no device event controller found.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "WARNING: NULL key event reported."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Registry"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Accessibility Registry"
diff --git a/po/eo.po b/po/eo.po
deleted file mode 100644 (file)
index 2913d1d..0000000
--- a/po/eo.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Esperanto translation of at-spi.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Charles Voelger <cvoelger@dweasel.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.5\n"
-"POT-Creation-Date: 2003-07-24 11:17+0200\n"
-"PO-Revision-Date: 2003-07-01 11:55-0500\n"
-"Last-Translator: Charles Voelger <cvoelger@dweasel.com>\n"
-"Language-Team: Esperanto <eo@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr ""
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr ""
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Registrejo"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Alirebleca Registrejo"
diff --git a/po/es.po b/po/es.po
deleted file mode 100644 (file)
index 256533a..0000000
--- a/po/es.po
+++ /dev/null
@@ -1,36 +0,0 @@
-# translation of at-spi.HEAD.po to Spanish
-# Spanish Translation for AT-SPI.
-# Copyright (C) The Free Software Foundation
-# This file is distributed under the same license as the AT-SPI package.
-# Pablo Gonzalo del Campo <pablodc@bigfoot.com>, 2003.
-# Francisco Javier F. Serrador <serrador@arrakis.es>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-08-28 11:18+0200\n"
-"PO-Revision-Date: 2003-08-28 13:39+0200\n"
-"Last-Translator: Francisco Javier F. Serrador <serrador@arrakis.es>\n"
-"Language-Team: Spanish <traductores@es.gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "fallo: no se encontró un controlador de eventos del dispositivo.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "ADVERTENCIA: Se ha informado de un evento de tecla NULL."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registro de AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registro de accesibilidad"
-
diff --git a/po/et.po b/po/et.po
deleted file mode 100644 (file)
index 14b49d0..0000000
--- a/po/et.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# Estonian translation for At-spi
-# Copyright (C) 1999-2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the At-spi package.
-# Priit Laes <amd@tt.ee>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: At-spi 1.3.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-01-15 11:34+0100\n"
-"PO-Revision-Date: 2003-08-07 01:08+0300\n"
-"Last-Translator: Priit Laes <amd@tt.ee>\n"
-"Language-Team: Estonian <gnome-et@linux.ee>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Ligipääsetavuse register"
-
diff --git a/po/eu.po b/po/eu.po
deleted file mode 100644 (file)
index 822edb5..0000000
--- a/po/eu.po
+++ /dev/null
@@ -1,35 +0,0 @@
-# translation of at-spi.eu.po to Basque
-# translation of at-spi.HEAD.po to Euskara
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.eu\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-09-11 11:17+0200\n"
-"PO-Revision-Date: 2003-09-25 13:05GMT\n"
-"Last-Translator: Iñaki Larrañaga Murgoitio <dooteo@euskalgnu.org>\n"
-"Language-Team: Basque <itzulpena@euskalgnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "hutsegitea: gailuaren gertaera kontrolatzailerik ez da aurkitu.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "OHARRA: NULL motadun tekla gertaera azaldu da."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Erregistroa"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Erabilerraztasun Erregistroa"
-
diff --git a/po/fa.po b/po/fa.po
deleted file mode 100644 (file)
index 2afc873..0000000
--- a/po/fa.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# Persian translation of at-spi.
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# Copyright (C) 2004 Sharif FarsiWeb, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Roozbeh Pournader <roozbeh@sharife.edu>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.9\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-23 03:02+0100\n"
-"PO-Revision-Date: 2004-01-01 17:36+0330\n"
-"Last-Translator: Roozbeh Pournader <roozbeh@sharif.edu>\n"
-"Language-Team: Persian <farsi@lists.sharif.edu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "شکست: هیچ کنترلگر وقایع دستگاهی یافت نشد.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "اخطار: واقعه‌ی کلید خالی (NULL)‌ گزارش شد."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "بایگانی AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "بایگانی دست‌رسی‌پذیری"
diff --git a/po/fi.po b/po/fi.po
deleted file mode 100644 (file)
index 8ab107c..0000000
--- a/po/fi.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# at-spi Finnish translation.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Sami Pesonen <sampeson@iki.fi>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-08-31 18:55+0300\n"
-"PO-Revision-Date: 2003-08-31 18:56+0300\n"
-"Last-Translator: Sami Pesonen <sampeson@iki.fi>\n"
-"Language-Team: Finnish <gnome-fi-laatu@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "virhe: laitetapahtumaohjainta ei löytynyt.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "VAROITUS: TYHJÄ näppäintapahtuma havaittu."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI-rekisteri"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Esteettömyysrekisteri"
diff --git a/po/fr.po b/po/fr.po
deleted file mode 100644 (file)
index 58865fd..0000000
--- a/po/fr.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# French translation of at-spi.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# maintainer: Christophe Merlet (RedFox) <redfox@redfoxcenter.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-06 11:33+0200\n"
-"PO-Revision-Date: 2003-07-06 11:23+0200\n"
-"Last-Translator: Christophe Merlet (RedFox) <redfox@redfoxcenter.org>\n"
-"Language-Team: GNOME French Team <gnomefr@traduc.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "échec : aucun périphérique contrôleur d'événements trouvé.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "ATTENTION : événement clé NULL rapporté."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registre AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registre Accessibilité"
diff --git a/po/gl.po b/po/gl.po
deleted file mode 100644 (file)
index 742bac1..0000000
--- a/po/gl.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# Galician translation of at-spi.
-# Copyright (C) 2004 Jesús Bravo Álvarez.
-# Jesús Bravo Álvarez <suso@trasno.net>, 2004.
-#
-# Proxecto Trasno - Adaptación do software libre á lingua galega:  Se desexas
-# colaborar connosco, podes atopar máis información en http://www.trasno.net
-#
-# First Version: 2004-09-14 00:31+0200
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2004-07-31 10:57+0200\n"
-"PO-Revision-Date: 2004-09-14 00:31+0200\n"
-"Last-Translator: Jesús Bravo Álvarez <suso@trasno.net>\n"
-"Language-Team: Galician <proxecto@trasno.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n!=1)\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Rexistro AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Rexistro de accesibilidade"
diff --git a/po/gu.po b/po/gu.po
deleted file mode 100644 (file)
index 0fbe069..0000000
--- a/po/gu.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# translation of at-spi.HEAD.gu.po to Gujarati
-# Copyright (C) 2004 Free Software Foundation, Inc.
-# MagNet <magnet@magnet-i.com>, 2004.
-# Ankit Patel <ankit@redhat.com>, 2004.
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD.gu\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-18 11:01+0200\n"
-"PO-Revision-Date: 2004-08-23 17:34+0530\n"
-"Last-Translator: Ankit Patel <ankit@redhat.com>\n"
-"<magnet@magnet-i.com>\n"
-"Language-Team: Gujarati\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-"Plural-Forms: Plural-Forms: nplurals=2; plural=(n!=1);\n\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI નોંધણીપત્રક"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "સુલભતા નોંધણીપત્રક"
-
diff --git a/po/he.po b/po/he.po
deleted file mode 100644 (file)
index d951b6e..0000000
--- a/po/he.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of at-spi.HEAD.he.po to Hebrew
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# Gil 'Dolfin' Osher <dolfin@rpg.org.il>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD.he\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-04 11:52+0200\n"
-"PO-Revision-Date: 2003-07-04 20:53+0300\n"
-"Last-Translator: Gil 'Dolfin' Osher <dolfin@rpg.org.il>\n"
-"Language-Team: Hebrew <he@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "כשלון: לא נמצא בקר אירוע התקן.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "אזהרה: דיווח על אירוע מפתח ריק."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "רישום AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "רישום נגישות"
-
diff --git a/po/hi.po b/po/hi.po
deleted file mode 100644 (file)
index 97b302d..0000000
--- a/po/hi.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# translation of at-spi.hi.po to Hindi
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# G Karunakar <karunakar@freedomink.org>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.hi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-21 14:41+0530\n"
-"PO-Revision-Date: 2004-06-16 13:34+0530\n"
-"Last-Translator: Ravishankar Shrivastava <raviratlami@yahoo.com>\n"
-"Language-Team: Hindi <indlinux-hindi-gnome@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "एटी-एसपीआई रजिस्ट्री"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "पहुँचयोग्य रजिस्ट्री"
diff --git a/po/hr.po b/po/hr.po
deleted file mode 100644 (file)
index 0ba5fd9..0000000
--- a/po/hr.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Translation of at-spi to Croatiann
-# Copyright (C) Croatiann team
-# Translators: Robert Sedak <robert.sedak@sk.tel.hr>,
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 0\n"
-"POT-Creation-Date: 2004-03-13 12:55+0100\n"
-"PO-Revision-Date: 2004-03-13 12:55+CET\n"
-"Last-Translator: auto\n"
-"Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: TransDict server\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "greška: nije nađen kontroler događaja uređaja.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "POZOR: Prijavljen je događaj NULL ključa."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI registar"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Pristupačnost registru"
-
diff --git a/po/hu.po b/po/hu.po
deleted file mode 100644 (file)
index 22c8efa..0000000
--- a/po/hu.po
+++ /dev/null
@@ -1,28 +0,0 @@
-# translation of at-spi to Hungarian
-# This file is distributed under the same license as the at-spi package.
-# Copyright (C) 2005, Free Software Foundation, Inc.
-# Szabolcs Varga <shirokuma@shirokuma.hu>, 2005.
-# Gabor Kelemen <kelemeng@gnome.hu>, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD.hu\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-14 05:34+0000\n"
-"PO-Revision-Date: 2005-08-14 09:56+0200\n"
-"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
-"Language-Team: Hungarian <gnome@gnome.hu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.10\n"
-"Plural-Forms:  nplurals=1; plural=0;\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI nyilvántartás"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Akadálymentesítési nyilvántartás"
-
diff --git a/po/id.po b/po/id.po
deleted file mode 100644 (file)
index 3973ce1..0000000
--- a/po/id.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Indonesian translation of at-spi.
-# Copyright (C) 2003 THE at-spi'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# 
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi HEAD\n"
-"POT-Creation-Date: 2003-12-16 16:58+0700\n"
-"PO-Revision-Date: 2003-12-10 19:36+0700\n"
-"Last-Translator: Ahmad Riza H Nst <ari@160c.afraid.org>\n"
-"Language-Team: Indonesia <sukarelawan@gnome.linux.or.id>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "kesalahan: tidak menemukan pengatur device event.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "PERINGATAN: kunci event NULL ditemukan."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registri AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registri aksesibilitas"
diff --git a/po/is.po b/po/is.po
deleted file mode 100644 (file)
index 219dbc4..0000000
--- a/po/is.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Íslensk þýðing AT-SPI 1.3.5
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Richard Allen <ra@ra.is>, 2002.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.5\n"
-"POT-Creation-Date: 2003-08-22 13:44+0200\n"
-"PO-Revision-Date: 2003-08-01 00:28+0000\n"
-"Last-Translator: Richard Allen <ra@ra.is>\n"
-"Language-Team: is <is@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "villa: enginn viðburðastýring fannst.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "AÐVÖRUN: NULL atburður skilgreindur."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Grunnur"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Aðgengisgrunnur"
diff --git a/po/it.po b/po/it.po
deleted file mode 100644 (file)
index 14177dc..0000000
--- a/po/it.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# at-spi Italian translation.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# Alessio Frusciante <algol@firenze.linux.it>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-04 11:49+0200\n"
-"PO-Revision-Date: 2003-07-30 10:38+0200\n"
-"Last-Translator: Alessio Frusciante <algol@firenze.linux.it>\n"
-"Language-Team: Italiano <tp@lists.linux.it>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "errore: impossibile trovare un controllore degli eventi della periferica.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "Attenzione: riportato evento tasto NULL"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registro AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registro accesso facilitato."
diff --git a/po/ja.po b/po/ja.po
deleted file mode 100644 (file)
index d6954ae..0000000
--- a/po/ja.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# at-spi ja.po
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-08-30 23:53+0900\n"
-"PO-Revision-Date: 2003-07-28 00:24+0900\n"
-"Last-Translator: KAMAGASAKO Masatoshi <emerald@gnome.gr.jp>\n"
-"Language-Team: Japanese <gnome-translation@gnome.gr.jp>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "失敗: デバイス・イベント・コントローラが見つかりませんでした。\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "警告: NULL キー・イベントが報告されました。"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI レジストリ"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "アクセシビリティ・レジストリ"
diff --git a/po/ka.po b/po/ka.po
deleted file mode 100644 (file)
index 7fe03cd..0000000
--- a/po/ka.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# Georgian translation of at-spi.
-# Copyright (C) 2004 Aiet Kolkhi
-# This file is distributed under the same license as the at-spi package.
-# Aiet Kolkhi <aiet@qartuli.net>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 0.1\n"
-"POT-Creation-Date: 2004-04-29 14:00+0200\n"
-"PO-Revision-Date: 2004-05-15 12:39+0400\n"
-"Last-Translator: Aiet Kolkhi <aiet@qartuli.net>\n"
-"Language-Team: Georgian <aiet@qartuli.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI რეგისტრაცია"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "შეზღუდულთა რეგისტრაცია"
-
diff --git a/po/ko.po b/po/ko.po
deleted file mode 100644 (file)
index 844ed1e..0000000
--- a/po/ko.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# at-spi
-# This file is distributed under the same license as the PACKAGE package.
-# Changwoo Ryu <cwryu@debian.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-28 19:57+0900\n"
-"PO-Revision-Date: 2003-07-28 19:59+0900\n"
-"Last-Translator: Changwoo Ryu <cwryu@debian.org>\n"
-"Language-Team: Korean <gnome-kr-translation@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "실패: 장치 이벤트 컨트롤러가 없습니다.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "경고: NULL 키 이벤트가 보고됨."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI 레지스트리"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "접근성 레지스트리"
diff --git a/po/ku.po b/po/ku.po
deleted file mode 100644 (file)
index ea9e6df..0000000
--- a/po/ku.po
+++ /dev/null
@@ -1,27 +0,0 @@
-# Kurdish translation of PACKAGE.
-# Copyright (C) 2008 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Erdal Ronahi <erdal.ronahi+nospam@gmail.com>, 2008.
-# , fuzzy
-# 
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-03-20 03:51+0000\n"
-"PO-Revision-Date: 2008-03-21 01:46+0100\n"
-"Last-Translator: Erdal Ronahi <erdal.ronahi+nospam@gmail.com>\n"
-"Language-Team: Kurdish\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registry ya AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registry ya Gihîştinê"
-
diff --git a/po/lt.po b/po/lt.po
deleted file mode 100644 (file)
index b9cca61..0000000
--- a/po/lt.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Lithuanian translation of at-spi.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# Tomas Kuliavas <tokul@users.sourceforge.net>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-09-28 21:22+0300\n"
-"PO-Revision-Date: 2003-09-22 17:38+0200\n"
-"Last-Translator: Tomas Kuliavas <tokul@users.sourceforge.net>\n"
-"Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:308
-msgid "failure: no device event controller found.\n"
-msgstr "triktis: nerastas įrengimo įvykio valdiklis.\n"
-
-#: atk-bridge/bridge.c:777
-msgid "WARNING: NULL key event reported."
-msgstr "DĖMESIO: pranešta apie nulinį įvykį"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI registras"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Prieinamumo registras"
diff --git a/po/mk.po b/po/mk.po
deleted file mode 100644 (file)
index 999575c..0000000
--- a/po/mk.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of at-spi.HEAD.po to Macedonian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Arangel Angov <ufo@linux.net.mk>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-09-08 11:03+0200\n"
-"PO-Revision-Date: 2004-09-11 14:48+0200\n"
-"Last-Translator: Arangel Angov <ufo@linux.net.mk>\n"
-"Language-Team: Macedonian <ossm-members@hedona.on.net.mk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Регистер за AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Регистер за пристапност"
-
diff --git a/po/mn.po b/po/mn.po
deleted file mode 100644 (file)
index 00a48df..0000000
--- a/po/mn.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# translation of at-spi.HEAD.po to Mongolian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) 2003
-# Sanlig Badral <badral@openmn.org>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-08-17 19:09+0200\n"
-"PO-Revision-Date: 2003-08-17 23:11+0200\n"
-"Last-Translator: Sanlig Badral <badral@openmn.org>\n"
-"Language-Team: Mongolian <openmn-linux@lists.sf.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.1\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "Алдаа: Төхөөрөмжийн үйлдэл хянагч одлсонгүй.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "САНУУЛГА: »NULL« түлхүүр үйлдэл мэдээлэгдэв."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI бүртгэл"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Саад чөлөөлөх бүртгэл"
-
diff --git a/po/mr.po b/po/mr.po
deleted file mode 100644 (file)
index 77e8c1c..0000000
--- a/po/mr.po
+++ /dev/null
@@ -1,24 +0,0 @@
-# translation of at-spi.HEAD.po to Marathi
-# This file is distributed under the same license as the at-spi package.
-# Copyright (C) 2005 Free Software Foundation Inc., 2005.
-# First Author : Swapnil Hajare <dreamil@gmail.com>
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-06 16:56+0530\n"
-"PO-Revision-Date: 2005-06-06 16:18+0530\n"
-"Last-Translator: Swapnil Hajare <dreamil@gmail.com>\n"
-"Language-Team:  Marathi <marathiopensource@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI रजिस्ट्री"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "सुलभता रजिस्ट्री"
diff --git a/po/ms.po b/po/ms.po
deleted file mode 100644 (file)
index 06b1a23..0000000
--- a/po/ms.po
+++ /dev/null
@@ -1,35 +0,0 @@
-# Duit PPRT siapa yang kebas????      
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Hasbullah Bin Pit (sebol) <sebol@ikhlas.com>, 200R31.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: gucharmap\n"
-"POT-Creation-Date: 2003-07-27 12:53+0800\n"
-"PO-Revision-Date: 2003-07-27 12:54+0800\n"
-"Last-Translator: Hasbullah Bin Pit <sebol@ikhlas.com>\n"
-"Language-Team: Projek Gabai <gabai-penyumbang@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid ""
-"failure: no device event controller found.\n"
-""
-msgstr ""
-"gagal: tiada pengawal acara peranti dijumpai.\n"
-""
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "AMARAN: kekunci acara NULL dilaporkan."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Pendaftar AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Pendaftar Kebolehcapaian"
-
diff --git a/po/nb.po b/po/nb.po
deleted file mode 100644 (file)
index db5aa07..0000000
--- a/po/nb.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# Norwegian translations for PACKAGE package.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Kjartan Maraas <kmaraas@broadpark.no>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: AT-SPI 1.2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-09-28 20:28+0200\n"
-"PO-Revision-Date: 2003-09-28 20:30+0200\n"
-"Last-Translator: Kjartan Maraas <kmaraas@broadpark.no>\n"
-"Language-Team: Norwegian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: atk-bridge/bridge.c:308
-msgid "failure: no device event controller found.\n"
-msgstr "feil: ingen hendelseshåndterer funnet for enhet.\n"
-
-#: atk-bridge/bridge.c:777
-msgid "WARNING: NULL key event reported."
-msgstr "ADVARSEL: NULL-tastehendelse rapportert."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI-register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Register for hjelpefunksjoner"
diff --git a/po/nds_DE.po b/po/nds_DE.po
deleted file mode 100644 (file)
index 4992f22..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# Lowlands Saxon translation of at-spi.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-04 03:04+0100\n"
-"PO-Revision-Date: 2004-07-08 01:25+0100\n"
-"Last-Translator: Kenneth Christiansen <kenneth@gnu.org>\n"
-"Language-Team: Low(lands) Saxon - (Nothern) Germany\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:310
-msgid "failure: no device event controller found.\n"
-msgstr "fehler: keen geböörtenisbeheer vör apparaten vonden.\n"
-
-#: atk-bridge/bridge.c:779
-msgid "WARNING: NULL key event reported."
-msgstr "WAARSCHÜWING: NULL-tuutsgeböörtenis rapporteerd."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI-register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Togankelikheidsregister"
diff --git a/po/ne.po b/po/ne.po
deleted file mode 100644 (file)
index d21fab1..0000000
--- a/po/ne.po
+++ /dev/null
@@ -1,21 +0,0 @@
-# Nepali translation of ati-spi\r
-\r
-msgid ""\r
-msgstr ""\r
-"Project-Id-Version: ati-spi\n"\r
-"POT-Creation-Date: 2004-07-13 03:17+0200\n"\r
-"PO-Revision-Date: 2004-07-26 18:54+0545\n"\r
-"Last-Translator: Laxmi Prasad Khatiwada <laxmi@mpp.org.np>\n"\r
-"Language-Team: Nepali <info@mpp.org.np>\n"\r
-"MIME-Version: 1.0\n"\r
-"Content-Type: text/plain; charset=UTF-8\n"\r
-"Content-Transfer-Encoding: 8bit\n"\r
-\r
-#: registryd/Accessibility_Registry.server.in.in.h:1\r
-msgid "AT-SPI Registry"\r
-msgstr "AT-SPI रजिष्ट्री"\r
-\r
-#: registryd/Accessibility_Registry.server.in.in.h:2\r
-msgid "Accessibility Registry"\r
-msgstr "पहुँचयोग्य रजिष्ट्री"\r
-\r
diff --git a/po/nl.po b/po/nl.po
deleted file mode 100644 (file)
index e8e9a90..0000000
--- a/po/nl.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Vincent van Adrighem <V.vanAdrighem@dirck.mine.nu>, 2003
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-12-04 03:04+0100\n"
-"PO-Revision-Date: 2003-07-08 01:25+0100\n"
-"Last-Translator: Vincent van Adrighem <adrighem@gnome.org>\n"
-"Language-Team: Dutch\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:310
-msgid "failure: no device event controller found.\n"
-msgstr "fout: geen gebeurtenisbeheer voor apparaten gevonden.\n"
-
-#: atk-bridge/bridge.c:779
-msgid "WARNING: NULL key event reported."
-msgstr "WAARSCHUWING: NULL toetsgebeurtenis gerapporteerd."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Toegankelijkheidsregister"
diff --git a/po/nn.po b/po/nn.po
deleted file mode 100644 (file)
index de7526d..0000000
--- a/po/nn.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# translation of nn.no.po to Norsk nynorsk
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Åsmund Skjæveland <aasmunds@fys.uio.no>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: nn.no\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-01-02 12:43+0100\n"
-"PO-Revision-Date: 2003-09-21 03:16+0200\n"
-"Last-Translator: Åsmund Skjæveland <aasmunds@fys.uio.no>\n"
-"Language-Team: Norsk nynorsk <i18n-nn@lister.ping.uio.no>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.0.2\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "mislykka: fann ingen kontroller for einingshendingar.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "ÅTVARING: NULL-tastehending rapportert."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Tilgjengeregister"
diff --git a/po/oc.po b/po/oc.po
deleted file mode 100644 (file)
index 43c068e..0000000
--- a/po/oc.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# Occitan translation of at-spi.HEAD.or.pot.
-# Copyright (C) 2004, Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-#
-# Yannig MARCHEGAY (yannig@marchegay.org) - 2006-2007
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD.oc\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-20 03:06+0200\n"
-"PO-Revision-Date: 2007-05-09 17:43+0200\n"
-"Last-Translator: Yannig MARCHEGAY (Kokoyaya) <yannig@marchegay.org>\n"
-"Language-Team: Occitan (post 1500) <ubuntu-l10n-oci@lists.ubuntu.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr ""
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr ""
-
-#~ msgid "failure: no device event controller found.\n"
-#~ msgstr ""
-
-#~ msgid "WARNING: NULL key event reported."
-#~ msgstr ""
diff --git a/po/or.po b/po/or.po
deleted file mode 100644 (file)
index 1e9062c..0000000
--- a/po/or.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Oriya translation of at-spi.HEAD.or.pot.
-# Copyright (C) 2004, Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Subhransu Behera <ayra_subhransu@yahoo.co.in>, 2004
-# $Id: or.po,v 1.1 2004/09/02 19:56:29 gmohanty Exp $
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD.or\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-07-20 03:06+0200\n"
-"PO-Revision-Date: 2004-07-22 15:00+0530\n"
-"Last-Translator: S Behera <arya_subhransu@yahoo.co.in>\n"
-"Language-Team: Oriya <oriya-group@lists.sarovar.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "ଏ.ଟି.-ଏସ୍୍.ପି.ଆଇ. ରେଜିଷ୍ଟ୍ରି"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "ବ୍ଯବହାରଯୋଗ୍ଯତା ରେଜିଷ୍ଟ୍ରି"
-
-#~ msgid "failure: no device event controller found.\n"
-#~ msgstr "ଅସଫଳତା: ଯନ୍ତ୍ର ଘଟଣା ନିୟନ୍ତ୍ରକ ମିଳିଲା ନାହିଁ.\n"
-
-#~ msgid "WARNING: NULL key event reported."
-#~ msgstr "ଚେତାବନି : NULL ଚାବି ଘଟଣା ର ବିବରଣୀ ମିଳିଲା"
diff --git a/po/pa.po b/po/pa.po
deleted file mode 100644 (file)
index 5c5fd6f..0000000
--- a/po/pa.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# translation of pa.po to Punjabi
-# Amanpreet Singh Alam <aalam@redhat.com>, 2004.
-# Amanpreet Singh Alam <amanpreetalam@yahoo.com>, 2005.
-msgid ""
-msgstr ""
-"Project-Id-Version: pa\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-03-03 21:07+0530\n"
-"PO-Revision-Date: 2005-02-16 10:27+0530\n"
-"Last-Translator: Amanpreet Singh Alam <amanpreetalam@yahoo.com>\n"
-"Language-Team: Punjabi <fedora-trans-pa@redhat.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.9.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "ਅਸਫਲਤਾ: ਕੋਈ ਜੰਤਰ ਕਾਰਵਾਈ ਸੰਭਣ ਵਾਲਾ ਨਹੀ ਹੈ।\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "ਚੇਤਾਵਨੀ: NULL ਕੁੰਜੀ ਘਟਨਾ ਹੋਈ ਹੈ।"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI ਰਜਿਸਟਰੀ"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "ਪਹੁੰਚਯੋਗ ਰਜਿਸਟ੍ਰਰੀ"
-
diff --git a/po/pl.po b/po/pl.po
deleted file mode 100644 (file)
index 56d5fe0..0000000
--- a/po/pl.po
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (C) 2001-2002 Free Software Foundation, Inc.
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-# Aktualną wersję tego pliku możesz odnaleźć w repozytorium cvs.gnome.pl
-# (:pserver:anonymous@cvs.gnome.pl:/home/cvs, puste hasło)
-# Jeśli masz jakiekolwiek uwagi odnoszące się do tłumaczenia lub chcesz
-# pomóc w jego rozwijaniu i pielęgnowaniu, napisz do nas na adres:
-# translators@gnome.pl
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-07-06 20:31+0200\n"
-"PO-Revision-Date: 2003-07-05 23:31+0100\n"
-"Last-Translator: Gnome PL Team <translators@gnome.pl>\n"
-"Language-Team: Polish <pl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "błąd: nie znaleziono kontrolera zdarzeń urządzeń.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "OSTRZEŻENIE: zgłoszono zdarzenie wystąpienia klucza NULL"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Rejestr AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Rejestr dostępności"
diff --git a/po/pt.po b/po/pt.po
deleted file mode 100644 (file)
index 227d9f9..0000000
--- a/po/pt.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# at-spi Portuguese translation.
-# Copyright (C) 2003 at-spi
-# This file is distributed under the same license as the at-spi package.
-# Duarte Loreto <happyguy_pt@hotmail.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: 2.4\n"
-"Report-Msgid-Bugs-To: Duarte Loreto <happyguy_pt@hotmail.com>\n"
-"POT-Creation-Date: 2003-07-15 19:52+0200\n"
-"PO-Revision-Date: 2003-08-24 19:55+0000\n"
-"Last-Translator: Duarte Loreto <happyguy_pt@hotmail.com>\n"
-"Language-Team: Portuguese <gnome_pt@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "falha: nenhum dispositivo controlador de eventos encontrado.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "AVISO: relatado evento de chave NULL."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registo AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registo de Acessibilidade"
diff --git a/po/pt_BR.po b/po/pt_BR.po
deleted file mode 100644 (file)
index 426a0df..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# Brazilian Portuguese Translation for at-spi
-# Copyright (C) 2003 Gnome Foundation
-# This file is distributed under the same license as the at-spi package.
-# Gustavo Noronha Silva <kov@debian.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-07-09 19:55+0200\n"
-"PO-Revision-Date: 2003-07-09 18:44-0300\n"
-"Last-Translator: Gustavo Noronha Silva <kov@debian.org>\n"
-"Language-Team: GNOME-L10N-BR <gnome-l10n-br@listas.cipsga.org.br>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "falha: não foi encontrado um aparelho controlador de eventos.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "AVISO: evento de tecla NULL reportado."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registro AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registro de Acessibilidade"
diff --git a/po/ro.po b/po/ro.po
deleted file mode 100644 (file)
index 51b9ae5..0000000
--- a/po/ro.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Romanian translation of at-spi
-# Copyright (C) 2003 - 2005 at-spi Free Software Foundation
-# This file is distributed under the same license as the at-spi package.
-# Mişu Moldovan dumol@gnome.ro, 2003 - 2005
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-08-14 13:34+0000\n"
-"PO-Revision-Date: 2005-08-14 20:17+0300\n"
-"Last-Translator: Mişu Moldovan <dumol@gnome.ro>\n"
-"Language-Team: Romanian <gnomero-list@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registru AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registru accesibilitate"
-
diff --git a/po/ru.po b/po/ru.po
deleted file mode 100644 (file)
index 71c2fd0..0000000
--- a/po/ru.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# at-spi Russian translation.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Dmitry G. Mastrukov <dmitry@taurussoft.org>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-07-15 09:13+0400\n"
-"PO-Revision-Date: 2003-07-15 09:22+0400\n"
-"Last-Translator: Dmitry G. Mastrukov <dmitry@taurussoft.org>\n"
-"Language-Team: Russian <gnome-cyr@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "произошёл сбой: контроллер событий устройства не найден.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "ПРЕДУПРЕЖДЕНИЕ: сообщено о пустом ключевом событии."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Регистр системы AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Регистр системы специальных возможностей"
diff --git a/po/rw.po b/po/rw.po
deleted file mode 100644 (file)
index f8f7e39..0000000
--- a/po/rw.po
+++ /dev/null
@@ -1,36 +0,0 @@
-# translation of at-spi to Kinyarwanda.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Steve Murphy <murf@e-tools.com>, 2005
-# Steve performed initial rough translation from compendium built from translations provided by the following translators:
-# Philibert Ndandali  <ndandali@yahoo.fr>, 2005.
-# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
-# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
-# Carole Karema <karemacarole@hotmail.com>, 2005.
-# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
-# Augustin KIBERWA  <akiberwa@yahoo.co.uk>, 2005.
-# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005..
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 2.12\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-03-30 22:29-0700\n"
-"PO-Revision-Date: 2005-03-28 19:34-0700\n"
-"Last-Translator: Steve Murphy <murf@e-tools.com>\n"
-"Language-Team: Kinyarwanda <translation-team-rw@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-# sfx2/source\dialog\register.src:RID_REGISTER_DLG.BTN_REGISTER.text
-#: registryd/Accessibility_Registry.server.in.in.h:1
-#, fuzzy
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Kwiyandikisha"
-
-# offmgr/source\offapp\dialog\treeopt.src:RID_OFADLG_OPTIONS_TREE_PAGES.SID_GENERAL_OPTIONS.13.text
-#: registryd/Accessibility_Registry.server.in.in.h:2
-#, fuzzy
-msgid "Accessibility Registry"
-msgstr "Ubushobozi bwo gukoreshwa"
diff --git a/po/sk.po b/po/sk.po
deleted file mode 100644 (file)
index 6f95312..0000000
--- a/po/sk.po
+++ /dev/null
@@ -1,31 +0,0 @@
-# Slovak translations for at-spi package.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Marcel Telka <marcel@telka.sk>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-07-15 22:14+0200\n"
-"PO-Revision-Date: 2003-07-15 22:16+0200\n"
-"Last-Translator: Marcel Telka <marcel@telka.sk>\n"
-"Language-Team: Slovak\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "zlyhanie: nebol nájdený ovládač udalostí zariadenia.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "UPOZORNENIE: Oznámená udalosť nulového kľúča."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Register dostupnosti"
diff --git a/po/sl.po b/po/sl.po
deleted file mode 100644 (file)
index 5e03d14..0000000
--- a/po/sl.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Slovenian translation file for at-spi.
-# Copyright (C) 2002 Free Software Foundation, Inc.
-# Andraz Tori <andraz.tori1@guest.arnes.si> 2002
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2002-06-16 15:37+0200\n"
-"PO-Revision-Date: 2001-07-29 12:32+0200\n"
-"Last-Translator: Andraz Tori <andraz.tori1@guest.arnes.si>\n"
-"Language-Team: Slovenian <sl@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "napaka: noben dogodkovni nadzornik naprave ni bil najden.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "OPOZORILO: sporočen dogodek tipke NULL."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Register AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Register dostopnosti"
diff --git a/po/sq.po b/po/sq.po
deleted file mode 100644 (file)
index 96452e1..0000000
--- a/po/sq.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Përkthimi i mesazheve të at-spi në shqip
-# This file is distributed under the same license as the at-spi package.
-# Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
-# Laurent Dhima <laurenti@alblinux.net>, 2003, 2004, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-18 13:42+0100\n"
-"PO-Revision-Date: 2005-11-18 17:37+0100\n"
-"Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
-"Language-Team: Albanian <gnome-albanian-perkthyesit@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Regjistri AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Regjistri i açesibilitetit"
-
diff --git a/po/sr.po b/po/sr.po
deleted file mode 100644 (file)
index 59b1ff7..0000000
--- a/po/sr.po
+++ /dev/null
@@ -1,35 +0,0 @@
-# Serbian translation of at-spi
-# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004.
-#
-# This file is distributed under the same license as the at-spi package.
-#
-# Maintainer: Данило Шеган <dsegan@gmx.net>
-# Reviewed on 2004-02-12 by: Данило Шеган <dsegan@gmx.net>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-02-12 01:39+0100\n"
-"PO-Revision-Date: 2004-02-12 01:40+0100\n"
-"Last-Translator: Данило Шеган <danilo@prevod.org>\n"
-"Language-Team: Serbian (sr) <serbiangnome-lista@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "грешка: није нађен управљач за догађаје на уређају.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "УПОЗОРЕЊЕ: Примио је NULL тастер."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI регистар"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Регистар за приступачност"
diff --git a/po/sr@Latn.po b/po/sr@Latn.po
deleted file mode 100644 (file)
index 4f9262b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# Serbian translation of at-spi
-# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004.
-#
-# This file is distributed under the same license as the at-spi package.
-#
-# Maintainer: Danilo Šegan <dsegan@gmx.net>
-# Reviewed on 2004-02-12 by: Danilo Šegan <dsegan@gmx.net>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-02-12 01:39+0100\n"
-"PO-Revision-Date: 2004-02-12 01:41+0100\n"
-"Last-Translator: Danilo Šegan <danilo@prevod.org>\n"
-"Language-Team: Serbian (sr) <serbiangnome-lista@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "greška: nije nađen upravljač za događaje na uređaju.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "UPOZORENЈE: Primio je NULL taster."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI registar"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registar za pristupačnost"
diff --git a/po/sr@ije.po b/po/sr@ije.po
deleted file mode 100644 (file)
index d5d7e8b..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-# Serbian translation of at-spi
-# Courtesy of Prevod.org team (http://prevod.org/) -- 2003, 2004.
-#
-# This file is distributed under the same license as the at-spi package.
-#
-# Maintainer: Данило Шеган <dsegan@gmx.net>
-# Reviewed on 2004-02-12 by: Данило Шеган <dsegan@gmx.net>
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-03-07 16:10+0100\n"
-"PO-Revision-Date: 2004-02-27 19:43+0100\n"
-"Last-Translator: Bojan Suzic <bojans@teol.net>\n"
-"Language-Team: Serbian (sr) <serbiangnome-lista@nongnu.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "грешка: није нађен управљач за догађаје на уређају.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "УПОЗОРЕЊЕ: Примио је NULL тастер."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI регистар"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Регистар за приступачност"
diff --git a/po/sv.po b/po/sv.po
deleted file mode 100644 (file)
index 5a95e10..0000000
--- a/po/sv.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# Swedish messages for at-spi.
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Christian Rose <menthos@menthos.com>, 2003.
-#
-# $Id: sv.po,v 1.2 2003/07/02 07:58:39 menthos Exp $
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-07-02 09:57+0200\n"
-"PO-Revision-Date: 2003-07-02 09:57+0200\n"
-"Last-Translator: Christian Rose <menthos@menthos.com>\n"
-"Language-Team: Swedish <sv@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "misslyckande: ingen enhetshändelsekontroller hittades.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "VARNING: NULL-tangenthändelse rapporterades."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI-register"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Tillgänglighetsregister"
diff --git a/po/ta.po b/po/ta.po
deleted file mode 100644 (file)
index 45ed04a..0000000
--- a/po/ta.po
+++ /dev/null
@@ -1,26 +0,0 @@
-# translation of ta.po to Tamil
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
-# Jayaradha N <jaya@pune.redhat.com>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ta\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-08-10 10:58+0200\n"
-"PO-Revision-Date: 2004-08-10 15:31+0530\n"
-"Last-Translator: Jayaradha N <jaya@pune.redhat.com>\n"
-"Language-Team: Tamil <zhakanini@yahoogroups.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.3.1\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI பதிவேடு"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "அணுகல் பதிவேடு"
-
diff --git a/po/th.po b/po/th.po
deleted file mode 100644 (file)
index 6c02fa9..0000000
--- a/po/th.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Thai translation of at-spi.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the at-spi package.
-# Theppitak Karoonboonyanan <thep@linux.thai.net>, 2005.
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.6.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-11-20 14:57+0700\n"
-"PO-Revision-Date: 2005-11-20 14:59+0700\n"
-"Last-Translator: Theppitak Karoonboonyanan <thep@linux.thai.net>\n"
-"Language-Team: Thai <l10n@opentle.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "เรจิสตรี AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "เรจิสตรีระบบอำนวยการใช้งาน"
-
diff --git a/po/tr.po b/po/tr.po
deleted file mode 100644 (file)
index 19d438d..0000000
--- a/po/tr.po
+++ /dev/null
@@ -1,34 +0,0 @@
-# Turkish translation of at-spi.
-# Copyright (C) 2004 THE at-spi'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# Gorkem Cetin <gorkem@bahcesehir.edu.tr>, 2003
-# 
-# 
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.3.10\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-01-30 19:09+0100\n"
-"PO-Revision-Date: 2004-01-31 03:36+0200\n"
-"Last-Translator: Baris Cicek <baris@teamforce.name.tr>\n"
-"Language-Team: Turkish <gnome-turk@gnome.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit"
-
-#: atk-bridge/bridge.c:309
-msgid "failure: no device event controller found.\n"
-msgstr "hata: aygıt olay kontrolörü bulunamadı.\n"
-
-#: atk-bridge/bridge.c:778
-msgid "WARNING: NULL key event reported."
-msgstr "UYARI: NULL anahtar olayı rapor edildi."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Kaydı"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Ulaşılabilirlik Kaydı"
-
diff --git a/po/ug.po b/po/ug.po
deleted file mode 100644 (file)
index 67f2c8c..0000000
--- a/po/ug.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Uighur Translation of at-spi
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>, 2005
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-04-15 11:17+0200\n"
-"PO-Revision-Date: \n"
-"Last-Translator: Abduxukur Abdurixit <abduxukur.abdurixit@t-systems.ch>\n"
-"Language-Team: GNOME Uighur Translation Project <gnome-uighur@yahoogroups."
-"com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI Registry"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registry ياردەم قوراللىرى"
diff --git a/po/uk.po b/po/uk.po
deleted file mode 100644 (file)
index 3658d56..0000000
--- a/po/uk.po
+++ /dev/null
@@ -1,33 +0,0 @@
-# translation of at-spi.HEAD.po to ukrainian
-# This file is distributed under the same license as the PACKAGE package.
-# Copyright (C) 2003 THE PACKAGE'S COPYRIGHT HOLDER
-# Taras Boychuk <btr1@torba.com>, 2003
-# Maxim V. Dziumanenko <mvd@mylinux.com.ua>, 2005
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi.HEAD\n"
-"POT-Creation-Date: 2003-09-17 11:12+0200\n"
-"PO-Revision-Date: 2005-02-09 09:33+0300\n"
-"Last-Translator: Maxim V. Dziumanenko <mvd@mylinux.com.ua>\n"
-"Language-Team: Ukrainian <uk@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "помилка: не знайдено контролер подій пристрою.\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "ПОПЕРЕДЖЕННЯ: отримано порожній ключ події."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Реєстр системи AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Реєстр системи спеціальних можливостей"
-
diff --git a/po/vi.po b/po/vi.po
deleted file mode 100644 (file)
index 92522d3..0000000
--- a/po/vi.po
+++ /dev/null
@@ -1,32 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2002 THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# pclouds <pclouds@gmx.net>, 2002.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi VERSION\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2003-09-28 11:13+0200\n"
-"PO-Revision-Date: 2003-07-03 19:05+0700\n"
-"Last-Translator: pclouds <pclouds@gmx.net>\n"
-"Language-Team: GnomeVI <gnomevi-list@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: atk-bridge/bridge.c:308
-msgid "failure: no device event controller found.\n"
-msgstr "lỗi: không tìm thấy bộ điều khiển sự kiện thiết bị.\n"
-
-#: atk-bridge/bridge.c:777
-msgid "WARNING: NULL key event reported."
-msgstr "CẢNH BÁO: sự kiện bàn phím NULL được báo cáo."
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Registry AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Registry Truy nhập"
diff --git a/po/wa.po b/po/wa.po
deleted file mode 100644 (file)
index a32ecb0..0000000
--- a/po/wa.po
+++ /dev/null
@@ -1,30 +0,0 @@
-# Translation into the walloon language.
-#
-# Si vos voloz donner on côp di spale pol ratournaedje di Gnome (ou des
-# ôtes libes programes) sicrijhoz-mu a l' adresse emile
-# <srtxg@chanae.alphanet.ch>; nos avans co bråmint di l' ovraedje a fé.
-#
-# Copyright (C) 2001 Free Software Foundation, Inc.
-# Pablo Saratxaga <pablo@walon.org>, 2004.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2004-05-03 03:01+0200\n"
-"PO-Revision-Date: 2004-05-03 14:44+0200\n"
-"Last-Translator: Pablo Saratxaga <pablo@walon.org>\n"
-"Language-Team: Walloon <linux-wa@walon.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n > 1;\n"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Redjisse AT-SPI"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Redjisse d' accessiblisté"
-
diff --git a/po/xh.po b/po/xh.po
deleted file mode 100644 (file)
index 0a0a27d..0000000
--- a/po/xh.po
+++ /dev/null
@@ -1,25 +0,0 @@
-# Xhosa translation for at-spi
-# Copyright (C) 2005 Canonical Ltd.
-# This file is distributed under the same license as the at-spi package.
-# Translation by Canonical Ltd <translations@canonical.com> with thanks to
-# Translation World CC in South Africa, 2005.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-02-16 17:46+0200\n"
-"PO-Revision-Date: 2005-02-08 12:15+0200\n"
-"Last-Translator: Canonical Ltd <translations@canonical.com>\n"
-"Language-Team: Xhosa <xh-translate@ubuntu.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "Uvimba wokubhaliweyo we-AT-SPI"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "Uvimba wokubhaliweyo Wofikelelo"
diff --git a/po/zh_CN.po b/po/zh_CN.po
deleted file mode 100644 (file)
index 4212108..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-# translation of at-spi.po to zh_CN
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the at-spi package.
-# Yi Yang <yang_yi_cn@yahoo.com>, 2003.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi\n"
-"POT-Creation-Date: 2003-08-06 23:50+0800\n"
-"PO-Revision-Date: 2003-08-05 13:10-0700\n"
-"Last-Translator: Yi Yang <yang_yi_cn@yahoo.com>\n"
-"Language-Team: zh_CN <i18n-translation@lists.linux.net.cn>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Report-Msgid-Bugs-To: \n"
-
-#: atk-bridge/bridge.c:311
-msgid "failure: no device event controller found.\n"
-msgstr "失败:找不到设备事件控制器。\n"
-
-#: atk-bridge/bridge.c:806
-msgid "WARNING: NULL key event reported."
-msgstr "警告:报告了为空的关键事件。"
-
-#: registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI 注册表"
-
-#: registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "可操作性注册表"
diff --git a/po/zh_HK.po b/po/zh_HK.po
deleted file mode 100644 (file)
index c1abe1a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# Chinese (Hong Kong) translation of at-spi.
-# Copyright (C) 2005 Free Software Foundation
-# This file is distributed under the same license as the at-spi package.
-# Li-Jen Hsin <hsin@med.cgu.edu.tw>, 2004
-# Abel Cheung <abel@oaka.org>, 2005
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.6.5\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-22 12:15+0000\n"
-"PO-Revision-Date: 2005-12-29 13:42+0800\n"
-"Last-Translator: Abel Cheung <abel@oaka.org>\n"
-"Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI 紀錄"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "無障礙環境紀錄"
diff --git a/po/zh_TW.po b/po/zh_TW.po
deleted file mode 100644 (file)
index 17bb9b6..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# traditional Chinese translation of at-spi.
-# Copyright (C) 2004 Free Software Foundation
-# This file is distributed under the same license as the at-spi package.
-# Li-Jen Hsin <hsin@med.cgu.edu.tw>, 2004
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: at-spi 1.6.0\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2005-06-22 12:15+0000\n"
-"PO-Revision-Date: 2004-09-14 10:22+0800\n"
-"Last-Translator: Li-Jen Hsin <hsin@med.cgu.edu.tw>\n"
-"Language-Team: Chinese (traditional) <community@linuxhall.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:1
-msgid "AT-SPI Registry"
-msgstr "AT-SPI 登錄"
-
-#: ../registryd/Accessibility_Registry.server.in.in.h:2
-msgid "Accessibility Registry"
-msgstr "快捷鍵登錄"
index 76a1555..85f6fb2 100644 (file)
@@ -1,18 +1,22 @@
-#server_dot_in = Accessibility_Registry.server.in
-
-#$(server_dot_in): $(server_dot_in).in
-#      sed -e "s|\@REGISTRYD_PATH\@|$(libexecdir)|" $< > $@ 
-
 libexec_PROGRAMS = at-spi-registryd
 
 libexec_PROGRAMS = at-spi-registryd
 
-INCLUDES = -I$(top_srcdir)          \
-           -I$(top_builddir)        \
-           -I$(top_builddir)/libspi \
-           -I$(top_srcdir)/libspi   \
-           $(WARN_CFLAGS)      \
-           $(REGISTRYD_CFLAGS)
-
-at_spi_registryd_SOURCES =             \
+at_spi_registryd_CFLAGS = $(DBUS_GLIB_CFLAGS)  \
+                         $(GOBJ_CFLAGS)        \
+                         $(ATK_CFLAGS)         \
+                         $(GDK_CFLAGS)         \
+                         -I$(top_srcdir) 
+
+at_spi_registryd_LDADD = $(DBUS_GLIB_LIBS)     \
+                        $(GOBJ_CFLAGS)         \
+                        $(ATK_LIBS)            \
+                        $(GDK_LIBS)            \
+                        $(X_LIBS)              \
+                        $(XTST_LIBS)           \
+                        $(XEVIE_LIBS)          \
+                        $(top_builddir)/droute/libdroute.la\
+                        $(top_builddir)/spi-common/libspicommon.la
+
+at_spi_registryd_SOURCES =     \
        desktop.c               \
        desktop.h               \
        deviceeventcontroller.c \
        desktop.c               \
        desktop.h               \
        deviceeventcontroller.c \
@@ -20,15 +24,6 @@ at_spi_registryd_SOURCES =           \
        registry-main.c         \
        registry.c              \
        registry.h              \
        registry-main.c         \
        registry.c              \
        registry.h              \
-       server-glue.h \
+       reentrant-list.c        \
+       reentrant-list.h        \
        ucs2keysym.c
        ucs2keysym.c
-
-LDADD = $(top_builddir)/libspi/libspi.la $(X_LIBS) $(XTST_LIBS) $(XEVIE_LIBS) $(REGISTRYD_LIBS) 
-
-#serverinfodir = $(libdir)/bonobo/servers
-#serverinfo_DATA = Accessibility_Registry.server
-
-@INTLTOOL_SERVER_RULE@
-
-EXTRA_DIST = Accessibility_Registry.server.in.in
-#CLEANFILES = $(serverinfo_DATA) $(server_dot_in)
index 70138fb..be0e5b6 100644 (file)
 #include <config.h>
 #include <stdio.h>
 #include <string.h>
 #include <config.h>
 #include <stdio.h>
 #include <string.h>
-#include "desktop.h"
-#include "registry.h"
 #include <atk/atkcomponent.h>
 #include <gdk/gdkscreen.h>
 #include <gdk/gdkx.h>
 
 #include <atk/atkcomponent.h>
 #include <gdk/gdkscreen.h>
 #include <gdk/gdkx.h>
 
+#include <spi-common/spi-dbus.h>
+
+#include "desktop.h"
+#include "registry.h"
+
 G_DEFINE_TYPE(SpiDesktop, spi_desktop, G_TYPE_OBJECT)
 
 /* SpiDesktop signals */
 G_DEFINE_TYPE(SpiDesktop, spi_desktop, G_TYPE_OBJECT)
 
 /* SpiDesktop signals */
index 9c7df8d..61a9142 100644 (file)
@@ -24,7 +24,7 @@
 #ifndef SPI_DESKTOP_H_
 #define SPI_DESKTOP_H_
 
 #ifndef SPI_DESKTOP_H_
 #define SPI_DESKTOP_H_
 
-#include <libspi/accessible.h>
+#include <glib-object.h>
 
 G_BEGIN_DECLS
 
 
 G_BEGIN_DECLS
 
index 5e04c84..24969f5 100644 (file)
 #include <X11/extensions/Xevie.h>
 #endif /* HAVE_XEVIE */
 
 #include <X11/extensions/Xevie.h>
 #endif /* HAVE_XEVIE */
 
+#include <glib.h>
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h> /* TODO: hide dependency (wrap in single porting file) */
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdkwindow.h>
 
 #include <gdk/gdk.h>
 #include <gdk/gdkx.h> /* TODO: hide dependency (wrap in single porting file) */
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdkwindow.h>
 
-#include "../libspi/spi-private.h"
+#include <atk-adaptor/spi-private.h>
+#include <atk-adaptor/keymasks.h>
+#include <droute/droute.h>
+#include <spi-common/spi-dbus.h>
+#include <spi-common/spi-types.h>
+
 #include "deviceeventcontroller.h"
 #include "deviceeventcontroller.h"
-#include "libspi/keymasks.h"
+#include "reentrant-list.h"
 
 KeySym ucs2keysym (long ucs);
 long keysym2ucs(KeySym keysym); 
 
 KeySym ucs2keysym (long ucs);
 long keysym2ucs(KeySym keysym); 
index 1fd81dd..3fa5c8e 100644 (file)
@@ -26,7 +26,6 @@
 
 #include <X11/Xlib.h>
 #include <gdk/gdk.h>
 
 #include <X11/Xlib.h>
 #include <gdk/gdk.h>
-#include <libspi/Accessibility.h>
 
 typedef struct _SpiDEController SpiDEController;
 
 
 typedef struct _SpiDEController SpiDEController;
 
similarity index 89%
rename from libspi/util.c
rename to registryd/reentrant-list.c
index 3ec52f5..6e9911e 100644 (file)
  */
 
 #include <config.h>
  */
 
 #include <config.h>
-#include <glib/gmessages.h>
-#include <glib/gslist.h>
-#include <Accessibility.h>
+#include <glib.h>
 
 
-#include "spi-private.h"
+#include "reentrant-list.h"
 
 typedef struct {
        GList **list;
 
 typedef struct {
        GList **list;
@@ -35,14 +33,6 @@ typedef struct {
 
 static GSList *working_list = NULL; /* of Iteration */
 
 
 static GSList *working_list = NULL; /* of Iteration */
 
-Accessibility_Role spi_accessible_role_from_atk_role (AtkRole role);
-
-Accessibility_Role
-spi_role_from_atk_role (AtkRole role)
-{
-    return spi_accessible_role_from_atk_role (role);
-}
-
 /*
  *   deletes an element from the list - in a re-entrant
  * safe fashion; advances the element pointer to the next
 /*
  *   deletes an element from the list - in a re-entrant
  * safe fashion; advances the element pointer to the next
similarity index 86%
rename from libspi/spi-private.h
rename to registryd/reentrant-list.h
index 72b7e56..88e37e4 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
  * Boston, MA 02111-1307, USA.
  */
 
-#ifndef SPI_PRIVATE_H_
-#define SPI_PRIVATE_H_
+#ifndef REENTRANT_LIST_H_
+#define REENTRANT_LIST_H_
 
 #include <glib/glist.h>
 
 #include <glib/glist.h>
-#include <atk/atk.h>
-#include <Accessibility.h>
 
 G_BEGIN_DECLS
 
 
 G_BEGIN_DECLS
 
-#define DBG(a,b) if(_dbg>=(a))b
-
-extern int _dbg;
-
 typedef enum {
        SPI_RE_ENTRANT_CONTINUE = 0,
        SPI_RE_ENTRANT_TERMINATE
 typedef enum {
        SPI_RE_ENTRANT_CONTINUE = 0,
        SPI_RE_ENTRANT_TERMINATE
@@ -42,7 +36,6 @@ typedef enum {
 typedef SpiReEntrantContinue (*SpiReEntrantFn) (GList * const *list,
                                                gpointer       user_data);
 
 typedef SpiReEntrantContinue (*SpiReEntrantFn) (GList * const *list,
                                                gpointer       user_data);
 
-Accessibility_Role spi_role_from_atk_role (AtkRole role);
 void spi_re_entrant_list_delete_link (GList * const  *element_ptr);
 void spi_re_entrant_list_foreach     (GList         **list,
                                      SpiReEntrantFn  func,
 void spi_re_entrant_list_delete_link (GList * const  *element_ptr);
 void spi_re_entrant_list_foreach     (GList         **list,
                                      SpiReEntrantFn  func,
@@ -50,4 +43,4 @@ void spi_re_entrant_list_foreach     (GList         **list,
 
 G_END_DECLS
 
 
 G_END_DECLS
 
-#endif /* SPI_PRIVATE_H_ */
+#endif /* REENTRANT_LIST_H_ */
index 246270c..3db50e4 100644 (file)
@@ -29,6 +29,9 @@
 #include <string.h>
 #include <gdk/gdkx.h>
 #include <glib/gmain.h>
 #include <string.h>
 #include <gdk/gdkx.h>
 #include <glib/gmain.h>
+
+#include <spi-common/spi-dbus.h>
+
 #include "registry.h"
 
 #define spi_get_display() GDK_DISPLAY()
 #include "registry.h"
 
 #define spi_get_display() GDK_DISPLAY()
index 9455e1f..3dc13d6 100644 (file)
 #  include <stdio.h>
 #endif
 
 #  include <stdio.h>
 #endif
 
-#include "../libspi/spi-private.h"
+#include <spi-common/spi-dbus.h>
+
 #include "registry.h"
 #include "dbus/dbus-glib-lowlevel.h"
 
 /* Our parent GObject type  */
 #define PARENT_TYPE G_OBJECT_TYPE
 
 #include "registry.h"
 #include "dbus/dbus-glib-lowlevel.h"
 
 /* Our parent GObject type  */
 #define PARENT_TYPE G_OBJECT_TYPE
 
-
 int _dbg = 0;
 
 typedef enum {
 int _dbg = 0;
 
 typedef enum {
index ead4fcb..7dea784 100644 (file)
@@ -25,6 +25,7 @@
 #define SPI_REGISTRY_H_
 
 #include <glib/gmain.h>
 #define SPI_REGISTRY_H_
 
 #include <glib/gmain.h>
+#include <droute/droute.h>
 
 typedef struct _SpiRegistry SpiRegistry;
 
 
 typedef struct _SpiRegistry SpiRegistry;
 
diff --git a/spi-common/Makefile.am b/spi-common/Makefile.am
new file mode 100644 (file)
index 0000000..216c378
--- /dev/null
@@ -0,0 +1,20 @@
+noinst_LTLIBRARIES = libspicommon.la
+
+libspicommon_la_CFLAGS = $(DBUS_GLIB_CFLAGS) $(ATK_CFLAGS)\
+                       -DATSPI_INTROSPECTION_PATH=\"$(DEFAULT_ATSPI_INTROSPECTION_PATH)\"\
+                       -I$(top_builddir)\
+                       -I$(top_srcdir)
+
+BUILT_SOURCES = generated-types.h
+CLEANFILES = generated-types.h
+
+nodist_libspicommon_la_SOURCES = generated-types.h
+
+libspicommon_la_SOURCES =      \
+       event-types.h           \
+       spi-types.h             \
+       spi-dbus.h              \
+       spi-dbus.c
+
+generated-types.h: $(top_srcdir)/xml/spec.xml $(top_srcdir)/tools/c-constants-generator.xsl
+       xsltproc --stringparam mixed-case-prefix Accessibility_ $(top_srcdir)/tools/c-constants-generator.xsl $< >$@
similarity index 52%
rename from test/keysynth-test.c
rename to spi-common/event-types.h
index 22adf46..ac0c059 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
  * Boston, MA 02111-1307, USA.
  */
 
-#include <unistd.h>
-#include <stdlib.h>
-#include "../cspi/spi-private.h" /* A hack for now */
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <atk/atk.h>
-#include <atk/atknoopobject.h>
-#include <bonobo-activation/bonobo-activation-register.h>
-#include <bonobo/bonobo-main.h>
-#include <libspi/libspi.h>
+#ifndef EVENT_TYPES_H_
+#define EVENT_TYPES_H_
 
 
-typedef struct {
-       long int val;
-       char *string;
-       AccessibleKeySynthType type;
-} TextTest;
+#include <dbus/dbus.h>
 
 
-static TextTest text[] = {
-       {65, NULL, SPI_KEY_PRESSRELEASE},
-       {64, NULL, SPI_KEY_SYM},
-       {0,  "--hello!", SPI_KEY_STRING},
-       {0, "StudlyCaps!", SPI_KEY_STRING}
-};
+typedef unsigned long Accessibility_ControllerEventMask;
 
 
-static void
-test_key_synthesis (void)
+// TODO: auto-generate the below structs
+typedef struct _Accessibility_DeviceEvent Accessibility_DeviceEvent;
+struct _Accessibility_DeviceEvent
 {
 {
-       int i;
-       for (i = 0; i < G_N_ELEMENTS (text); ++i) {
-               SPI_generateKeyboardEvent (text[i].val, text[i].string, text[i].type);
-       }
-}
+  Accessibility_EventType type;
+  dbus_uint32_t id;
+  dbus_uint16_t hw_code;
+  dbus_uint16_t modifiers;
+  dbus_uint32_t timestamp;
+  char * event_string;
+  dbus_bool_t is_text;
+};
 
 
-int
-main (int argc, char **argv)
+typedef struct _Accessibility_EventListenerMode Accessibility_EventListenerMode;
+struct _Accessibility_EventListenerMode
 {
 {
-       gtk_init (&argc, &argv);
-       SPI_init ();
-
-       test_key_synthesis ();
+  dbus_bool_t synchronous;
+  dbus_bool_t preemptive;
+  dbus_bool_t global;
+};
 
 
-       return SPI_exit ();
-}
+typedef struct _Accessibility_KeyDefinition Accessibility_KeyDefinition;
+struct _Accessibility_KeyDefinition
+{
+  dbus_int32_t keycode;
+  dbus_int32_t keysym;
+  char *keystring;
+  dbus_int32_t unused;
+};
 
 
+#endif /* EVENT_TYPES_H_ */
similarity index 62%
rename from libspi/dbus.c
rename to spi-common/spi-dbus.c
index 2263a6d..4e176e1 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
  * Boston, MA 02111-1307, USA.
  */
 
-#include "accessible.h"
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <glib.h>
+#include <glib-object.h>
+#include <dbus/dbus.h>
 
 
-static GHashTable *path2ptr;
+#include "spi-types.h"
+
+GHashTable *path2ptr;
 static guint objindex;
 
 static void
 static guint objindex;
 
 static void
@@ -36,7 +40,7 @@ deregister_object (gpointer data, GObject *obj)
 }
 
 static guint
 }
 
 static guint
-register_object (AtkObject * obj)
+register_object (GObject * obj)
 {
   gint *new_int;
 
 {
   gint *new_int;
 
@@ -66,35 +70,6 @@ register_object (AtkObject * obj)
   return objindex;
 }
 
   return objindex;
 }
 
-AtkObject *
-spi_dbus_get_object (const char *path)
-{
-  guint index;
-  void *data;
-
-  g_assert (path);
-  if (strncmp(path, "/org/freedesktop/atspi/accessible", 33) != 0) return NULL;
-  path += 33;  /* skip over preamble */
-  if (path[0] == '\0') return atk_get_root();
-  if (path[0] != '/') return NULL;
-  path++;
-  index = atoi (path);
-  data = g_hash_table_lookup (path2ptr, &index);
-  if (data)
-    return ATK_OBJECT (data);
-  return NULL;
-}
-
-gchar *
-spi_dbus_get_path (AtkObject * obj)
-{
-  if (!obj) return NULL;
-  guint index = (guint) g_object_get_data (G_OBJECT (obj), "dbus-id");
-  if (!index)
-    index = register_object (obj);
-  return g_strdup_printf ("/org/freedesktop/atspi/accessible/%d", index);
-}
-
 DBusMessage *
 spi_dbus_general_error (DBusMessage * message)
 {
 DBusMessage *
 spi_dbus_general_error (DBusMessage * message)
 {
@@ -103,27 +78,6 @@ spi_dbus_general_error (DBusMessage * message)
                                 "General error");
 }
 
                                 "General error");
 }
 
-/* Reply with the given object and dereference it if unref is TRUE */
-DBusMessage *
-spi_dbus_return_object (DBusMessage * message, AtkObject * obj, int unref)
-{
-  DBusMessage *reply;
-  const char *path = spi_dbus_get_path (obj);
-  if (unref)
-    g_object_unref (obj);
-  if (!path)
-    {
-      /* Should we have a more specific error for this? */
-      return spi_dbus_general_error (message);
-    }
-  reply = dbus_message_new_method_return (message);
-  if (reply)
-    {
-      dbus_message_append_args (reply, DBUS_TYPE_OBJECT_PATH, path,
-                               DBUS_TYPE_INVALID);
-    }
-  return reply;
-}
 
 DBusMessage *
 spi_dbus_return_rect (DBusMessage * message, gint ix, gint iy, gint iwidth,
 
 DBusMessage *
 spi_dbus_return_rect (DBusMessage * message, gint ix, gint iy, gint iwidth,
@@ -157,36 +111,6 @@ oom:
   return reply;
 }
 
   return reply;
 }
 
-dbus_bool_t
-spi_dbus_return_v_object (DBusMessageIter * iter, AtkObject * obj, int unref)
-{
-  const char *path = spi_dbus_get_path (obj);
-  if (unref)
-    g_object_unref (obj);
-  if (!path)
-    return FALSE;
-  return droute_return_v_object (iter, path);
-}
-
-
-void
-spi_dbus_initialize (DRouteData * data)
-{
-  spi_initialize_accessible (data);
-  spi_initialize_action(data);
-  spi_initialize_component (data);
-  spi_initialize_document (data);
-  spi_initialize_editabletext (data);
-  spi_initialize_hyperlink (data);
-  spi_initialize_hypertext (data);
-  spi_initialize_image (data);
-  spi_initialize_selection (data);
-  spi_initialize_table (data);
-  spi_initialize_text (data);
-  spi_initialize_value (data);
-  spi_initialize_introspectable(data);
-}
-
 void spi_dbus_emit_valist(DBusConnection *bus, const char *path, const char *interface, const char *name, int first_arg_type, va_list args)
 {
   DBusMessage *sig;
 void spi_dbus_emit_valist(DBusConnection *bus, const char *path, const char *interface, const char *name, int first_arg_type, va_list args)
 {
   DBusMessage *sig;
@@ -200,51 +124,6 @@ void spi_dbus_emit_valist(DBusConnection *bus, const char *path, const char *int
   dbus_message_unref(sig);
 }
 
   dbus_message_unref(sig);
 }
 
-static GString *
-spi_get_tree (AtkObject * obj, GString * str, DRouteData * data)
-{
-  int role;
-  const char *name;
-  gchar *path;
-  GSList *l;
-  gint childcount;
-  gint i;
-
-  if (!obj)
-    return NULL;
-  role = spi_accessible_role_from_atk_role (atk_object_get_role (obj));;
-  name = atk_object_get_name (obj);
-  if (!name)
-    name = "";
-  path = spi_dbus_get_path (obj);
-  g_string_append_printf (str,
-                         "<object path=\"%s\" name=\"%s\" role=\"%d\">\n",
-                         path, name, role);
-  for (l = data->interfaces; l; l = g_slist_next (l))
-    {
-      DRouteInterface *iface_def = (DRouteInterface *) l->data;
-      void *datum = NULL;
-      if (iface_def->get_datum)
-       datum = (*iface_def->get_datum) (path, data->user_data);
-      if (datum)
-       {
-         g_string_append_printf (str, "<interface name=\"%s\"/>\n",
-                                 iface_def->name);
-         if (iface_def->free_datum)
-           (*iface_def->free_datum) (datum);
-       }
-    }
-  childcount = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < childcount; i++)
-    {
-      AtkObject *child = atk_object_ref_accessible_child (obj, i);
-      str = spi_get_tree (child, str, data);
-      g_object_unref (child);
-    }
-  str = g_string_append (str, "</object>\n");
-  return str;
-}
-
 dbus_bool_t spi_dbus_message_iter_get_struct(DBusMessageIter *iter, ...)
 {
   va_list args;
 dbus_bool_t spi_dbus_message_iter_get_struct(DBusMessageIter *iter, ...)
 {
   va_list args;
diff --git a/spi-common/spi-dbus.h b/spi-common/spi-dbus.h
new file mode 100644 (file)
index 0000000..c8c5489
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 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.
+ */
+
+#ifndef SPI_DBUS_H_
+#define SPI_DBUS_H_
+
+#include <glib.h>
+#include <spi-common/spi-types.h>
+
+#define DBG(a,b) if(_dbg>=(a))b
+
+extern int _dbg;
+
+#define SPI_DBUS_NAME_REGISTRY "org.freedesktop.atspi.registry"
+#define SPI_DBUS_PATH_REGISTRY "/org/freedesktop/atspi/registry"
+#define SPI_DBUS_INTERFACE_REGISTRY "org.freedesktop.atspi.registry"
+#define SPI_DBUS_PATH_DEC "/org/freedesktop/atspi/registry/dec"
+#define SPI_DBUS_INTERFACE_DEC "org.freedesktop.atspi.deviceEventController"
+#define SPI_DBUS_PATH_DESKTOP "/org/freedesktop/atspi/registry/desktop"
+#define SPI_DBUS_PATH_NULL "/"
+
+DBusMessage *spi_dbus_general_error(DBusMessage *message);
+DBusMessage *spi_dbus_return_rect(DBusMessage *message, gint ix, gint iy, gint iwidth, gint iheight);
+
+#define SPI_DBUS_RETURN_ERROR(m, e) dbus_message_new_error(m, (e)->name, (e)->message)
+
+void spi_dbus_emit_valist(DBusConnection *bus, const char *path, const char *interface, const char *name, int first_arg_type, va_list args);
+dbus_bool_t spi_dbus_message_iter_get_struct(DBusMessageIter *iter, ...);
+dbus_bool_t spi_dbus_message_iter_append_struct(DBusMessageIter *iter, ...);
+dbus_bool_t spi_dbus_marshall_deviceEvent(DBusMessage *message, const Accessibility_DeviceEvent *e);
+dbus_bool_t spi_dbus_demarshall_deviceEvent(DBusMessage *message, Accessibility_DeviceEvent *e);
+
+#endif /* SPI_DBUS_H_ */
diff --git a/spi-common/spi-types.h b/spi-common/spi-types.h
new file mode 100644 (file)
index 0000000..2758310
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * AT-SPI - Assistive Technology Service Provider Interface
+ * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
+ *
+ * Copyright 2001, 2002 Sun Microsystems Inc.,
+ * Copyright 2001, 2002 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.
+ */
+
+#ifndef SPI_TYPES_H_
+#define SPI_TYPES_H_
+
+#include <spi-common/generated-types.h>
+#include <spi-common/event-types.h>
+
+#endif /* SPI_TYPES_H_ */
diff --git a/test/Makefile.am b/test/Makefile.am
deleted file mode 100644 (file)
index fad3d4c..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-NULL=
-
-noinst_PROGRAMS = test-simple at app simple-at stress-test keysynth-demo key-listener-test event-listener-test window-listener-test screen-review-test keypad-test keysynth-test login-helper-client-test login-helper-server-test
-
-login_helper_client_test_SOURCES = login-helper-client-test.c
-
-login_helper_server_test_SOURCES = login-helper-server-test.c
-
-keysynth_test_SOURCES = keysynth-test.c
-
-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
-
-event_listener_test_SOURCES = event-listener-test.c
-
-screen_review_test_SOURCES = screen-review-test.c
-
-at_SOURCES = at.c 
-
-app_SOURCES = app.c
-
-simple_at_SOURCES = simple-at.c 
-
-keysynth_demo_SOURCES = keysynth-demo.c 
-
-test_simple_SOURCES = test-simple.c 
-
-DEBUG_CFLAGS=-DSPI_DEBUG
-
-INCLUDES = -I$(top_srcdir)           \
-           -I$(top_builddir)         \
-          $(TESTS_CFLAGS)           \
-          $(DEBUG_CFLAGS)
-
-LDADD = ../libspi/libspi.la ../cspi/libcspi.la ../login-helper/libloginhelper.la $(TESTS_LIBS) $(X_LIBS) $(XINPUT_LIBS)
-
-TESTS = test-simple
-
-TESTS_ENVIRONMENT =                                    \
-       LD_LIBRARY_PATH=$(top_builddir)/libspi/.libs/:$(top_builddir)/cspi/.libs/       \
-       PATH=$(top_builddir)/registryd/.libs/:$(PATH)
-
diff --git a/test/accessx-gui.c b/test/accessx-gui.c
deleted file mode 100644 (file)
index 1ce91f0..0000000
+++ /dev/null
@@ -1,764 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <X11/XKBlib.h> /* AccessX control defs */
-#include "spi.h"
-
-#define N_CONTROLS 8
-
-static XkbDescPtr xkb;
-
-typedef struct {
-       unsigned long  mask;
-       short int     *val;
-       char          *label;
-       char          *val_label;
-} AccessXControlStruct;
-
-static void
-gui_exit(GtkButton *notused, void *alsonotused)
-{
-  gtk_exit(0);
-}
-
-static void
-toggle_xkb_control (GtkButton *toggle_button, AccessXControlStruct *control_struct)
-{
-  gboolean is_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle_button));
-  XkbChangeEnabledControls (GDK_DISPLAY(), XkbUseCoreKbd, control_struct->mask,
-                           is_active ? control_struct->mask : 0);
-}
-
-static void
-toggle_xkb_notify_control (GtkButton *toggle_button, AccessXControlStruct *control_struct)
-{
-  gboolean is_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle_button));
-  unsigned short mask, always_off_mask;
-  XkbChangeEnabledControls (GDK_DISPLAY(), XkbUseCoreKbd, XkbAccessXFeedbackMask | XkbAudibleBellMask,
-                           XkbAccessXFeedbackMask | XkbAudibleBellMask);
-  
-  mask = XkbAX_TwoKeysMask | XkbAX_LatchToLockMask | XkbAX_DumbBellFBMask;
-  always_off_mask = XkbAX_SKPressFBMask | XkbAX_SKReleaseFBMask;
-
-  if (is_active)
-         xkb->ctrls->ax_options |= (control_struct->mask  |  mask);
-  else
-         xkb->ctrls->ax_options &= (~control_struct->mask);
-
-  xkb->ctrls->ax_options &= ~always_off_mask;
-  
-  XkbSetControls (GDK_DISPLAY(), XkbAccessXFeedbackMask, xkb);
-}
-
-static void
-toggle_accessx (GtkButton *toggle_button, void *unused)
-{
-  gboolean is_active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle_button));
-  XkbChangeEnabledControls (GDK_DISPLAY(), XkbUseCoreKbd, XkbAllBooleanCtrlsMask,
-    (is_active) ? xkb->ctrls->enabled_ctrls : 0);
-/*if (is_active/) XkbSetControls (GDK_DISPLAY(), XkbAllBooleanCtrlsMask, xkb);*/
-}
-
-static void
-set_accessx_control_value (GtkRange *range_control, AccessXControlStruct *control_struct)
-{
-  *(control_struct->val) = (short int) gtk_range_get_value (range_control);
-  XkbSetControls (GDK_DISPLAY(), control_struct->mask, xkb);
-}
-
-static gboolean
-init_xkb ()
-{
-  int opcode, xkb_event_code, error, result, major, minor;
-  Status status;
-  result = XkbQueryExtension (GDK_DISPLAY(), &opcode, &xkb_event_code, &error, &major, &minor);
-  if (result != True) return False;
-  
-  xkb = XkbGetMap(GDK_DISPLAY(), 0, XkbUseCoreKbd);
-  if ((int)xkb == BadAlloc || xkb == NULL)
-  {
-      return False; 
-  }
-  else
-  {
-      status = XkbGetControls(GDK_DISPLAY(), XkbAllControlsMask, xkb);
-      if (status != Success)
-      {
-        XkbFreeKeyboard(xkb, XkbAllControlsMask, True);
-        return False;
-      }
-      else
-      {
-       if (!xkb->ctrls)
-       {
-         XkbFreeKeyboard(xkb, XkbAllControlsMask, True);
-         return False;
-        }
-      }
-  }
-
-  return True;      
-}
-
-static AccessXControlStruct *
-control_struct_new (unsigned int mask,
-                   short int *val_ptr,
-                   char *label,
-                   char *val_label)
-{
-  AccessXControlStruct *control = g_new0 (AccessXControlStruct, 1);
-  control->mask = mask;
-  control->val = val_ptr;
-  control->label = label;
-  control->val_label = val_label;
-  return control;
-}
-
-static GtkWidget*
-basic_toggles_box ()
-{
-  GtkWidget *hbox, *outer_vbox, *vbox, *label, *button, *range, *frame;
-  GtkAdjustment *adjustment;
-  AccessXControlStruct *control;
-  
-  outer_vbox = gtk_widget_new (GTK_TYPE_VBOX,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-  
-  hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::parent", outer_vbox,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Enable AccessX",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_accessx, NULL,
-                            NULL);
-  
-/* FeatureFBMask seems not to work :-(
-   
-  control = control_struct_new (XkbAX_FeatureFBMask, &xkb->ctrls->ax_options, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Notify Changes",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_notify_control, control,
-                            NULL);
-*/                          
-
-  gtk_widget_new (GTK_TYPE_HSEPARATOR,
-                 "GtkWidget::parent", outer_vbox,
-                 "GtkWidget::visible", TRUE,
-                 NULL);
-
-  hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::parent", outer_vbox,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-
-  control = control_struct_new (XkbStickyKeysMask, &xkb->ctrls->enabled_ctrls, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Sticky Keys",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, control,
-                            NULL);
-  
-  control = control_struct_new (XkbAX_StickyKeysFBMask, &xkb->ctrls->ax_options, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Beep when Latched",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_notify_control, control,
-                            NULL);
-  
-  frame = gtk_widget_new (gtk_frame_get_type(),
-                         "GtkFrame::label", "Slow Keys",
-                         "GtkWidget::parent", outer_vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-    
-  vbox = gtk_widget_new (GTK_TYPE_VBOX,
-                        "GtkWidget::parent", frame,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-  
-  hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::parent", vbox,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-  
-  control = control_struct_new (XkbSlowKeysMask, &xkb->ctrls->slow_keys_delay, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Enable Slow Keys",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, control,
-                            NULL);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, 2000.0, 1.0, 10.0, 1.0 ));
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", hbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Delay (mS)",
-                         "GtkWidget::parent", hbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::parent", vbox,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-
-  control = control_struct_new (XkbAX_SKAcceptFBMask, &xkb->ctrls->ax_options, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Beep on Accept",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_notify_control, control,
-                            NULL);
-  
-  control = control_struct_new (XkbAX_SKRejectFBMask, &xkb->ctrls->ax_options, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Beep on Reject",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_notify_control, control,
-                            NULL);
-  
-  frame = gtk_widget_new (gtk_frame_get_type(),
-                         "GtkFrame::label", "Bounce Keys",
-                         "GtkWidget::parent", outer_vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-    
-  vbox = gtk_widget_new (GTK_TYPE_VBOX,
-                        "GtkWidget::parent", frame,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-  
-  hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::parent", vbox,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-  
-  control = control_struct_new (XkbBounceKeysMask, &xkb->ctrls->debounce_delay, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Enable Key Debounce",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, control,
-                            NULL);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, 2000.0, 1.0, 10.0, 1.0 ));
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", hbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Delay (mS)",
-                         "GtkWidget::parent", hbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::parent", vbox,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-
-  control = control_struct_new (XkbAX_BKRejectFBMask, &xkb->ctrls->ax_options, NULL, NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Beep on Reject",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_notify_control, control,
-                            NULL);
-  
-  return outer_vbox;
-}
-
-static GtkWidget*
-repeat_keys_box ()
-{
-  GtkWidget *outer_hbox, *vbox, *label, *button, *range, *frame;
-  GtkAdjustment *adjustment;
-  AccessXControlStruct *control =
-         control_struct_new (XkbRepeatKeysMask, &xkb->ctrls->repeat_delay, NULL, NULL);
-  
-  frame = gtk_widget_new (gtk_frame_get_type(),
-                         "GtkFrame::label","Repeat Keys",
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  outer_hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::visible", TRUE,
-                         "GtkWidget::parent", frame,
-                        NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Enable RepeatKeys",
-                                            "GtkWidget::parent", outer_hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, control,
-                            NULL);
-  
-  gtk_box_set_child_packing (GTK_BOX (outer_hbox), button, FALSE, FALSE, 0, GTK_PACK_START);
-
-  vbox = gtk_widget_new (GTK_TYPE_VBOX,
-                        "GtkWidget::visible", TRUE,
-                        "GtkWidget::parent", outer_hbox,
-                        NULL);
-
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (200.0, 200.0, 4000.0, 10.0, 100.0, 10.0 ));
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", vbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (200.0, 40.0, 4000.0, 1.0, 10.0, 1.0 ));
-  
-  control = control_struct_new (XkbRepeatKeysMask, &xkb->ctrls->repeat_interval, NULL, NULL);
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", vbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-
-  vbox = gtk_widget_new (GTK_TYPE_VBOX,
-                        "GtkWidget::visible", TRUE,
-                        "GtkWidget::parent", outer_hbox,
-                        NULL);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Delay (mS)",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Interval (mS)",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-   
-  return frame;
-}
-
-static GtkWidget*
-mouse_keys_box ()
-{
-  GtkWidget *outer_hbox, *vbox, *label, *button, *range, *frame;
-  GtkAdjustment *adjustment;
-  AccessXControlStruct *control =
-         control_struct_new (XkbMouseKeysMask, &xkb->ctrls->mk_delay, NULL, NULL);
-  
-  frame = gtk_widget_new (gtk_frame_get_type(),
-                         "GtkFrame::label","Mouse Keys",
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  outer_hbox = gtk_widget_new (GTK_TYPE_HBOX,
-                        "GtkWidget::visible", TRUE,
-                         "GtkWidget::parent", frame,
-                        NULL);
-
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "Enable MouseKeys",
-                                            "GtkWidget::parent", outer_hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, control,
-                            NULL);
-  
-  gtk_box_set_child_packing (GTK_BOX (outer_hbox), button, FALSE, FALSE, 0, GTK_PACK_START);
-  vbox = gtk_widget_new (GTK_TYPE_VBOX,
-                        "GtkWidget::visible", TRUE,
-                        "GtkWidget::parent", outer_hbox,
-                        NULL);
-
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (200.0, 20.0, 4000.0, 10.0, 100.0, 10.0 ));
-  
-  control = control_struct_new (XkbRepeatKeysMask, &xkb->ctrls->mk_interval, NULL, NULL);
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", vbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (800.0, 200.0, 4000.0, 1.0, 10.0, 1.0 ));
-  
-  control = control_struct_new (XkbRepeatKeysMask, &xkb->ctrls->mk_time_to_max, NULL, NULL);
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", vbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (800.0, 200.0, 4000.0, 1.0, 10.0, 1.0 ));
-  
-  control = control_struct_new (XkbMouseKeysMask, &xkb->ctrls->mk_max_speed, NULL, NULL);
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", vbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (800.0, 200.0, 4000.0, 1.0, 10.0, 1.0 ));
-  
-  control = control_struct_new (XkbMouseKeysMask, &xkb->ctrls->mk_curve, NULL, NULL);
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", vbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  vbox = gtk_widget_new (gtk_vbox_get_type(),
-                        "GtkWidget::name", "MouseKeys",
-                        "GtkWidget::parent", outer_hbox,
-                        "GtkWidget::visible", TRUE,
-                        "GtkContainer::border_width", 5,
-                        NULL);
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Delay (mS)",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Accel. time (mS)",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Interval (mS)",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Max. Speed",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "Curve",
-                         "GtkWidget::parent", vbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  return frame;
-}
-
-static GtkWidget*
-timeout_box ()
-{
-  GtkWidget *hbox, *label, *button, *range;
-  GtkAdjustment *adjustment;
-  AccessXControlStruct *control =
-         control_struct_new (XkbAccessXTimeoutMask, &xkb->ctrls->ax_timeout, NULL, NULL);
-  
-  hbox = gtk_widget_new (gtk_hbox_get_type(),
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  button = g_object_connect (gtk_widget_new (GTK_TYPE_CHECK_BUTTON,
-                                            "GtkButton::label", "AccessX Timeout",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, control,
-                            NULL);
-  
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, 200.0, 1.0, 10.0, 1.0 ));
-  
-  range = g_object_connect (gtk_widget_new (GTK_TYPE_HSCALE,
-                                           "GtkWidget::parent", hbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkRange::update_policy", GTK_UPDATE_DELAYED,
-                                           "GtkScale::digits", 0,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, control,
-                           NULL);
-  
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  
-  label = gtk_widget_new (GTK_TYPE_LABEL,
-                         "GtkLabel::label", "AccessX Timeout (Min.)",
-                         "GtkWidget::parent", hbox,
-                         "GtkWidget::visible", TRUE,
-                         NULL);
-  
-  return hbox;
-}
-
-static void
-create_gui (void)
-{
-  GtkWidget *window, *button, *container, *hbox;
-  
-  window = g_object_connect (gtk_widget_new (gtk_window_get_type (),
-                                            "user_data", NULL,
-                                            "can_focus", FALSE,
-                                            "type", GTK_WINDOW_TOPLEVEL,
-                                            "window-position", GTK_WIN_POS_CENTER,
-                                            "title", "AccessX",
-                                            "allow_grow", TRUE,
-                                            "allow_shrink", TRUE,
-                                            "border_width", 10,
-                                            NULL),
-                            "signal::destroy", gui_exit, NULL,
-                            NULL);
-  
-  container = gtk_widget_new (GTK_TYPE_VBOX,
-                             "GtkWidget::parent", window,
-                             "GtkWidget::visible", TRUE,
-                             NULL);
-
-  /* create and add containers for: AccessX on/off,
-     basic toggles,
-     MouseKeys support, and timeout */
-
-  gtk_container_add (GTK_CONTAINER (container), basic_toggles_box ());
-  gtk_container_add (GTK_CONTAINER (container), repeat_keys_box ());
-/*  gtk_container_add (GTK_CONTAINER (container), mouse_keys_box ());
-  gtk_container_add (GTK_CONTAINER (container), timeout_box ());*/
-
-  hbox = gtk_widget_new (gtk_hbox_get_type(),
-                        "GtkWidget::parent", container,
-                        "GtkWidget::visible", TRUE,
-                        "GtkContainer::border_width", 5,
-                        NULL);
-
-  button = g_object_connect (gtk_widget_new (gtk_button_get_type (),
-                                            "GtkButton::label", "Quit",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            gui_exit, NULL,
-                            NULL);
-
-  gtk_widget_show (window);    
-}
-
-static void
-create_gui_x (void)
-{
-  GtkWidget *window, *button, *container, *hbox, *range;
-  GtkAdjustment *adjustment;
-  int i;
-  static AccessXControlStruct* controls[N_CONTROLS];
-  controls[0] = control_struct_new (XkbSlowKeysMask,   &xkb->ctrls->slow_keys_delay, "Slow Keys", "Delay, mS");
-  controls[1] = control_struct_new (XkbStickyKeysMask, &xkb->ctrls->ax_options, "Sticky Keys", NULL);
-  controls[2] = control_struct_new (XkbBounceKeysMask, &xkb->ctrls->debounce_delay, "Key Debounce", "Delay, mS");
-  controls[3] = control_struct_new (XkbRepeatKeysMask, &xkb->ctrls->repeat_delay, "Repeat Keys", "Delay, mS");
-  controls[4] = control_struct_new (XkbRepeatKeysMask, &xkb->ctrls->repeat_interval, NULL, "Interval, mS");
-  controls[5] = control_struct_new (XkbMouseKeysMask,  &xkb->ctrls->mk_delay, "MouseKeys", "Delay, mS");
-  controls[6] = control_struct_new (XkbMouseKeysAccelMask, &xkb->ctrls->mk_time_to_max, NULL, "Accel");
-  controls[7] = control_struct_new (XkbAccessXTimeoutMask, &xkb->ctrls->ax_timeout, "AccessX timeout", "Sec");
-  
-  hbox = gtk_widget_new (gtk_hbox_get_type(),
-                        "GtkWidget::parent", container,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-
-  i = 0; /* FIXME: this looks bogus */
-  button = g_object_connect (gtk_widget_new (gtk_check_button_get_type (),
-                                            "GtkButton::label", "Access X Timeout",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            toggle_xkb_control, controls[i],
-                            NULL);
-
-  adjustment = GTK_ADJUSTMENT (gtk_adjustment_new (1.0, 1.0, 200.0, 1.0, 10.0, 1.0 ));
-         
-  range = g_object_connect (gtk_widget_new (gtk_hscale_get_type (),
-                                           "GtkWidget::parent", hbox,
-                                           "GtkWidget::visible", TRUE,
-                                           "GtkScale::adjustment", adjustment,
-                                           NULL),
-                           "signal::value_changed",
-                           set_accessx_control_value, controls[i],
-                           NULL);
-         
-  gtk_widget_set_usize (GTK_WIDGET (range), 150, -1);
-  gtk_widget_new (gtk_label_get_type(),
-                 "GtkWidget::parent", hbox,
-                 "GtkLabel::label", controls[i]->val_label,
-                 "GtkWidget::visible", TRUE,
-                 NULL);
-
-  hbox = gtk_widget_new (gtk_hbox_get_type(),
-                        "GtkWidget::parent", container,
-                        "GtkWidget::visible", TRUE,
-                        "GtkContainer::border_width", 5,
-                        NULL);
-
-  button = g_object_connect (gtk_widget_new (gtk_button_get_type (),
-                                            "GtkButton::label", "Quit",
-                                            "GtkWidget::parent", hbox,
-                                            "GtkWidget::visible", TRUE,
-                                            NULL),
-                            "signal::clicked",
-                            gui_exit, NULL,
-                            NULL);
-
-  gtk_widget_show (window);
-}
-
-int
-main(int argc, char **argv)
-{
-  
-  if ((argc > 1) && (!strncmp(argv[1],"-h",2)))
-  {
-    printf ("Usage: keysynth-demo\n");
-    exit(0);
-  }
-
-  gtk_init (&argc, &argv); /* must call, because this program uses GTK+ */
-
-  if (!init_xkb ())
-  {
-     g_error ("Xkb extension not present, can't initialize accessX\n");
-  }
-  
-  create_gui ();
-  
-  gtk_main ();  
-
-  return 0;
-}
diff --git a/test/app.c b/test/app.c
deleted file mode 100644 (file)
index 3236b6a..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <stdlib.h>
-#include <libbonobo.h>
-#include <bonobo-activation/bonobo-activation.h>
-#include <atk/atkobject.h>
-#include <libspi/Accessibility.h>
-#include <libspi/accessible.h>
-#include <libspi/application.h>
-
-#define APP_STATIC_BUFF_SZ 30
-
-int
-main(int argc, char **argv)
-{
-        CORBA_Environment ev;
-        CORBA_Object oclient;
-        AtkObject *atko;
-        char *obj_id;
-        char sbuf[APP_STATIC_BUFF_SZ];
-
-        Accessibility_Registry registry;
-        Accessibility_Event e;
-        SpiAccessible *accessible;
-        SpiApplication *app;
-
-        CORBA_exception_init(&ev);
-
-        if (!bonobo_init (&argc, argv))
-          {
-            g_error ("Could not initialize Bonobo");
-          }
-
-        /* Create the accesssible application server object */
-        g_snprintf(sbuf, APP_STATIC_BUFF_SZ, "application-%s", argv[0]);
-
-        atko = g_object_new (atk_object_get_type(), NULL);
-        atk_object_set_name (atko, sbuf);
-        atk_object_set_description( atko, "test application for accessibility SPI");
-        app = spi_application_new(atko);
-
-        /* Create the SpiAccessible 'source' for the event */
-        accessible = spi_accessible_new (atko);
-        fprintf(stderr, "accessible created.\n");
-
-        e.source = bonobo_object_corba_objref ( bonobo_object (accessible));
-        e.type = CORBA_string_dup ("focus:");
-
-        obj_id = "OAFIID:Accessibility_Registry:1.0";
-
-        oclient = bonobo_activation_activate_from_id (obj_id, 0, NULL, &ev);
-        if (ev._major != CORBA_NO_EXCEPTION) {
-                fprintf(stderr,
-                ("Accessibility app error: exception during registry activation from id: %s\n"),
-                        CORBA_exception_id(&ev));
-                CORBA_exception_free(&ev);
-                exit(-1);
-        }
-
-        if (CORBA_Object_is_nil (oclient, &ev))
-          {
-            g_error ("Could not locate registry");
-          }
-
-        registry = (Accessibility_Registry) oclient;
-
-        Accessibility_Registry_registerApplication (registry,
-                                                    bonobo_object_corba_objref (bonobo_object (app)),
-                                                    &ev);
-        fprintf(stderr, "registerApplication has been called.\n");
-
-        Accessibility_Registry_notifyEvent (registry, &e, &ev);
-        fprintf (stderr, "notify event has been called.\n");
-
-        bonobo_main (); /* needed when app becomes a server ? */
-        exit(0);
-}
diff --git a/test/at.c b/test/at.c
deleted file mode 100644 (file)
index aa8e8c6..0000000
--- a/test/at.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <stdlib.h>
-#include <libbonobo.h>
-#include <libspi/Accessibility.h>
-#include <libspi/accessible.h>
-#include <libspi/listener.h>
-
-void
-check_ev (CORBA_Environment *ev, char *desc)
-{
-        if (ev->_major != CORBA_NO_EXCEPTION) {
-                fprintf(stderr,
-                ("Accessibility app error: exception during CORBA call %s (%s)\n"),
-                        CORBA_exception_id(ev), desc);
-                CORBA_exception_free(ev);
-                exit(-1);
-        }
-}
-
-int
-main(int argc, char **argv)
-{
-        CORBA_Environment ev;
-        CORBA_Object oclient;
-        char *obj_id;
-        CORBA_long i;
-        CORBA_short n_desktops;
-        CORBA_long j;
-        CORBA_long n_apps;
-       CORBA_string s;
-        Accessibility_Desktop desktop;
-        Accessibility_Application app;
-        Accessibility_Registry registry;
-        SpiListener *listener;
-
-        CORBA_exception_init(&ev);
-
-        if (!bonobo_init (&argc, argv))
-          {
-            g_error ("Could not initialize Bonobo");
-          }
-
-        obj_id = "OAFIID:Accessibility_Registry:1.0";
-
-        oclient = bonobo_activation_activate_from_id (obj_id, 0, NULL, &ev);
-        if (ev._major != CORBA_NO_EXCEPTION) {
-                fprintf(stderr,
-                ("Accessibility app error: exception during registry activation from id: %s\n"),
-                        CORBA_exception_id(&ev));
-                CORBA_exception_free(&ev);
-                exit(-1);
-        }
-
-        if (CORBA_Object_is_nil (oclient, &ev))
-          {
-            g_error ("Could not locate registry");
-          }
-
-        bonobo_activate ();
-
-        listener = spi_listener_new ();
-
-        registry = (Accessibility_Registry) oclient;
-
-        Accessibility_Registry_registerGlobalEventListener
-                                   (registry,
-                                    (Accessibility_EventListener)
-                                         bonobo_object_corba_objref (bonobo_object (listener)),
-                                    "focus:",
-                                    &ev);
-        check_ev (&ev, "register:focus");
-        Accessibility_Registry_registerGlobalEventListener
-                                   (registry,
-                                    (Accessibility_EventListener)
-                                         bonobo_object_corba_objref (bonobo_object (listener)),
-                                    "Gtk:GtkWidget:button-press-event",
-                                    &ev);
-        check_ev (&ev, "register:button_press");
-        fprintf (stderr, "AT callback registered.\n");
-
-            n_desktops = Accessibility_Registry_getDesktopCount (registry, &ev);
-
-            for (i=0; i<n_desktops; ++i)
-              {
-                desktop = Accessibility_Registry_getDesktop (registry, i, &ev);
-               s = Accessibility_Desktop__get_name (desktop, &ev);
-                fprintf (stderr, "desktop %d name: %s\n", i, s);
-               CORBA_free (s);  
-                check_ev (&ev, "desktop:name");
-                n_apps = Accessibility_Desktop__get_childCount (desktop, &ev);
-                check_ev (&ev, "desktop:childCount");
-                fprintf (stderr, "desktop has %d apps:\n", n_apps);
-                for (j=0; j<n_apps; ++j)
-                  {
-                    app = (Accessibility_Application) Accessibility_Desktop_getChildAtIndex (desktop, j, &ev);
-                    check_ev (&ev, "desktop:getChildAtIndex");
-                    s = Accessibility_Application__get_name (app, &ev);
-                   fprintf (stderr, "app %d name: %s\n", j, s);
-                   CORBA_free (s);
-                    check_ev (&ev, "app:getName");
-                  }
-              }
-
-            fprintf (stderr, "finished querying desktop(s).\n");
-            bonobo_main ();
-               /* needed by at because it is a server ? */
-        exit(0);
-}
diff --git a/test/demo.csh b/test/demo.csh
deleted file mode 100755 (executable)
index bc14b3c..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/csh
-echo "This demo requires the festival synthesis system, and modules"
-echo "'gail'.  It also assumes (for the moment) that the gnome-2.0"
-echo "libraries are in /opt/gnome-2.0/lib, gnome-2.0 executables are in"
-echo "/opt/gnome-2.0/bin, and that festival is installed in"
-echo "/usr/share/festival/festival."
-echo "***WARNING*** this demo calls bonobo-slay and pkill, so it" 
-echo "may kill a number of existing processes/applications on your system."
-echo "you are advised to read and edit the file before use."
-setenv PATH /opt/gnome-2.0/bin:/bin:/usr/bin:$HOME/gnome/at-spi/test/.libs:/usr/share/festival/festival/bin
-setenv LD_LIBRARY_PATH /opt/gnome-2.0/lib
-bonobo-slay
-pkill festival_server
-pkill festival
-pkill sleep
-pkill magnifier
-pkill simple-at
-pkill keysynth-demo
-unsetenv GTK_MODULES
-setenv MAGNIFIER 1
-setenv FESTIVAL 1
-setenv GTK_RC_FILES /opt/gnome-2.0/share/themes/Default/gtk-2.0/gtkrc
-# start the text-to-speech service
-festival_server &
-
-# start the simple AT client, which uses the
-#  MAGNIFIER and FESTIVAL environment variables
-simple-at &
-sleep 2; keysynth-demo &
-# now set GTK_MODULES for use by GTK+ applications
-# this will cause the gail accessibility support, 
-# the ferret test tool, and the atk-bridge to be
-# loaded
-
-setenv GTK_MODULES "gail:ferret:atk-bridge"
-
-gtk-demo
-
-# these might be out of place, if gtk-demo backgrounds
-# itself
-
-pkill festival_server
-pkill festival
-pkill sleep
-pkill magnifier
-pkill simple-at
-
diff --git a/test/event-listener-test.c b/test/event-listener-test.c
deleted file mode 100644 (file)
index 1571d40..0000000
+++ /dev/null
@@ -1,646 +0,0 @@
-/*
- * 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 <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_caret_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_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 void report_parent_changed_event (const AccessibleEvent *event, void *user_data);
-static void report_window_event  (const AccessibleEvent *event, void *user_data);
-static void report_table_summary_event  (const AccessibleEvent *event, void *user_data);
-static void report_table_header_event  (const AccessibleEvent *event, void *user_data);
-static void report_table_caption_event  (const AccessibleEvent *event, void *user_data);
-static void report_table_row_description_event  (const AccessibleEvent *event, void *user_data);
-static void report_table_column_description_event  (const AccessibleEvent *event, void *user_data);
-static void timing_test_event (const AccessibleEvent *event, void *user_data);
-static SPIBoolean report_mouse_event  (const AccessibleDeviceEvent *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 *caret_listener;
-static AccessibleEventListener *text_selection_listener;
-static AccessibleEventListener *active_descendant_changed_listener;
-static AccessibleEventListener *children_changed_listener;
-static AccessibleEventListener *name_changed_listener;
-static AccessibleEventListener *description_changed_listener;
-static AccessibleEventListener *parent_changed_listener;
-static AccessibleEventListener *window_listener;
-static AccessibleEventListener *table_summary_listener;
-static AccessibleEventListener *table_header_listener;
-static AccessibleEventListener *table_caption_listener;
-static AccessibleEventListener *table_row_description_listener;
-static AccessibleEventListener *table_column_description_listener;
-static AccessibleDeviceListener *mouse_device_listener;
-static gint n_elements_traversed = 0;
-static GTimer *timer;
-
-static gboolean report_mouse_events = TRUE;
-
-void 
-usage_and_exit( void )
-{
-  g_print("\nUsage: event-listener-test [-h] [-m]\n");
-  g_print("       -h    : prints this usage message.\n");
-  g_print("       -m    : disable mouse event reporting.\n\n");
-
-  exit( 1 );
-}
-
-int
-main (int argc, char **argv)
-{
-  int c;
-
-  /* Parse Command-line */
-  if ( argc > 1 ) {
-      while ( ( c = getopt( argc, argv, "hm")) != EOF ) {
-          switch( c ) {
-              case 'm':
-                  report_mouse_events = FALSE;
-                  break;
-              default:
-                  usage_and_exit();
-                  break;
-          }
-      }
-      if ( optind < argc ) {
-          usage_and_exit();
-      }
-  }
-
-  fprintf (stderr, "RUNNING\n");
-
-  SPI_init ();
-
-  generic_listener = SPI_createAccessibleEventListener (
-         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);
-  caret_listener = SPI_createAccessibleEventListener (
-         report_caret_event, NULL);
-  text_selection_listener = SPI_createAccessibleEventListener (
-         report_text_selection_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 (
-         report_name_changed_event, NULL);
-  description_changed_listener = SPI_createAccessibleEventListener (
-         report_description_changed_event, NULL);
-  parent_changed_listener = SPI_createAccessibleEventListener (
-         report_parent_changed_event, NULL);
-  window_listener = SPI_createAccessibleEventListener (
-         report_window_event, NULL);
-  table_summary_listener = SPI_createAccessibleEventListener (
-         report_table_summary_event, NULL);
-  table_header_listener = SPI_createAccessibleEventListener (
-         report_table_header_event, NULL);
-  table_caption_listener = SPI_createAccessibleEventListener (
-         report_table_caption_event, NULL);
-  table_row_description_listener = SPI_createAccessibleEventListener (
-         report_table_row_description_event, NULL);
-  table_column_description_listener = SPI_createAccessibleEventListener (
-         report_table_column_description_event, NULL);
-  test_listener = SPI_createAccessibleEventListener (
-         timing_test_event, NULL);
-  mouse_device_listener = SPI_createAccessibleDeviceListener (
-          report_mouse_event, NULL);
-  detail1_listener = SPI_createAccessibleEventListener (
-         report_detail1_event, NULL); 
-
-  SPI_registerGlobalEventListener (generic_listener,
-                                   "focus:");
-  if ( report_mouse_events ) {
-      SPI_registerGlobalEventListener (specific_listener,
-                                      "mouse:rel");
-      SPI_registerGlobalEventListener (specific_listener,
-                                      "mouse:button");
-      SPI_registerGlobalEventListener (specific_listener,
-                                      "mouse:abs");
-  }
-  SPI_registerDeviceEventListener (mouse_device_listener, 
-                                  SPI_BUTTON_PRESSED | SPI_BUTTON_RELEASED,
-                                  NULL);
-  SPI_registerGlobalEventListener (specific_listener,
-                                  "keyboard:modifiers");
-
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:property-change");
-  SPI_registerGlobalEventListener (name_changed_listener,
-                                  "object:property-change:accessible-name");
-  SPI_registerGlobalEventListener (description_changed_listener,
-                                  "object:property-change:accessible-description");
-  SPI_registerGlobalEventListener (parent_changed_listener,
-                                  "object:property-change:accessible-parent");
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:state-changed"); 
-/*  SPI_registerGlobalEventListener (specific_listener,
-    "object:state-changed:focused"); */
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:selection-changed"); 
-
-  SPI_registerGlobalEventListener (children_changed_listener,
-                                  "object:children-changed"); 
-  SPI_registerGlobalEventListener (active_descendant_changed_listener,
-                                  "object:active-descendant-changed"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:visible-data-changed"); 
-  SPI_registerGlobalEventListener (text_selection_listener,
-                                  "object:text-selection-changed"); 
-  SPI_registerGlobalEventListener (caret_listener,
-                                  "object:text-caret-moved"); 
-  SPI_registerGlobalEventListener (text_listener,
-                                  "object:text-changed"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:column-inserted"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:row-inserted"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:column-reordered"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:row-reordered"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:column-deleted"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:row-deleted"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "object:model-changed"); 
-  SPI_registerGlobalEventListener (detail1_listener,
-                                  "object:link-selected"); 
-#if 0
-  SPI_registerGlobalEventListener (bounds_listener,
-                                  "object:bounds-changed");
-#endif
-  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:create");
-  SPI_registerGlobalEventListener (window_listener,
-                                  "window:deactivate");
-  SPI_registerGlobalEventListener (window_listener,
-                                  "window:close");
-  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_registerGlobalEventListener (table_summary_listener,
-                                  "object:property-change:accessible-table-summary");
-  SPI_registerGlobalEventListener (table_header_listener,
-                                  "object:property-change:accessible-table-row-header");
-  SPI_registerGlobalEventListener (table_header_listener,
-                                  "object:property-change:accessible-table-column-header");
-  SPI_registerGlobalEventListener (table_summary_listener,
-                                  "object:property-change:accessible-table-summary");
-  SPI_registerGlobalEventListener (table_row_description_listener,
-                                  "object:property-change:accessible-table-row-description");
-  SPI_registerGlobalEventListener (table_column_description_listener,
-                                  "object:property-change:accessible-table-column-description");
-  SPI_registerGlobalEventListener (test_listener,
-                                  "object:test");
-#ifdef NOT_YET_IMPLEMENTED
-  /* event below possibly should just be property change? */
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "window:restyle"); 
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "window:desktop-create");
-  SPI_registerGlobalEventListener (generic_listener,
-                                  "window:desktop-destroy");
-#endif
-  
-  timer = g_timer_new ();
-  traverse_accessible_tree (SPI_getDesktop (0));
-  g_print ("Time for first traversal of %d elements: %lf\n", 
-           n_elements_traversed,
-          g_timer_elapsed (timer, NULL));
-  g_timer_start (timer);
-  traverse_accessible_tree (SPI_getDesktop (0));
-  g_timer_stop (timer);
-  g_print ("Time for subsequent traversal %f\n", g_timer_elapsed (timer, NULL));
-  g_print ("[%f elements/sec, %f SPI calls/sec]\n", 
-       n_elements_traversed/g_timer_elapsed(timer, NULL),
-       (n_elements_traversed*8+1)/g_timer_elapsed(timer, NULL));
-  g_timer_reset (timer);
-  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 ();
-}
-
-static void
-traverse_accessible_tree (Accessible *accessible)
-{
-       int n_children;
-       int i;
-       char *name;
-       char *role_name;
-       Accessible *child;
-       
-        n_elements_traversed++;
-       name = Accessible_getName (accessible);
-       role_name = Accessible_getRoleName (accessible);
-#ifdef VERBOSE
-       fprintf (stdout, "[%s] \"%s\"\n",
-                role_name, name);
-#endif
-       SPI_freeString (name);
-       SPI_freeString (role_name);
-       n_children = Accessible_getChildCount (accessible);
-       if (!Accessible_isTable (accessible)) 
-       {
-               for (i = 0; i < n_children; ++i)
-               {
-                       child = Accessible_getChildAtIndex (accessible, i);
-                       traverse_accessible_tree (child);
-                       Accessible_unref (child);
-               }
-       }
-}
-
-void
-report_event (const AccessibleEvent *event, void *user_data)
-{
-  static long count = 0;
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "%s %s\n", event->type, s);
-  if (s) SPI_freeString (s);
-  if (count == 0) {
-         g_timer_reset (timer);
-         g_timer_start (timer);
-  }
-  ++count;
-  if ((count % 100) == 0) {
-         g_print ("%ld events received, %f events/sec\n",
-                  count,
-                  count/g_timer_elapsed(timer, NULL));
-  }
-
-  /* check for Table interface - if present, query selections */
-  if (Accessible_isTable (event->source)) 
-  {
-      gint n_selected_rows = 0;
-      gint n_selected_cols = 0;
-      long int *rows, *cols;
-      AccessibleTable *table = Accessible_getTable (event->source);
-
-      n_selected_rows = AccessibleTable_getSelectedRows (table, &rows);
-      n_selected_cols  = AccessibleTable_getSelectedColumns (table, &cols);
-
-      g_print ("TABLE interface: selectedRows=%d, selectedCols = %d\n",
-              n_selected_rows, n_selected_cols);
-  }
-}
-
-void
-report_caret_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  long int start, end, offset, line_start_begin;
-  long int line_start_end, line_end_begin, line_end_end;
-
-  AccessibleText *text = Accessible_getText (event->source);
-  offset = event->detail1;
-  AccessibleText_getTextAtOffset (text, offset, 
-                                 SPI_TEXT_BOUNDARY_SENTENCE_START,
-                                 &start, &end);
-  fprintf (stderr, 
-          "caret event from %s %s: offset %ld, SENTENCE_START offsets start=%ld, end=%ld\n", 
-          event->type, s, offset, start, end);
-  AccessibleText_getTextAtOffset (text, offset, 
-                                 SPI_TEXT_BOUNDARY_SENTENCE_END,
-                                 &start, &end);
-  AccessibleText_getTextAtOffset (text, offset, 
-                                 SPI_TEXT_BOUNDARY_LINE_START,
-                                 &line_start_begin, &line_start_end);
-  AccessibleText_getTextAtOffset (text, offset, 
-                                 SPI_TEXT_BOUNDARY_LINE_END,
-                                 &line_end_begin, &line_end_end);
-  fprintf (stderr, 
-          "SENTENCE_END: %ld - %ld; LINE_START: %ld - %ld; LINE_END: %ld - %ld\n", 
-          start, end, line_start_begin, line_start_end,
-          line_end_begin, line_end_end);
-
-  AccessibleText_getTextAtOffset (text, offset, 
-                                 SPI_TEXT_BOUNDARY_WORD_START,
-                                 &line_start_begin, &line_start_end);
-  AccessibleText_getTextAtOffset (text, offset, 
-                                 SPI_TEXT_BOUNDARY_WORD_END,
-                                 &line_end_begin, &line_end_end);
-  fprintf (stderr, 
-          "WORD_START: %ld - %ld; WORD_END: %ld - %ld\n", 
-          line_start_begin, line_start_end,
-          line_end_begin, line_end_end);
-
-  if (s) SPI_freeString (s);
-}
-
-void
-report_detail_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  if (s) SPI_freeString (s);
-}
-
-void
-report_detail1_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld\n", event->type, s,
-          event->detail1);
-  if (s) SPI_freeString (s);
-}
-
-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 %ld,%ld - %ld,%ld\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);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleTextChangedEvent_getChangeString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  if (s) SPI_freeString (s);
-}
-
-void
-report_text_selection_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleTextSelectionChangedEvent_getSelectionString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-void
-report_active_descendant_changed_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  char *s1;
-  Accessible *ao;
-
-  ao = AccessibleActiveDescendantChangedEvent_getActiveDescendant (event);
-  s1 = Accessible_getName (ao);
-  fprintf (stderr, "(detail) %s parent: %s child: %s %ld %ld\n", event->type, 
-           s ? s : "<null>", s1 ? s1 : "<null>",
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  SPI_freeString (s1);
-  Accessible_unref (ao);
-}
-void
-report_children_changed_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  char *s1 = NULL, *s2, *s3 = NULL;
-  Accessible *ao;
-
-  ao = AccessibleChildChangedEvent_getChildAccessible (event);
-  if (ao) s1 = Accessible_getName (ao);
-  s2 = Accessible_getRoleName (event->source);
-  if (ao) s3 = Accessible_getRoleName (ao);
-  fprintf (stderr, "(detail) %s parent: %s [%s] child: %s [%s] %ld %ld\n", 
-           event->type, 
-           s ? s : "<null>", 
-          s2,
-           s1 ? s1 : "<null>",
-          s3 ? s3 : "<null>",
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  SPI_freeString (s1);
-  SPI_freeString (s2);
-  SPI_freeString (s3);
-  Accessible_unref (ao);
-}
-
-void
-report_name_changed_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleNameChangedEvent_getNameString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-void
-report_description_changed_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleDescriptionChangedEvent_getDescriptionString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-void
-report_parent_changed_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  char *s1;
-  Accessible *ao;
-
-  ao = AccessibleParentChangedEvent_getParentAccessible (event);
-  s1 = Accessible_getName (ao);
-  fprintf (stderr, "(detail) %s parent: %s child: %s %ld %ld\n", event->type, 
-           s ? s : "<null>", s1 ? s1 : "<null>",
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  SPI_freeString (s1);
-  Accessible_unref (ao);
-}
-
-void
-report_window_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleWindowEvent_getTitleString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-void
-report_table_summary_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  char *s1;
-  Accessible *ao;
-
-  ao = AccessibleTableSummaryChangedEvent_getSummaryAccessible (event);
-  s1 = Accessible_getName (ao);
-  fprintf (stderr, "(detail) %s parent: %s child: %s %ld %ld\n", event->type, 
-           s ? s : "<null>", s1 ? s1 : "<null>",
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  SPI_freeString (s1);
-  Accessible_unref (ao);
-}
-
-void
-report_table_header_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  char *s1;
-  Accessible *ao;
-
-  ao = AccessibleTableHeaderChangedEvent_getHeaderAccessible (event);
-  s1 = Accessible_getName (ao);
-  fprintf (stderr, "(detail) %s parent: %s child: %s %ld %ld\n", event->type, 
-           s ? s : "<null>", s1 ? s1 : "<null>",
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  SPI_freeString (s1);
-  Accessible_unref (ao);
-}
-
-void
-report_table_caption_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleTableCaptionChangedEvent_getCaptionString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-void
-report_table_row_description_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleTableRowDescriptionChangedEvent_getDescriptionString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-void
-report_table_column_description_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s = Accessible_getName (event->source);
-  fprintf (stderr, "(detail) %s %s %ld %ld\n", event->type, s,
-          event->detail1, event->detail2);
-  SPI_freeString (s);
-  s = AccessibleTableColumnDescriptionChangedEvent_getDescriptionString (event);
-  fprintf (stderr, "context string %s\n", (s) ? s : "<nil>");
-  SPI_freeString (s);
-}
-
-SPIBoolean
-report_mouse_event (const AccessibleDeviceEvent *event, void *user_data)
-{
-  fprintf (stderr, "mouse event %ld %d %x %x\n", 
-          event->keyID, 
-          (int) event->keycode,
-          (unsigned) event->type,
-          (unsigned) event->modifiers);
-  return FALSE;
-}
-
-void
-timing_test_event (const AccessibleEvent *event, void *user_data)
-{
-       static long count = 0;
-       if (count == 0) g_timer_start (timer);
-       ++count;
-       if ((count % 500) == 0) {
-               g_print ("%ld events received, %f events/sec\n",
-                        count,
-                        count/g_timer_elapsed(timer, NULL));
-       }
-}
-
-void
-test_exit (void)
-{
-  SPI_deregisterGlobalEventListenerAll (generic_listener);
-  AccessibleEventListener_unref (generic_listener);
-  SPI_deregisterGlobalEventListenerAll (specific_listener);
-  AccessibleEventListener_unref (specific_listener);
-}
diff --git a/test/key-listener-test.c b/test/key-listener-test.c
deleted file mode 100644 (file)
index 5c7d43d..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <sys/un.h>
-#include <cspi/spi.h>
-
-static SPIBoolean report_command_key_event  (const AccessibleKeystroke *stroke, void *user_data);
-static SPIBoolean report_ordinary_key_event (const AccessibleKeystroke *stroke, void *user_data);
-static SPIBoolean report_synchronous_key_event (const AccessibleKeystroke *stroke, void *user_data);
-static SPIBoolean report_tab_key_event (const AccessibleKeystroke *stroke, void *user_data);
-static SPIBoolean report_all_key_event (const AccessibleKeystroke *stroke, void *user_data);
-
-static AccessibleKeystrokeListener *command_key_listener;
-static AccessibleKeystrokeListener *ordinary_key_listener;
-static AccessibleKeystrokeListener *synchronous_key_listener;
-static AccessibleKeystrokeListener *tab_key_listener;
-static AccessibleKeystrokeListener *all_key_listener;
-static AccessibleKeySet            *command_keyset;
-static AccessibleKeySet            *async_keyset;
-static AccessibleKeySet            *sync_keyset;
-static AccessibleKeySet            *tab_keyset;
-
-int
-main (int argc, char **argv)
-{
-  const char *tab_strings[1] = {"Tab"};
-  short keycodes[] = {65, 64, 23};
-  SPIBoolean retval = FALSE;
-       
-  SPI_init ();
-
-  /* prepare the keyboard snoopers */
-  command_key_listener = SPI_createAccessibleKeystrokeListener (report_command_key_event, NULL);
-  ordinary_key_listener = SPI_createAccessibleKeystrokeListener (report_ordinary_key_event, NULL);
-  synchronous_key_listener = SPI_createAccessibleKeystrokeListener (report_synchronous_key_event, NULL);
-  tab_key_listener = SPI_createAccessibleKeystrokeListener (report_tab_key_event, NULL);
-  all_key_listener = SPI_createAccessibleKeystrokeListener (report_all_key_event, NULL);
-  
-  command_keyset = SPI_createAccessibleKeySet (1, "q", NULL, NULL);
-  async_keyset = SPI_createAccessibleKeySet (3, NULL, keycodes, NULL);
-  sync_keyset = SPI_createAccessibleKeySet (3, "def", NULL, NULL);
-  tab_keyset = SPI_createAccessibleKeySet (1,  NULL, NULL, tab_strings);
-  retval = SPI_registerAccessibleKeystrokeListener(command_key_listener,
-                                         command_keyset,
-                                         SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL,
-                                         (unsigned long) ( SPI_KEY_PRESSED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-  fprintf (stderr, "Command key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-  retval = SPI_registerAccessibleKeystrokeListener(ordinary_key_listener,
-                                         async_keyset,
-                                         SPI_KEYMASK_UNMODIFIED,
-                                         (unsigned long) ( SPI_KEY_PRESSED | SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_NOSYNC);
-
-  retval = SPI_registerAccessibleKeystrokeListener(synchronous_key_listener,
-                                         sync_keyset,
-                                         SPI_KEYMASK_UNMODIFIED,
-                                         (unsigned long) ( SPI_KEY_PRESSED | SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_CANCONSUME);
-
-  retval = SPI_registerAccessibleKeystrokeListener(tab_key_listener,
-                                         tab_keyset,
-                                         SPI_KEYMASK_ALT,
-                                         (unsigned long) ( SPI_KEY_PRESSED | SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-  fprintf (stderr, "tab listener registry: %s\n", retval ? "succeeded" : "failed");
-
-  retval = SPI_registerAccessibleKeystrokeListener(all_key_listener,
-                                         SPI_KEYSET_ALL_KEYS,
-                                         SPI_KEYMASK_CONTROL | SPI_KEYMASK_SHIFT,
-                                         (unsigned long) ( SPI_KEY_PRESSED | SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-       
-  fprintf (stderr, "all key registry: %s\n", retval ? "succeeded" : "failed" );
-
-  SPI_registerAccessibleKeystrokeListener(all_key_listener,
-                                        SPI_KEYSET_ALL_KEYS,
-                                        SPI_KEYMASK_SHIFT,
-                                        (unsigned long) ( SPI_KEY_PRESSED ),
-                                        SPI_KEYLISTENER_NOSYNC | SPI_KEYLISTENER_CANCONSUME);
-
-  SPI_event_main ();
-
-  putenv ("AT_BRIDGE_SHUTDOWN=1");
-
-  return SPI_exit ();
-}
-
-static void
-simple_at_exit (void)
-{
-  SPI_deregisterAccessibleKeystrokeListener (command_key_listener, SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL);
-  AccessibleKeystrokeListener_unref         (command_key_listener);
-  SPI_freeAccessibleKeySet                  (command_keyset);
-  
-/*
-  SPI_deregisterAccessibleKeystrokeListener (ordinary_key_listener, SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL); */
-  AccessibleKeystrokeListener_unref         (ordinary_key_listener);
-  SPI_freeAccessibleKeySet                  (async_keyset);
-  
-/*  SPI_deregisterAccessibleKeystrokeListener (synchronous_key_listener, SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL); */
-  AccessibleKeystrokeListener_unref         (synchronous_key_listener);
-  SPI_freeAccessibleKeySet                  (sync_keyset);
-
-  SPI_deregisterAccessibleKeystrokeListener (tab_key_listener, SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL);
-  AccessibleKeystrokeListener_unref         (tab_key_listener);
-  SPI_freeAccessibleKeySet                  (tab_keyset);
-
-  SPI_event_quit ();
-}
-
-static SPIBoolean
-is_command_key (const AccessibleKeystroke *key)
-{
-  switch (key->keyID)
-    {
-    case 'Q':
-    case 'q':
-           simple_at_exit(); 
-           return TRUE; /* not reached */
-    default:
-           return FALSE;
-    }
-}
-
-static void
-print_key_event (const AccessibleKeystroke *key, char *prefix)
-{
-  fprintf (stderr, "%s KeyEvent %s%c (keycode %d); string=%s; time=%lx\n",
-          prefix,
-         (key->modifiers & SPI_KEYMASK_ALT)?"Alt-":"",
-         ((key->modifiers & SPI_KEYMASK_SHIFT)^(key->modifiers & SPI_KEYMASK_SHIFTLOCK))?
-         (char) toupper((int) key->keyID) : (char) tolower((int) key->keyID),
-         (int) key->keycode,
-         key->keystring,
-         (long int) key->timestamp);   
-}
-
-static SPIBoolean
-report_command_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  print_key_event (key, "command");
-  return is_command_key (key);
-}
-
-static SPIBoolean
-report_ordinary_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  print_key_event (key, "ordinary");   
-  return FALSE;
-}
-
-static SPIBoolean
-report_synchronous_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  /* consume 'd' key, let others pass through */       
-  print_key_event (key, "synchronous (consumable) ");  
-  return ( key->keyID == 'd' ) ? TRUE : FALSE;
-}
-
-static SPIBoolean
-report_tab_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  print_key_event (key, "[TAB]");      
-  return FALSE;
-}
-
-static SPIBoolean
-report_all_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  fprintf(stderr, "(%ld)", key->keyID);
-  return FALSE;
-}
-
diff --git a/test/keypad-test.c b/test/keypad-test.c
deleted file mode 100644 (file)
index 7be9c99..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <glib-object.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <sys/un.h>
-#include <cspi/spi.h>
-#define XK_MISCELLANY
-#include <X11/keysymdef.h>
-#include <gdk/gdk.h>
-#include <gdk/gdkx.h>
-
-static SPIBoolean report_keypad_key_event  (const AccessibleKeystroke *stroke, void *user_data);
-
-static short *get_keypad_keycodes (void);
-
-static AccessibleKeystrokeListener *keypad_key_listener;
-static AccessibleKeySet            *keypad_keyset;
-
-static Display *get_display (void);
-
-int
-main (int argc, char **argv)
-{
-  SPIBoolean retval = FALSE;
-       
-  SPI_init ();
-
-  gdk_init (&argc, &argv); /* 
-               * needed in this test program only  
-               * because we are calling GDK_DISPLAY() 
-               */
-
-  /* prepare the keyboard snoopers */
-  keypad_key_listener = SPI_createAccessibleKeystrokeListener (report_keypad_key_event, NULL);
-  keypad_keyset = SPI_createAccessibleKeySet (16, NULL, get_keypad_keycodes (), NULL);
-
-  retval = SPI_registerAccessibleKeystrokeListener(keypad_key_listener,
-                                         keypad_keyset,
-                                         SPI_KEYMASK_UNMODIFIED,
-                                         (unsigned long) ( SPI_KEY_PRESSED |
-                                                           SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-  fprintf (stderr, "Keypad key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-
-  retval = SPI_registerAccessibleKeystrokeListener(keypad_key_listener,
-                                         keypad_keyset,
-                                         SPI_KEYMASK_SHIFT,
-                                         (unsigned long) ( SPI_KEY_PRESSED |
-                                                           SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-
-  fprintf (stderr, "Shift-Keypad key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-
-  retval = SPI_registerAccessibleKeystrokeListener(keypad_key_listener,
-                                         keypad_keyset,
-                                         SPI_KEYMASK_MOD2,
-                                         (unsigned long) ( SPI_KEY_PRESSED |
-                                                           SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-
-  fprintf (stderr, "Mod2-Keypad key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-
-  retval = SPI_registerAccessibleKeystrokeListener(keypad_key_listener,
-                                         keypad_keyset,
-                                         SPI_KEYMASK_MOD3,
-                                         (unsigned long) ( SPI_KEY_PRESSED |
-                                                           SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-
-  fprintf (stderr, "Mod3-Keypad key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-
-  retval = SPI_registerAccessibleKeystrokeListener(keypad_key_listener,
-                                         keypad_keyset,
-                                         SPI_KEYMASK_MOD2 | SPI_KEYMASK_SHIFT,
-                                         (unsigned long) ( SPI_KEY_PRESSED |
-                                                           SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-
-  fprintf (stderr, "Mod2-Shift-Keypad key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-
-  retval = SPI_registerAccessibleKeystrokeListener(keypad_key_listener,
-                                         keypad_keyset,
-                                         SPI_KEYMASK_MOD3 | SPI_KEYMASK_SHIFT,
-                                         (unsigned long) ( SPI_KEY_PRESSED |
-                                                           SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-
-  fprintf (stderr, "Mod3-Shift-Keypad key registry: result %s\n", retval ? "succeeded" : 
-       "failed");
-
-  SPI_event_main ();
-
-  putenv ("AT_BRIDGE_SHUTDOWN=1");
-
-  return SPI_exit ();
-}
-
-static Display*
-get_display (void)
-{
-       return GDK_DISPLAY ();
-}
-
-static short*
-get_keypad_keycodes (void)
-{
-       short *keycodes = (short *) g_new0 (short *, 16);
-       int i;
-
-       keycodes [0] = XKeysymToKeycode (get_display (), XK_KP_0);
-       keycodes [1] = XKeysymToKeycode (get_display (), XK_KP_1);
-       keycodes [2] = XKeysymToKeycode (get_display (), XK_KP_2);
-       keycodes [3] = XKeysymToKeycode (get_display (), XK_KP_3);
-       keycodes [4] = XKeysymToKeycode (get_display (), XK_KP_4);
-       keycodes [5] = XKeysymToKeycode (get_display (), XK_KP_5);
-       keycodes [6] = XKeysymToKeycode (get_display (), XK_KP_6);
-       keycodes [7] = XKeysymToKeycode (get_display (), XK_KP_7);
-       keycodes [8] = XKeysymToKeycode (get_display (), XK_KP_8);
-       keycodes [9] = XKeysymToKeycode (get_display (), XK_KP_9);
-       keycodes [10] = XKeysymToKeycode (get_display (), XK_KP_Divide);
-       keycodes [11] = XKeysymToKeycode (get_display (), XK_KP_Multiply);
-       keycodes [12] = XKeysymToKeycode (get_display (), XK_KP_Add);
-       keycodes [13] = XKeysymToKeycode (get_display (), XK_KP_Subtract);
-       keycodes [14] = XKeysymToKeycode (get_display (), XK_KP_Decimal);
-       keycodes [15] = XKeysymToKeycode (get_display (), XK_KP_Enter);
-
-       for (i = 0; i < 16; ++i)
-       {
-               fprintf (stderr, "keycode[%d] = %d\n", i, (int) keycodes[i]);
-       }
-       return keycodes;
-}
-
-static void
-print_key_event (const AccessibleKeystroke *key, char *prefix)
-{
-  fprintf (stderr, "%s KeyEvent %s%c [keysym 0x%ld] (keycode %d); string=%s; time=%lx\n",
-          prefix,
-         (key->modifiers & SPI_KEYMASK_ALT)?"Alt-":"",
-         ((key->modifiers & SPI_KEYMASK_SHIFT)^(key->modifiers & SPI_KEYMASK_SHIFTLOCK))?
-         (char) toupper((int) key->keyID) : (char) tolower((int) key->keyID),
-          key->keyID,
-         (int) key->keycode,
-         key->keystring,
-         (long int) key->timestamp);   
-}
-
-static SPIBoolean
-report_keypad_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  print_key_event (key, "keypad");
-  return FALSE;
-}
-
-
diff --git a/test/keysynth-demo.c b/test/keysynth-demo.c
deleted file mode 100644 (file)
index 5f6b6f7..0000000
+++ /dev/null
@@ -1,511 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-#include <cspi/spi.h>
-
-#define LABELMAXLEN 20
-#define MIN_KEYCODE 9
-#define CAPSLOCK_KEYCODE 66
-#define SHIFT_L_KEYCODE 50
-#define SHIFT_R_KEYCODE 62
-
-/* these can be increased to access more keys */
-#define MAX_ROWS 6 /* The last row only holds Quit and ShiftLatch, special-purpose keys */
-#define MAX_COLUMNS 14
-
-static AccessibleKeystrokeListener *key_listener;
-static AccessibleKeystrokeListener *switch_listener;
-
-static SPIBoolean shift_latched = False;
-static SPIBoolean caps_lock = False;
-static GtkButton **buttons[MAX_ROWS];
-
-typedef enum {
-       SCAN_IDLE,
-       SCAN_LINES,
-       SCAN_LINES_DONE,
-       SCAN_KEYS,
-       SCAN_KEYS_DONE
-} ScanTimerState;
-
-typedef struct {
-       ScanTimerState timer_state;
-       gint scan_row;
-       gint scan_column;
-} ScanState;
-
-GdkColor *
-button_default_bg_color (GtkButton *button)
-{
-  static GdkColor bg_color;
-  static gboolean initialized = FALSE;
-  if (!initialized)
-  {
-    bg_color = gtk_widget_get_style (GTK_WIDGET (button))->bg[GTK_STATE_NORMAL];
-    initialized = TRUE;
-  }
-  return &bg_color;
-}
-
-GdkColor *
-button_default_selected_color (GtkButton *button)
-{
-  static GdkColor selected_color;
-  static gboolean initialized = FALSE;
-  if (!initialized)
-  {
-    selected_color = gtk_widget_get_style (GTK_WIDGET (button))->bg[GTK_STATE_SELECTED];
-    initialized = TRUE;
-  }
-  return &selected_color;
-}
-
-void
-select_key (gint lineno, gint keyno)
-{
-  /*
-   * Before we do this, we need to make sure we've saved the default normal bg.
-   * The button_default_bg_color() call caches this for us (as a side-effect).
-   * Probably we should do this a cleaner way...
-   */
-  button_default_bg_color (buttons [lineno][keyno]);   
-  gtk_widget_modify_bg (GTK_WIDGET (buttons [lineno][keyno]),
-                       GTK_STATE_NORMAL,
-                       button_default_selected_color (buttons [lineno][keyno]));
-}
-
-void
-deselect_key (gint lineno, gint keyno)
-{
-  gtk_widget_modify_bg (GTK_WIDGET (buttons [lineno][keyno]),
-                       GTK_STATE_NORMAL,
-                       button_default_bg_color (buttons [lineno][keyno]));
-}
-
-void
-deselect_line (gint lineno)
-{
-  int i;
-  int max_columns = MAX_COLUMNS;
-  if (lineno == MAX_ROWS-1) max_columns = 2;
-  for (i=0; i<max_columns; ++i)
-         deselect_key (lineno, i);
-}
-
-void
-select_line (gint lineno)
-{
-  int i;
-  int max_columns = MAX_COLUMNS;
-  if (lineno == MAX_ROWS-1) max_columns = 2;
-  for (i=0; i<max_columns; ++i)
-         select_key (lineno, i);
-}
-
-
-static ScanState*
-scan_state (void)
-{
-  static ScanState state = {SCAN_IDLE, 0, 0};
-  return &state;
-}
-
-static gboolean
-timeout_scan (gpointer data)
-{
-  ScanState *state = (ScanState *) data;
-  state->timer_state = SCAN_IDLE;
-  deselect_key (state->scan_row, state->scan_column);
-  return FALSE;
-}
-
-static gboolean
-increment_scan (gpointer data)
-{
-  ScanState *state = (ScanState *) data;
-  int max_columns;
-  switch (state->timer_state)
-    {  
-      case SCAN_IDLE: 
-/* happens if switch-break occurs before the timer fires, after SCAN_KEYS_DONE*/
-          return FALSE;
-      case SCAN_LINES:
-          deselect_line (state->scan_row);
-          state->scan_row = (++state->scan_row < MAX_ROWS) ? state->scan_row : 0;
-          select_line (state->scan_row);
-          g_print ("line %d\n", state->scan_row);
-         break;
-      case SCAN_KEYS:
-          deselect_key (state->scan_row, state->scan_column);
-         if (state->scan_row == MAX_ROWS-1) max_columns = 2;
-         else max_columns = MAX_COLUMNS; /* last row has only two keys */
-          state->scan_column = (++state->scan_column < max_columns) ? state->scan_column : 0;
-          select_key (state->scan_row, state->scan_column);
-          g_print ("row %d\n", state->scan_column);
-         break;
-      case SCAN_LINES_DONE:
-      case SCAN_KEYS_DONE:
-         return FALSE;
-    }
-  return TRUE;
-}
-
-static void
-scan_start (unsigned int timestamp)
-{
-  ScanState *state = scan_state();
-  switch (state->timer_state)
-    {
-    case SCAN_IDLE:
-      state->timer_state = SCAN_LINES;
-      state->scan_column = 0;
-      state->scan_row = 0;
-      g_timeout_add_full (G_PRIORITY_HIGH_IDLE, 600, increment_scan, state, NULL);
-      select_line (state->scan_row);
-      break;
-    case SCAN_LINES_DONE:
-      state->timer_state = SCAN_KEYS;
-      g_timeout_add_full (G_PRIORITY_HIGH_IDLE, 600, increment_scan, state, NULL);
-      deselect_line (state->scan_row);
-      select_key (state->scan_row, state->scan_column);
-      break;
-    case SCAN_KEYS_DONE:
-      gtk_button_clicked (buttons[state->scan_row][state->scan_column]);
-      deselect_key (state->scan_row, state->scan_column);
-      state->timer_state = SCAN_IDLE;
-      break;
-    default:
-      g_print("unexpected state for 'scan start'\n");
-    }
-}
-
-static void
-scan_stop (unsigned int timestamp)
-{
-  /* find the element correspondin to this event's timestamp */
-  ScanState *state = scan_state();
-  switch (state->timer_state)
-    {
-    case SCAN_LINES:
-      state->timer_state = SCAN_LINES_DONE;
-      break;
-    case SCAN_KEYS:
-      state->timer_state = SCAN_KEYS_DONE;
-      g_timeout_add_full (G_PRIORITY_HIGH_IDLE, 1200, timeout_scan, state, NULL);
-      break;
-    case SCAN_IDLE:
-      break;
-    default:
-      g_print("unexpected state for 'scan stop'\n");
-    }
-}
-
-static void
-label_buttons(SPIBoolean shifted)
-{
-  int i, j;
-  KeySym keysym;
-  KeyCode keycode = MIN_KEYCODE;
-  char label[LABELMAXLEN] = " ";
-  char *button_label;
-  char *keysymstring;
-  
-  for (i=0; i<MAX_ROWS-1; ++i) /* last row doesn't change */
-    {
-      for (j=0; j<MAX_COLUMNS; ++j, ++keycode)
-        {
-         keysym = (KeySym) XKeycodeToKeysym (GDK_DISPLAY(), keycode, shifted ? 1 : 0);
-          /* Note: these routines are not i18n-savvy,  we need to use XIM, other methods here */
-         if (keysym && g_ascii_isprint((int)keysym))
-           {
-             g_snprintf (label, 2, "%c", (int) keysym); 
-           }
-         else
-           {
-             keysymstring = XKeysymToString (keysym);
-             if (keysymstring)
-               { 
-                 /* KP_ means keypad... we won't expose this difference */
-                 if (!strncmp (keysymstring, "KP_", 3))
-                      strncpy (label, (char *)(keysymstring+3), LABELMAXLEN);
-                 else strncpy (label, keysymstring, LABELMAXLEN);
-               }
-             else *label = 0;
-           }
-         button_label =        
-         *label==' ' ? "   space   " : label;
-         gtk_button_set_label (buttons[i][j], button_label);    
-        }
-    }
-}
-
-static void
-show_shift (GtkButton *button, SPIBoolean *is_shifted)
-{
- label_buttons (*is_shifted ^ caps_lock);      
-}
-
-static void
-toggle_shift_latch (GtkButton *button) 
-{ 
-  shift_latched = !shift_latched;
-  if (buttons) label_buttons (caps_lock || shift_latched);
-}
-
-static void
-keysynth_exit (void)
-{
-  SPI_deregisterAccessibleKeystrokeListener (key_listener, SPI_KEYMASK_ALT);
-  AccessibleKeystrokeListener_unref         (key_listener);
-
-  SPI_deregisterAccessibleKeystrokeListener (switch_listener, SPI_KEYMASK_UNMODIFIED);
-  AccessibleKeystrokeListener_unref         (switch_listener);
-
-  SPI_event_quit ();
-}
-
-static void
-keysynth_realize (GtkWidget *widget)
-{
-  XWMHints wm_hints;
-  Atom wm_window_protocols[2];
-  static gboolean initialized = FALSE;
-  
-  if (!initialized)
-    {
-      wm_window_protocols[0] = gdk_x11_get_xatom_by_name ("WM_DELETE_WINDOW");
-      wm_window_protocols[1] = gdk_x11_get_xatom_by_name ("_NET_WM_PING");
-    }
-  
-  wm_hints.flags = InputHint;
-  wm_hints.input = False;
-  
-  XSetWMHints (GDK_WINDOW_XDISPLAY (widget->window),
-              GDK_WINDOW_XWINDOW (widget->window), &wm_hints);
-  
-  XSetWMProtocols (GDK_WINDOW_XDISPLAY (widget->window),
-                  GDK_WINDOW_XWINDOW (widget->window), wm_window_protocols, 2);
-}
-
-static void
-button_exit (GtkButton *notused, void *alsonotused)
-{
-  keysynth_exit ();
-}
-
-static SPIBoolean
-is_command_key (const AccessibleKeystroke *key, void *user_data)
-{
-  switch (key->keyID)
-    {
-    case 'Q':
-    case 'q':
-           keysynth_exit (); 
-           return TRUE; /* not reached */
-    }
-  return FALSE;
-}
-
-static SPIBoolean
-switch_callback (const AccessibleKeystroke *key, void *user_data)
-{
-  static SPIBoolean is_down = FALSE;
-
-  if (key->type == SPI_KEY_RELEASED)
-    {
-      g_print ("switch up\n");
-      is_down = FALSE;
-      scan_stop (key->timestamp);
-    }
-  else 
-  if (!is_down)
-    {
-      g_print ("switch down\n");
-      is_down = TRUE;
-      scan_start (key->timestamp);
-    }
-  /* catch the first, ignore the rest (will repeat) until keyrelease */
-  return FALSE;
-}
-
-static void
-synth_keycode (GtkButton *button, KeyCode *keycode)
-{
-  static KeyCode shift_keycode = 0;
-  if (!shift_keycode) shift_keycode = XKeysymToKeycode(GDK_DISPLAY(), (KeySym) 0xFFE1);
-  /* Note: in a real onscreen keyboard shift keycode should not be hard-coded! */
-  
-  if (*keycode)
-    {
-      if (*keycode == CAPSLOCK_KEYCODE)
-        {
-          caps_lock = !caps_lock;           
-          label_buttons (caps_lock || shift_latched);
-        }
-      if (shift_latched)
-             SPI_generateKeyboardEvent (shift_keycode, NULL, SPI_KEY_PRESS);
-
-      g_print ("generating key %d\n", (int) *keycode);
-      SPI_generateKeyboardEvent ((long) *keycode, NULL, SPI_KEY_PRESSRELEASE);
-
-      if (shift_latched)
-        {
-         SPI_generateKeyboardEvent (shift_keycode, NULL, SPI_KEY_RELEASE);
-         toggle_shift_latch (button);
-       }
-    }
-}
-
-static void
-create_vkbd(void)
-{
-  GtkWidget *window, *container, *hbox;
-  int i, j;
-  KeyCode *keycodeptr, keycode = MIN_KEYCODE;
-  static SPIBoolean true_val = True;
-  static SPIBoolean false_val = False;
-
-  window = g_object_connect (gtk_widget_new (gtk_window_get_type (),
-                                            "user_data", NULL,
-                                            "can_focus", FALSE,
-                                            "type", GTK_WINDOW_TOPLEVEL,
-                                            "window-position", GTK_WIN_POS_CENTER,
-                                            "title", "test",
-                                            "allow_grow", FALSE,
-                                            "allow_shrink", FALSE,
-                                            "border_width", 10,
-                                            NULL),
-                            "signal::realize", keysynth_realize, NULL,
-                            "signal::destroy", keysynth_exit, NULL,
-                            NULL);
-  
-  container = gtk_widget_new (GTK_TYPE_VBOX,
-                             "GtkWidget::parent", window,
-                             "GtkWidget::visible", TRUE,
-                             NULL);
-  for (i=0; i<MAX_ROWS-1; ++i)
-    {
-      hbox = gtk_widget_new (gtk_hbox_get_type(),
-                            "GtkWidget::parent", container,
-                            "GtkWidget::visible", TRUE,
-                            NULL);
-      buttons[i] = g_new0 (GtkButton*, MAX_COLUMNS);
-      for (j=0; j<MAX_COLUMNS; ++j)
-       {
-         keycodeptr = (KeyCode *) g_new0 (KeyCode, 1);
-         *keycodeptr = keycode;
-         buttons[i][j] = g_object_connect (gtk_widget_new (gtk_button_get_type (),
-                                                    "GtkWidget::parent", hbox,
-                                                    "GtkWidget::visible", TRUE,
-                                                    NULL),
-                                    "signal::clicked",
-                                    synth_keycode, keycodeptr,
-                                    NULL);
-         if (keycode == SHIFT_L_KEYCODE || keycode == SHIFT_R_KEYCODE)
-           {
-             g_object_connect (buttons[i][j], "signal::pressed", show_shift,
-                               &true_val, NULL);  
-             g_object_connect (buttons[i][j], "signal::released", show_shift,
-                               &false_val, NULL);  
-           }
-         ++keycode;
-       }
-    } 
-  hbox = gtk_widget_new (gtk_hbox_get_type(),
-                        "GtkWidget::parent", container,
-                        "GtkWidget::visible", TRUE,
-                        NULL);
-  buttons[i] = g_new0 (GtkButton*, 2);
-  buttons[i][0] = g_object_connect (gtk_widget_new (gtk_button_get_type (),
-                                                            "GtkButton::label", "Quit",
-                                                            "GtkWidget::parent", hbox,
-                                                            "GtkWidget::visible", TRUE,
-                                                            NULL),
-                                            "signal::clicked",
-                                            button_exit, NULL,
-                                            NULL);
-  buttons[i][1] = g_object_connect (gtk_widget_new (gtk_button_get_type (),
-                                                   "GtkButton::label", "ShiftLatch",
-                                                   "GtkWidget::parent", hbox,
-                                                   "GtkWidget::visible", TRUE,
-                                                   NULL),
-                                   "signal::clicked",
-                                   toggle_shift_latch, NULL,
-                                   NULL);
-  label_buttons (caps_lock || shift_latched);
-  gtk_widget_show (window);
-}
-
-int
-main (int argc, char **argv)
-{
-  AccessibleKeySet switch_set;
-  
-  if ((argc > 1) && (!strncmp (argv[1], "-h", 2)))
-    {
-      printf ("Usage: keysynth-demo\n");
-      exit (1);
-    }
-
-  gtk_init (&argc, &argv); /* must call, because this program uses GTK+ */
-
-  SPI_init ();
-
-  key_listener = SPI_createAccessibleKeystrokeListener (is_command_key, NULL);
-  /* will listen only to Alt-key combinations */
-  SPI_registerAccessibleKeystrokeListener (key_listener,
-                                          (AccessibleKeySet *) SPI_KEYSET_ALL_KEYS,
-                                          SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL,
-                                          (unsigned long) ( KeyPress | KeyRelease),
-                                          SPI_KEYLISTENER_CANCONSUME | SPI_KEYLISTENER_ALL_WINDOWS);
-  create_vkbd ();  
-
-  /*
-   * Register a listener on an 'unused' key, to serve as a 'single switch'.
-   * On most Intel boxes there is at least one 'special' system key that does not
-   * have a non-zero keycode assigned in the Xserver, so we will intercept any keycode
-   * that is 'zero'.  Often these the are the "windows" or the "menu" keys.
-   */
-  switch_set.keysyms = g_new0 (unsigned long, 1);
-  switch_set.keycodes = g_new0 (unsigned short, 1);
-  switch_set.keystrings = g_new0 (char *, 1);
-  switch_set.len = 1;
-  switch_set.keysyms[0] = (unsigned long) 0;
-  switch_set.keycodes[0] = (unsigned short) 0;
-  switch_set.keystrings[0] = "";
-  switch_listener = SPI_createAccessibleKeystrokeListener (switch_callback, NULL);
-  SPI_registerAccessibleKeystrokeListener (switch_listener,
-                                          &switch_set,
-                                          SPI_KEYMASK_UNMODIFIED,
-                                          (unsigned long) ( SPI_KEY_PRESSED | SPI_KEY_RELEASED ),
-                                          SPI_KEYLISTENER_NOSYNC);
-  
-  SPI_event_main ();
-
-  return SPI_exit ();
-}
diff --git a/test/login-helper-client-test.c b/test/login-helper-client-test.c
deleted file mode 100644 (file)
index fcbbaec..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/* 
- * test utility for LoginHelper client API and services.
- *
- * Copyright Sun Microsystems 2004
- *
- */
-
-#include <X11/X.h>
-#include <libbonobo.h>
-#include <login-helper/Accessibility_LoginHelper.h>
-
-gint main (int argc, char **argv)
-{
-    Bonobo_ServerInfoList *server_list;
-    Accessibility_LoginHelper *helper_list = NULL;
-    CORBA_boolean safe;
-    CORBA_Environment ev;
-    Accessibility_LoginHelper_WindowList *windows;
-    int i;
-
-    CORBA_exception_init (&ev);
-    if (!bonobo_init (&argc, argv))
-    {
-       g_error ("Can't initialize Bonobo");
-    }
-
-    /* bonobo-activation query lists existing instances */
-    server_list = bonobo_activation_query (
-       "(repo_ids.has('IDL:Accessibility/LoginHelper:1.0')) AND _active", 
-       NULL, &ev);
-
-    if (BONOBO_EX (&ev)) 
-    {
-       bonobo_debug_shutdown ();
-       g_error ("LoginHelper query failed : %s",
-                bonobo_exception_get_text (&ev));
-       /* not reached (below) because g_error exits */
-       CORBA_exception_free (&ev);
-    }
-
-    g_message ("%d LoginHelpers are running.", 
-              server_list ? server_list->_length : 0);
-
-    helper_list = g_new0 (Accessibility_LoginHelper, server_list->_length);
-
-    /* for each instance... */
-    for (i = 0; i < server_list->_length; i++)
-    {
-       Accessibility_LoginHelper helper;
-       Bonobo_Unknown server;
-       Bonobo_ServerInfo info = server_list->_buffer[i];
-
-       server = bonobo_activation_activate_from_id (
-           info.iid, Bonobo_ACTIVATION_FLAG_EXISTING_ONLY, NULL, &ev);
-
-       if (BONOBO_EX (&ev))
-       {
-           g_warning ("Error activating server %d: %s", i, bonobo_exception_get_text (&ev));
-           CORBA_exception_free (&ev);
-           continue;
-       }
-       else if (server == CORBA_OBJECT_NIL)
-       {
-           g_warning ("Activated server %d is NIL!", i);
-           continue;
-       }
-
-       bonobo_activate ();
-
-       helper = Bonobo_Unknown_queryInterface (
-           server, 
-           "IDL:Accessibility/LoginHelper:1.0",
-           &ev);
-
-       if (BONOBO_EX (&ev))
-       {
-           g_warning ("Error performing interface query: %s", bonobo_exception_get_text (&ev));
-           CORBA_exception_free (&ev);
-           continue;
-       }
-       else if (helper == CORBA_OBJECT_NIL)
-       {
-           g_warning ("Activated an object which advertised LoginHelper but does not implement it!");
-           continue;
-       }
-       helper_list[i] = helper;
-       bonobo_object_release_unref (server, &ev);
-
-       if (helper && !BONOBO_EX (&ev))
-       {
-           /* ask the helper to go into safe mode */
-           safe = Accessibility_LoginHelper_setSafe (helper, TRUE, &ev);
-           if (BONOBO_EX (&ev))
-           {
-               g_warning ("setSafe(TRUE) failed: %s", 
-                          bonobo_exception_get_text (&ev));
-               CORBA_exception_free (&ev);
-           }
-           /* get the raise window list (if the program went into safe mode) */
-           if (safe) 
-           {
-               int j;
-               gboolean needs_windows_raised = FALSE;
-               Accessibility_LoginHelper_DeviceReqList *list;
-
-               g_message ("safe");
-
-               /* does this helper need to have windows raised? */
-               list = Accessibility_LoginHelper_getDeviceReqs (helper, &ev);
-
-               if (BONOBO_EX (&ev)) {
-                   g_warning ("Bonobo exception getting Device Requirements: %s",
-                            bonobo_exception_get_text (&ev));
-                   CORBA_exception_free (&ev);
-               }
-               else
-               {
-                   g_message ("LoginHelper device requirements: ");
-                   if (list->_length == 0) 
-                       g_message ("\tNone.");
-
-                   for (j = 0; j < list->_length; j++) 
-                   {
-                       switch (list->_buffer[j])
-                       {
-                           case Accessibility_LoginHelper_GUI_EVENTS:
-                               g_message ("\tNeeds access to the GUI event subsystem (e.g. Xserver)");
-                               break;
-                           case Accessibility_LoginHelper_EXT_INPUT:
-                               g_message ("\tReads XInput extended input devices");
-                               break;
-                           case Accessibility_LoginHelper_POST_WINDOWS:
-                               g_message ("\tPosts windows");
-                               needs_windows_raised = TRUE;
-                               break;
-                           case Accessibility_LoginHelper_AUDIO_OUT:
-                               g_message ("\tWrites to audio device");
-                               break;
-                           case Accessibility_LoginHelper_AUDIO_IN:
-                               g_message ("\tReads from audio device");
-                               break;
-                           case Accessibility_LoginHelper_LOCALHOST:
-                               g_message ("\tNeeds LOCALHOST network connection");
-                               break;
-                           case Accessibility_LoginHelper_SERIAL_OUT:
-                               g_message ("\tNeeds to write to one or more serial ports");
-                               break;
-                           default:
-                               break;
-                       }
-                   }
-                   CORBA_free (list);
-               }
-               if (needs_windows_raised) 
-               {
-                   /* don't raise in this test, but do something with each wid */
-                   windows = Accessibility_LoginHelper_getRaiseWindows (helper, &ev);
-                   if (BONOBO_EX (&ev))
-                   {
-                       g_warning ("getRaiseWindows failed: %s", 
-                                  bonobo_exception_get_text (&ev));
-                       CORBA_exception_free (&ev);
-                   }
-                   g_message ("%d windows need raising", windows->_length);
-                   for (j = 0; j < windows->_length; j++)      
-                   {
-                       Window wid;
-                       wid = windows->_buffer[j].winID;
-                       g_message ("Window ID = %ld", (long) wid);
-                   }    
-               }
-           }
-           else
-           {
-               g_warning ("LoginHelper %d did not go into safe mode", i);
-           }
-       }
-       else
-       {
-           if (BONOBO_EX (&ev))
-           {
-               g_warning ("Error activating %s: %s", 
-                          info.iid, bonobo_exception_get_text (&ev));
-               CORBA_exception_free (&ev);
-           }
-           else
-           {
-               g_warning ("no active instance of %s found", info.iid);
-           }
-       }
-    }
-    
-    /* 
-     * In an actual login/authentication setting, login/authentication 
-     * would take place here, and code below would be executed after 
-     * authentication was complete.
-     */
-    
-    /* now tell the apps they can resume their normal activities */
-    for (i = 0; i < server_list->_length; i++)
-    {
-       Accessibility_LoginHelper helper = helper_list[i];
-       /* really no need to check the return value this time */
-       Accessibility_LoginHelper_setSafe (helper, FALSE, &ev);
-       if (BONOBO_EX (&ev))
-       {
-           g_warning ("setSafe(FALSE) failed: %s", 
-                      bonobo_exception_get_text (&ev));
-           CORBA_exception_free (&ev);
-       }
-       CORBA_Object_release (helper, &ev);
-    }  
-    CORBA_free (server_list);
-
-    return bonobo_debug_shutdown (); /* see if we leaked stuff */
-}
diff --git a/test/login-helper-server-test.c b/test/login-helper-server-test.c
deleted file mode 100644 (file)
index bfa8c20..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <libbonobo.h>
-#include <login-helper/login-helper.h>
-#include <gtk/gtkmain.h>
-#include <gtk/gtkwindow.h>
-#include <gdk/gdkx.h>
-#include <X11/Xatom.h>
-
-static void test_init_login_helper_vpointers (LoginHelper *helper, 
-                                             gpointer test_set_safe, 
-                                             gpointer test_get_device_reqs, 
-                                             gpointer test_get_raise_windows);
-
-static gboolean test_set_safe (LoginHelper *helper, gboolean safe);
-
-static LoginHelperDeviceReqFlags test_get_device_reqs (LoginHelper *helper);
-
-static Window* test_get_raise_windows (LoginHelper *helper);
-
-static void    test_post_window (void);
-
-static void    test_set_wm_dock (void);
-
-static GtkWidget *mainwin = NULL;
-
-int
-main (int argc, char **argv)
-{
-       int          ret;
-       char        *obj_id;
-       BonoboObject *helper;
-       
-       if (!bonobo_init (&argc, argv))
-       {
-               g_error ("Could not initialize oaf / Bonobo");
-       }
-       
-       obj_id = "OAFIID:GNOME_TEST:1.0";  /* just for testing, install manually */
-       
-       helper = BONOBO_OBJECT (g_object_new (LOGIN_HELPER_TYPE, NULL));
-       
-       ret = bonobo_activation_register_active_server (
-               obj_id,
-               bonobo_object_corba_objref (bonobo_object (helper)),
-               NULL);
-       
-       if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
-       {
-               switch (ret) 
-               {
-               case Bonobo_ACTIVATION_REG_NOT_LISTED:
-                       fprintf (stderr, "OAFIID not listed\n");
-                       break;
-               default:
-                       fprintf (stderr, "Registration Error: %d\n", ret);
-                       break;
-               }
-       }
-       else
-       {
-               CORBA_Environment ev;
-               Bonobo_Unknown ret;
-               CORBA_exception_init (&ev);
-               
-               ret = Bonobo_Unknown_queryInterface (
-                       BONOBO_OBJREF (helper),
-                       "IDL:Accessibility/LoginHelper:1.0", 
-                       &ev);
-               
-               if (BONOBO_EX (&ev))
-               {
-                       fprintf (stderr, "queryInterface error: %s\n", 
-                                bonobo_exception_get_text (&ev));
-               }
-               else
-               {
-                       fprintf (stderr, "query returned %p: objref self = %p\n", 
-                                ret, BONOBO_OBJREF (helper));
-               }
-       }
-
-       /* this is a testing hack - we are changing the LoginHelperClass's vpointers here */
-       
-       test_init_login_helper_vpointers ((LoginHelper*)helper, test_set_safe, test_get_device_reqs, test_get_raise_windows);
-
-       gtk_init (&argc, &argv);
-
-       test_post_window ();
-
-       bonobo_main ();
-
-       return 0;
-}
-
-static void
-test_init_login_helper_vpointers (LoginHelper *helper, 
-                                 gpointer set_safe_func, 
-                                 gpointer get_device_reqs_func, 
-                                 gpointer get_raise_windows_func)
-{
-       LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
-       klass->set_safe = set_safe_func;
-       klass->get_device_reqs = get_device_reqs_func;
-       klass->get_raise_windows = get_raise_windows_func;
-}
-
-static gboolean
-test_set_safe (LoginHelper *helper, gboolean safe)
-{
-       return TRUE;
-}
-
-static LoginHelperDeviceReqFlags
-test_get_device_reqs (LoginHelper *helper)
-{
-       return LOGIN_HELPER_POST_WINDOWS;
-}
-
-static Window*
-test_get_raise_windows (LoginHelper *helper)
-{
-        Window *winlist = g_new0 (Window, 2);
-       winlist[0] = GDK_WINDOW_XWINDOW (mainwin->window);
-       winlist[1] = None;
-        return winlist;
-}
-
-
-void
-test_set_wm_dock (void)
-{
-  Atom atom_type[1], atom_window_type;
-
-  gtk_widget_hide (mainwin);
-
-  gdk_error_trap_push ();
-  atom_window_type = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE");
-
-  atom_type[0] = gdk_x11_get_xatom_by_name ("_NET_WM_WINDOW_TYPE_DOCK");
-
-  XChangeProperty (GDK_WINDOW_XDISPLAY (mainwin->window), 
-                  GDK_WINDOW_XWINDOW (mainwin->window), 
-                  atom_window_type,
-                  XA_ATOM, 32, PropModeReplace,
-                  (guchar *) &atom_type, 1);
-  gdk_error_trap_pop ();
-
-  gtk_widget_show (mainwin);
-
-}
-
-static void
-test_post_window (void)
-{
-        mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
-       gtk_window_set_screen (GTK_WINDOW (mainwin), gdk_screen_get_default ());
-
-        /* gtk_window_set_keep_above (GTK_WINDOW (mainwin), true); optional */
-       /* test_set_wm_dock (); optional */
-
-       gtk_widget_show_all (mainwin);
-}
diff --git a/test/screen-review-test.c b/test/screen-review-test.c
deleted file mode 100644 (file)
index 1b5fa2e..0000000
+++ /dev/null
@@ -1,1121 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include "../cspi/spi-private.h"
-
-#undef CLIP_DEBUG
-
-/*
- * Screen Review Algorithm Demonstration, Benchmark, and Test-bed.
- *
- * Issues:
- *
- * * there are bugs in the compositing code.
- *
- * * brute-force algorithm uses no client-side cache; performance mediocre.
- *
- * * we don't have good ordering information for the toplevel windows,
- *          and our current heuristic is not guaranteed if
- *          the active window is not always on top (i.e. autoraise is
- *          not enabled).
- *
- * * can't know about "inaccessible" objects that may be obscuring the
- *          accessible windows (inherent to API-based approach).
- *
- * * text column alignment is crude since it relies on a hard-coded
- *          (and arbitrary) ratio of horizontal pixels to character columns.
- *          For small proportional fonts, overruns are likely to result in
- *          occasional review lines that exceed the standard length.
- *
- * * (others).
- */
-
-#undef CHUNK_LIST_DEBUG /* define to get list of text chunks before clip */
-
-#define BOUNDS_CONTAIN_X_BOUNDS(b, p)  ( ((p).x>=(b).x) &&\
-                                        (((p).x + (p).width) <= \
-                                         ((b).x + (b).width)) && \
-                                       ((b).width > 0) && ((b).height > 0))
-
-#define BOUNDS_CONTAIN_Y(b, p)  (((p)>=(b)->y) && ((p)<=((b)->y + (b)->height))\
-           && ((b)->width > 0) && ((b)->height > 0))
-
-#define CHUNK_BOUNDS_BEFORE_START(c, i) ((i) && ((c)->clip_bounds.x < \
-                                         (i)->clip_bounds.x)) 
-
-#define CHUNK_BOUNDS_END_BEFORE_START(c, i) ((i) && \
-                                         (((c)->clip_bounds.x + \
-                                         (c)->clip_bounds.width) < \
-                                         (i)->clip_bounds.x))
-
-#define CHUNK_BOUNDS_AFTER_END(c, i) ((i) && ((c)->clip_bounds.x >= \
-                                      ((i)->clip_bounds.x + \
-                                       (i)->clip_bounds.width)))
-
-#define CHUNK_BOUNDS_SPANS_END(c, i) ((i) && (((c)->clip_bounds.x + \
-                                             (c)->clip_bounds.width) >= \
-                                      ((i)->clip_bounds.x + \
-                                       (i)->clip_bounds.width)))
-/*
- * #define CHUNK_BOUNDS_WITHIN(c, i)  ((i) && ((c)->clip_bounds.x >= \
- *                               (i)->text_bounds.x) && \
- *                               (((c)->clip_bounds.x + (c)->clip_bounds.width) \
- *                             <= ((i)->text_bounds.x + (i)->text_bounds.width)))
- */
-
-#define IS_CLIPPING_CONTAINER(a) ((a) != SPI_ROLE_PAGE_TAB)
-
-static void report_screen_review_line  (const AccessibleEvent *event, void *user_data);
-
-static AccessibleEventListener *mouseclick_listener;
-
-typedef struct _BoundaryRect {
-       long int x;
-       long int y;
-       long int width;
-       long int height;
-       AccessibleRole role; /* role of last clipping element */
-       gboolean isClipped;
-       gboolean isEmpty;
-} BoundaryRect;
-
-typedef struct _TextChunk {
-       char           *string;
-       Accessible     *source;
-       int             start_offset;
-       int             end_offset;
-       BoundaryRect    clip_bounds;
-       BoundaryRect    text_bounds;
-       BoundaryRect    start_char_bounds;
-       BoundaryRect    end_char_bounds;
-} TextChunk;
-
-typedef struct _ScreenReviewBuffer { 
-       GList *text_chunks;
-} ScreenReviewBuffer;
-
-static gboolean isJava = FALSE;
-
-int
-main (int argc, char **argv)
-{
-  SPI_init ();
-
-  mouseclick_listener = SPI_createAccessibleEventListener (
-         report_screen_review_line, NULL); 
-
-  SPI_registerGlobalEventListener (mouseclick_listener,
-                                  "Gtk:GtkWidget:button-press-event");
-#undef JAVA_TEST_HACK
-#ifdef JAVA_TEST_HACK /* Only use this to test Java apps */
-  SPI_registerGlobalEventListener (mouseclick_listener,
-                                  "object:text-caret-moved");
-  isJava = TRUE;
-#endif
-  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 ();
-}
-
-static inline gboolean
-chunk_bounds_within (TextChunk *chunk, TextChunk *test_chunk)
-{
-       int x1, tx1;
-       gboolean gtx1, ltx2;
-
-       x1 = chunk->clip_bounds.x;
-       tx1 = test_chunk->clip_bounds.x;
-       gtx1 = (chunk->clip_bounds.x >= test_chunk->clip_bounds.x);
-       ltx2 = (chunk->clip_bounds.x + chunk->clip_bounds.width
-               <= test_chunk->clip_bounds.x + test_chunk->clip_bounds.width);
-       return gtx1 && ltx2;
-}
-
-#define CHUNK_BOUNDS_WITHIN(a, b) chunk_bounds_within(a, b)
-
-static BoundaryRect **
-clip_bounds_clone (BoundaryRect *bounds[])
-{
-       int i;
-       BoundaryRect **bounds_clone;
-       bounds_clone = (BoundaryRect **)
-               g_new0 (gpointer, SPI_LAYER_LAST_DEFINED);
-       for (i = 1; i < SPI_LAYER_LAST_DEFINED; ++i) {
-               bounds_clone[i] = g_new0 (BoundaryRect, 1);
-               *bounds_clone[i] = *bounds[i];
-       }
-       return bounds_clone;
-}
-
-static void
-boundary_clip (BoundaryRect *bounds, BoundaryRect *clipBounds)
-{
-       int x2 = bounds->x + bounds->width;
-       int y2 = bounds->y + bounds->height;
-#ifdef CLIP_DEBUG
-       fprintf (stderr, "bclip %d-%d, %d-%d; ",
-                bounds->x, x2,
-                clipBounds->x, clipBounds->x+clipBounds->width);
-#endif          
-       bounds->x = MAX (bounds->x, clipBounds->x);
-       bounds->y = MAX (bounds->y, clipBounds->y);
-       x2 =  MIN (x2,  clipBounds->x + clipBounds->width);
-       y2 =  MIN (y2, clipBounds->y + clipBounds->height);
-       bounds->width = MAX (x2 - bounds->x, 0);
-       bounds->height = MAX (y2 - bounds->y, 0);
-       if (!bounds->width || !bounds->height)
-               bounds->isEmpty = TRUE;
-       if (IS_CLIPPING_CONTAINER (bounds->role)) {
-               *clipBounds = *bounds;
-       }
-#ifdef CLIP_DEBUG
-       fprintf (stderr, "%d-%d\n",
-                bounds->x, bounds->x+bounds->width);
-#endif
-}
-
-static void
-boundary_xclip_head (BoundaryRect *bounds, BoundaryRect *clipBounds)
-{
-       int x2;
-       int cx2 = clipBounds->x + clipBounds->width;
-       if (cx2 < bounds->x) return;
-       x2 = bounds->x + bounds->width;
-       if (cx2 <= x2) bounds->x = cx2;
-       bounds->width = MAX (0, x2 - cx2);
-}
-
-static void
-boundary_xclip_tail (BoundaryRect *bounds, BoundaryRect *clipBounds)
-{
-       int x2 = bounds->x + bounds->width;
-       if (clipBounds->x > x2) return;
-       bounds->width = MAX (0, clipBounds->x - bounds->x);
-}
-
-static TextChunk*
-text_chunk_copy (TextChunk *chunk)
-{
-       TextChunk *copy = g_new0 (TextChunk, 1);
-       *copy = *chunk;
-       if (chunk->string) copy->string = g_strdup (chunk->string);
-       if (copy->source) Accessible_ref (copy->source);
-       return copy;
-}
-
-static void
-text_chunk_tail_clip (TextChunk *bottom, TextChunk *top)
-{
-#ifdef CLIP_DEBUG
-       fprintf (stderr, "bottom %d-%d, top %d-%d;",
-                bottom->clip_bounds.x,
-                bottom->clip_bounds.x + bottom->clip_bounds.width,
-                top->clip_bounds.x,
-                top->clip_bounds.x + top->clip_bounds.width);
-#endif
-       boundary_xclip_tail (&bottom->text_bounds, &top->clip_bounds);
-       boundary_xclip_tail (&bottom->clip_bounds, &top->clip_bounds);
-       bottom->text_bounds.isClipped = TRUE;
-       bottom->clip_bounds.isClipped = TRUE;
-#ifdef CLIP_DEBUG
-       fprintf (stderr, "result %d-%d\n",
-                bottom->clip_bounds.x,
-                bottom->clip_bounds.x + bottom->clip_bounds.width);
-#endif
-}
-
-static void
-text_chunk_head_clip (TextChunk *bottom, TextChunk *top)
-{
-#ifdef CLIP_DEBUG
-       fprintf (stderr, "bottom %d-%d, top %d-%d;",
-                bottom->clip_bounds.x,
-                bottom->clip_bounds.x + bottom->clip_bounds.width,
-                top->clip_bounds.x,
-                top->clip_bounds.x + top->clip_bounds.width);
-#endif 
-       boundary_xclip_head (&bottom->text_bounds, &top->clip_bounds);
-       boundary_xclip_head (&bottom->clip_bounds, &top->clip_bounds);
-       bottom->text_bounds.isClipped = TRUE;
-       bottom->clip_bounds.isClipped = TRUE;
-#ifdef CLIP_DEBUG      
-       fprintf (stderr, "result %d-%d\n",
-                bottom->clip_bounds.x,
-                bottom->clip_bounds.x + bottom->clip_bounds.width);
-#endif 
-}
-
-static GList *
-text_chunk_split_insert (GList *chunk_list, GList *iter, TextChunk *chunk)
-{
-       TextChunk *iter_chunk = iter->data;
-       TextChunk *iter_copy = text_chunk_copy (iter_chunk);
-       /* TODO: FIXME something is wrong here */
-#ifdef CLIP_DEBUG
-       fprintf (stderr, "***clip insert of %s into %s\n", 
-                chunk->string ? chunk->string : "<null>",
-                iter_chunk->string ? iter_chunk->string : "<null>");
-#endif 
-       chunk_list = g_list_insert_before (chunk_list, iter, iter_copy);
-       text_chunk_tail_clip (iter_copy, chunk);
-       chunk_list = g_list_insert_before (chunk_list, iter, chunk);
-       text_chunk_head_clip (iter_chunk, chunk);
-       return chunk_list;
-}
-
-/* #define PRINT_CHUNK_DEBUG(a, b, c, d) print_chunk_debug(a, b, c, d) */
-
-#define PRINT_CHUNK_DEBUG(a, b, c, d)
-
-#ifdef PRINT_CHUNK_DEBUG
-static void
-print_chunk_debug (TextChunk *chunk, char *opname, GList *prev, GList *next)
-{
-       fprintf (stderr, "%sing chunk %s between %s and %s; %ld-%ld\n",
-                opname,
-                chunk->string,
-                (prev ? ((TextChunk *) prev->data)->string : "<null>"),
-                (next ? ((TextChunk *) next->data)->string : "<null>"),
-                chunk->clip_bounds.x,
-                chunk->text_bounds.x + chunk->text_bounds.width);
-}
-#endif
-
-static GList *
-text_chunk_list_head_clip (GList *text_chunk_list,
-                          TextChunk *chunk,
-                          GList *next)
-{
-       GList *target, *iter = next, *prev;
-       prev = iter->prev;
-/*     if (chunk->string && strlen (chunk->string)) { */
-               text_chunk_list =
-                       g_list_insert_before (text_chunk_list, next, chunk);
-/*     }*/
-       while (iter && CHUNK_BOUNDS_SPANS_END (chunk, (TextChunk *)iter->data)) {
-#ifdef CLIP_DEBUG                      
-                       fprintf (stderr, "deleting %s\n",
-                                ((TextChunk *)iter->data)->string);
-#endif                 
-                       target = iter;
-                       iter = iter->next;
-                       text_chunk_list =
-                               g_list_delete_link (text_chunk_list, target);
-       }
-       if (iter && !CHUNK_BOUNDS_END_BEFORE_START (chunk,
-                                                   (TextChunk *)iter->data)) {
-               text_chunk_head_clip ((TextChunk *)iter->data,
-                                     chunk);
-       }
-       if (prev &&
-           !CHUNK_BOUNDS_AFTER_END (
-                   chunk,
-                   (TextChunk *)prev->data)) {
-               text_chunk_tail_clip (
-                       (TextChunk *)prev->data,
-                       chunk);
-       }
-       
-       return text_chunk_list;
-}
-
-static GList *
-text_chunk_list_clip_and_insert (GList *text_chunk_list,
-                                TextChunk *chunk,
-                                GList *prev,
-                                GList *next)
-{
-#ifdef CLIP_DEBUG
-/*     if (chunk->string) */
-               fprintf (stderr, "clip-and-insert for %s, between %s (%d) and %s (%d)\n",
-                        chunk->string,
-                        (prev && ((TextChunk *)prev->data)->string ? ((TextChunk *)prev->data)->string : "<null>"),
-                        (prev ? ((TextChunk *)prev->data)->text_bounds.x : -1),
-                        (next && ((TextChunk *)next->data)->string ? ((TextChunk *)next->data)->string : "<null>"),
-                        (next ? ((TextChunk *)next->data)->text_bounds.x : -1));
-#endif
-       /* cases: */
-       if (!prev && !next) { /* first element in, no clip needed */
-               text_chunk_list =
-                       g_list_append (text_chunk_list, chunk);
-               PRINT_CHUNK_DEBUG (chunk, "append",
-                                  prev,
-                                  NULL);
-       } else { /* check for clip with prev */
-               /* if we split the prev */
-               if (prev &&
-                   CHUNK_BOUNDS_WITHIN (chunk, (TextChunk *) prev->data)) {
-                       text_chunk_list =
-                               text_chunk_split_insert (
-                                       text_chunk_list,
-                                       prev, chunk);
-               } else if (next) { 
-                   /* we split the 'next' element */
-                   if (CHUNK_BOUNDS_WITHIN (chunk, (TextChunk *)next->data)) {
-                           text_chunk_list =
-                                   text_chunk_split_insert (text_chunk_list,
-                                                            next, chunk);
-                   } else {
-                           /* do an insert +  head clip */
-                           text_chunk_list =
-                                   text_chunk_list_head_clip (
-                                           text_chunk_list,
-                                           chunk,
-                                           next);
-                   }
-               } else {
-                       if (!CHUNK_BOUNDS_AFTER_END (chunk,
-                                                    (TextChunk *) prev->data)) {
-                               text_chunk_tail_clip (prev->data, chunk);
-                       }
-                       text_chunk_list =
-                               g_list_append (text_chunk_list, chunk);
-               }
-       }
-       return text_chunk_list;
-}
-
-static GList *
-text_chunk_list_insert_chunk (GList *text_chunk_list, TextChunk *chunk)
-{
-       GList *iter = g_list_first (text_chunk_list);
-       TextChunk *iter_chunk = NULL;
-       do {
-               if (iter) iter_chunk = (TextChunk *) iter->data;
-                /* if we're ahead of the current element */
-               if (!iter) {
-                       text_chunk_list =
-                               text_chunk_list_clip_and_insert (text_chunk_list,
-                                                                chunk,
-                                                                iter,
-                                                                NULL);
-                       break;
-               } else if (CHUNK_BOUNDS_BEFORE_START (chunk, iter_chunk)) {
-                       text_chunk_list =
-                               text_chunk_list_clip_and_insert (text_chunk_list,
-                                                                chunk,
-                                                                iter->prev,
-                                                                iter);
-                       break;
-               } else if (!iter->next ) {
-                       text_chunk_list =
-                               text_chunk_list_clip_and_insert (text_chunk_list,
-                                                                chunk,
-                                                                iter,
-                                                                NULL);
-                       break;
-               }
-               if (iter) iter = iter->next;
-       } while (iter);
-       return text_chunk_list;
-}
-
-static TextChunk *
-review_buffer_get_text_chunk (ScreenReviewBuffer *reviewBuffer,
-                             Accessible *accessible, BoundaryRect *bounds,
-                             int screen_x, int screen_y)
-{
-       AccessibleText *text = NULL;
-       AccessibleRole role;
-       TextChunk *text_chunk;
-       char *s = NULL;
-       int offset;
-       long start, end;
-       long x2, y2;
-
-       role = Accessible_getRole (accessible);
-       text_chunk = g_new0 (TextChunk, 1);
-       text_chunk->clip_bounds = *bounds;
-       text_chunk->source = accessible;
-       Accessible_ref (accessible);
-       if (Accessible_isText (accessible)) {
-               text = Accessible_getText (accessible);
-               offset = AccessibleText_getOffsetAtPoint (text,
-                                                         screen_x,
-                                                         screen_y,
-                                                         SPI_COORD_TYPE_SCREEN);
-               s = AccessibleText_getTextAtOffset (text, offset,
-                                                   SPI_TEXT_BOUNDARY_LINE_START,
-                                                   &start, &end);
-               if (end > start) {
-                       AccessibleText_getCharacterExtents (
-                               text, start,
-                               &text_chunk->start_char_bounds.x,
-                               &text_chunk->start_char_bounds.y,
-                               &text_chunk->start_char_bounds.width,
-                               &text_chunk->start_char_bounds.height,
-                               SPI_COORD_TYPE_SCREEN);
-#ifdef CLIP_DEBUG
-                       fprintf (stderr, "%s: start char (%d) x, width %d %d; ",
-                                s,
-                                start,
-                                text_chunk->start_char_bounds.x,
-                                text_chunk->start_char_bounds.width);
-#endif
-                       if (s && strlen (s) && s[strlen (s) - 1] == '\n')
-                               end--;
-                       AccessibleText_getCharacterExtents (
-                               text, end - 1,
-                               &text_chunk->end_char_bounds.x,
-                               &text_chunk->end_char_bounds.y,
-                               &text_chunk->end_char_bounds.width,
-                               &text_chunk->end_char_bounds.height,
-                               SPI_COORD_TYPE_SCREEN);
-#ifdef CLIP_DEBUG                      
-                       fprintf (stderr, "end char (%d) x, width %d %d\n",
-                                end - 1,
-                                text_chunk->end_char_bounds.x,
-                                text_chunk->end_char_bounds.width);
-#endif
-               }
-               text_chunk->text_bounds.x = MIN (text_chunk->start_char_bounds.x,
-                                                text_chunk->end_char_bounds.x);
-               text_chunk->text_bounds.y = MIN (text_chunk->start_char_bounds.y,
-                                                text_chunk->end_char_bounds.y);
-               x2 = MAX (text_chunk->start_char_bounds.x +
-                         text_chunk->start_char_bounds.width,
-                         text_chunk->end_char_bounds.x +
-                         text_chunk->end_char_bounds.width);
-               text_chunk->text_bounds.width = x2 - text_chunk->text_bounds.x;
-               y2 = MAX (text_chunk->start_char_bounds.y +
-                         text_chunk->start_char_bounds.height,
-                         text_chunk->end_char_bounds.y + 
-                         text_chunk->end_char_bounds.height);
-               text_chunk->text_bounds.height = y2 - text_chunk->text_bounds.y;
-               text_chunk->start_offset = start;
-               text_chunk->end_offset = end;
-               AccessibleText_unref (text);
-       } else {
-               if (role == SPI_ROLE_PUSH_BUTTON ||
-                   role == SPI_ROLE_CHECK_BOX ||
-                   role == SPI_ROLE_LABEL ||
-                   role == SPI_ROLE_MENU ||
-                   role == SPI_ROLE_MENU_ITEM) { /* don't like this
-                                                    special casing :-( */
-                       s = Accessible_getName (accessible);
-                        /* use name instead */
-                       text_chunk->text_bounds = text_chunk->clip_bounds;
-                       text_chunk->start_offset = 0;
-                       text_chunk->end_offset = strlen (s);
-               }
-       }
-       if (text_chunk->text_bounds.x < text_chunk->clip_bounds.x) {
-               text_chunk->text_bounds.x = text_chunk->clip_bounds.x;
-               text_chunk->text_bounds.isClipped = TRUE;
-       } 
-       if ((text_chunk->text_bounds.x +
-            text_chunk->text_bounds.width)
-           > (text_chunk->clip_bounds.x +
-              text_chunk->clip_bounds.width)) {
-               text_chunk->text_bounds.width =
-                       MAX (0, (text_chunk->clip_bounds.x +
-                                text_chunk->clip_bounds.width) -
-                            text_chunk->text_bounds.x);
-               text_chunk->text_bounds.isClipped = TRUE;
-       }
-       if (!BOUNDS_CONTAIN_Y (&text_chunk->text_bounds,
-                              screen_y)) {
-#ifdef CLIP_DEBUG                      
-               fprintf (stderr, "%s out of bounds (%d-%d)\n", s,
-                        text_chunk->text_bounds.y,
-                        text_chunk->text_bounds.y +
-                        text_chunk->text_bounds.height);
-#endif                 
-               s = NULL;
-               text_chunk->start_offset = offset;
-               text_chunk->end_offset = offset;
-       }
-       if (s && strlen (s)) {
-               if (s[strlen(s)-1] == '\n') s[strlen(s)-1] = ' ';
-               /* XXX: if last char is newline, aren't its bounds wrong now? */
-               text_chunk->string = s;
-#ifdef CLIP_DEBUG
-               fprintf (stderr, "%s, bounds %d-%d; clip %d-%d\n",
-                        s,
-                        text_chunk->text_bounds.x,
-                        text_chunk->text_bounds.x+text_chunk->text_bounds.width,
-                        text_chunk->clip_bounds.x,
-                        text_chunk->clip_bounds.x+text_chunk->clip_bounds.width);
-#endif         
-       } else {
-               text_chunk->string = NULL;
-       }
-       return text_chunk;
-}
-
-#ifdef CHUNK_LIST_DEBUG
-static void
-debug_chunk_list (GList *iter)
-{
-       TextChunk *chunk;
-       while (iter) {
-               chunk = (TextChunk *)iter->data;
-               fprintf (stderr, "Chunk %s, clip %ld-%ld, text %ld-%ld\n",
-                        chunk->string,
-                        chunk->clip_bounds.x,
-                        chunk->clip_bounds.x + chunk->clip_bounds.width,
-                        chunk->text_bounds.x,
-                        chunk->text_bounds.x + chunk->text_bounds.width);
-               iter = iter->next;
-       }
-}
-#endif
-
-static void
-clip_into_buffers (Accessible *accessible,  BoundaryRect* parentClipBounds[],
-                  ScreenReviewBuffer *reviewBuffers[],
-                  int screen_x, int screen_y)
-{
-       int n_children, child_n;
-       Accessible *child;
-       BoundaryRect bounds;
-       BoundaryRect** clip_bounds;
-       TextChunk *text_chunk;
-       AccessibleComponent *component;
-       AccessibleRole role;
-       int layer;
-
-        clip_bounds = clip_bounds_clone (parentClipBounds);
-       if (Accessible_isComponent (accessible)) {
-               role = Accessible_getRole (accessible);
-               component = Accessible_getComponent (accessible);
-               layer = AccessibleComponent_getLayer (component);
-               bounds = *clip_bounds[layer];
-               if (!bounds.isEmpty) {
-                       AccessibleComponent_getExtents (component,
-                                                       &bounds.x,
-                                                       &bounds.y,
-                                                       &bounds.width,
-                                                       &bounds.height,
-                                                       SPI_COORD_TYPE_SCREEN);
-                       bounds.role = role;
-                       if (clip_bounds[layer])
-                               boundary_clip (&bounds, clip_bounds[layer]);
-                       if (BOUNDS_CONTAIN_Y (&bounds, screen_y)) {
-                               text_chunk = review_buffer_get_text_chunk (
-                                       reviewBuffers[layer], accessible, &bounds,
-                                       screen_x, screen_y);
-                               reviewBuffers[layer]->text_chunks = 
-                                       text_chunk_list_insert_chunk (
-                                               reviewBuffers[layer]->text_chunks,
-                                               text_chunk);
-                       } else {
-                               bounds.isEmpty =
-                                       IS_CLIPPING_CONTAINER (bounds.role);
-                       }
-               } 
-               Accessible_unref (component);
-       }
-       /*
-        * we always descend into children in case they are in a higher layer
-        * this can of course be optimized for the topmost layer...
-        * but nobody uses that one! (SPI_LAYER_OVERLAY)
-        */
-       n_children = Accessible_getChildCount (accessible);
-       for (child_n = 0; child_n < n_children; ++child_n) {
-               child = Accessible_getChildAtIndex (accessible, child_n);
-               clip_into_buffers (child, clip_bounds, reviewBuffers, screen_x, screen_y);
-               Accessible_unref (child);
-       }
-       /* TODO: free the parent clip bounds */
-}
-
-#undef CHARACTER_CLIP_DEBUG
-
-static char*
-text_chunk_get_clipped_substring_by_char (TextChunk *chunk, int start, int end)
-{
-       BoundaryRect char_bounds;
-       int i;
-       char *s;
-       GString *string = g_string_new ("");
-       gunichar c;
-       AccessibleText *text = Accessible_getText (chunk->source);
-       for (i = start; i < end; ++i) {
-               AccessibleText_getCharacterExtents (text,
-                                                   i,
-                                                   &char_bounds.x,
-                                                   &char_bounds.y,
-                                                   &char_bounds.width,
-                                                   &char_bounds.height,
-                                                   SPI_COORD_TYPE_SCREEN);
-#ifdef CHARACTER_CLIP_DEBUG
-               fprintf (stderr, "testing %d-%d against %d-%d\n",
-                        char_bounds.x, char_bounds.x+char_bounds.width,
-                        chunk->text_bounds.x,
-                        chunk->text_bounds.x + chunk->text_bounds.width);
-#endif
-               if (BOUNDS_CONTAIN_X_BOUNDS (chunk->text_bounds,
-                                            char_bounds)) {
-                       c = AccessibleText_getCharacterAtOffset (
-                               text, i);
-#ifdef CLIP_DEBUG                              
-                       fprintf (stderr, "[%c]", c);
-#endif                         
-                       g_string_append_unichar (string, c);
-               }
-       }
-       AccessibleText_unref (text);
-       s = string->str;
-       g_string_free (string, FALSE);
-       return s;
-}
-
-
-/*
- * Note: this routine shouldn't have to do as much as it currently does,
- *       but at the moment it works around another bug (probably one in this
- *       code).
- */
-static char *
-string_strip_newlines (char *s, long offset, long *start_offset, long *end_offset)
-{
-       int i;
-       char *word_start = s;
-       /* FIXME: potential memory leak here */
-       for (i=0; s && s[i]; ++i)
-       {
-               if (s [i] == '\n' && i > (offset - *start_offset) ) {
-                       s [i] = '\0';
-                       *end_offset = *start_offset + i;
-                       return word_start;
-               } else if (s [i] == '\n') {
-                       word_start = &s[i + 1];
-               }
-       }
-       return word_start;
-}
-
-static char *
-string_guess_clip (TextChunk *chunk)
-{
-       BoundaryRect b;
-       char *s = NULL, *sp = chunk->string, *ep;
-       long start_offset, end_offset, len;
-       if (sp) {
-               AccessibleComponent *component =
-                       Accessible_getComponent (chunk->source);
-               ep = sp + (strlen (sp));
-               len = g_utf8_strlen (chunk->string, -1);
-               if (component) {
-                       AccessibleComponent_getExtents (component,
-                                                       &b.x, &b.y,
-                                                       &b.width, &b.height,
-                                                       SPI_COORD_TYPE_SCREEN);
-                       start_offset = len * (chunk->text_bounds.x - b.x) / b.width;
-                       end_offset = len * (chunk->text_bounds.x +
-                                           chunk->text_bounds.width - b.x) / b.width;
-                       fprintf (stderr, "String len %ld, clipped to %ld-%ld\n",
-                                len, start_offset, end_offset);
-                       len = end_offset - start_offset;
-                       sp = g_utf8_offset_to_pointer (chunk->string, start_offset);
-                       ep = g_utf8_offset_to_pointer (chunk->string, end_offset);
-               }
-               s = g_new0 (char, ep - sp + 1);
-               s = g_utf8_strncpy (s, sp, len);
-               s [sp - ep] = '\0';
-               g_assert (g_utf8_validate (s, -1, NULL));
-       }
-       return s;
-}
-
-static char*
-text_chunk_get_clipped_string (TextChunk *chunk)
-{
-       char *s, *string = "";
-       long start = chunk->start_offset, end = chunk->end_offset;
-       long word_start, word_end, range_end;
-       BoundaryRect start_bounds, end_bounds;
-       gboolean start_inside, end_inside;
-       if (!chunk->text_bounds.isClipped || !chunk->string)
-               string = chunk->string;
-       else if (chunk->source && Accessible_isText (chunk->source)) {
-               /* while words at offset lie within the bounds, add them */
-               AccessibleText *text = Accessible_getText (chunk->source);
-#ifdef CLIP_DEBUG              
-               fprintf (stderr, "clipping %s\n", chunk->string);
-#endif
-               do {
-                   s = AccessibleText_getTextAtOffset (text,
-                                                       start,
-                                               SPI_TEXT_BOUNDARY_WORD_END,
-                                                       &word_start,
-                                                       &word_end);
-                   range_end = word_end;
-                   s = string_strip_newlines (s, start, &word_start, &word_end);
-                   AccessibleText_getCharacterExtents (text,
-                                                       word_start,
-                                                       &start_bounds.x,
-                                                       &start_bounds.y,
-                                                       &start_bounds.width,
-                                                       &start_bounds.height,
-                                                       SPI_COORD_TYPE_SCREEN);
-                   AccessibleText_getCharacterExtents (text,
-                                                       word_end - 1,
-                                                       &end_bounds.x,
-                                                       &end_bounds.y,
-                                                       &end_bounds.width,
-                                                       &end_bounds.height,
-                                                       SPI_COORD_TYPE_SCREEN);
-                   start_inside = BOUNDS_CONTAIN_X_BOUNDS (chunk->text_bounds,
-                                                           start_bounds);
-                   end_inside = BOUNDS_CONTAIN_X_BOUNDS (chunk->text_bounds,
-                                                         end_bounds);
-                   if (start_inside && end_inside) {
-                           /* word is contained in bounds */
-                           string = g_strconcat (string, s, NULL);
-                   } else if (start_inside || end_inside) {
-                           /* one end of word is in */
-                           if (word_end > end) word_end = end;
-                           s = text_chunk_get_clipped_substring_by_char (
-                                   chunk,
-                                   MAX (word_start, chunk->start_offset),
-                                   MIN (word_end, chunk->end_offset));
-                           string = g_strconcat (string, s, NULL);
-                   } else {
-                   }
-                   start = range_end;
-               } while (start < chunk->end_offset);
-       } else { /* we're clipped, but don't implement AccessibleText :-( */
-               /* guess for now, maybe we can do better someday */
-               string = string_guess_clip (chunk);
-       }
-       return string;
-}
-
-
-static char*
-text_chunk_pad_string (TextChunk *chunk, char *string, glong offset, const char *pad_chars)
-{
-       char *s = "";
-       char *cp;
-       char startbuf[6], padbuf[6], endbuf[6];
-       int pixels_per_column = 6;
-        /* this is an arbitrary pixel-to-textcolumn mapping at present */
-       glong end_padding;
-       gint howmany;
-       howmany = g_unichar_to_utf8 (g_utf8_get_char (pad_chars), startbuf);
-       startbuf[howmany] = '\0';
-       g_assert (howmany < 7 && howmany > 0);
-       cp = g_utf8_find_next_char (pad_chars, NULL);
-       howmany = g_unichar_to_utf8 (g_utf8_get_char (cp), padbuf);
-       padbuf[howmany] = '\0';
-       g_assert (howmany < 7 && howmany > 0);
-       cp = g_utf8_find_next_char (cp, NULL);
-       howmany = g_unichar_to_utf8 (g_utf8_get_char (cp), endbuf);
-       endbuf[howmany] = '\0';
-       g_assert (howmany < 7 && howmany > 0);
-       end_padding = chunk->clip_bounds.x / pixels_per_column; 
-       while (offset < end_padding - 1) {
-               s = g_strconcat (s, padbuf, NULL); /* could be more efficient */
-               ++offset;
-       }
-       s = g_strconcat (s, startbuf, string, NULL);
-       offset += g_utf8_strlen (string, -1) + 1;
-       end_padding = chunk->text_bounds.x / pixels_per_column; 
-       while (offset < end_padding) {
-               s = g_strconcat (s, padbuf, NULL); /* could be more efficient */
-               ++offset;
-       }
-       end_padding = (chunk->clip_bounds.x + chunk->clip_bounds.width) /
-               pixels_per_column;
-       while (offset < end_padding - 1) {
-               s = g_strconcat (s, padbuf, NULL); /* could be more efficient */
-               ++offset;
-       }
-       s = g_strconcat (s, endbuf, NULL);
-       return s;
-}
-
-static char*
-text_chunk_to_string (TextChunk *chunk, glong offset)
-{
-       char *s = NULL;
-       if (chunk->string) {
-               s = text_chunk_get_clipped_string (chunk);
-               if (chunk->clip_bounds.role == SPI_ROLE_PUSH_BUTTON) {
-                       s = text_chunk_pad_string (chunk, s, offset, "[ ]");
-               } else if (chunk->clip_bounds.role == SPI_ROLE_FRAME) {
-                       s = text_chunk_pad_string (chunk, s, offset, "| |");
-               } else if (chunk->clip_bounds.role == SPI_ROLE_TEXT) {
-                       s = text_chunk_pad_string (chunk, s, offset, "\" \"");
-               } else {
-                       s = text_chunk_pad_string (chunk, s, offset, "   ");
-               }
-       }
-       return s;
-}
-
-static char*
-text_chunk_list_to_string (GList *iter)
-{
-       char *s = "";
-       char *string;
-       TextChunk *chunk = NULL;
-       while (iter) {
-               chunk = (TextChunk *)iter->data;
-               if (chunk) {
-                       string = text_chunk_to_string (chunk, g_utf8_strlen (s, -1));
-                       if (string)
-                               s = g_strconcat (s, string, NULL);
-               }
-               iter = iter->next;
-       }
-       s = g_strconcat (s, "|", NULL);
-       return s;
-}
-
-#define COMPOSITE_DEBUG
-
-static void
-toplevel_composite (ScreenReviewBuffer *buffers[])
-{
-       int i;
-       GList *chunk_list, *iter;
-       TextChunk *chunk;
-
-       chunk_list = buffers[SPI_LAYER_CANVAS]->text_chunks;
-       for (i = SPI_LAYER_MDI; i < SPI_LAYER_OVERLAY; ++i) {
-               iter = buffers[i]->text_chunks;
-#ifdef COMPOSITE_DEBUG
-               fprintf (stderr, "layer %d has %d chunks\n",
-                        i, g_list_length (iter));
-#endif         
-               while (iter) {
-                       chunk = (TextChunk *) iter->data;
-                       if (chunk) {
-#ifdef COMPOSITE_DEBUG
-                               fprintf (stderr, "inserting chunk <%s>\n",
-                                        chunk->string ? chunk->string : "<null>");
-#endif
-                               chunk_list =
-                                       text_chunk_list_insert_chunk (chunk_list,
-                                                                     chunk);
-                       }
-                       iter = iter->next;
-               }
-       }
-}
-
-static char*
-review_buffer_composite (ScreenReviewBuffer *buffers[])
-{
-       /* TODO: FIXME: something is wrong here, compositing fails */
-       int i;
-       GList *chunk_list, *iter;
-       TextChunk *chunk;
-       chunk_list = buffers[SPI_LAYER_BACKGROUND]->text_chunks;
-       for (i = 2; i < SPI_LAYER_LAST_DEFINED; ++i) {
-               if (i == SPI_LAYER_WIDGET) i = SPI_LAYER_OVERLAY;
-               /*
-                * Q: why skip these layers ?
-                * A: since layers WIDGET, MDI, and POPUP have already been
-                *  composited into layer CANVAS for each toplevel before this
-                *  routine is called.
-                */
-               iter = buffers[i]->text_chunks;
-#ifdef CLIP_DEBUG
-               fprintf (stderr, "layer %d has %d chunks\n",
-                        i, g_list_length (iter));
-#endif         
-               while (iter) {
-                       chunk = (TextChunk *) iter->data;
-                       if (chunk) {
-#ifdef CLIP_DEBUG
-                               fprintf (stderr, "inserting chunk <%s>\n",
-                                        chunk->string ? chunk->string : "<null>");
-#endif
-                               chunk_list =
-                                       text_chunk_list_insert_chunk (chunk_list,
-                                                                     chunk);
-                       }
-                       iter = iter->next;
-               }
-       }
-       
-       chunk_list = buffers[SPI_LAYER_WIDGET]->text_chunks;
-       return text_chunk_list_to_string (chunk_list);
-}
-
-static char *
-get_screen_review_line_at (int x, int y)
-{
-  char *string;
-  Accessible *desktop, *app, *toplevel;
-  AccessibleComponent *component;
-  AccessibleStateSet *states;
-  GList *toplevels = NULL, *actives = NULL, *iter;
-  ScreenReviewBuffer* reviewBuffers[SPI_LAYER_LAST_DEFINED];
-  BoundaryRect* clip_bounds[SPI_LAYER_LAST_DEFINED];
-  BoundaryRect toplevel_bounds;
-  int n_apps, n_toplevels, app_n, toplevel_n;
-  GTimer *timer = g_timer_new ();
-  int i;
-
-  for (i = 1; i < SPI_LAYER_LAST_DEFINED; ++i) {
-         reviewBuffers[i] = g_new0 (ScreenReviewBuffer, 1);
-         clip_bounds[i] = g_new0 (BoundaryRect, 1);
-         clip_bounds[i]->isClipped = FALSE;
-         clip_bounds[i]->isEmpty = FALSE;
-  }
-  
-  /* how do we decide which desktop ? */
-  desktop = SPI_getDesktop (0);
-  
-  /* for each app */
-  n_apps = Accessible_getChildCount (desktop);
-  for (app_n = 0; app_n < n_apps; ++app_n) {
-         /* for each toplevel in app */
-         app =  Accessible_getChildAtIndex (desktop, app_n);
-         n_toplevels = Accessible_getChildCount (app);
-         for (toplevel_n = 0; toplevel_n < n_toplevels; ++toplevel_n) {
-                 Accessible *toplevel = Accessible_getChildAtIndex (app, toplevel_n);
-                 if (Accessible_isComponent (toplevel))
-                         toplevels = g_list_prepend (toplevels, toplevel);
-                 else {
-                         Accessible_unref (toplevel);
-                         fprintf (stderr, "warning, app toplevel not a component.\n");
-                 }
-         }
-  }
-  
-  /* sort: at the moment we don't have a good way to sort except to put actives on top */
-  for (iter = g_list_first (toplevels); iter; iter = iter->next) {
-         Accessible *toplevel =
-                 (Accessible *) iter->data;
-         if (AccessibleStateSet_contains (Accessible_getStateSet (toplevel),
-                                          SPI_STATE_ACTIVE)) {
-                 actives = g_list_prepend (actives, toplevel);
-         }
-  }
-
-  for (iter = g_list_first (actives); iter; iter = actives->next) {
-         toplevels = g_list_remove (toplevels, iter->data); /* place at end */
-         toplevels = g_list_append (toplevels, iter->data);
-  }
-  g_list_free (actives);
-
-  /* for each toplevel, ending with the active one(s),
-   * clip against children, putting results into appropriate charBuffer.
-   */
-  for (iter = g_list_first (toplevels); iter; iter = iter->next) {
-         toplevel = (Accessible *) iter->data;
-         if (Accessible_isComponent (toplevel)) {
-             /* make sure toplevel is visible and not iconified or shaded */
-             states = Accessible_getStateSet (toplevel);
-             if ((AccessibleStateSet_contains (states, SPI_STATE_VISIBLE)
-                 && (!AccessibleStateSet_contains (states, SPI_STATE_ICONIFIED)))
-                 || isJava) { /* isJava hack! */
-                     component = Accessible_getComponent (toplevel);
-                     AccessibleComponent_getExtents (component,
-                                                     &toplevel_bounds.x,
-                                                     &toplevel_bounds.y,
-                                                     &toplevel_bounds.width,
-                                                     &toplevel_bounds.height,
-                                                     SPI_COORD_TYPE_SCREEN);
-                     toplevel_bounds.isEmpty = FALSE;
-                     for (i = 1; i < SPI_LAYER_LAST_DEFINED; ++i) {
-                             *clip_bounds[i] = toplevel_bounds;
-                     }
-                     clip_into_buffers (toplevel, clip_bounds,
-                                    reviewBuffers, x, y);
-
-                     toplevel_composite (reviewBuffers);
-#ifdef CHUNK_LIST_DEBUG
-                     fprintf (stderr, "toplevel clip done\n");
-                     debug_chunk_list (reviewBuffers[SPI_LAYER_WIDGET]->text_chunks);
-#endif               
-             }
-         }
-         Accessible_unref (toplevel);
-  }
-
-  string = review_buffer_composite (reviewBuffers);
-
-  /* SIMPLE SINGLE-PASS ALGORITHM:*/
-  /* traverse the tree:
-   *   keep a pointer to outermost instance of each layer
-   *   clip against outermost in same layer
-   *   when this clip occurs, store outermost clipped string in 2d string buffer.
-   *   string buffer may have attributes to mark component bounds, line art,
-   *      or attributes of text being reviewed.
-   *   composite the layers, ignoring NULL chars in the string buffers.
-   *
-   * Limitations:
-   *   sibling clip not correct, text may overwrite if siblings intersect onscreen
-   *   length of resulting text buffer may vary!
-   *
-   * Technical issues:
-   *   no API for ordering toplevels yet, other than knowing which is ACTIVE.
-   *   not much implementation for the LAYER API yet, other than menus.
-   */
-  g_timer_stop (timer);
-  fprintf (stderr, "elapsed time = %f s\n", g_timer_elapsed (timer, NULL));
-  
-  return string;
-}
-
-void
-report_screen_review_line (const AccessibleEvent *event, void *user_data)
-{
-  static Display *display = NULL;
-  int x, y, win_x, win_y;
-  Window root_return, child_return;
-  unsigned int mask_return;
-  
-  if (!display) display = XOpenDisplay (getenv ("DISPLAY"));
-  /*
-   *  we would prefer to get the x,y info in the above event.
-   *  At the moment we don't get detail params for "toolkit" events,
-   *  so for testing purposes we use XQueryPointer.  Actual apps
-   *  probably shouldn't do this.
-   */
-  XQueryPointer (display,
-                DefaultRootWindow (display),
-                &root_return, &child_return,
-                &x, &y,
-                &win_x, &win_y,
-                &mask_return);
-
-  fprintf (stderr, "screen review event %s at %d, %d\n", event->type,
-          x, y);
-  fprintf (stderr, "[%s]\n", 
-          get_screen_review_line_at (x, y));
-}
-
-void
-test_exit (void)
-{
-  SPI_deregisterGlobalEventListenerAll (mouseclick_listener);
-  AccessibleEventListener_unref (mouseclick_listener);
-}
diff --git a/test/simple-at.c b/test/simple-at.c
deleted file mode 100644 (file)
index 7da2bb5..0000000
+++ /dev/null
@@ -1,615 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <stdio.h>
-#include <strings.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <sys/un.h>
-#undef MAGNIFIER_ENABLED
-#include "../cspi/spi-private.h" /* A hack for now */
-
-#define PRINT_TREE
-
-static void report_focus_event    (const AccessibleEvent *event, void *user_data);
-static void report_generic_event  (const AccessibleEvent *event, void *user_data);
-static void report_window_event  (const AccessibleEvent *event, void *user_data);
-static void report_text_event     (const AccessibleEvent *event, void *user_data);
-static void report_button_press   (const AccessibleEvent *event, void *user_data);
-static void check_property_change (const AccessibleEvent *event, void *user_data);
-static SPIBoolean report_command_key_event  (const AccessibleKeystroke *stroke, void *user_data);
-static SPIBoolean report_ordinary_key_event (const AccessibleKeystroke *stroke, void *user_data);
-static void get_environment_vars (void);
-
-static int _festival_init (void);
-static void _festival_say (const char *text, const char *voice, SPIBoolean shutup);
-static void _festival_write (const char *buff, int fd);
-
-#ifdef PRINT_TREE
-static void print_accessible_tree (Accessible *accessible, char *prefix);
-#endif
-
-#ifdef MAGNIFIER_ENABLED
-static SPIBoolean use_magnifier = FALSE;
-#endif
-
-static SPIBoolean use_festival = FALSE;
-static SPIBoolean festival_chatty = FALSE;
-static SPIBoolean name_changed = FALSE;
-
-static AccessibleEventListener *focus_listener;
-static AccessibleEventListener *property_listener;
-static AccessibleEventListener *generic_listener;
-static AccessibleEventListener *window_listener;
-static AccessibleEventListener *button_listener;
-static AccessibleEventListener *text_listener;
-static AccessibleKeystrokeListener *command_key_listener;
-static AccessibleKeystrokeListener *ordinary_key_listener;
-static AccessibleKeySet            *command_keyset;
-
-int
-main (int argc, char **argv)
-{
-  int i, j;
-  int n_desktops;
-  int n_apps;
-  char *s;
-  Accessible *desktop;
-  Accessible *application;
-  const char *modules;
-
-  if ((argc > 1) && (!strncmp (argv[1], "-h", 2)))
-    {
-      printf ("Usage: simple-at\n");
-      printf ("\tEnvironment variables used:\n\t\tFESTIVAL\n\t\tMAGNIFIER\n\t\tFESTIVAL_CHATTY\n");
-      exit (0);
-    }
-
-  modules = g_getenv ("GTK_MODULES");
-  if (!modules || modules [0] == '\0')
-    {
-      putenv ("GTK_MODULES=");
-    }
-  modules = NULL;
-
-  SPI_init ();
-
-  focus_listener = SPI_createAccessibleEventListener (report_focus_event, NULL);
-  property_listener = SPI_createAccessibleEventListener (check_property_change, NULL); 
-  generic_listener = SPI_createAccessibleEventListener (report_generic_event, NULL); 
-  window_listener = SPI_createAccessibleEventListener (report_window_event, NULL); 
-  text_listener = SPI_createAccessibleEventListener (report_text_event, NULL); 
-  button_listener = SPI_createAccessibleEventListener (report_button_press, NULL);
-  SPI_registerGlobalEventListener (focus_listener, "focus:");
-  SPI_registerGlobalEventListener (property_listener, "object:property-change");
-/* :accessible-selection"); */
-  SPI_registerGlobalEventListener (property_listener, "object:property-change:accessible-name");
-  SPI_registerGlobalEventListener (generic_listener, "object:selection-changed"); 
-  SPI_registerGlobalEventListener (generic_listener, "object:children-changed"); 
-  SPI_registerGlobalEventListener (generic_listener, "object:visible-data-changed"); 
-  SPI_registerGlobalEventListener (generic_listener, "object:text-selection-changed"); 
-  SPI_registerGlobalEventListener (text_listener, "object:text-caret-moved"); 
-  SPI_registerGlobalEventListener (text_listener, "object:text-changed"); 
-  SPI_registerGlobalEventListener (button_listener, "Gtk:GtkWidget:button-press-event");
-  SPI_registerGlobalEventListener (window_listener, "window:minimize");
-  SPI_registerGlobalEventListener (window_listener, "window:activate");
-  n_desktops = SPI_getDesktopCount ();
-
-  for (i=0; i<n_desktops; ++i)
-    {
-      desktop = SPI_getDesktop (i);
-      s = Accessible_getName (desktop);
-      fprintf (stderr, "desktop %d name: %s\n", i, s);
-      SPI_freeString (s);
-      n_apps = Accessible_getChildCount (desktop);
-      for (j=0; j<n_apps; ++j)
-        {
-          application = Accessible_getChildAtIndex (desktop, j);
-         s = Accessible_getName (application);
-          fprintf (stderr, "app %d name: %s\n", j, s ? s : "(nil)");
-#ifdef PRINT_TREE
-         print_accessible_tree (application, "*");
-#endif
-          SPI_freeString (s);
-          Accessible_unref (application);
-        }
-      Accessible_unref (desktop);
-    }
-
-  /* prepare the keyboard snoopers */
-  command_key_listener = SPI_createAccessibleKeystrokeListener (report_command_key_event, NULL);
-  ordinary_key_listener = SPI_createAccessibleKeystrokeListener (report_ordinary_key_event, NULL);
-
-  command_keyset = SPI_createAccessibleKeySet (11, "qmf23456789", NULL, NULL);
-  
-  /* will listen only to Control-Alt-q KeyPress events */
-  SPI_registerAccessibleKeystrokeListener(command_key_listener,
-                                         command_keyset,
-                                         SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL,
-                                         (unsigned long) ( SPI_KEY_PRESSED ),
-                                         SPI_KEYLISTENER_ALL_WINDOWS);
-
-  /* will listen only to CAPSLOCK key events, both press and release */
-  SPI_registerAccessibleKeystrokeListener(ordinary_key_listener,
-                                         (AccessibleKeySet *) SPI_KEYSET_ALL_KEYS,
-                                         SPI_KEYMASK_SHIFTLOCK,
-                                         (unsigned long) ( SPI_KEY_PRESSED | SPI_KEY_RELEASED ),
-                                         SPI_KEYLISTENER_NOSYNC);
-
-  get_environment_vars ();
-
-  SPI_event_main ();
-
-  putenv ("AT_BRIDGE_SHUTDOWN=1");
-
-  return SPI_exit ();
-}
-
-static void
-get_environment_vars (void)
-{
-  if (g_getenv ("FESTIVAL"))
-    {
-      fprintf (stderr, "Using festival\n");
-      use_festival = TRUE;
-      if (g_getenv ("FESTIVAL_CHATTY"))
-        {
-          festival_chatty = TRUE;
-       }
-    }
-#ifdef MAGNIFIER_ENABLED
-  if (g_getenv ("MAGNIFIER"))
-    {
-      fprintf (stderr, "Using magnifier\n");
-      use_magnifier = TRUE;
-    }  
-  else
-    {
-      fprintf (stderr, "Not using magnifier\n");
-    }
-#endif
-
-  if (!use_festival)
-    {
-      fprintf (stderr, "No speech output\n");
-    }
-}
-
-#ifdef PRINT_TREE
-static void
-print_accessible_tree (Accessible *accessible, char *prefix)
-{
-       int n_children;
-       int i;
-       char *name;
-       char *role_name;
-       char *parent_name = NULL;
-       char *parent_role = NULL;
-       char child_prefix[100];
-       Accessible *child;
-       Accessible *parent;
-       
-       strncpy (child_prefix, prefix, 98);
-       strcat (child_prefix, "*");
-       parent = Accessible_getParent (accessible);
-       if (parent)
-         {
-               parent_name = Accessible_getName (parent);
-               parent_role = Accessible_getRoleName (parent);
-               Accessible_unref (parent);
-         }
-       name = Accessible_getName (accessible);
-       role_name = Accessible_getRoleName (accessible);
-       fprintf (stdout, "%sAccessible [%s] \"%s\"; parent [%s] %s.\n",
-                prefix, role_name, name ? name : "(nil)",
-                parent_role ? parent_role : "(nil)",
-                parent_name ? parent_name : "(nil)");
-       SPI_freeString (name);
-       SPI_freeString (role_name);
-       SPI_freeString (parent_name);
-       SPI_freeString (parent_role);
-       n_children = Accessible_getChildCount (accessible);
-       for (i = 0; i < n_children; ++i)
-               {
-                       child = Accessible_getChildAtIndex (accessible, i);
-                       print_accessible_tree (child, child_prefix);
-                       Accessible_unref (child);
-               }
-}
-#endif
-
-void
-report_focussed_accessible (Accessible *obj, SPIBoolean shutup_previous_speech)
-{
-  char *s;
-  int len;
-  long x, y, width, height;
-  /* hack for GUADEC demo, to make sure name changes are spoken */
-  shutup_previous_speech = (shutup_previous_speech && !name_changed);
-
-  if (use_festival)
-    {
-      if (festival_chatty)         
-        {
-         s = Accessible_getRoleName (obj);     
-          _festival_say (s, "voice_don_diphone", shutup_previous_speech);
-         SPI_freeString (s);
-        }
-      fprintf (stderr, "getting Name\n");
-      s = Accessible_getName (obj);
-      _festival_say (s, "voice_kal_diphone",
-                    shutup_previous_speech || festival_chatty);
-      SPI_freeString (s);
-    }
-  
-  if (Accessible_isComponent (obj))
-    {
-      AccessibleComponent *component = Accessible_getComponent (obj);
-      AccessibleComponent_getExtents (component, &x, &y, &width, &height,
-                                      SPI_COORD_TYPE_SCREEN);
-      fprintf (stderr, "Bounding box: (%ld, %ld) ; (%ld, %ld)\n",
-               x, y, x+width, y+height);
-      if (Accessible_isText (obj))
-       {
-         long x0, y0, xN, yN, w0, h0, wN, hN, nchars;
-         AccessibleText *text = Accessible_getText (obj);
-         nchars = AccessibleText_getCharacterCount (text);
-         if (nchars > 0) 
-           {
-             AccessibleText_getCharacterExtents (text, 0, &x0, &y0, &w0, &h0,
-                                             SPI_COORD_TYPE_SCREEN);
-             AccessibleText_getCharacterExtents (text, nchars-1, &xN, &yN, &wN, &hN, 
-                                                 SPI_COORD_TYPE_SCREEN);
-             x = MIN (x0, xN);
-             width = MAX (x0 + w0, xN + wN) - x;
-             fprintf (stderr, "Text bounding box: (%ld, %ld) ; (%ld, %ld)\n",
-                      x, y, x+width, y+height);
-           }
-       }
-#ifdef MAGNIFIER_ENABLED
-      if (use_magnifier) {
-       magnifier_set_roi ((short) 0, x, y, width, height);
-      }
-#endif
-    }
-
-
-  if (Accessible_isValue (obj))
-    {
-      AccessibleValue *value = Accessible_getValue (obj);
-      fprintf (stderr, "Current value = %f, min = %f; max = %f\n",
-               AccessibleValue_getCurrentValue (value),
-               AccessibleValue_getMinimumValue (value),
-              AccessibleValue_getMaximumValue (value));
-    }
-  /* if this is a text object, speak the first sentence. */
-
-  if (Accessible_isText(obj))
-
-  {
-     AccessibleText *text_interface;
-     long start_offset, end_offset;
-     char *first_sentence = "empty";
-     text_interface = Accessible_getText (obj);
-     first_sentence = AccessibleText_getTextAtOffset (
-              text_interface, (long) 0, SPI_TEXT_BOUNDARY_SENTENCE_START, &start_offset, &end_offset);
-     if (first_sentence && use_festival)
-       {
-        _festival_say(first_sentence, "voice_don_diphone", FALSE);
-        SPI_freeString (first_sentence);
-       }
-     len = AccessibleText_getCharacterCount (text_interface);
-     s = AccessibleText_getText (text_interface, 0, len);
-     fprintf (stderr, "done reporting on focussed object, text=%s\n", s);
-  }
-}
-
-void
-report_focus_event (const AccessibleEvent *event, void *user_data)
-{
-  char *s;
-
-  g_return_if_fail (event->source != NULL);
-  s = Accessible_getName (event->source);
-  if (s)
-    {
-      fprintf (stderr, "%s event from %s\n", event->type, s);
-      SPI_freeString (s);
-      report_focussed_accessible (event->source, TRUE);
-    }
-  Accessible_getParent (event->source);
-  name_changed = FALSE;
-}
-
-void
-report_generic_event (const AccessibleEvent *event, void *user_data)
-{
-  fprintf (stderr, "%s event received\n", event->type);
-}
-
-void
-report_window_event (const AccessibleEvent *event, void *user_data)
-{
-  fprintf (stderr, "%s event received\n", event->type);
-  if (!strcmp (event->type, "window:activate"))
-  {
-      print_accessible_tree (event->source, "window");
-  }
-}
-
-void
-report_text_event (const AccessibleEvent *event, void *user_data)
-{
-  AccessibleText *text = Accessible_getText (event->source);
-  fprintf (stderr, "%s event received\n", event->type);
-#ifdef MAGNIFIER_ENABLED
-  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);
-    }
-#endif
-  if (!strcmp (event->type, "object:text-changed"))
-    {
-      long start, end;
-      char *new_text = AccessibleText_getTextAtOffset (text, (long) event->detail1, SPI_TEXT_BOUNDARY_WORD_START, &start, &end);
-      _festival_say (new_text, "voice_kal_diphone", FALSE);
-      fprintf (stderr, "text changed: %s", new_text ? new_text : "");
-      SPI_freeString (new_text);
-    }
-  else
-    {
-      long start, end;
-      char *word_text = AccessibleText_getTextAtOffset (text, (long) event->detail1, SPI_TEXT_BOUNDARY_WORD_START, &start, &end);
-      char *sentence_text = AccessibleText_getTextAtOffset (text, (long) event->detail1, SPI_TEXT_BOUNDARY_SENTENCE_START, &start, &end);
-      fprintf (stderr, "text changed: word %s; sentence %s at %ld",
-              (word_text ? word_text : ""),
-              (sentence_text ? sentence_text : ""),
-              event->detail1);
-      if (word_text) SPI_freeString (word_text);
-      if (sentence_text) SPI_freeString (sentence_text);
-    }
-}
-
-void
-report_button_press (const AccessibleEvent *event, void *user_data)
-{
-  char *s;
-
-  g_return_if_fail (event->source != NULL);
-
-  s = Accessible_getName (event->source);
-
-  fprintf (stderr, "%s event from %s\n", event->type, s);
-  SPI_freeString (s);
-  s = Accessible_getDescription (event->source);
-  fprintf (stderr, "Object description %s\n", s);
-  SPI_freeString (s);
-}
-
-void
-check_property_change (const AccessibleEvent *event, void *user_data)
-{
-  AccessibleSelection *selection = Accessible_getSelection (event->source);
-  int n_selections;
-  int i;
-  char *s;
-  fprintf (stderr, "property change event!\n");
-  if (selection)
-  {
-    n_selections = (int) AccessibleSelection_getNSelectedChildren (selection);
-    s = Accessible_getName (event->source);
-    fprintf (stderr, "(Property) %s event from %s, %d selected children\n",
-            event->type, s, n_selections);
-    SPI_freeString (s);
-  /* for now, speak entire selection set */
-    for (i=0; i<n_selections; ++i)
-      {
-        Accessible *obj = AccessibleSelection_getSelectedChild (selection, (long) i);
-       g_return_if_fail (obj);
-       s = Accessible_getName (obj);
-       fprintf (stderr, "Child %d, name=%s\n", i, s);
-       SPI_freeString (s);
-       report_focussed_accessible (obj, i==0);
-    }
-  }
-  else if (!strcmp (event->type, "object:property-change:accessible-name"))
-    {
-      name_changed = TRUE;         
-      report_focussed_accessible (event->source, TRUE);
-    }
-  else
-    {
-      fprintf (stderr, "Property change %s received\n", event->type);
-    }
-}
-
-static void
-simple_at_exit (void)
-{
-  SPI_deregisterGlobalEventListenerAll (focus_listener);
-  AccessibleEventListener_unref        (focus_listener);
-
-  SPI_deregisterGlobalEventListenerAll (property_listener);
-  AccessibleEventListener_unref        (property_listener);
-
-  SPI_deregisterGlobalEventListenerAll (generic_listener);
-  AccessibleEventListener_unref        (generic_listener);
-
-  SPI_deregisterGlobalEventListenerAll (text_listener);
-  AccessibleEventListener_unref        (text_listener);
-
-  SPI_deregisterGlobalEventListenerAll (button_listener);
-  AccessibleEventListener_unref        (button_listener);
-
-  SPI_deregisterAccessibleKeystrokeListener (command_key_listener, SPI_KEYMASK_ALT | SPI_KEYMASK_CONTROL);
-  AccessibleKeystrokeListener_unref         (command_key_listener);
-  SPI_freeAccessibleKeySet                  (command_keyset);
-
-  SPI_deregisterAccessibleKeystrokeListener (ordinary_key_listener, SPI_KEYMASK_SHIFTLOCK);
-  AccessibleKeystrokeListener_unref         (ordinary_key_listener);
-
-  SPI_event_quit ();
-}
-
-static SPIBoolean
-is_command_key (const AccessibleKeystroke *key)
-{
-  switch (key->keyID)
-    {
-    case 'Q':
-    case 'q':
-           simple_at_exit(); 
-           return TRUE; /* not reached */
-#ifdef MAGNIFIER_ENABLED
-    case 'M':
-    case 'm':
-           use_magnifier = ! use_magnifier;
-            fprintf (stderr, "%ssing magnifier\n", use_magnifier ? "U" : "Not u");
-           return TRUE;
-#endif
-    case 'F':
-    case 'f':
-           use_festival = ! use_festival;
-            fprintf (stderr, "%speech output\n", use_festival ? "S" : "No s");
-           return TRUE;
-    default:
-           return FALSE;
-    }
-}
-
-static SPIBoolean
-report_command_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  fprintf (stderr, "Command KeyEvent %s%c (keycode %d); string=%s; time=%lx\n",
-         (key->modifiers & SPI_KEYMASK_ALT)?"Alt-":"",
-         ((key->modifiers & SPI_KEYMASK_SHIFT)^(key->modifiers & SPI_KEYMASK_SHIFTLOCK))?
-         (char) toupper((int) key->keyID) : (char) tolower((int) key->keyID),
-         (int) key->keycode,
-         key->keystring,
-         (long int) key->timestamp);
-  return is_command_key (key);
-}
-
-
-static SPIBoolean
-report_ordinary_key_event (const AccessibleKeystroke *key, void *user_data)
-{
-  fprintf (stderr, "Received key event:\tsym %ld\n\tmods %x\n\tcode %d\n\tstring=\'%s\'\n\ttime %lx\n",
-          (long) key->keyID,
-          (unsigned int) key->modifiers,
-          (int) key->keycode,
-          key->keystring,
-          (long int) key->timestamp);
-  return FALSE;
-}
-
-static int
-_festival_init (void)
-{
-  int fd;
-  struct sockaddr_in name;
-  int tries = 2;
-
-  name.sin_family = AF_INET;
-  name.sin_port = htons (1314);
-  name.sin_addr.s_addr = htonl(INADDR_ANY);
-  fd = socket (PF_INET, SOCK_STREAM, 0);
-
-  while (connect(fd, (struct sockaddr *) &name, sizeof (name)) < 0) {
-    if (!tries--) {
-      perror ("connect");
-      return -1;
-    }
-  }
-
-  _festival_write ("(audio_mode'async)\n", fd);
-  _festival_write ("(Parameter.set 'Duration_Model 'Tree_ZScore)\n", fd);
-  _festival_write ("(Parameter.set 'Duration_Stretch 0.75)\n", fd);
-  return fd;
-}
-
-static void 
-_festival_say (const char *text, const char *voice, SPIBoolean shutup)
-{
-  static int fd = 0;
-  gchar *quoted;
-  gchar *p;
-  gchar prefix[50];
-  static gchar voice_spec[32];
-  
-  if (!fd)
-    {
-      fd = _festival_init ();
-    }
-
-  fprintf (stderr, "saying text: %s\n", text);
-  
-  quoted = g_malloc(64+strlen(text)*2);
-
-  sprintf (prefix, "(SayText \"");
-
-  strncpy(quoted, prefix, 10);
-  p = quoted+strlen(prefix);
-  while (*text) {
-    if ( *text == '\\' || *text == '"' )
-      *p = '\\';
-    *p++ = *text++;
-  }
-  *p++ = '"';
-  *p++ = ')';
-  *p++ = '\n';
-  *p = 0;
-
-  if (shutup) _festival_write ("(audio_mode'shutup)\n", fd);
-  if (voice && (strncmp (voice, (char *) (voice_spec+1), strlen(voice))))
-    {
-      snprintf (voice_spec, 32, "(%s)\n", voice); 
-      _festival_write (voice_spec, fd);
-      _festival_write ("(Parameter.set 'Duration_Model 'Tree_ZScore)\n", fd);
-      _festival_write ("(Parameter.set 'Duration_Stretch 0.75)\n", fd);
-    }
-
-  _festival_write (quoted, fd);
-
-  g_free(quoted);
-}
-
-static void
-_festival_write (const gchar *command_string, int fd)
-{
-  fprintf(stderr, command_string);
-  if (fd < 0) {
-    perror("socket");
-    return;
-  }
-  write(fd, command_string, strlen(command_string));
-}
-
diff --git a/test/stress-test.c b/test/stress-test.c
deleted file mode 100644 (file)
index 3264d5f..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems Inc.,
- * Copyright 2001, 2002 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 <unistd.h>
-#include <stdlib.h>
-#include "../cspi/spi-private.h" /* A hack for now */
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <atk/atk.h>
-#include <atk/atknoopobject.h>
-#include <bonobo-activation/bonobo-activation-register.h>
-#include <bonobo/bonobo-main.h>
-#include <libspi/libspi.h>
-
-int
-main (int argc, char **argv)
-{
-       int i;
-       Accessibility_Event e;
-       Accessibility_Registry registry;
-       CORBA_Environment ev;
-       SpiAccessible *source;
-       GObject *object;
-       AtkObject *atko;
-       GTimer *timer;
-
-       gtk_init (&argc, &argv);
-       SPI_init ();
-       object = g_object_new (GTK_TYPE_BUTTON, NULL);
-       atko = atk_no_op_object_new (object);
-
-       sleep (1);
-
-       g_print ("starting stress test...\n");
-
-       CORBA_exception_init (&ev);
-
-       registry = bonobo_activation_activate_from_id (
-               "OAFIID:Accessibility_Registry:1.0", 0, NULL, &ev);
-  
-  if (ev._major != CORBA_NO_EXCEPTION)
-    {
-      g_error ("Accessibility app error: exception during "
-              "registry activation from id: %s\n",
-              CORBA_exception_id (&ev));
-      CORBA_exception_free (&ev);
-    }
-
-  if (registry == CORBA_OBJECT_NIL)
-    {
-      g_error ("Could not locate registry");
-    }
-
-       bonobo_activate ();
-
-       source = spi_accessible_new (atko);
-       
-       e.type = "object:test";
-       e.source = BONOBO_OBJREF (source);
-       e.detail1 = 0;
-       e.detail2 = 0;
-
-       timer = g_timer_new ();
-       g_timer_start (timer);
-
-       for (i = 0; i < 500; ++i) {
-               Accessibility_Accessible_ref (e.source, &ev);
-               Accessibility_Registry_notifyEvent (registry, &e, &ev);
-       }
-       g_timer_stop (timer);
-       g_print ("%d notifications sent in  %f sec.\n", i,
-                g_timer_elapsed (timer, NULL));
-
-       SPI_event_main ();
-
-       sleep (15);
-       
-  return SPI_exit ();
-}
-
diff --git a/test/test-simple.c b/test/test-simple.c
deleted file mode 100644 (file)
index 3c469ee..0000000
+++ /dev/null
@@ -1,815 +0,0 @@
-/*
- * test-simple.c: A set of simple regression tests
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001 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.
- */
-
-/*
- * ******** Do not copy this code as an example *********
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <locale.h>
-#include <gtk/gtk.h>
-#include <cspi/spi.h>
-#include <libbonobo.h>
-
-
-/* Known bugs */
-#define WHOLE_STRING -1
-
-static void validate_accessible (Accessible *accessible,
-                                gboolean    has_parent,
-                                gboolean    recurse_down);
-
-#define WINDOW_MAGIC 0x123456a
-#define TEST_STRING_A "A test string"
-#define TEST_STRING_A_OBJECT "A_test_string_object"
-#define TEST_STRING_B "Another test string"
-
-static int      print_tree_depth = 0;
-static gboolean print_tree = FALSE;
-static gboolean do_poke = FALSE;
-static gboolean key_press_received = FALSE;
-static gboolean key_release_received = FALSE;
-
-typedef struct {
-       gulong     magic;
-       GtkWidget *window;
-} TestWindow;
-
-static gboolean
-focus_me (GtkWidget *widget)
-{
-       AtkObject *aobject = atk_implementor_ref_accessible (
-               ATK_IMPLEMENTOR (widget));
-       
-       /* Force a focus event - even if the WM focused
-        * us before our at-bridge's idle handler registered
-        * our interest */
-       if (!GTK_WIDGET_HAS_FOCUS (widget))
-               gtk_widget_grab_focus (widget);
-/*     else: FIXME - gtk_widget_grab_focus should send a notify */
-               atk_focus_tracker_notify (aobject);
-       
-       g_object_unref (G_OBJECT (aobject));
-
-       return FALSE;
-}
-
-static void
-test_window_add_and_show (GtkContainer *container, GtkWidget *widget)
-{
-       gtk_container_add (container, widget);
-       gtk_widget_show (widget);
-}
-
-static GtkWidget *
-create_tree (void)
-{
-       GtkWidget         *widget;
-       GtkTreeIter        iter;
-       GtkListStore      *store;
-       GtkTreeViewColumn *column;
-
-       store = gtk_list_store_new (1, G_TYPE_STRING);
-       gtk_list_store_append (store, &iter);
-       gtk_list_store_set (store, &iter, 0, TEST_STRING_A, -1); 
-       column = gtk_tree_view_column_new_with_attributes ("String",
-               gtk_cell_renderer_text_new (), "text", 0, NULL);
-       widget = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); 
-       g_object_unref (G_OBJECT (store));
-       gtk_tree_view_append_column (GTK_TREE_VIEW (widget), column);
-
-       return widget;
-}
-
-static TestWindow *
-create_test_window (void)
-{
-       TestWindow *win = g_new0 (TestWindow, 1);
-       GtkWidget  *widget, *vbox;
-       AtkObject *obj;
-
-       win->magic  = WINDOW_MAGIC;
-       win->window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-       gtk_widget_show (win->window);
-
-       vbox = gtk_vbox_new (0, 0);
-       gtk_container_add (GTK_CONTAINER (win->window), vbox);
-       gtk_widget_show (vbox);
-
-       widget = gtk_entry_new ();
-       gtk_entry_set_text (GTK_ENTRY (widget), TEST_STRING_A);
-       obj = gtk_widget_get_accessible (widget);
-       atk_object_set_name (obj, TEST_STRING_A_OBJECT);
-
-       test_window_add_and_show (GTK_CONTAINER (vbox), widget);
-
-       widget = gtk_button_new_with_label ("_Foobar");
-       test_window_add_and_show (GTK_CONTAINER (vbox), widget);
-
-       widget = gtk_hseparator_new ();
-       test_window_add_and_show (GTK_CONTAINER (vbox), widget);
-
-       widget = gtk_image_new_from_stock (GTK_STOCK_DIALOG_QUESTION,
-                                          GTK_ICON_SIZE_LARGE_TOOLBAR);
-       test_window_add_and_show (GTK_CONTAINER (vbox), widget);
-
-       widget = g_object_new (GTK_TYPE_HSCALE, NULL);
-       gtk_range_set_range (GTK_RANGE (widget), 0.0, 100.0);
-       test_window_add_and_show (GTK_CONTAINER (vbox), widget);
-
-       widget = create_tree ();
-       test_window_add_and_show (GTK_CONTAINER (vbox), widget);
-
-       g_idle_add ((GSourceFunc) focus_me, win->window);
-
-       return win;
-}
-
-static void
-test_window_destroy (TestWindow *win)
-{
-       gtk_widget_destroy (win->window);
-       g_free (win);
-}
-
-static void
-test_roles (void)
-{
-       int i;
-
-       fprintf (stderr, "Testing roles...\n");
-       for (i = -1; i < 1000; i++)
-               g_assert (AccessibleRole_getName (i) != NULL);
-
-       g_assert (!strcmp (AccessibleRole_getName (SPI_ROLE_FILE_CHOOSER), "file-chooser"));
-       g_assert (!strcmp (AccessibleRole_getName (SPI_ROLE_RADIO_BUTTON), "radio-button"));
-       g_assert (!strcmp (AccessibleRole_getName (SPI_ROLE_TABLE), "table"));
-       g_assert (!strcmp (AccessibleRole_getName (SPI_ROLE_WINDOW), "window"));
-}
-
-static void
-test_action (AccessibleAction *action)
-{
-       gint n_actions, i;
-       gchar *s, *sd;
-       g_assert ((n_actions = AccessibleAction_getNActions (action)) >= 0);
-
-       fprintf (stderr, "Testing actions...");
-       for (i = 0; i < n_actions; ++i)
-       {
-               s = AccessibleAction_getName (action, i);
-               g_assert (s);
-               sd = AccessibleAction_getDescription (action, i);
-               g_assert (sd);
-               fprintf (stderr, "%d: %s (%s);  ", i, s, sd);
-               SPI_freeString (s);
-               SPI_freeString (sd);
-               g_assert (AccessibleAction_doAction (action, i));
-       }
-       fprintf (stderr, "\n");
-}
-
-static void
-test_desktop (void)
-{
-       Accessible  *desktop;
-       Accessible  *application;
-       Accessible **list;
-
-       fprintf (stderr, "Testing desktop...\n");
-
-       g_assert (SPI_getDesktop (-1) == NULL);
-       desktop = SPI_getDesktop (0);
-       g_assert (desktop != NULL);
-
-       g_assert ((SPI_getDesktopList (&list)) > 0);
-       g_assert (list[0] == desktop);
-       SPI_freeDesktopList (list);
-
-       validate_accessible (desktop, FALSE, FALSE);
-
-       application = Accessible_getChildAtIndex (desktop, 0);
-       g_assert (application != NULL);
-       AccessibleApplication_unref (application);
-
-       Accessible_unref (desktop);
-}
-
-static void
-test_application (Accessible *application)
-{
-       char *str;
-
-       fprintf (stderr, "Testing application ...\n");
-       g_assert (Accessible_isApplication (application));
-       g_assert (Accessible_getApplication (application) ==
-                 application);
-       AccessibleApplication_unref (application);
-
-       str = AccessibleApplication_getToolkitName (application);
-       g_assert (str != NULL);
-       g_assert (!strcmp (str, "GAIL"));
-       SPI_freeString (str);
-
-       str = AccessibleApplication_getLocale (application, LC_MESSAGES);
-       g_assert (!strcmp (str, setlocale (LC_MESSAGES, NULL)));
-        SPI_freeString (str);
-
-       str = AccessibleApplication_getVersion (application);
-       g_assert (str != NULL);
-       SPI_freeString (str);
-
-       AccessibleApplication_getID (application);
-}
-
-static void
-test_editable_text (AccessibleEditableText *etext)
-{
-       char *str;
-       AccessibleText *text;
-
-       fprintf (stderr, "Testing editable text ...\n");
-       
-       g_assert (Accessible_isText (etext));
-       text = Accessible_getText (etext);
-
-       AccessibleEditableText_setTextContents (
-               etext, TEST_STRING_B);
-
-       str = AccessibleText_getText (text, 0, WHOLE_STRING);
-       g_assert (!strcmp (str, TEST_STRING_B));
-
-       SPI_freeString (str);
-
-       /* FIXME: lots more editing here */
-
-       AccessibleEditableText_setTextContents (
-               etext, TEST_STRING_A);
-
-       AccessibleText_unref (text);
-}
-
-static void
-test_table (AccessibleTable *table)
-{
-       Accessible *header;
-       gint index;
-       gint rows, columns;
-
-       fprintf (stderr, "Testing table ...\n");
-
-       rows = AccessibleTable_getNRows (table);
-       g_assert (rows > 0);
-
-       columns = AccessibleTable_getNColumns (table);
-       g_assert (columns > 0);
-
-       index = AccessibleTable_getIndexAt (table, rows - 1, columns - 1);
-
-       g_assert (AccessibleTable_getRowAtIndex (table, index) == rows - 1);
-
-       g_assert (AccessibleTable_getColumnAtIndex (table, index) == columns - 1);
-
-       g_assert ((header = AccessibleTable_getColumnHeader (table, 0)));
-       Accessible_unref (header);
-
-       AccessibleTable_isSelected (table, 0, 0);
-       
-       /* FIXME: lots more tests */
-}
-
-static void
-test_text (AccessibleText *text)
-{
-       char *str;
-
-       fprintf (stderr, "Testing text ...\n");
-
-       g_assert (AccessibleText_getCharacterCount (text) ==
-                 strlen (TEST_STRING_A));
-
-       str = AccessibleText_getText (text, 0, WHOLE_STRING);
-       g_assert (!strcmp (str, TEST_STRING_A));
-       SPI_freeString (str);
-
-       str = AccessibleText_getText (text, 0, 5);
-       g_assert (!strncmp (str, TEST_STRING_A, 5));
-       SPI_freeString (str);
-
-       AccessibleText_setCaretOffset (text, 7);
-       g_assert (AccessibleText_getCaretOffset (text) == 7);
-
-       /* FIXME: lots more tests - selections etc. etc. */
-}
-
-static void
-test_value (AccessibleValue *value)
-{
-       float original_value;
-       
-       fprintf (stderr, "Testing value ...\n");
-
-       original_value = AccessibleValue_getCurrentValue (value);
-       
-       g_assert (AccessibleValue_getCurrentValue (value) <=
-                 AccessibleValue_getMaximumValue (value));
-
-       g_assert (AccessibleValue_getCurrentValue (value) >=
-                 AccessibleValue_getMinimumValue (value));
-
-       AccessibleValue_setCurrentValue (value, 
-                 AccessibleValue_getMinimumValue (value));
-       
-       g_assert (AccessibleValue_getCurrentValue (value) ==
-                 AccessibleValue_getMinimumValue (value));
-
-       AccessibleValue_setCurrentValue (value, 
-                 AccessibleValue_getMaximumValue (value));
-       
-       g_assert (AccessibleValue_getCurrentValue (value) ==
-                 AccessibleValue_getMaximumValue (value));
-
-       AccessibleValue_setCurrentValue (value, original_value);
-       
-       g_assert (AccessibleValue_getCurrentValue (value) == original_value);
-}
-
-static void
-test_component (AccessibleComponent *component)
-{
-       long x, y, width, height;
-
-       fprintf (stderr, "Testing component...\n");
-
-       AccessibleComponent_getExtents (
-               component, &x, &y, &width, &height, SPI_COORD_TYPE_SCREEN);
-
-       AccessibleComponent_getPosition (
-               component, &x, &y, SPI_COORD_TYPE_SCREEN);
-
-       AccessibleComponent_getSize (component, &width, &height);
-
-       if (width > 0 && height > 0) {
-#ifdef FIXME
-               Accessible *accessible, *componentb;
-#endif
-
-               g_assert (AccessibleComponent_contains (
-                       component, x, y, SPI_COORD_TYPE_SCREEN));
-
-               g_assert (AccessibleComponent_contains (
-                       component, x + width - 1, y, SPI_COORD_TYPE_SCREEN));
-
-               g_assert (AccessibleComponent_contains (
-                       component, x + width - 1, y + height - 1,
-                       SPI_COORD_TYPE_SCREEN));
-
-#ifdef FIXME
-               accessible = AccessibleComponent_getAccessibleAtPoint (
-                       component, x, y, SPI_COORD_TYPE_SCREEN);
-
-               g_assert (Accessible_isComponent (accessible));
-               componentb = Accessible_getComponent (accessible);
-               g_assert (componentb == component);
-
-               AccessibleComponent_unref (componentb);
-               Accessible_unref (accessible);
-#endif
-       }
-
-       AccessibleComponent_getLayer (component);
-       AccessibleComponent_getMDIZOrder (component);
-/*     AccessibleComponent_grabFocus (component); */
-}
-
-static void
-test_image (AccessibleImage *image)
-{
-       char *desc;
-       long int x = -1, y = -1, width = -1, height = -1;
-
-       desc = AccessibleImage_getImageDescription (image);
-       g_assert (desc != NULL);
-       SPI_freeString (desc);
-
-       AccessibleImage_getImagePosition (image, &x, &y,
-                                         SPI_COORD_TYPE_SCREEN);
-       AccessibleImage_getImageSize     (image, &width, &height);
-       AccessibleImage_getImageExtents  (image, &x, &y, &width, &height,
-                                         SPI_COORD_TYPE_WINDOW);
-}
-
-static void
-validate_tree (Accessible *accessible,
-              gboolean    has_parent,
-              gboolean    recurse_down)
-{
-       Accessible  *parent;
-       long         len, i;
-
-       parent = Accessible_getParent (accessible);
-       if (has_parent) {
-               long        index;
-               Accessible *child_at_index;
-
-               g_assert (parent != NULL);
-
-               index = Accessible_getIndexInParent (accessible);
-               g_assert (index >= 0); 
-
-               child_at_index = Accessible_getChildAtIndex (parent, index);
-
-               g_assert (child_at_index == accessible);
-
-               Accessible_unref (child_at_index);
-               Accessible_unref (parent);
-       }
-
-       len = Accessible_getChildCount (accessible);
-       print_tree_depth++;
-       for (i = 0; i < len; i++) {
-               Accessible *child;
-
-               child = Accessible_getChildAtIndex (accessible, i);
-#ifdef ROPEY
-               if (!child)
-                       fprintf (stderr, "Unusual - ChildGone at %ld\n", i);
-
-               g_assert (Accessible_getIndexInParent (child) == i);
-               g_assert (Accessible_getParent (child) == accessible);
-#endif
-
-               if (recurse_down && child)
-                       validate_accessible (child, has_parent, recurse_down);
-
-               Accessible_unref (child);
-       }
-       print_tree_depth--;
-}
-
-static void
-validate_accessible (Accessible *accessible,
-                    gboolean    has_parent,
-                    gboolean    recurse_down)
-{
-       Accessible          *tmp;
-       char                *name, *descr;
-       AccessibleRole       role;
-       AccessibleRelation **relations;
-       char                *role_name;
-       GString             *item_str = g_string_new ("");
-       int                  i;
-
-       name = Accessible_getName (accessible);
-       g_assert (name != NULL);
-       
-       descr = Accessible_getDescription (accessible);
-       g_assert (descr != NULL);
-
-       role = Accessible_getRole (accessible);
-       g_assert (role != SPI_ROLE_INVALID);
-       role_name = Accessible_getRoleName (accessible);
-       g_assert (role_name != NULL);
-
-       relations = Accessible_getRelationSet (accessible);
-       g_assert (relations != NULL);
-
-       for (i = 0; relations [i]; i++) {
-               AccessibleRelationType type;
-               int                    targets;
-
-               fprintf (stderr, "relation %d\n", i);
-
-               type = AccessibleRelation_getRelationType (relations [i]);
-               g_assert (type != SPI_RELATION_NULL);
-
-               targets = AccessibleRelation_getNTargets (relations [i]);
-               g_assert (targets != -1);
-
-               AccessibleRelation_unref (relations [i]);
-               relations [i] = NULL;
-       }
-       free (relations);
-
-       if (print_tree) {
-               int i;
-
-               for (i = 0; i < print_tree_depth; i++)
-                       fputc (' ', stderr);
-               fputs ("|-> [ ", stderr);
-       }
-
-       if (Accessible_isAction (accessible)) {
-               tmp = Accessible_getAction (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "At");
-               else
-                       test_action (tmp);
-               AccessibleAction_unref (tmp);
-       }
-
-       if (Accessible_isApplication (accessible)) {
-               tmp = Accessible_getApplication (accessible);
-               if (print_tree)
-                       fprintf (stderr, "Ap");
-               else
-                       test_application (tmp);
-               AccessibleApplication_unref (tmp);
-       }
-
-       if (Accessible_isComponent (accessible)) {
-               tmp = Accessible_getComponent (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Co");
-               else
-                       test_component (tmp);
-               AccessibleComponent_unref (tmp);
-       }
-
-       if (Accessible_isEditableText (accessible)) {
-               tmp = Accessible_getEditableText (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Et");
-               else
-                       test_editable_text (tmp);
-               AccessibleEditableText_unref (tmp);
-       }
-
-       if (Accessible_isHypertext (accessible)) {
-               tmp = Accessible_getHypertext (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Ht");
-               AccessibleHypertext_unref (tmp);
-       }
-
-       if (Accessible_isImage (accessible)) {
-               tmp = Accessible_getImage (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree) {
-                       char *desc;
-
-                       fprintf (stderr, "Im");
-
-                       desc = AccessibleImage_getImageDescription (tmp);
-                       g_string_append_printf (
-                               item_str, " image descr: '%s'", desc);
-                       SPI_freeString (desc);
-               } else
-                       test_image (tmp);
-
-               AccessibleImage_unref (tmp);
-       }
-
-       if (Accessible_isSelection (accessible)) {
-               tmp = Accessible_getSelection (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Se");
-               AccessibleSelection_unref (tmp);
-       }
-
-       if (Accessible_isTable (accessible)) {
-               tmp = Accessible_getTable (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Ta");
-               else
-                       test_table (tmp);
-               AccessibleTable_unref (tmp);
-       }
-
-       if (Accessible_isText (accessible)) {
-               tmp = Accessible_getText (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Te");
-               else {
-                       if (strcmp (name, TEST_STRING_A_OBJECT) == 0)   
-                               test_text (tmp);
-               }
-               AccessibleText_unref (tmp);
-       }
-
-       if (Accessible_isValue (accessible)) {
-               tmp = Accessible_getValue (accessible);
-               g_assert (tmp != NULL);
-               if (print_tree)
-                       fprintf (stderr, "Va");
-               else
-                       test_value (tmp); 
-               AccessibleValue_unref (tmp);
-       }
-
-       if (print_tree)
-               fprintf (stderr, " ] '%s' (%s) - %s: %s\n",
-                        name, descr, role_name, item_str->str);
-
-       SPI_freeString (name);
-       SPI_freeString (descr);
-       SPI_freeString (role_name);
-       g_string_free (item_str, TRUE);
-
-       validate_tree (accessible, has_parent, recurse_down);
-}
-
-static void
-test_misc (void)
-{
-       fprintf (stderr, "Testing misc bits ...\n");
-
-       g_assert (!Accessible_isComponent (NULL));
-       g_assert (Accessible_getComponent (NULL) == NULL);
-       SPI_freeString (NULL);
-}
-
-static void
-global_listener_cb (const AccessibleEvent *event,
-                   void                  *user_data)
-{
-       TestWindow *win = user_data;
-       Accessible *desktop;
-       AccessibleApplication *application;
-
-       g_assert (win->magic == WINDOW_MAGIC);
-       g_assert (!strcmp (event->type, "focus:"));
-
-       fprintf (stderr, "Fielded focus event ...\n");
-
-       if (!do_poke) {
-               desktop = SPI_getDesktop (0);
-               application = Accessible_getChildAtIndex (desktop, 0);
-               g_assert (application != NULL);
-               Accessible_unref (desktop);
-               
-               test_application (application);
-               
-               AccessibleApplication_unref (application);
-               
-               print_tree = FALSE;
-
-               validate_accessible (event->source, TRUE, TRUE);
-
-               fprintf (stderr, "quitting mainloop.\n");
-               gtk_main_quit ();
-       }
-
-       print_tree = TRUE;
-       validate_accessible (event->source, TRUE, TRUE);
-}
-
-static SPIBoolean
-key_listener_cb (const AccessibleKeystroke *stroke,
-                void                      *user_data)
-{
-       AccessibleKeystroke *s = user_data;
-       
-       *s = *stroke;
-       if (stroke->keystring) s->keystring = g_strdup (stroke->keystring);
-       
-       if (s->type == SPI_KEY_PRESSED)
-               key_press_received = TRUE;
-       else if (s->type == SPI_KEY_RELEASED)
-               key_release_received = TRUE;
-
-       return TRUE;
-}
-
-
-static void
-test_keylisteners (void)
-{
-       int i;
-       AccessibleKeystroke stroke;
-       AccessibleKeystrokeListener *key_listener;
-       AccessibleKeySet *test_keyset;
-
-       fprintf (stderr, "Testing keyboard listeners ...\n");
-
-       key_listener = SPI_createAccessibleKeystrokeListener (
-               key_listener_cb, &stroke);
-
-       test_keyset = SPI_createAccessibleKeySet (1, "=", NULL, NULL);
-
-       g_assert (SPI_registerAccessibleKeystrokeListener (
-               key_listener,
-               test_keyset,
-               0,
-               SPI_KEY_PRESSED | SPI_KEY_RELEASED,
-               SPI_KEYLISTENER_CANCONSUME | SPI_KEYLISTENER_ALL_WINDOWS));
-
-       for (i = 0; i < 3; i++) {
-               memset (&stroke, 0, sizeof (AccessibleKeystroke));
-               g_assert (SPI_generateKeyboardEvent ('=', NULL, SPI_KEY_SYM));
-               while (!(key_press_received))
-                       g_main_context_iteration (NULL, TRUE);
-               fprintf (stderr, "p [%s]", stroke.keystring);
-               g_assert (!strcmp (stroke.keystring, "="));
-               while (!(key_release_received))
-                       g_main_context_iteration (NULL, TRUE);
-               fprintf (stderr, "r [%s]", stroke.keystring);
-               key_press_received = FALSE;
-               key_release_received = FALSE;
-       }
-       g_assert (SPI_deregisterAccessibleKeystrokeListener (key_listener, 0));
-       SPI_freeAccessibleKeySet (test_keyset);
-
-       fprintf (stderr, "\n");
-
-       AccessibleKeystrokeListener_unref (key_listener);
-
-       g_assert (SPI_generateMouseEvent (100, 100, "rel"));
-        g_assert (SPI_generateMouseEvent (-50, -50, "rel"));             
-        g_assert (SPI_generateMouseEvent (-50, -50, "rel"));             
-        g_assert (SPI_generateMouseEvent (-1, -1, "b1c")); 
-}
-
-int
-main (int argc, char **argv)
-{
-       int leaked, i;
-       TestWindow *win;
-       const char *modules;
-       AccessibleEventListener *global_listener;
-
-       modules = g_getenv ("GTK_MODULES");
-       if (!modules || modules [0] == '\0')
-               putenv ("GTK_MODULES=gail:atk-bridge");
-       modules = NULL;
-
-       for (i = 1; i < argc; i++) {
-               if (!g_strcasecmp (argv [i], "--poke"))
-                       do_poke = TRUE;
-       }
-
-       gtk_init (&argc, &argv);
-
-       g_assert (!SPI_init ());
-       g_assert (SPI_init ());
-       g_assert (SPI_getDesktopCount () == 1);
-
-       test_roles ();
-       test_misc ();
-       test_desktop ();
-       test_keylisteners (); 
-
-       win = create_test_window ();
-
-       global_listener = SPI_createAccessibleEventListener (global_listener_cb, win);
-
-       g_assert (SPI_registerGlobalEventListener (global_listener, "focus:"));
-
-       fprintf (stderr, "Waiting for focus event ...\n");
-       gtk_main ();
-
-       g_assert (SPI_deregisterGlobalEventListenerAll (global_listener));
-       AccessibleEventListener_unref (global_listener);
-
-       test_window_destroy (win);
-
-       /* Wait for any pending events from the registry */
-       g_usleep (500*1000);
-       for (i = 0; i < 100; i++)
-               CORBA_ORB_perform_work (NULL, NULL);
-
-       if ((leaked = SPI_exit ()))
-               g_error ("Leaked %d SPI handles", leaked);
-
-       g_assert (!SPI_exit ());
-
-       fprintf (stderr, "All tests passed\n");
-
-       if (g_getenv ("_MEMPROF_SOCKET")) {
-               fprintf (stderr, "Waiting for memprof\n");
-               gtk_main ();
-       }
-
-       putenv ("AT_BRIDGE_SHUTDOWN=1");
-
-       return 0;
-}
diff --git a/test/visual-bell.c b/test/visual-bell.c
deleted file mode 100755 (executable)
index d8d0f59..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2001, 2002 Sun Microsystems 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 <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <X11/Xlib.h>
-#include <X11/Xutil.h>
-#include <X11/XKBlib.h>
-
-static Display *display;
-static  Window flash_window = None;
-
-static void
-visual_bell_notify (XkbAnyEvent *xkb_ev)
-{
-       Window root;
-       int width, height;
-       root = RootWindow (display, DefaultScreen (display));
-       width = DisplayWidth (display, DefaultScreen (display));
-       height = DisplayHeight (display, DefaultScreen (display));
-       if (flash_window == None)
-       {
-               Visual *visual = CopyFromParent;
-               XVisualInfo info_return;
-               XSetWindowAttributes xswa;
-               int depth = CopyFromParent;
-               xswa.save_under = True;
-               xswa.override_redirect = True;
-               /* TODO: use XGetVisualInfo and determine which is an
-                  overlay, if one is present.  Not sure how to tell
-                  this yet... */
-               if (XMatchVisualInfo (display,
-                                     DefaultScreen (display),
-                                     8,
-                                     PseudoColor,
-                                     &info_return)) {
-                       depth = 8;
-                       visual = info_return.visual;
-               }
-               else
-               {
-                       fprintf (stderr, "could not create overlay visual, using default root visual type\n");
-               }
-               flash_window = XCreateWindow (display, root,
-                                             0, 0, width, height,
-                                             0, depth,
-                                             InputOutput,
-                                             visual,
-                                             CWSaveUnder | CWOverrideRedirect,
-                                             &xswa);
-               XSelectInput (display, flash_window, ExposureMask);
-               XMapWindow (display, flash_window);
-       }
-       else
-       {
-               /* just draw something in the window */
-               GC gc = XCreateGC (display, flash_window, 0, NULL);
-               XMapWindow (display, flash_window);
-               XSetForeground (display, gc,
-                               WhitePixel (display, DefaultScreen (display)));
-               XFillRectangle (display, flash_window, gc,
-                               0, 0, width, height);
-               XSetForeground (display, gc,
-                               BlackPixel (display, DefaultScreen (display)));
-               XFillRectangle (display, flash_window, gc,
-                               0, 0, width, height);
-       }
-       XFlush (display);
-}
-
-int main (int argc, char **argv)
-{
-       XEvent xev;
-       int ir, xkb_base_event_type, reason_return;
-       char *display_name = getenv ("DISPLAY");
-
-       if (!display_name) display_name = ":0.0";
-       
-       display = XkbOpenDisplay (display_name,
-                                 &xkb_base_event_type,
-                                 &ir, NULL, NULL, &reason_return);
-       if (!display)
-       {
-               fprintf (stderr, "Could not connect to display! (%d)\n",
-                        reason_return);
-               exit (-1);
-       }
-       
-       XkbSelectEvents (display,
-                        XkbUseCoreKbd,
-                        XkbBellNotifyMask,
-                        XkbBellNotifyMask);
-
-       /* comment this out to prevent bell on startup */
-       XkbBell (display, None, 100, None);
-
-       while (1)
-       {
-               XNextEvent (display, &xev);
-               if (xev.type == Expose)
-               {
-                       XExposeEvent *exev = (XExposeEvent *) &xev;
-                       if (exev->window == flash_window)
-                       {
-                               XUnmapWindow (display, flash_window);
-                                /* discard pending bells */
-                               XSync (display, True); 
-                               XFlush (display);
-                       }
-               }
-               else if (xev.type == xkb_base_event_type)
-               {
-                       XkbAnyEvent *xkb_ev = (XkbAnyEvent *) &xev;
-                       
-                       switch (xkb_ev->xkb_type)
-                       {
-                       case XkbBellNotify:
-                               /* flash something */
-                               visual_bell_notify (xkb_ev);
-                               break;
-                       }
-               }
-       }
-}
-
diff --git a/test/window-listener-test.c b/test/window-listener-test.c
deleted file mode 100644 (file)
index cbd2410..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * 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 <stdio.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 %s\n", event->type, s, t);
-  SPI_freeString (s);
-  SPI_freeString (t);
-}
-
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644 (file)
index 0000000..bc906a3
--- /dev/null
@@ -0,0 +1,7 @@
+EXTRA_DIST = \
+       AccessibleTree.py      \
+       AccessibleTreeCache.py \
+       desktop.xml            \
+       makeTree.py            \
+       testClient.py          \
+       testServer.py
similarity index 100%
rename from tools/python/desktop.xml
rename to tests/desktop.xml
similarity index 100%
rename from tools/python/makeTree.py
rename to tests/makeTree.py
index ee44e58..63fc983 100644 (file)
@@ -1,3 +1,5 @@
 EXTRA_DIST = \
 EXTRA_DIST = \
-       c-constants-generator.xsl \
+       c-constants-generator.xsl\
+       spec-to-introspect.xsl\
+       doc-generator.xsl\
        identity.xsl
        identity.xsl
index 23ab282..22eb2b5 100644 (file)
@@ -22,8 +22,9 @@ XML= \
        Accessibility_Value.xml
 
 spec.xml: $(XML)
        Accessibility_Value.xml
 
 spec.xml: $(XML)
-       xsltproc --xinclude ../tools/identity.xsl $< >$@
+       xsltproc --xinclude $(top_srcdir)/tools/identity.xsl $< >$@
 
 EXTRA_DIST = $(XML)
 
 BUILT_SOURCES = spec.xml
 
 EXTRA_DIST = $(XML)
 
 BUILT_SOURCES = spec.xml
+CLEANFILES = spec.xml