2009-07-10 Mark Doffman <mark.doffman@codethink.co.uk>
authorMark Doffman <mdoff@altair-voyager.(none)>
Wed, 7 Oct 2009 08:40:11 +0000 (09:40 +0100)
committerMark Doffman <mdoff@altair-voyager.(none)>
Wed, 7 Oct 2009 08:40:11 +0000 (09:40 +0100)
        Remove pyatspi and the pyatspi tests that have been moved
        out into a separate repository.

100 files changed:
Makefile.am
configure.ac
pyatspi/Accessibility.py [deleted file]
pyatspi/Makefile.am [deleted file]
pyatspi/__init__.py [deleted file]
pyatspi/accessible.py [deleted file]
pyatspi/accessiblecache.py [deleted file]
pyatspi/action.py [deleted file]
pyatspi/application.py [deleted file]
pyatspi/applicationcache.py [deleted file]
pyatspi/base.py [deleted file]
pyatspi/collection.py [deleted file]
pyatspi/component.py [deleted file]
pyatspi/constants.py [deleted file]
pyatspi/desktop.py [deleted file]
pyatspi/deviceevent.py [deleted file]
pyatspi/document.py [deleted file]
pyatspi/editabletext.py [deleted file]
pyatspi/event.py [deleted file]
pyatspi/factory.py [deleted file]
pyatspi/hyperlink.py [deleted file]
pyatspi/hypertext.py [deleted file]
pyatspi/image.py [deleted file]
pyatspi/interfaces.py [deleted file]
pyatspi/loginhelper.py [deleted file]
pyatspi/registry.py [deleted file]
pyatspi/relation.py [deleted file]
pyatspi/role.py [deleted file]
pyatspi/selection.py [deleted file]
pyatspi/state.py [deleted file]
pyatspi/table.py [deleted file]
pyatspi/text.py [deleted file]
pyatspi/utils.py [deleted file]
pyatspi/value.py [deleted file]
tests/Makefile.am [deleted file]
tests/apps/Makefile.am [deleted file]
tests/apps/accessible-app.c [deleted file]
tests/apps/action-app.c [deleted file]
tests/apps/atk-object-xml-loader.c [deleted file]
tests/apps/atk-object-xml-loader.h [deleted file]
tests/apps/component-app.c [deleted file]
tests/apps/noop-app.c [deleted file]
tests/apps/relation-app.c [deleted file]
tests/apps/test-application.c [deleted file]
tests/cspi/Makefile.am [deleted file]
tests/cspi/accessible-test.c [deleted file]
tests/cspi/classy-test-suite.c [deleted file]
tests/cspi/classy-test-suite.h [deleted file]
tests/cspi/classy-test.c [deleted file]
tests/cspi/classy-test.h [deleted file]
tests/cspi/key-listener-test.c [deleted file]
tests/cspi/keysynth-test.c [deleted file]
tests/cspi/simple-at.c [deleted file]
tests/cspi/simple-test.c [deleted file]
tests/cspi/test-simple.c [deleted file]
tests/data/Makefile.am [deleted file]
tests/data/accessible-test-results.xml [deleted file]
tests/data/accessible-test.xml [deleted file]
tests/dummyatk/Makefile.am [deleted file]
tests/dummyatk/my-atk-action.c [deleted file]
tests/dummyatk/my-atk-action.h [deleted file]
tests/dummyatk/my-atk-component.c [deleted file]
tests/dummyatk/my-atk-component.h [deleted file]
tests/dummyatk/my-atk-hyperlink.c [deleted file]
tests/dummyatk/my-atk-hyperlink.h [deleted file]
tests/dummyatk/my-atk-hypertext.c [deleted file]
tests/dummyatk/my-atk-hypertext.h [deleted file]
tests/dummyatk/my-atk-object.c [deleted file]
tests/dummyatk/my-atk-object.h [deleted file]
tests/dummyatk/my-atk-selection.c [deleted file]
tests/dummyatk/my-atk-selection.h [deleted file]
tests/dummyatk/my-atk-streamable-content.c [deleted file]
tests/dummyatk/my-atk-streamable-content.h [deleted file]
tests/dummyatk/my-atk-table.c [deleted file]
tests/dummyatk/my-atk-table.h [deleted file]
tests/dummyatk/my-atk-text.c [deleted file]
tests/dummyatk/my-atk-text.h [deleted file]
tests/dummyatk/my-atk-value.c [deleted file]
tests/dummyatk/my-atk-value.h [deleted file]
tests/dummyatk/my-atk.h [deleted file]
tests/dummyatk/resources_storage.c [deleted file]
tests/dummyatk/resources_storage.h [deleted file]
tests/dummyatk/useful_functions.c [deleted file]
tests/dummyatk/useful_functions.h [deleted file]
tests/dummyatk/user_marshal.c [deleted file]
tests/dummyatk/user_marshal.h [deleted file]
tests/pyatspi/Makefile.am [deleted file]
tests/pyatspi/accessibletest.py [deleted file]
tests/pyatspi/actiontest.py [deleted file]
tests/pyatspi/componenttest.py [deleted file]
tests/pyatspi/desktoptest.py [deleted file]
tests/pyatspi/pasytest/Events.py [deleted file]
tests/pyatspi/pasytest/Makefile.am [deleted file]
tests/pyatspi/pasytest/Pasy.py [deleted file]
tests/pyatspi/pasytest/__init__.py [deleted file]
tests/pyatspi/relationtest.py [deleted file]
tests/pyatspi/runtests.sh [deleted file]
tests/pyatspi/setvars.sh [deleted file]
tests/pyatspi/statetest.py [deleted file]
tests/pyatspi/testrunner [deleted file]

index 99b87a8..131502a 100644 (file)
@@ -1 +1 @@
-SUBDIRS=common atk-adaptor cspi pyatspi tests
+SUBDIRS=common atk-adaptor cspi
index 4656a11..7a193c0 100644 (file)
@@ -24,7 +24,6 @@ AC_SUBST(LT_AGE)
 AM_INIT_AUTOMAKE([-Wall foreign])
 
 AC_PROG_CC
-AM_PATH_PYTHON(2.4)
 AM_DISABLE_STATIC
 AM_PROG_LIBTOOL
 PKG_PROG_PKG_CONFIG
@@ -96,14 +95,7 @@ AC_CONFIG_FILES([Makefile
                 tests/Makefile
                 common/Makefile
                 atk-adaptor/Makefile
-                tests/dummyatk/Makefile
-                tests/data/Makefile
-                tests/pyatspi/Makefile
-                tests/pyatspi/pasytest/Makefile
-                tests/apps/Makefile
-                tests/cspi/Makefile
                 cspi/Makefile
-                pyatspi/Makefile
                ])
 
 AC_OUTPUT
diff --git a/pyatspi/Accessibility.py b/pyatspi/Accessibility.py
deleted file mode 100644 (file)
index cf4df5b..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from constants import *
-
-from registry import*
-from accessible import *
-from action import *
-from application import *
-from collection import *
-from component import *
-from constants import *
-from desktop import *
-from deviceevent import *
-from document import *
-from editabletext import *
-from event import *
-from hyperlink import *
-from hypertext import *
-from image import *
-from interfaces import *
-from loginhelper import *
-from relation import *
-from role import *
-from selection import *
-from state import *
-from table import *
-from text import *
-from utils import *
-from value import *
diff --git a/pyatspi/Makefile.am b/pyatspi/Makefile.am
deleted file mode 100644 (file)
index cd4e6f8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-pyatspidir = $(pythondir)/pyatspi
-pyatspi_PYTHON = \
-               Accessibility.py        \
-               accessible.py           \
-               accessiblecache.py      \
-               action.py               \
-               application.py          \
-               applicationcache.py     \
-               base.py                 \
-               collection.py           \
-               component.py            \
-               constants.py            \
-               desktop.py              \
-               deviceevent.py          \
-               document.py             \
-               editabletext.py         \
-               event.py                \
-               factory.py              \
-               hyperlink.py            \
-               hypertext.py            \
-               image.py                \
-               __init__.py             \
-               interfaces.py           \
-               loginhelper.py          \
-               registry.py             \
-               relation.py             \
-               role.py                 \
-               selection.py            \
-               state.py                \
-               table.py                \
-               text.py                 \
-               utils.py                \
-               value.py
-
-CLEANFILES = *.pyc
diff --git a/pyatspi/__init__.py b/pyatspi/__init__.py
deleted file mode 100644 (file)
index 3ad8476..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-__version__ = (1, 9, 0)
-
-import registry
-Registry = registry._Registry()
-registry._Registry = Registry
-del registry
-
-import constants
-from Accessibility import *
-
-#This is a re-creation of the namespace pollution implemented
-#by PyORBit.
-import sys
-import Accessibility
-sys.modules['Accessibility'] = Accessibility
-del sys
diff --git a/pyatspi/accessible.py b/pyatspi/accessible.py
deleted file mode 100644 (file)
index 8bbe9b2..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import ATSPI_ACCESSIBLE, ATSPI_APPLICATION
-from base import BaseProxy, Enum
-from factory import accessible_factory
-from state import StateSet, _marshal_state_set
-from relation import _marshal_relation_set
-from role import Role, ROLE_NAMES
-
-__all__ = [
-           "LOCALE_TYPE",
-           "LOCALE_TYPE_COLLATE",
-           "LOCALE_TYPE_CTYPE",
-           "LOCALE_TYPE_MESSAGES",
-           "LOCALE_TYPE_MONETARY",
-           "LOCALE_TYPE_NUMERIC",
-           "LOCALE_TYPE_TIME",
-           "BoundingBox",
-           "Accessible",
-          ]
-
-#------------------------------------------------------------------------------
-
-class LOCALE_TYPE(Enum):
-    _enum_lookup = {
-        0:'LOCALE_TYPE_MESSAGES',
-        1:'LOCALE_TYPE_COLLATE',
-        2:'LOCALE_TYPE_CTYPE',
-        3:'LOCALE_TYPE_MONETARY',
-        4:'LOCALE_TYPE_NUMERIC',
-        5:'LOCALE_TYPE_TIME',
-    }
-
-LOCALE_TYPE_COLLATE = LOCALE_TYPE(1)
-LOCALE_TYPE_CTYPE = LOCALE_TYPE(2)
-LOCALE_TYPE_MESSAGES = LOCALE_TYPE(0)
-LOCALE_TYPE_MONETARY = LOCALE_TYPE(3)
-LOCALE_TYPE_NUMERIC = LOCALE_TYPE(4)
-LOCALE_TYPE_TIME = LOCALE_TYPE(5)
-
-#------------------------------------------------------------------------------
-
-class BoundingBox(list):
-    def __new__(cls, x, y, width, height):
-        return list.__new__(cls, (x, y, width, height))
-    def __init__(self, x, y, width, height):
-        list.__init__(self, (x, y, width, height))
-
-    def __str__(self):
-        return ("(%d, %d, %d, %d)" % (self.x, self.y, self.width, self.height))
-
-    def _get_x(self):
-        return self[0]
-    def _set_x(self, val):
-        self[0] = val
-    x = property(fget=_get_x, fset=_set_x)
-    def _get_y(self):
-        return self[1]
-    def _set_y(self, val):
-        self[1] = val
-    y = property(fget=_get_y, fset=_set_y)
-    def _get_width(self):
-        return self[2]
-    def _set_width(self, val):
-        self[2] = val
-    width = property(fget=_get_width, fset=_set_width)
-    def _get_height(self):
-        return self[3]
-    def _set_height(self, val):
-        self[3] = val
-    height = property(fget=_get_height, fset=_set_height)
-
-#------------------------------------------------------------------------------
-
-class Accessible(BaseProxy):
-    """
-    The base interface which is implemented by all accessible objects.
-    All objects support interfaces for querying their contained
-    'children' and position in the accessible-object hierarchy,
-    whether or not they actually have children.
-    """
-
-    _relation_set = None
-
-    def __nonzero__(self):
-            return True
-
-    def __len__(self):
-            return self.getChildCount()
-
-    def __getitem__(self, index):
-            return self.getChildAtIndex(index)
-
-    def getApplication(self):
-        """
-        Get the containing Application for this object.
-        @return the Application instance to which this object belongs.
-        """
-        return self._cache.create_application(self._app_name)
-
-    def getAttributes(self):
-        """
-        Get a list of properties applied to this object as a whole, as
-        an AttributeSet consisting of name-value pairs. As such these
-        attributes may be considered weakly-typed properties or annotations,
-        as distinct from the strongly-typed interface instance data declared
-        using the IDL "attribute" keyword.
-        Not all objects have explicit "name-value pair" AttributeSet
-        properties.
-        Attribute names and values may have any UTF-8 string value, however
-        where possible, in order to facilitate consistent use and exposure
-        of "attribute" properties by applications and AT clients, attribute
-        names and values should chosen from a publicly-specified namespace
-        where appropriate.
-        Where possible, the names and values in the name-value pairs
-        should be chosen from well-established attribute namespaces using
-        standard semantics. For example, attributes of Accessible objects
-        corresponding to XHTML content elements should correspond to
-        attribute names and values specified in the w3c XHTML specification,
-        at http://www.w3.org/TR/xhtml2, where such values are not already
-        exposed via a more strongly-typed aspect of the AT-SPI API. Metadata
-        names and values should be chosen from the 'Dublin Core' Metadata
-        namespace using Dublin Core semantics: http://dublincore.org/dcregistry/
-        Similarly, relevant structural metadata should be exposed using
-        attribute names and values chosen from the CSS2 and WICD specification:
-        http://www.w3.org/TR/1998/REC-CSS2-19980512 WICD (http://www.w3.org/TR/2005/WD-WICD-20051121/).
-
-        @return : An AttributeSet encapsulating any "attribute values"
-        currently defined for the object. An attribute set is a list of strings
-        with each string comprising an name-value pair format 'name:value'.
-        """
-        func = self.get_dbus_method("getAttributes", dbus_interface=ATSPI_ACCESSIBLE)
-        return [key + ':' + value for key, value in func().iteritems()]
-
-    def getChildAtIndex(self, index):
-        """
-        Get the accessible child of this object at index. 
-        @param : index
-        an in parameter indicating which child is requested (zero-indexed).
-        @return : the 'nth' Accessible child of this object.
-        """
-        path = self.cached_data.children[index]
-        return self._cache.create_accessible(self._app_name, path, ATSPI_ACCESSIBLE)
-
-    def getIndexInParent(self):
-        """
-        Get the index of this object in its parent's child list.
-        @return : a long integer indicating this object's index in the
-        parent's list.
-        """
-        if self.parent == None:
-                return -1
-        for i in range(0, self.parent.childCount):
-                child = self.parent.getChildAtIndex(i)
-                if self.isEqual(child):
-                        return i
-        raise AccessibleObjectNoLongerExists("Child not found within parent")
-
-    def getLocalizedRoleName(self):
-        """
-        Get a string indicating the type of UI role played by this object,
-        translated to the current locale.
-        @return : a UTF-8 string indicating the type of UI role played
-        by this object.
-        """
-        func = self.get_dbus_method("getLocalizedRoleName", dbus_interface=ATSPI_ACCESSIBLE)
-        return func()
-
-    def getRelationSet(self):
-        """
-        Get a set defining this object's relationship to other accessible
-        objects. 
-        @return : a RelationSet defining this object's relationships.
-        """
-        if self._relation_set:
-                return self._relation_set
-        else:
-                func = self.get_dbus_method("getRelationSet", dbus_interface=ATSPI_ACCESSIBLE)
-                relation_set = func()
-                self._relation_set = _marshal_relation_set(self._cache, self._app_name, relation_set)
-                return self._relation_set
-
-    def getRole(self):
-        """
-        Get the Role indicating the type of UI role played by this object.
-        @return : a Role indicating the type of UI role played by this
-        object.
-        """
-        return Role(self.cached_data.role)
-
-    def getRoleName(self):
-        """
-        Get a string indicating the type of UI role played by this object.
-        @return : a UTF-8 string indicating the type of UI role played
-        by this object.
-        """
-        """
-        func = self.get_dbus_method("getRoleName", dbus_interface=ATSPI_ACCESSIBLE)
-        return func()
-        """
-        return ROLE_NAMES[self.cached_data.role]
-
-    def getState(self):
-        """
-        Get the current state of the object as a StateSet. 
-        @return : a StateSet encapsulating the currently true states
-        of the object.
-        """
-        return _marshal_state_set(self.cached_data.state)
-
-    def isEqual(self, accessible):
-        """
-        Determine whether an Accessible refers to the same object as
-        another. This method should be used rather than brute-force comparison
-        of object references (i.e. "by-value" comparison), as two object
-        references may have different apparent values yet refer to the
-        same object.
-        @param : obj
-        an Accessible object reference to compare to 
-        @return : a boolean indicating whether the two object references
-        point to the same object.
-        """
-        return  (self._app_name == accessible._app_name) and \
-                (self._acc_path == accessible._acc_path)
-
-
-    def get_childCount(self):
-        return len(self.cached_data.children)
-    _childCountDoc = \
-        """
-        childCount: the number of children contained by this object.
-        """
-    childCount = property(fget=get_childCount, doc=_childCountDoc)
-
-    getChildCount = get_childCount
-
-    def get_description(self):
-        return self.cached_data.description
-    _descriptionDoc = \
-        """
-        a string describing the object in more detail than name.
-        """
-    description = property(fget=get_description, doc=_descriptionDoc)
-
-    def get_name(self):
-        return self.cached_data.name
-    _nameDoc = \
-        """
-        a (short) string representing the object's name.
-        """
-    name = property(fget=get_name, doc=_nameDoc)
-
-    def get_parent(self):
-        return self._cache.create_accessible(self._app_name,
-                                             self.cached_data.parent,
-                                             ATSPI_ACCESSIBLE)
-
-    _parentDoc = \
-        """
-        an Accessible object which is this object's containing object.
-        """
-    parent = property(fget=get_parent, doc=_parentDoc)
-
-    def refresh(self):
-            self._relation_set = None
-            self._cache.application_cache[self._app_name]._refresh()
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_ACCESSIBLE, Accessible)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/accessiblecache.py b/pyatspi/accessiblecache.py
deleted file mode 100644 (file)
index b190793..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import dbus as _dbus
-
-from event import Event as _Event
-
-#------------------------------------------------------------------------------
-
-class _CacheData(object):
-        __slots__ = [
-                        'path',
-                        'parent',
-                        'interfaces',
-                        'children',
-                        'role',
-                        'name',
-                        'description',
-                        'state',
-                    ]
-
-        def __init__(self, data):
-                self._update(data)
-
-        def _update(self, data):
-                (self.path,
-                 self.parent,
-                 self.children,
-                 self.interfaces,
-                 self.name,
-                 self.role,
-                 self.description,
-                 self.state) = data
-
-#------------------------------------------------------------------------------
-
-def _list_items_added_removed (l1, l2):
-        """
-        Returns a tuple (boolean, boolean).
-        The first value indicates if, when
-        moving from l1 to l2, any items have been added.
-        The second value indicates whether any items have
-        been removed.
-        """
-        l1notl2 = [item for item in l1 if item not in l2]
-        l2notl1 = [item for item in l2 if item not in l1]
-        return ((len(l1notl2) > 0), (len(l2notl1) > 0))
-
-#------------------------------------------------------------------------------
-
-class AccessibleCache(object):
-        """
-        There is one accessible cache per application.
-        For each application the accessible cache stores
-        data on every accessible object within the app.
-
-        It also acts as the factory for creating client
-        side proxies for these accessible objects.
-
-        connection - DBus connection.
-        busName    - Name of DBus connection where cache interface resides.
-        """
-
-        _PATH = '/org/freedesktop/atspi/tree'
-        _INTERFACE = 'org.freedesktop.atspi.Tree'
-        _GET_METHOD = 'getTree'
-        _UPDATE_SIGNAL = 'updateAccessible'
-        _REMOVE_SIGNAL = 'removeAccessible'
-
-        def __init__(self, registry, connection, bus_name):
-                """
-                Creates a cache.
-
-                connection - DBus connection.
-                busName    - Name of DBus connection where cache interface resides.
-                """
-                self._registry = registry
-                self._connection = connection
-                self._bus_name = bus_name
-
-                obj = connection.get_object(bus_name, self._PATH, introspect=False)
-                self._tree_itf = _dbus.Interface(obj, self._INTERFACE)
-
-                self._objects = {}
-
-                get_method = self._tree_itf.get_dbus_method(self._GET_METHOD)
-                self._update_objects(get_method())
-
-                self._updateMatch = self._tree_itf.connect_to_signal(self._UPDATE_SIGNAL, self._update_single)
-                self._removeMatch = self._tree_itf.connect_to_signal(self._REMOVE_SIGNAL, self._remove_object)
-
-                self._root = self._tree_itf.getRoot()
-
-        def __getitem__(self, key):
-                return self._objects[key]
-
-        def __contains__(self, key):
-                return key in self._objects
-
-        def _dispatch_event(self, olddata, newdata):
-                if olddata.name != newdata.name:
-                        event = _Event(self._registry.cache,
-                                       newdata.path,
-                                       self._bus_name,
-                                       "org.freedesktop.atspi.Event.Object",
-                                       "property-change",
-                                       ("accessible-name", 0, 0, newdata.name))
-                        self._registry._notifyNameChange(event)
-
-                if olddata.description != newdata.description:
-                        event = _Event(self._registry.cache,
-                                       newdata.path,
-                                       self._bus_name,
-                                       "org.freedesktop.atspi.Event.Object",
-                                       "property-change",
-                                       ("accessible-description", 0, 0, newdata.description))
-                        self._registry._notifyDescriptionChange(event)
-
-                if olddata.parent != newdata.parent:
-                        event = _Event(self._registry.cache,
-                                       newdata.path,
-                                       self._bus_name,
-                                       "org.freedesktop.atspi.Event.Object",
-                                       "property-change",
-                                       ("accessible-parent", 0, 0, ""))
-                        self._registry._notifyParentChange(event)
-
-                removed, added = _list_items_added_removed (olddata.children, newdata.children)
-
-                if added:
-                        event = _Event(self._registry.cache,
-                                       newdata.path,
-                                       self._bus_name,
-                                       "org.freedesktop.atspi.Event.Object",
-                                       "children-changed",
-                                       ("add", 0, 0, ""))
-                        self._registry._notifyChildrenChange(event)
-
-                if removed:
-                        event = _Event(self._registry.cache,
-                                       newdata.path,
-                                       self._bus_name,
-                                       "org.freedesktop.atspi.Event.Object",
-                                       "children-changed",
-                                       ("remove", 0, 0, ""))
-                        self._registry._notifyChildrenChange(event)
-
-        # TODO This should be the other way around. Single is more common than many.
-        def _update_single(self, object):
-                self._update_objects ([object])
-
-        def _update_objects(self, objects):
-                cache_update_objects = []
-                for data in objects:
-                        #First element is the object path.
-                        path = data[0]
-                        if path in self._objects:
-                                olddata = self._objects[path]
-                                newdata = _CacheData(data)
-                                cache_update_objects.append((olddata, newdata))
-                                self._objects[path] = newdata
-                        else:
-                                self._objects[path] = _CacheData(data)
-                for old, new in cache_update_objects:
-                        self._dispatch_event(old, new)
-
-        def _remove_object(self, path):
-                # TODO I'm squashing a possible error here
-                # I've seen things appear to be deleted twice
-                # which needs investigation
-                try:
-                        del(self._objects[path])
-                except KeyError:
-                        pass
-
-        def _get_root(self):
-                return self._root
-
-        def _refresh(self):
-                get_method = self._tree_itf.get_dbus_method(self._GET_METHOD)
-                self._update_objects(get_method())
-
-        root = property(fget=_get_root)
-
-#END---------------------------------------------------------------------------
diff --git a/pyatspi/action.py b/pyatspi/action.py
deleted file mode 100644 (file)
index 5ac2262..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-import dbus
-
-__all__ = [
-           "Action",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Action(Accessible):
-        """
-        An interface through which a user-actionable user interface component
-        can be manipulated. Components which react to mouse or keyboard
-        input from the user, (with the exception of pure text entry fields
-        with no other function), should implement this interface. Typical
-        actions include "click", "press", "release" (for instance for
-        buttons), "menu" (for objects which have context menus invokable
-        from mouse or keyboard), "open" for icons representing files
-        folders, and others.
-        """
-
-        def getActions(self):
-                """
-                getActions:
-                Retrieves all the actions at once.  
-                @return : an array of an array of strings in the form
-                [[name, description, keybinding], ...]
-                """
-                func = self.get_dbus_method("getActions", dbus_interface=ATSPI_ACTION)
-                return func()
-
-        def doAction(self, index):
-                """
-                doAction: 
-                @param : index
-                the 0-based index of the action to perform.
-                Causes the object to perform the specified action.
-                @return : a boolean indicating success or failure.
-                """
-                func = self.get_dbus_method("doAction", dbus_interface=ATSPI_ACTION)
-                return func(index)
-
-        def getDescription(self, index):
-                """
-                getDescription: 
-                @param : index
-                the index of the action for which a description is desired.
-                Get the description of the specified action. The description
-                of an action may provide information about the result of action
-                invocation, unlike the action name. 
-                @return : a string containing the description of the specified
-                action.
-                """
-                func = self.get_dbus_method("getDescription", dbus_interface=ATSPI_ACTION)
-                return func(index)
-
-        def getKeyBinding(self, index):
-                """
-                getKeyBinding: 
-                @param : index
-                the 0-based index of the action for which a key binding is requested.
-                Get the key binding associated with a specific action.
-                @return : a string containing the key binding for the specified
-                action, or an empty string ("") if none exists.
-                """
-                func = self.get_dbus_method("getKeyBinding", dbus_interface=ATSPI_ACTION)
-                return func(index)
-
-        def getName(self, index):
-                """
-                getName: 
-                @param : index
-                the index of the action whose name is requested.
-                Get the name of the specified action. Action names generally
-                describe the user action, i.e. "click" or "press", rather then
-                the result of invoking the action.
-                @return : a string containing the name of the specified action.
-                """
-                func = self.get_dbus_method("getName", dbus_interface=ATSPI_ACTION)
-                return func(index)
-
-        def get_nActions(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "nActions"))
-        _nActionsDoc = \
-                """
-                nActions: a long containing the number of actions this object
-                supports.
-                """
-        nActions = property(fget=get_nActions, doc=_nActionsDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_ACTION, Action)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/application.py b/pyatspi/application.py
deleted file mode 100644 (file)
index ca126fe..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from factory import accessible_factory
-from accessible import Accessible
-
-import dbus
-
-__all__ = [
-                  "Application",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Application(Accessible):
-        """
-        An interface identifying an object which is the root of the user
-        interface Accessible hierarchy associated with a running application.
-        Children of Application are typically, but not exclusively, top-level
-        windows.
-        """
-
-        def getLocale(self, locale_type):
-                """
-                Gets the locale in which the application is currently operating.
-                For the current message locale, use lctype LOCALE_TYPE_MESSAGES.
-                @param : lctype
-                The LocaleType for which the locale is queried. 
-                @return a string compliant with the POSIX standard for locale
-                description.
-                """
-                func = self.get_dbus_method("getLocale", dbus_interface=ATSPI_APPLICATION)
-                return func(local_type)
-
-        def get_toolkitName(self):
-                return dbus.String(self._pgetter(self._dbus_interface, "toolkitName"))
-        _toolkitNameDoc = \
-                """
-                A string indicating the type of user interface toolkit which
-                is used by the application.
-                """
-        toolkitName = property(fget=get_toolkitName, doc=_toolkitNameDoc)
-
-        def get_version(self):
-                return dbus.String(self._pgetter(self._dbus_interface, "version"))
-        _versionDoc = \
-                """
-                A string indicating the version number of the application's accessibility
-                bridge implementation.
-                """
-        version = property(fget=get_version, doc=_versionDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_APPLICATION, Application)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/applicationcache.py b/pyatspi/applicationcache.py
deleted file mode 100644 (file)
index 68fa65a..0000000
+++ /dev/null
@@ -1,248 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import dbus
-
-from accessiblecache import AccessibleCache
-from desktop import Desktop, DESKTOP_PATH
-from factory import accessible_factory
-from event import Event as _Event
-from base import AccessibleObjectNotAvailable
-
-from interfaces import *
-
-__all__ = [
-           "ApplicationCache",
-           "TestApplicationCache",
-          ]
-
-#------------------------------------------------------------------------------
-
-ROOT_PATH    = '/org/freedesktop/atspi/accessible/root'
-
-#------------------------------------------------------------------------------
-
-class TestApplicationCache(object):
-
-        """
-        Test application store, accesses a single application.
-
-        The store object acts as a central class for creating accessible objects.
-        It interfaces with the ATSPI registry to keep account of all accessible
-        applications. It contains the accessible cache objects from each application.
-
-        @registry:   Each accessible cache object must have a reference to the registry
-                     object to send update events.
-
-        @connection: D-Bus connection used to access applications.
-
-        @bus_name:   The test store only accesses one accessible application, this is its
-                     D-Bus path.
-        """
-
-        def __init__(self, registry, connection, bus_name):
-                self._connection = connection
-
-                self.application_list = [bus_name]
-                self.application_cache = {bus_name:AccessibleCache(registry, connection, bus_name)}
-
-        def get_cache_data(self, app_name, acc_path):
-                """
-                Returns the cache tuple for the given application and accessible
-                object path. Throws an IndexError if the cache data is not found.
-                """
-                return self.application_cache[app_name][acc_path]
-
-        def create_application(self, app_name):
-                """
-                Creates an accessible object for the root of the application
-                available at the given D-Bus name.
-                """
-                cls = accessible_factory.get_accessible_class(ATSPI_APPLICATION)
-                try:
-                        return cls(app_name, self.application_cache[app_name].root, self, ATSPI_APPLICATION)
-                except KeyError:
-                        raise AccessibleObjectNotAvailable ()
-
-        def create_accessible(self, app_name, acc_path, interface, dbus_object=None):
-                """
-                Creates an accessible object.
-
-                @app_name: D-Bus name of the application where the accessible object resides.
-
-                @acc_path: D-Bus path of the object within the application.
-
-                @interface: D-Bus interface of the requested object. A different accessible object
-                            class will be created depending on this. Making the function much like 
-                            an accessible object factory.
-
-                @dbus_object: If a D-Bus object already exists for the accessible object it can be
-                              provided here so that another one is not created.
-                """
-                # An acc_path of '/' implies the desktop object, whatever the app_name.
-                if acc_path == DESKTOP_PATH:
-                        return Desktop(self)
-                if acc_path == ROOT_PATH:
-                        return None
-                else:
-                        cls = accessible_factory.get_accessible_class(interface)
-                        try:
-                                return cls(app_name, acc_path, self, interface, dbus_object=dbus_object)
-                        except KeyError:
-                                raise AccessibleObjectNotAvailable ()
-
-        @property
-        def connection(self):
-                """
-                D-Bus connection used by the store.
-                """
-                return self._connection
-
-#------------------------------------------------------------------------------
-
-class ApplicationCache(object):
-        """
-        Test application store, accesses a single application.
-
-        The store object acts as a central class for creating accessible objects.
-        It interfaces with the ATSPI registry to keep account of all accessible
-        applications. It contains the accessible cache objects from each application.
-
-        @registry:   Each accessible cache object must have a reference to the registry
-                     object to send update events.
-
-        @connection: D-Bus connection used to access applications.
-
-        @bus_name:   The test store only accesses one accessible application, this is its
-                     D-Bus path.
-        """
-
-        _APPLICATIONS_ADD = 1
-        _APPLICATIONS_REMOVE = 0
-
-        def __init__(self, registry, connection):
-                self._connection = connection
-                self._registry = registry
-
-                self.application_list = []
-                self.application_cache = {}
-
-                self._regsig = connection.add_signal_receiver(self.update_handler,
-                                                              dbus_interface=ATSPI_REGISTRY_INTERFACE,
-                                                              signal_name="updateApplications")
-
-                obj = connection.get_object(ATSPI_REGISTRY_NAME,
-                                            ATSPI_REGISTRY_PATH,
-                                            introspect=False)
-                self._app_register = dbus.Interface(obj, ATSPI_REGISTRY_INTERFACE)
-
-                self.application_list.extend(self._app_register.getApplications())
-                for bus_name in self.application_list:
-                        self.application_cache[bus_name] = AccessibleCache(self._registry, self._connection, bus_name)
-
-        def update_handler (self, update_type, bus_name):
-                if update_type == ApplicationCache._APPLICATIONS_ADD:
-                        #TODO Check that app does not already exist
-                        #TODO Excuding this app is a hack, need to have re-entrant method calls.
-                        if bus_name != self._connection.get_unique_name ():
-                                self.application_list.append(bus_name)
-                                self.application_cache[bus_name] = AccessibleCache(self._registry,
-                                                                                   self._connection,
-                                                                                   bus_name)
-                                event = _Event(self,
-                                               DESKTOP_PATH,
-                                               ATSPI_REGISTRY_NAME,
-                                               "org.freedesktop.atspi.Event.Object",
-                                               "children-changed",
-                                               ("add", 0, 0, ""))
-                elif update_type == ApplicationCache._APPLICATIONS_REMOVE:
-                        #TODO Fail safely if app does not exist
-                        self.application_list.remove(bus_name)
-                        del(self.application_cache[bus_name])
-                        event = _Event(self,
-                                       DESKTOP_PATH,
-                                       ATSPI_REGISTRY_NAME,
-                                       "org.freedesktop.atspi.Event.Object",
-                                       "children-changed",
-                                       ("remove", 0, 0, ""))
-
-                self._registry._notifyChildrenChange(event)
-
-        def get_cache_data(self, app_name, acc_path):
-                """
-                Returns the cache tuple for the given application and accessible
-                object path. Throws an IndexError if the cache data is not found.
-                """
-                return self.application_cache[app_name][acc_path]
-
-        def create_application(self, app_name):
-                """
-                Creates an accessible object for the root of the application
-                available at the given D-Bus name.
-                """
-                if app_name == ATSPI_REGISTRY_NAME:
-                        return Desktop(self)
-                else:
-                        cls = accessible_factory.get_accessible_class(ATSPI_APPLICATION)
-                        try:
-                                return cls(app_name, self.application_cache[app_name].root, self, ATSPI_APPLICATION)
-                        except KeyError:
-                                raise AccessibleObjectNotAvailable ()
-
-        def create_accessible(self, app_name, acc_path, interface, dbus_object=None):
-                """
-                Creates an accessible object.
-
-                @app_name: D-Bus name of the application where the accessible object resides.
-
-                @acc_path: D-Bus path of the object within the application.
-
-                @interface: D-Bus interface of the requested object. A different accessible object
-                            class will be created depending on this. Making the function much like 
-                            an accessible object factory.
-
-                @dbus_object: If a D-Bus object already exists for the accessible object it can be
-                              provided here so that another one is not created.
-                """
-                if acc_path == DESKTOP_PATH:
-                        return Desktop(self)
-                if acc_path == ROOT_PATH:
-                        return None
-                else:
-                        cls = accessible_factory.get_accessible_class(interface)
-                        try:
-                                return cls(app_name, acc_path, self, interface, dbus_object=dbus_object)
-                        except KeyError:
-                                raise AccessibleObjectNotAvailable ()
-
-        @property
-        def connection(self):
-                """
-                D-Bus connection used by the store.
-                """
-                return self._connection
-
-        def _refresh(self):
-                new = self._app_register.getApplications()
-                removed = [item for item in self.application_list if item not in new]
-                added   = [item for item in new if item not in self.application_list]
-                for item in added:
-                        self.update_handler (self._APPLICATIONS_ADD, item)
-                for item in removed:
-                        self.update_handler (self._APPLICATIONS_REMOVE, item)
-
-                for item in self.application_cache.values():
-                        item._refresh()
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/base.py b/pyatspi/base.py
deleted file mode 100644 (file)
index 7096d1b..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import dbus
-from dbus.proxies import Interface
-from dbus.exceptions import *
-
-import interfaces
-
-__all__ = [
-           "AccessibleObjectNoLongerExists",
-           "AccessibleObjectNotAvailable",
-           "Enum",
-           "BaseProxy",
-           "_repack_tuple",
-          ]
-
-class AccessibleObjectNoLongerExists(Exception):
-        pass
-
-class AccessibleObjectNotAvailable(Exception):
-        pass
-
-#------------------------------------------------------------------------------
-
-def _repack_tuple (tup):
-        """
-        Re-packs a tuple moving the last element to the beginning.
-        """
-        return (tup[-1] ,) + tup[:-1]
-
-#------------------------------------------------------------------------------
-
-class Enum(dbus.UInt32):
-        def __str__(self):
-                return self._enum_lookup[int(self)]
-
-        def __eq__(self, other):
-                if other is None:
-                        return False
-                if int(self) == int(other):
-                        return True
-                else:
-                        return False
-
-        def __hash__(self):
-                return int(self)
-
-#------------------------------------------------------------------------------
-
-
-class BaseProxyMeta(type):
-        def __new__(meta, *args, **kwargs):
-                cls = type.__new__(meta, *args, **kwargs)
-
-                queryable_interfaces = { 
-                        'Accessible':interfaces.ATSPI_ACCESSIBLE,
-                        'Action':interfaces.ATSPI_ACTION,
-                        'Application':interfaces.ATSPI_APPLICATION,
-                        'Collection':interfaces.ATSPI_COLLECTION,
-                        'Component':interfaces.ATSPI_COMPONENT,
-                        'Desktop':interfaces.ATSPI_DESKTOP,
-                        'Document':interfaces.ATSPI_DOCUMENT,
-                        'EditableText':interfaces.ATSPI_EDITABLE_TEXT,
-                        'Hypertext':interfaces.ATSPI_HYPERTEXT,
-                        'Hyperlink':interfaces.ATSPI_HYPERLINK,
-                        'Image':interfaces.ATSPI_IMAGE,
-                        'Selection':interfaces.ATSPI_SELECTION,
-                        'StreamableContent':interfaces.ATSPI_STREAMABLE_CONTENT,
-                        'Table':interfaces.ATSPI_TABLE,
-                        'Text':interfaces.ATSPI_TEXT,
-                        'Value':interfaces.ATSPI_VALUE,
-                }
-
-                def return_query(interface):
-                        def new_query(self):
-                                return self.queryInterface(interface)
-                        return new_query
-
-                for interface in queryable_interfaces.keys():
-                        name = 'query%s' % interface
-                        setattr(cls, name, return_query(queryable_interfaces[interface])) 
-
-                return cls
-
-#------------------------------------------------------------------------------
-
-class BaseProxy(object):
-        """
-        The base D-Bus proxy for a remote object that implements one or more
-        of the AT-SPI interfaces.
-        """
-
-        __metaclass__ = BaseProxyMeta
-
-        def __init__(self, app_name, acc_path, cache, interface, dbus_object=None):
-                """
-                Create a D-Bus Proxy for an ATSPI interface.
-
-                cache - ApplicationCache, where the cached data for the accessible can be obtained.
-                app_name - D-Bus bus name of the application this accessible belongs to.
-                acc_path - D-Bus object path of the server side accessible object.
-                parent - Parent accessible.
-                dbus_object(kwarg) - The D-Bus proxy object used by the accessible for D-Bus method calls.
-                """
-                self._cache = cache
-                self._app_name = app_name
-                self._acc_path = acc_path
-                self._dbus_interface = interface
-
-                if not dbus_object:
-                        dbus_object = cache.connection.get_object(self._app_name,
-                                                                  self._acc_path,
-                                                                  introspect=False)
-                self._dbus_object = dbus_object
-
-                self._pgetter = self.get_dbus_method("Get",
-                                                     dbus_interface="org.freedesktop.DBus.Properties")
-                self._psetter = self.get_dbus_method("Set",
-                                                     dbus_interface="org.freedesktop.DBus.Properties")
-
-        def __str__(self):
-                    try:
-                              return '[%s | %s]' % (self.getRoleName(), self.name)
-                    except Exception:
-                              return '[DEAD]'
-
-        def __eq__(self, other):
-                if other is None:
-                        return False
-                try:
-                        if self._app_name == other._app_name and \
-                           self._acc_path == other._acc_path:
-                                return True
-                        else:
-                                return False
-                except AttributeError:
-                        return False
-
-        def __ne__(self, other):
-                return not self.__eq__(other)
-
-        def __hash__(self):
-                return hash(self._app_name + self._acc_path)
-
-        def get_dbus_method(self, *args, **kwargs):
-                method =  self._dbus_object.get_dbus_method(*args, **kwargs)
-
-                def dbus_method_func(*iargs, **ikwargs):
-                        # TODO Need to throw an AccessibleObjectNoLongerExists exception
-                        # on D-Bus error of the same type.
-                        try:
-                                return method(*iargs, **ikwargs)
-                        except UnknownMethodException, e:
-                                raise NotImplementedError(e)
-                        except DBusException, e:
-                                raise LookupError(e)
-
-                return dbus_method_func
-
-        @property
-        def cached_data(self):
-                try:
-                        return self._cache.get_cache_data(self._app_name, self._acc_path)
-                except KeyError:
-                        raise AccessibleObjectNoLongerExists, \
-                                'Cache data cannot be found for path %s in app %s' % (self._acc_path, self._app_name)
-
-        @property
-        def interfaces(self):
-                return self.cached_data.interfaces
-
-        def queryInterface(self, interface):
-                """
-                Gets a different accessible interface for this object
-                or raises a NotImplemented error if the given interface
-                is not supported.
-                """
-                if interface in self.interfaces:
-                        return self._cache.create_accessible(self._app_name,
-                                                             self._acc_path,
-                                                             interface,
-                                                             dbus_object=self._dbus_object)
-                else:
-                        raise NotImplementedError(
-                                "%s not supported by accessible object at path %s"
-                                % (interface, self._acc_path))
-
-        def flushCache(self):
-                pass
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/collection.py b/pyatspi/collection.py
deleted file mode 100644 (file)
index a5be820..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from base import Enum
-from accessible import Accessible
-from factory import accessible_factory
-
-__all__ = [
-            "Collection",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Collection(Accessible):
-
-        def createMatchRule(self, *args, **kwargs):
-                func = self.get_dbus_method("createMatchRule", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        def freeMatchRule(self, *args, **kwargs):
-                func = self.get_dbus_method("freeMatchRule", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        def getActiveDescendant(self, *args, **kwargs):
-                func = self.get_dbus_method("getActiveDescendant", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        def getMatches(self, *args, **kwargs):
-                func = self.get_dbus_method("getMatches", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        def getMatchesFrom(self, *args, **kwargs):
-                func = self.get_dbus_method("getMatchesFrom", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        def getMatchesTo(self, *args, **kwargs):
-                func = self.get_dbus_method("getMatchesTo", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        def isAncestorOf(self, *args, **kwargs):
-                func = self.get_dbus_method("isAncestorOf", dbus_interface=ATSPI_COLLECTION)
-                return func(*args, **kwargs)
-
-        class MatchType(Enum):
-                _enum_lookup = {
-                        0:'MATCH_INVALID',
-                        1:'MATCH_ALL',
-                        2:'MATCH_ANY',
-                        3:'MATCH_NONE',
-                        4:'MATCH_EMPTY',
-                        5:'MATCH_LAST_DEFINED',
-                }
-
-        MATCH_ALL = MatchType(1)
-        MATCH_ANY = MatchType(2)
-        MATCH_EMPTY = MatchType(4)
-        MATCH_INVALID = MatchType(0)
-        MATCH_LAST_DEFINED = MatchType(5)
-        MATCH_NONE = MatchType(3)
-
-        class SortOrder(Enum):
-                _enum_lookup = {
-                        0:'SORT_ORDER_INVALID',
-                        1:'SORT_ORDER_CANONICAL',
-                        2:'SORT_ORDER_FLOW',
-                        3:'SORT_ORDER_TAB',
-                        4:'SORT_ORDER_REVERSE_CANONICAL',
-                        5:'SORT_ORDER_REVERSE_FLOW',
-                        6:'SORT_ORDER_REVERSE_TAB',
-                        7:'SORT_ORDER_LAST_DEFINED',
-                }
-
-        SORT_ORDER_CANONICAL = SortOrder(1)
-        SORT_ORDER_FLOW = SortOrder(2)
-        SORT_ORDER_INVALID = SortOrder(0)
-        SORT_ORDER_LAST_DEFINED = SortOrder(7)
-        SORT_ORDER_REVERSE_CANONICAL = SortOrder(4)
-        SORT_ORDER_REVERSE_FLOW = SortOrder(5)
-        SORT_ORDER_REVERSE_TAB = SortOrder(6)
-        SORT_ORDER_TAB = SortOrder(3)
-
-        class TreeTraversalType(Enum):
-                _enum_lookup = {
-                        0:'TREE_RESTRICT_CHILDREN',
-                        1:'TREE_RESTRICT_SIBLING',
-                        2:'TREE_INORDER',
-                        3:'TREE_LAST_DEFINED',
-                }
-
-        TREE_INORDER = TreeTraversalType(2)
-        TREE_LAST_DEFINED = TreeTraversalType(3)
-        TREE_RESTRICT_CHILDREN = TreeTraversalType(0)
-        TREE_RESTRICT_SIBLING = TreeTraversalType(1)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_COLLECTION, Collection)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/component.py b/pyatspi/component.py
deleted file mode 100644 (file)
index 9e7b36f..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from base import Enum
-from factory import accessible_factory
-from accessible import BoundingBox, Accessible
-
-from dbus.types import UInt32
-
-__all__ = [
-           "CoordType",
-           "XY_SCREEN",
-           "XY_WINDOW",
-           "ComponentLayer",
-           "Component",
-           "LAYER_BACKGROUND",
-           "LAYER_CANVAS",
-           "LAYER_INVALID",
-           "LAYER_LAST_DEFINED",
-           "LAYER_MDI",
-           "LAYER_OVERLAY",
-           "LAYER_POPUP",
-           "LAYER_WIDGET",
-           "LAYER_WINDOW",
-          ]
-
-#------------------------------------------------------------------------------
-
-class CoordType(Enum):
-        _enum_lookup = {
-                0:'XY_SCREEN',
-                1:'XY_WINDOW',
-        }
-
-XY_SCREEN = CoordType(0)
-XY_WINDOW = CoordType(1)
-
-#------------------------------------------------------------------------------
-
-class ComponentLayer(Enum):
-        _enum_lookup = {
-                0:'LAYER_INVALID',
-                1:'LAYER_BACKGROUND',
-                2:'LAYER_CANVAS',
-                3:'LAYER_WIDGET',
-                4:'LAYER_MDI',
-                5:'LAYER_POPUP',
-                6:'LAYER_OVERLAY',
-                7:'LAYER_WINDOW',
-                8:'LAYER_LAST_DEFINED',
-        }
-
-LAYER_BACKGROUND = ComponentLayer(1)
-LAYER_CANVAS = ComponentLayer(2)
-LAYER_INVALID = ComponentLayer(0)
-LAYER_LAST_DEFINED = ComponentLayer(8)
-LAYER_MDI = ComponentLayer(4)
-LAYER_OVERLAY = ComponentLayer(6)
-LAYER_POPUP = ComponentLayer(5)
-LAYER_WIDGET = ComponentLayer(3)
-LAYER_WINDOW = ComponentLayer(7)
-
-#------------------------------------------------------------------------------
-
-class Component(Accessible):
-        """
-        The Component interface is implemented by objects which occupy
-        on-screen space, e.g. objects which have onscreen visual representations.
-        The methods in Component allow clients to identify where the
-        objects lie in the onscreen coordinate system, their relative
-        size, stacking order, and position. It also provides a mechanism
-        whereby keyboard focus may be transferred to specific user interface
-        elements programmatically. This is a 2D API, coordinates of 3D
-        objects are projected into the 2-dimensional screen view for
-        purposes of this interface.
-        """
-
-        def contains(self, x, y, coord_type):
-                """
-                @return True if the specified point lies within the Component's
-                bounding box, False otherwise.
-                """
-                func = self.get_dbus_method("contains", dbus_interface=ATSPI_COMPONENT)
-                return func(x, y, UInt32(coord_type))
-
-        def getAccessibleAtPoint(self, x, y, coord_type):
-                """
-                @return the Accessible child whose bounding box contains the
-                specified point.
-                """
-                func = self.get_dbus_method("getAccessibleAtPoint", dbus_interface=ATSPI_COMPONENT)
-                return self._cache.create_accessible(self._app_name,
-                                                     func(x, y, UInt32(coord_type)),
-                                                     interfaces.ATSPI_COMPONENT)
-
-        def getAlpha(self):
-                """
-                Obtain the alpha value of the component. An alpha value of 1.0
-                or greater indicates that the object is fully opaque, and an
-                alpha value of 0.0 indicates that the object is fully transparent.
-                Negative alpha values have no defined meaning at this time.
-                """
-                func = self.get_dbus_method("getAlpha", dbus_interface=ATSPI_COMPONENT)
-                return func()
-
-        def getExtents(self, coord_type):
-                """
-                Obtain the Component's bounding box, in pixels, relative to the
-                specified coordinate system. 
-                @param coord_type
-                @return a BoundingBox which entirely contains the object's onscreen
-                visual representation.
-                """
-                func = self.get_dbus_method("getExtents", dbus_interface=ATSPI_COMPONENT)
-                extents = func(UInt32(coord_type))
-                return BoundingBox(*extents)
-
-        def getLayer(self):
-                """
-                @return the ComponentLayer in which this object resides.
-                """
-                func = self.get_dbus_method("getLayer", dbus_interface=ATSPI_COMPONENT)
-                return ComponentLayer(func())
-
-        def getMDIZOrder(self):
-                """
-                Obtain the relative stacking order (i.e. 'Z' order) of an object.
-                Larger values indicate that an object is on "top" of the stack,
-                therefore objects with smaller MDIZOrder may be obscured by objects
-                with a larger MDIZOrder, but not vice-versa. 
-                @return an integer indicating the object's place in the stacking
-                order.
-                """
-                func = self.get_dbus_method("getMDIZOrder", dbus_interface=ATSPI_COMPONENT)
-                return func()
-
-        def getPosition(self, coord_type):
-                """
-                Obtain the position of the current component in the coordinate
-                system specified by coord_type. 
-                @param : coord_type
-                @param : x
-                an out parameter which will be back-filled with the returned
-                x coordinate. 
-                @param : y
-                an out parameter which will be back-filled with the returned
-                y coordinate.
-                """
-                func = self.get_dbus_method("getPosition", dbus_interface=ATSPI_COMPONENT)
-                return func(UInt32(coord_type))
-
-        def getSize(self):
-                """
-                Obtain the size, in the coordinate system specified by coord_type,
-                of the rectangular area which fully contains the object's visual
-                representation, without accounting for viewport clipping. 
-                @param : width
-                the object's horizontal extents in the specified coordinate system.
-                @param : height
-                the object's vertical extents in the specified coordinate system.
-                """
-                func = self.get_dbus_method("getSize", dbus_interface=ATSPI_COMPONENT)
-                return func()
-
-        def grabFocus(self):
-                """
-                Request that the object obtain keyboard focus.
-                @return True if keyboard focus was successfully transferred to
-                the Component.
-                """
-                func = self.get_dbus_method("grabFocus", dbus_interface=ATSPI_COMPONENT)
-                return func()
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_COMPONENT, Component)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/constants.py b/pyatspi/constants.py
deleted file mode 100644 (file)
index b6c694a..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-#copyright: Copyright (c) 2005, 2007 IBM Corporation
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#Portions of this code originally licensed and copyright (c) 2005, 2007
-#IBM Corporation under the BSD license, available at
-#U{http://www.opensource.org/licenses/bsd-license.php}
-
-#authors: Peter Parente, Mark Doffman
-
-# Constants used in the Component interface to get screen coordinates
-DESKTOP_COORDS = 0
-WINDOW_COORDS = 1
-
-# Constants used to synthesize mouse events
-MOUSE_B1P = 'b1p'
-MOUSE_B1R = 'b1r'
-MOUSE_B1C = 'b1c'
-MOUSE_B1D = 'b1d'
-MOUSE_B2P = 'b2p'
-MOUSE_B2R = 'b2r'
-MOUSE_B2C = 'b2c'
-MOUSE_B2D = 'b2d'
-MOUSE_B3P = 'b3p'
-MOUSE_B3R = 'b3r'
-MOUSE_B3C = 'b3c'
-MOUSE_B3D = 'b3d'
-MOUSE_ABS = 'abs'
-MOUSE_REL = 'rel'
-
-# events that clear cached properties
-CACHE_EVENTS = ['object:property-change:accessible-name',
-                'object:property-change:accessible-description',
-                'object:property-change:accessible-role',
-                'object:property-change:accessible-parent']
-
-CACHE_PROPERTIES = ''
-
-# Dictionary used to correct the bug of not being able to register for all the
-# subevents given only an AT-SPI event class (i.e. first part of the event
-# name) keys are event names having subevents and values are the subevents
-# under the key event; handlers *can* be registered for events not in this tree
-EVENT_TREE = {
-  'terminal':
-    ['terminal:line-changed',
-     'terminal:columncount-changed',
-     'terminal:linecount-changed',
-     'terminal:application-changed',
-     'terminal:charwidth-changed'
-     ],
-  'document':
-    ['document:load-complete',
-     'document:reload',
-     'document:load-stopped',
-     'document:content-changed',
-     'document:attributes-changed'
-     ],
-  'object': 
-    ['object:property-change',
-     'object:bounds-changed',
-     'object:link-selected',
-     'object:state-changed',
-     'object:children-changed',
-     'object:visible-data-changed',
-     'object:selection-changed',
-     'object:model-changed',
-     'object:active-descendant-changed',
-     'object:row-inserted',
-     'object:row-reordered',
-     'object:row-deleted',
-     'object:column-inserted',
-     'object:column-reordered',
-     'object:column-deleted',
-     'object:text-bounds-changed',
-     'object:text-selection-changed',
-     'object:text-changed',
-     'object:text-attributes-changed',
-     'object:text-caret-moved',  
-     'object:attributes-changed'],
-  'object:text-changed' :
-    ['object:text-changed:insert',
-    'object:text-changed:delete'],
-  'object:property-change' :
-    ['object:property-change:accessible-parent', 
-    'object:property-change:accessible-name',
-    'object:property-change:accessible-description',
-    '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:children-changed:add',
-    'object:children-changed:remove'],
-  'object:state-changed' :
-    ['object:state-changed:'],
-  'mouse' :
-    ['mouse:abs',
-    'mouse:rel',
-    'mouse:button'],
-  'mouse:button' :
-    ['mouse:button:1p',
-    'mouse:button:1r',
-    'mouse:button:2p',
-    'mouse:button:2r',
-    'mouse:button:3p',
-    'mouse:button:3r'],
-  'window' :
-    ['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'],
-  'focus' :
-    ['focus:']
-}
-
-from Accessibility import *
diff --git a/pyatspi/desktop.py b/pyatspi/desktop.py
deleted file mode 100644 (file)
index ed6a9ee..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from base import BaseProxyMeta
-from accessible import BoundingBox
-from state import StateSet
-
-from role import ROLE_UNKNOWN
-from component import LAYER_WIDGET
-
-__all__ = [
-           "Desktop",
-           "DESKTOP_PATH",
-          ]
-
-#------------------------------------------------------------------------------
-
-DESKTOP_PATH = '/org/freedesktop/atspi/accessible/desktop'
-
-#------------------------------------------------------------------------------
-
-class DesktopComponent(object):
-        """
-        The Component interface is implemented by objects which occupy
-        on-screen space, e.g. objects which have onscreen visual representations.
-        The methods in Component allow clients to identify where the
-        objects lie in the onscreen coordinate system, their relative
-        size, stacking order, and position. It also provides a mechanism
-        whereby keyboard focus may be transferred to specific user interface
-        elements programmatically. This is a 2D API, coordinates of 3D
-        objects are projected into the 2-dimensional screen view for
-        purposes of this interface.
-        """
-
-        def contains(self, *args, **kwargs):
-                """
-                @return True if the specified point lies within the Component's
-                bounding box, False otherwise.
-                """
-                return False
-
-        def getAccessibleAtPoint(self, *args, **kwargs):
-                """
-                @return the Accessible child whose bounding box contains the
-                specified point.
-                """
-                return None
-
-        def getAlpha(self, *args, **kwargs):
-                """
-                Obtain the alpha value of the component. An alpha value of 1.0
-                or greater indicates that the object is fully opaque, and an
-                alpha value of 0.0 indicates that the object is fully transparent.
-                Negative alpha values have no defined meaning at this time.
-                """
-                return 1.0
-
-        def getExtents(self, coord_type):
-                """
-                Obtain the Component's bounding box, in pixels, relative to the
-                specified coordinate system. 
-                @param coord_type
-                @return a BoundingBox which entirely contains the object's onscreen
-                visual representation.
-                """
-                #TODO This needs to return the window size
-                return BoundingBox(*(0,0,1024,768))
-
-        def getLayer(self, *args, **kwargs):
-                """
-                @return the ComponentLayer in which this object resides.
-                """
-                return LAYER_WIDGET
-
-        def getMDIZOrder(self):
-                """
-                Obtain the relative stacking order (i.e. 'Z' order) of an object.
-                Larger values indicate that an object is on "top" of the stack,
-                therefore objects with smaller MDIZOrder may be obscured by objects
-                with a larger MDIZOrder, but not vice-versa. 
-                @return an integer indicating the object's place in the stacking
-                order.
-                """
-                return 0
-
-        def getPosition(self, coord_type):
-                """
-                Obtain the position of the current component in the coordinate
-                system specified by coord_type. 
-                @param : coord_type
-                @param : x
-                an out parameter which will be back-filled with the returned
-                x coordinate. 
-                @param : y
-                an out parameter which will be back-filled with the returned
-                y coordinate.
-                """
-                return (0,0)
-
-        def getSize(self, *args, **kwargs):
-                """
-                Obtain the size, in the coordinate system specified by coord_type,
-                of the rectangular area which fully contains the object's visual
-                representation, without accounting for viewport clipping. 
-                @param : width
-                the object's horizontal extents in the specified coordinate system.
-                @param : height
-                the object's vertical extents in the specified coordinate system.
-                """
-                #TODO Need to return window size
-                return (1024, 768)
-
-        def grabFocus(self, *args, **kwargs):
-                """
-                Request that the object obtain keyboard focus.
-                @return True if keyboard focus was successfully transferred to
-                the Component.
-                """
-                return False
-
-#------------------------------------------------------------------------------
-
-class Desktop(object):
-        """
-        The base interface which is implemented by all accessible objects.
-        All objects support interfaces for querying their contained
-        'children' and position in the accessible-object hierarchy,
-        whether or not they actually have children.
-        """
-
-        __metaclass__ = BaseProxyMeta
-
-        def __init__(self, cache):
-                """
-                Creates a desktop object. There should be one single desktop
-                object for the Registry object.
-
-                @param cache - The application cache.
-                @kwarf application - The application D-Bus name
-
-                If the application name is provided the Desktop is being used for
-                test and will only report the application provided as its single child.
-                """
-                self._appcache = cache
-                self._app_name = ':'
-                self._acc_path = DESKTOP_PATH
-
-        def __str__(self):
-                    try:
-                              return '[%s | %s]' % (self.getRoleName(), self.name)
-                    except Exception:
-                              return '[DEAD]'
-
-        def __nonzero__(self):
-                        return True
-
-        def __len__(self):
-                        return self.getChildCount()
-
-        def __getitem__(self, index):
-                        # IndexError thrown by getChildAtIndex
-                        return self.getChildAtIndex(index)
-
-        def __eq__(self, other):
-                if other is None:
-                        return False
-                try:
-                        if self._app_name == other._app_name and \
-                           self._acc_path == other._acc_path:
-                                return True
-                        else:
-                                return False
-                except AttributeError:
-                        return False
-
-        def __ne__(self, other):
-                return not self.__eq__(other)
-
-        def __hash__(self):
-                return hash(self._app_name + self._acc_path)
-
-        def getApplication(self):
-                """
-                Get the containing Application for this object.
-                @return the Application instance to which this object belongs.
-                """
-                return None
-
-        def getAttributes(self):
-                """
-                Get a list of properties applied to this object as a whole, as
-                an AttributeSet consisting of name-value pairs. As such these
-                attributes may be considered weakly-typed properties or annotations,
-                as distinct from the strongly-typed interface instance data declared
-                using the IDL "attribute" keyword.
-                Not all objects have explicit "name-value pair" AttributeSet
-                properties.
-                Attribute names and values may have any UTF-8 string value, however
-                where possible, in order to facilitate consistent use and exposure
-                of "attribute" properties by applications and AT clients, attribute
-                names and values should chosen from a publicly-specified namespace
-                where appropriate.
-                Where possible, the names and values in the name-value pairs
-                should be chosen from well-established attribute namespaces using
-                standard semantics. For example, attributes of Accessible objects
-                corresponding to XHTML content elements should correspond to
-                attribute names and values specified in the w3c XHTML specification,
-                at http://www.w3.org/TR/xhtml2, where such values are not already
-                exposed via a more strongly-typed aspect of the AT-SPI API. Metadata
-                names and values should be chosen from the 'Dublin Core' Metadata
-                namespace using Dublin Core semantics: http://dublincore.org/dcregistry/
-                Similarly, relevant structural metadata should be exposed using
-                attribute names and values chosen from the CSS2 and WICD specification:
-                http://www.w3.org/TR/1998/REC-CSS2-19980512 WICD (http://www.w3.org/TR/2005/WD-WICD-20051121/).
-
-                @return : An AttributeSet encapsulating any "attribute values"
-                currently defined for the object. An attribute set is a list of strings
-                with each string comprising an name-value pair format 'name:value'.
-                """
-                return []
-
-        def getChildAtIndex(self, index):
-                """
-                Get the accessible child of this object at index. 
-                @param : index
-                an in parameter indicating which child is requested (zero-indexed).
-                @return : the 'nth' Accessible child of this object.
-                """
-                return self._appcache.create_application(self._appcache.application_list[index])
-
-        def getIndexInParent(self):
-                """
-                Get the index of this object in its parent's child list. 
-                @return : a long integer indicating this object's index in the
-                parent's list.
-                """
-                return -1
-
-        def getLocalizedRoleName(self):
-                """
-                Get a string indicating the type of UI role played by this object,
-                translated to the current locale.
-                @return : a UTF-8 string indicating the type of UI role played
-                by this object.
-                """
-                #TODO Need to localize this somehow. Hmmmmm
-                return 'unknown'
-
-        def getRelationSet(self):
-                """
-                Get a set defining this object's relationship to other accessible
-                objects. 
-                @return : a RelationSet defining this object's relationships.
-                """
-                return []
-
-        def getRole(self):
-                """
-                Get the Role indicating the type of UI role played by this object.
-                @return : a Role indicating the type of UI role played by this
-                object.
-                """
-                return ROLE_UNKNOWN
-
-        def getRoleName(self):
-                """
-                Get a string indicating the type of UI role played by this object.
-                @return : a UTF-8 string indicating the type of UI role played
-                by this object.
-                """
-                return 'unknown'
-
-        def getState(self):
-                """
-                Get the current state of the object as a StateSet. 
-                @return : a StateSet encapsulating the currently true states
-                of the object.
-                """
-                return StateSet()
-
-        def isEqual(self, accessible):
-                """
-                Determine whether an Accessible refers to the same object as
-                another. This method should be used rather than brute-force comparison
-                of object references (i.e. "by-value" comparison), as two object
-                references may have different apparent values yet refer to the
-                same object.
-                @param : obj
-                an Accessible object reference to compare to 
-                @return : a boolean indicating whether the two object references
-                point to the same object.
-                """
-                #TODO Fix this method
-                return self == accessible
-
-        def get_childCount(self):
-                return len(self._appcache.application_list)
-        _childCountDoc = \
-                """
-                childCount: the number of children contained by this object.
-                """
-        childCount = property(fget=get_childCount, doc=_childCountDoc)
-
-        getChildCount = get_childCount
-
-        def get_description(self):
-                return ''
-        _descriptionDoc = \
-                """
-                a string describing the object in more detail than name.
-                """
-        description = property(fget=get_description, doc=_descriptionDoc)
-
-        def get_name(self):
-                return 'main'
-        _nameDoc = \
-                """
-                a (short) string representing the object's name.
-                """
-        name = property(fget=get_name, doc=_nameDoc)
-
-        def get_parent(self):
-                return None
-        _parentDoc = \
-                """
-                An Accessible object which is this object's containing object.
-                """
-        parent = property(fget=get_parent, doc=_parentDoc)
-
-        @property
-        def interfaces(self):
-                return [ATSPI_ACCESSIBLE, ATSPI_COMPONENT]
-
-        def queryInterface(self, interface):
-                """
-                Gets a different accessible interface for this object
-                or raises a NotImplemented error if the given interface
-                is not supported.
-                """
-                if interface == ATSPI_ACCESSIBLE:
-                                return self
-                elif interface == ATSPI_COMPONENT:
-                                return DesktopComponent()
-                else:
-                                raise NotImplementedError(
-                                                "%s not supported by accessible object at path %s"
-                                                % (interface, self._acc_path))
-
-        def refresh(self):
-                self._appcache._refresh()
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/deviceevent.py b/pyatspi/deviceevent.py
deleted file mode 100644 (file)
index 5e4e3bb..0000000
+++ /dev/null
@@ -1,549 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import dbus as _dbus
-import dbus.service as _service
-import interfaces
-
-from base import Enum as _Enum
-
-#------------------------------------------------------------------------------
-
-class PressedEventType(_Enum):
-        _enum_lookup = {
-                0:'KEY_PRESSED_EVENT',
-                1:'KEY_RELEASED_EVENT',
-                2:'BUTTON_PRESSED_EVENT',
-                3:'BUTTON_RELEASED_EVENT',
-        }
-
-KEY_PRESSED_EVENT = PressedEventType(0)
-KEY_RELEASED_EVENT = PressedEventType(1)
-BUTTON_PRESSED_EVENT = PressedEventType(2)
-BUTTON_RELEASED_EVENT = PressedEventType(3)
-
-#------------------------------------------------------------------------------
-
-class ControllerEventMask(_Enum):
-        _enum_lookup = {
-                1:'KEY_PRESSED_EVENT_MASK',
-                2:'KEY_RELEASED_EVENT_MASK',
-                4:'BUTTON_PRESSED_EVENT_MASK',
-                8:'BUTTON_RELEASED_EVENT_MASK',
-        }
-
-KEY_PRESSED_EVENT_MASK = ControllerEventMask(1)
-KEY_RELEASED_EVENT_MASK = ControllerEventMask(2)
-BUTTON_PRESSED_EVENT_MASK = ControllerEventMask(4)
-BUTTON_RELEASED_EVENT_MASK = ControllerEventMask(8)
-
-#------------------------------------------------------------------------------
-
-class KeyEventType(_Enum):
-        _enum_lookup = {
-                0:'KEY_PRESSED',
-                1:'KEY_RELEASED',
-        }
-KEY_PRESSED = KeyEventType(0)
-KEY_RELEASED = KeyEventType(1)
-
-#------------------------------------------------------------------------------
-
-class KeySynthType(_Enum):
-        _enum_lookup = {
-                0:'KEY_PRESS',
-                1:'KEY_RELEASE',
-                2:'KEY_PRESSRELEASE',
-                3:'KEY_SYM',
-                4:'KEY_STRING',
-        }
-
-KEY_PRESS = KeySynthType(0)
-KEY_PRESSRELEASE = KeySynthType(2)
-KEY_RELEASE = KeySynthType(1)
-KEY_STRING = KeySynthType(4)
-KEY_SYM = KeySynthType(3)
-
-#------------------------------------------------------------------------------
-
-class ModifierType(_Enum):
-        _enum_lookup = {
-                0:'MODIFIER_SHIFT',
-                1:'MODIFIER_SHIFTLOCK',
-                2:'MODIFIER_CONTROL',
-                3:'MODIFIER_ALT',
-                4:'MODIFIER_META',
-                5:'MODIFIER_META2',
-                6:'MODIFIER_META3',
-                7:'MODIFIER_NUMLOCK',
-        }
-
-MODIFIER_ALT = ModifierType(3)
-MODIFIER_CONTROL = ModifierType(2)
-MODIFIER_META = ModifierType(4)
-MODIFIER_META2 = ModifierType(5)
-MODIFIER_META3 = ModifierType(6)
-MODIFIER_NUMLOCK = ModifierType(7)
-MODIFIER_SHIFT = ModifierType(0)
-MODIFIER_SHIFTLOCK = ModifierType(1)
-
-#------------------------------------------------------------------------------
-
-class DeviceEvent(list):
-        """
-        Wraps an AT-SPI device event with a more Pythonic interface. Primarily adds
-        a consume attribute which can be used to cease propagation of a device event.
-
-        @ivar consume: Should this event be consumed and not allowed to pass on to
-                observers further down the dispatch chain in this process or possibly
-                system wide?
-        @type consume: boolean
-        @ivar type: Kind of event, KEY_PRESSED_EVENT or KEY_RELEASED_EVENT
-        @type type: Accessibility.EventType
-        @ivar id: Serial identifier for this key event
-        @type id: integer
-        @ivar hw_code: Hardware scan code for the key
-        @type hw_code: integer
-        @ivar modifiers: Modifiers held at the time of the key event
-        @type modifiers: integer
-        @ivar timestamp: Time at which the event occurred relative to some platform
-                dependent starting point (e.g. XWindows start time)
-        @type timestamp: integer
-        @ivar event_string: String describing the key pressed (e.g. keysym)
-        @type event_string: string
-        @ivar is_text: Is the event representative of text to be inserted (True), or 
-                of a control key (False)?
-        @type is_text: boolean
-        """
-        def __new__(cls, type, id, hw_code, modifiers, timestamp, event_string, is_text):
-                return list.__new__(cls, (type, id, hw_code, modifiers, timestamp, event_string, is_text))
-        def __init__(self, type, id, hw_code, modifiers, timestamp, event_string, is_text):
-                list.__init__(self, (type, id, hw_code, modifiers, timestamp, event_string, is_text))
-                self.consume = False
-        def _get_type(self):
-                return self[0]
-        def _set_type(self, val):
-                self[0] = val
-        type = property(fget=_get_type, fset=_set_type)
-        def _get_id(self):
-                return self[1]
-        def _set_id(self, val):
-                self[1] = val
-        id = property(fget=_get_id, fset=_set_id)
-        def _get_hw_code(self):
-                return self[2]
-        def _set_hw_code(self, val):
-                self[2] = val
-        hw_code = property(fget=_get_hw_code, fset=_set_hw_code)
-        def _get_modifiers(self):
-                return self[3]
-        def _set_modifiers(self, val):
-                self[3] = val
-        modifiers = property(fget=_get_modifiers, fset=_set_modifiers)
-        def _get_timestamp(self):
-                return self[4]
-        def _set_timestamp(self, val):
-                self[4] = val
-        timestamp = property(fget=_get_timestamp, fset=_set_timestamp)
-        def _get_event_string(self):
-                return self[5]
-        def _set_event_string(self, val):
-                self[5] = val
-        event_string = property(fget=_get_event_string, fset=_set_event_string)
-        def _get_is_text(self):
-                return self[6]
-        def _set_is_text(self, val):
-                self[6] = val
-        is_text = property(fget=_get_is_text, fset=_set_is_text)
-
-        def __str__(self):
-                """
-                Builds a human readable representation of the event.
-
-                @return: Event description
-                @rtype: string
-                """
-                import constants
-                if self.type == constants.KEY_PRESSED_EVENT:
-                        kind = 'pressed'
-                elif self.type == constants.KEY_RELEASED_EVENT:
-                        kind = 'released'
-                return """\
-%s
-\thw_code: %d
-\tevent_string: %s
-\tmodifiers: %d
-\tid: %d
-\ttimestamp: %d
-\tis_text: %s""" % (kind, self.hw_code, self.event_string, self.modifiers,
-                self.id, self.timestamp, self.is_text)
-
-#------------------------------------------------------------------------------
-
-class EventListenerMode(list):
-        def __new__(cls, synchronous, preemptive, global_):
-                return list.__new__(cls, (synchronous, preemptive, global_))
-        def __init__(self, synchronous, preemptive, global_):
-                list.__init__(self, (synchronous, preemptive, global_))
-        def _get_synchronous(self):
-                return self[0]
-        def _set_synchronous(self, val):
-                self[0] = val
-        synchronous = property(fget=_get_synchronous, fset=_set_synchronous)
-        def _get_preemptive(self):
-                return self[1]
-        def _set_preemptive(self, val):
-                self[1] = val
-        preemptive = property(fget=_get_preemptive, fset=_set_preemptive)
-        def _get_global_(self):
-                return self[2]
-        def _set_global_(self, val):
-                self[2] = val
-        global_ = property(fget=_get_global_, fset=_set_global_)
-
-#------------------------------------------------------------------------------
-
-class KeyDefinition(list):
-        def __new__(cls, keycode, keysym, keystring, unused):
-                return list.__new__(cls, (keycode, keysym, keystring, unused))
-        def __init__(self, keycode, keysym, keystring, unused):
-                list.__init__(self, (keycode, keysym, keystring, unused))
-        def _get_keycode(self):
-                return self[0]
-        def _set_keycode(self, val):
-                self[0] = val
-        keycode = property(fget=_get_keycode, fset=_set_keycode)
-        def _get_keysym(self):
-                return self[1]
-        def _set_keysym(self, val):
-                self[1] = val
-        keysym = property(fget=_get_keysym, fset=_set_keysym)
-        def _get_keystring(self):
-                return self[2]
-        def _set_keystring(self, val):
-                self[2] = val
-        keystring = property(fget=_get_keystring, fset=_set_keystring)
-        def _get_unused(self):
-                return self[3]
-        def _set_unused(self, val):
-                self[3] = val
-        unused = property(fget=_get_unused, fset=_set_unused)
-
-#------------------------------------------------------------------------------
-
-class DeviceEventController(object):
-        """
-        The interface via which clients request notification of device
-        events, and through which device events may be simulated.
-        """
-
-        def __init__ (self, connection):
-                dec_object = connection.get_object(interfaces.ATSPI_REGISTRY_NAME,
-                                                   interfaces.ATSPI_DEVICE_EVENT_CONTROLLER_PATH,
-                                                   introspect=True)
-                self._dec = _dbus.Interface(dec_object, interfaces.ATSPI_DEVICE_EVENT_CONTROLLER_INTERFACE)
-
-        def registerKeystrokeListener(self,
-                                      event_listener,
-                                      keys,
-                                      event_mask,
-                                      key_event_types,
-                                      event_listener_mode):
-                """
-                Register to intercept keyboard events, and either pass them on
-                or consume them.
-                @param : listener
-                A DeviceEventListener which will intercept key events. 
-                @param : keys
-                A list of KeyDefinition indicating which keys to intercept, or KEYSET_ALL_KEYS.
-                @param : mask
-                A ControllerEventMask bitmask for filtering the intercepted key events.
-                @param : type
-                A list of KeyEventType
-                @param : mode
-                An EventListenerMode indicating whether the listener should receive
-                the events synchronously, potentially consuming them, or just
-                be notified asynchronously of those events that have been generated.
-
-                @return True if the DeviceEventListener was successfully registered
-                for the requested KeySet, ControllerEventMask, event types, and
-                EventListenerMode; otherwise returns False.
-                """
-                func = self._dec.get_dbus_method("registerKeystrokeListener")
-                return func(event_listener,
-                            _dbus.Array(keys, signature="(iisi)"),
-                            event_mask,
-                            key_event_types,
-                            event_listener_mode)
-
-        def deregisterKeystrokeListener(self,
-                                        event_listener,
-                                        keys,
-                                        event_mask,
-                                        key_event_types):
-                """
-                De-register a previously registered keyboard eventlistener.
-                @param : listener
-                A DeviceEventListener which will intercept key events.
-                @param : keys
-                A list of KeyDefinition indicating which keys to intercept, or KEYSET_ALL_KEYS.
-                @param : mask
-                A ControllerEventMask filtering the intercepted key events.
-                @param : type
-                A list of KeyEventType
-                """
-                func = self._dec.get_dbus_method("deregisterKeystrokeListener")
-                return func(event_listener,
-                            keys,
-                            event_mask,
-                            key_event_types)
-
-        def registerDeviceEventListener(self,
-                                        event_listener,
-                                        event_types):
-                """
-                Register to intercept events, and either pass them on or consume
-                them. To listen to keyboard events use registerKeystrokeListener
-                instead. 
-                @param : listener
-                A DeviceEventListener which will intercept events.
-                @param : typeseq
-                A list of EventType indicating which event types to listen for.
-                @return True if successful, False if not
-                """
-                func = self._dec.get_dbus_method("registerDeviceEventListener")
-                return func(event_listener, event_types)
-
-        def deregisterDeviceEventListener(self,
-                                          event_listener,
-                                          event_types):
-                """
-                De-register a previously registered keyboard eventlistener.
-                @param : listener
-                A DeviceEventListener which will intercept events.
-                @param : typeseq
-                A List of EventType indicating which event types to stop listening
-                for.
-                """
-                func = self._dec.get_dbus_method("deregisterDeviceEventListener")
-                return func(event_listener, event_types)
-
-        def notifyListenersSync(self, event):
-                """
-                Notify the Registry instance that a device event has taken place,
-                and allow pre-emptive listeners the opportunity to 'consume'
-                the event and thus prevent its further issuance/forwarding. This
-                is the method used by accessibility bridges to forward "toolkit
-                dependent" device events to the Registry from the application's
-                process space.
-                @return True if the event was consumed by a (pre-emptive) listener,
-                False if not (in which case the device event will be forwarded
-                as normal to any application which would normally receive it,
-                e.g. the currently active application in the case of mouse or
-                keyboard events).
-                """
-                func = self._dec.get_dbus_method("notifyListenersSync")
-                return func(event)
-
-        def notifyListenersAsync(self, event):
-                """
-                Notify the Registry instance that a device event has taken place
-                in an asynchronous manner. This is the method used by accessibility
-                bridges to forward "toolkit dependent" device events to the Registry
-                from the application's process space. If the event in question
-                is potentially pre-emptible. notifyListenersSync should be used
-                instead.
-                """
-                func = self._dec.get_dbus_method("notifyListenersAsync")
-                return func(event)
-
-        def generateKeyboardEvent(self, keycode, keystring, type):
-                """
-                Synthesize a keyboard event.
-                @param : keycode
-                A long integer indicating the keycode of the keypress to be synthesized.
-                @param : keystring
-                an optional UTF-8 string indicating a complex keyboard input
-                event.
-                @param : type
-                A KeySynthType indicating the type of event(s) to be synthesized:
-                a key press, release, press-release pair, or a complex input
-                string (for instance from an internationalized or complex text
-                input method, or a composed character).
-                """
-                func = self._dec.get_dbus_method("generateKeyboardEvent")
-                return func(keycode, keystring, type)
-
-        def generateMouseEvent(self, x, y, name):
-                """
-                Synthesize a mouse event.
-                @param : x
-                A long integer indicating the screen x coord for the mouse event.
-                @param : y
-                A long integer indicating the screen y coord for the mouse event.
-                @param : name
-                A string indicating the type of mouse event, e.g. "button1up"
-                """
-                func = self._dec.get_dbus_method("generateMouseEvent")
-                return func(x, y, name)
-
-#------------------------------------------------------------------------------
-
-class _TestDeviceEventController(object):
-        """
-        Used for testing when no Registry daemon is present.
-        """
-
-        def registerKeystrokeListener(self, event_listener, keys, event_mask, key_event_types, event_listener_mode):
-                return True
-
-        def deregisterKeystrokeListener(self, event_listener, keys, event_mask, key_event_types):
-                pass
-
-        def registerDeviceEventListener(self, event_listener, event_types):
-                return True
-
-        def deregisterDeviceEventListener(self, event_listener, event_types):
-                pass
-
-        def notifyListenersSync(self, event):
-                return False
-
-        def notifyListenersAsync(self, event):
-                pass
-
-        def generateKeyboardEvent(self, keycode, keystring, type):
-                pass
-
-        def generateMouseEvent(self, x, y, name):
-                pass
-
-#------------------------------------------------------------------------------
-
-class KeyboardDeviceEventListener(_service.Object):
-        """
-        Observes keyboard press and release events.
-
-        @ivar registry: The L{Registry} that created this observer
-        @type registry: L{Registry}
-        @ivar key_set: Set of keys to monitor
-        @type key_set: list of integer
-        @ivar mask: Watch for key events while these modifiers are held
-        @type mask: integer
-        @ivar kind: Kind of events to monitor
-        @type kind: integer
-        @ivar mode: Keyboard event mode
-        @type mode: Accessibility.EventListenerMode
-        """
-
-        _next_listener_id = 0
-
-        def _get_unique_path (self):
-                KeyboardDeviceEventListener._next_listener_id += 1
-                return "/org/freedesktop/atspi/keyeventlistener/%d" % (KeyboardDeviceEventListener._next_listener_id,)
-
-        def __init__(self, registry, synchronous, preemptive, global_):
-                """
-                Creates a mode object that defines when key events will be received from 
-                the system. Stores all other information for later registration.
-
-                @param registry: The L{Registry} that created this observer
-                @type registry: L{Registry}
-                @param synchronous: Handle the key event synchronously?
-                @type synchronous: boolean
-                @param preemptive: Allow event to be consumed?
-                @type preemptive: boolean
-                @param global_: Watch for events on inaccessible applications too?
-                @type global_: boolean
-                """
-                self._upath = self._get_unique_path()
-                _service.Object.__init__(self, registry._bus, self._upath)
-                self.mode = EventListenerMode(synchronous, preemptive, global_)
-                self._registry = registry
-
-        def register(self, dc, key_set, mask, kind):
-                """
-                Starts keyboard event monitoring.
-
-                @param dc: Reference to a device controller
-                @type dc: Accessibility.DeviceEventController
-                @param key_set: Set of keys to monitor
-                @type key_set: list of integer
-                @param mask: Integer modifier mask or an iterable over multiple masks to
-                        unapply all at once
-                @type mask: integer, iterable, or None
-                @param kind: Kind of events to monitor
-                @type kind: integer
-                """
-                try:
-                        # check if the mask is iterable
-                        iter(mask)
-                except TypeError:
-                        # register a single integer if not
-                        dc.registerKeystrokeListener(self._upath, key_set, mask, kind, self.mode)
-                else:
-                        for m in mask:
-                                dc.registerKeystrokeListener(self._upath, key_set, m, kind, self.mode)
-
-        def unregister(self, dc, key_set, mask, kind):
-                """
-                Stops keyboard event monitoring.
-
-                @param dc: Reference to a device controller
-                @type dc: Accessibility.DeviceEventController
-                @param key_set: Set of keys to monitor
-                @type key_set: list of integer
-                @param mask: Integer modifier mask or an iterable over multiple masks to
-                        unapply all at once
-                @type mask: integer, iterable, or None
-                @param kind: Kind of events to monitor
-                @type kind: integer
-                """
-                try:
-                        # check if the mask is iterable
-                        iter(mask)
-                except TypeError:
-                        # unregister a single integer if not
-                        dc.deregisterKeystrokeListener(self._upath, key_set, mask, kind)
-                else:
-                        for m in mask:
-                                dc.deregisterKeystrokeListener(self._upath, key_set, m, kind)
-
-        @_service.method(dbus_interface=interfaces.ATSPI_DEVICE_EVENT_LISTENER_INTERFACE,
-                         in_signature="(uinnisb)",
-                         out_signature="b")
-        def notifyEvent(self, ev):
-                """
-                Notifies the L{Registry} that an event has occurred. Wraps the raw event 
-                object in our L{Event} class to support automatic ref and unref calls. An
-                observer can return True to indicate this event should not be allowed to pass 
-                to other AT-SPI observers or the underlying application.
-
-                @param ev: Keyboard event
-                @type ev: Accessibility.DeviceEvent
-                @return: Should the event be consumed (True) or allowed to pass on to other
-                        AT-SPI observers (False)?
-                @rtype: boolean
-                """
-                # TODO Find out where the exceptions are falling in to.
-                try:
-                        # wrap the device event
-                        event = DeviceEvent(*ev)
-                        return self._registry.handleDeviceEvent(event, self)
-                except Exception, e:
-                        import traceback
-                        traceback.print_exc()
-                        return False
-
-#END---------------------------------------------------------------------------
diff --git a/pyatspi/document.py b/pyatspi/document.py
deleted file mode 100644 (file)
index 038b1fd..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-__all__ = [
-           "Document",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Document(Accessible):
-        """
-        Primarily a 'tagging' interface which indicates the start of
-        document content in the Accessibility hierarchy. Accessible objects
-        below the node implementing Document are normally assumed to
-        be part of the document content. Attributes of Document are those
-        attributes associated with the document as a whole. Objects that
-        implement Document are normally expected to implement Collection
-        as well.
-        """
-
-        def getAttributeValue(self, key):
-                """
-                Gets the value of a single attribute, if specified for the document
-                as a whole.
-                @param : attributename
-                a string indicating the name of a specific attribute (name-value
-                pair) being queried.
-                @return a string corresponding to the value of the specified
-                attribute, or an empty string if the attribute is unspecified
-                for the object.
-                """
-                func = self.get_dbus_method("getAttributeValue", dbus_interface=ATSPI_DOCUMENT)
-                return func(key)
-
-        def getAttributes(self):
-                """
-                Gets all attributes specified for a document as a whole. For
-                attributes which change within the document content, see Accessibility::Text::getAttributes
-                instead.
-                @return an AttributeSet containing the attributes of the document,
-                as name-value pairs.
-                """
-                func = self.get_dbus_method("getAttributes", dbus_interface=ATSPI_DOCUMENT)
-                return [key + ':' + value for key, value in func().values()]
-
-        def getLocale(self):
-                """
-                Gets the locale associated with the document's content. e.g.
-                the locale for LOCALE_TYPE_MESSAGES.
-                @return a string compliant with the POSIX standard for locale
-                description.
-                """
-                func = self.get_dbus_method("getLocale", dbus_interface=ATSPI_DOCUMENT)
-                return func()
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_DOCUMENT, Document)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/editabletext.py b/pyatspi/editabletext.py
deleted file mode 100644 (file)
index 23cdf48..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from factory import accessible_factory
-from text import *
-
-__all__ = [
-           "EditableText",
-          ]
-
-#------------------------------------------------------------------------------
-
-class EditableText(Text):
-        """
-        Derived from interface Text, EditableText provides methods for
-        modifying textual content of components which support editing.
-        EditableText also interacts with the system clipboard via copyText,
-        cutText, and pasteText.
-        """
-
-        def copyText(self, start, end):
-                """
-                Copy a range of text into the system clipboard. 
-                @param : startPos
-                the character offset of the first character in the range of text
-                being copied. 
-                @param : endPos
-                the offset of the first character past the end of the range of
-                text being copied.
-                """
-                func = self.get_dbus_method("copyText", dbus_interface=ATSPI_EDITABLE_TEXT)
-                return func(start, end)
-
-        def cutText(self, start, end):
-                """
-                Excise a range of text from a Text object, copying it into the
-                system clipboard. 
-                @param : startPos
-                the character offset of the first character in the range of text
-                being cut. 
-                @param : endPos
-                the offset of the first character past the end of the range of
-                text being cut. 
-                @return True if the text was successfully cut, False otherwise.
-                """
-                func = self.get_dbus_method("cutText", dbus_interface=ATSPI_EDITABLE_TEXT)
-                return func(start, end)
-
-        def deleteText(self, start, end):
-                """
-                Excise a range of text from a Text object without copying it
-                into the system clipboard. 
-                @param : startPos
-                the character offset of the first character in the range of text
-                being deleted. 
-                @param : endPos
-                the offset of the first character past the end of the range of
-                text being deleted. 
-                @return True if the text was successfully deleted, False otherwise.
-                """
-                func = self.get_dbus_method("deleteText", dbus_interface=ATSPI_EDITABLE_TEXT)
-                return func(start, end)
-
-        def insertText(self, position, text, length):
-                """
-                Insert new text contents into an existing text object at a given
-                location, while retaining the old contents. 
-                @param : position
-                the character offset into the Text implementor's content at which
-                the new content will be inserted. 
-                @param : text
-                a UTF-8 string of which length characters will be inserted into
-                the text object's text buffer. 
-                @param : length
-                the number of characters of text to insert. If the character
-                count of text is less than or equal to length, the entire contents
-                of text will be inserted.
-                @return True if the text content was successfully inserted, False
-                otherwise.
-                """
-                func = self.get_dbus_method("insertText", dbus_interface=ATSPI_EDITABLE_TEXT)
-                return func(position, text, length)
-
-        def pasteText(self, position):
-                """
-                Copy the text contents of the system clipboard, if any, into
-                a Text object, inserting it at a particular character offset.
-                @param : position
-                the character offset before which the text will be inserted.
-                @return True if the text was successfully pasted into the Text
-                object, False otherwise.
-                """
-                func = self.get_dbus_method("pasteText", dbus_interface=ATSPI_EDITABLE_TEXT)
-                return func(position)
-
-        def setTextContents(self, contents):
-                """
-                Replace the text contents with a new string, discarding the old
-                contents.
-                @param : newContents
-                a UTF-8 string with which the text object's contents will be
-                replaced. 
-                @return True if the text content was successfully changed, False
-                otherwise.
-                """
-                func = self.get_dbus_method("setTextContents", dbus_interface=ATSPI_EDITABLE_TEXT)
-                return func(contents)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_EDITABLE_TEXT, EditableText)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/event.py b/pyatspi/event.py
deleted file mode 100644 (file)
index 948535f..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import interfaces
-from accessible import BoundingBox
-from base import AccessibleObjectNotAvailable
-
-__all__ = [
-                "Event",
-                "EventType",
-                "event_type_to_signal_reciever",
-          ]
-
-#------------------------------------------------------------------------------
-
-_interface_to_klass = {
-                "org.freedesktop.atspi.Event.Object":"object",
-                "org.freedesktop.atspi.Event.Window":"window",
-                "org.freedesktop.atspi.Event.Mouse":"mouse",
-                "org.freedesktop.atspi.Event.Keyboard":"keyboard",
-                "org.freedesktop.atspi.Event.Terminal":"terminal",
-                "org.freedesktop.atspi.Event.Document":"document",
-                "org.freedesktop.atspi.Event.Focus":"focus",
-                }
-
-_klass_to_interface = {
-                "object":"org.freedesktop.atspi.Event.Object",
-                "window":"org.freedesktop.atspi.Event.Window",
-                "mouse":"org.freedesktop.atspi.Event.Mouse",
-                "keyboard":"org.freedesktop.atspi.Event.Keyboard",
-                "terminal":"org.freedesktop.atspi.Event.Terminal",
-                "document":"org.freedesktop.atspi.Event.Document",
-                "focus":"org.freedesktop.atspi.Event.Focus",
-                }
-
-#------------------------------------------------------------------------------
-
-class _ELessList(list):
-        def __getitem__(self, index):
-                try:
-                        return list.__getitem__(self, index)
-                except IndexError:
-                        return None
-
-class EventType(str):
-        """
-        Wraps the AT-SPI event type string so its components can be accessed 
-        individually as klass (can't use the keyword class), major, minor, and detail 
-        (klass_major_minor_detail).
-
-        @note: All attributes of an instance of this class should be considered 
-                public readable as it is acting a a struct.
-        @ivar klass: Most general event type identifier (object, window, mouse, etc.)
-        @type klass: string
-        @ivar major: Second level event type description
-        @type major: string
-        @ivar minor: Third level event type description
-        @type minor: string
-        @ivar detail: Lowest level event type description
-        @type detail: string
-        @ivar name: Full, unparsed event name as received from AT-SPI
-        @type name: string
-        @cvar format: Names of the event string components
-        @type format: 4-tuple of string
-        """
-
-        _SEPARATOR = ':'
-
-        def __init__(self, name):
-                """
-                Parses the full AT-SPI event name into its components
-                (klass:major:minor:detail). If the provided event name is an integer
-                instead of a string, then the event is really a device event.
-
-                @param name: Full AT-SPI event name
-                @type name: string
-                @raise AttributeError: When the given event name is not a valid string 
-                """
-                stripped = name.strip(self._SEPARATOR)
-                separated = stripped.split(self._SEPARATOR, 3)
-                self._separated = _ELessList(separated)
-
-                self.klass = self._separated[0]
-                self.major = self._separated[1]
-                self.minor = self._separated[2]
-                self.detail = self._separated[3]
-
-        def is_subtype(self, event_type):
-                """
-                Determines if the passed event type is a subtype
-                of this event.
-                """
-                if event_type.klass and event_type.klass !=  self.klass:
-                        return False
-                else:
-                        if event_type.major and event_type.major != self.major:
-                                return False
-                        else:
-                                if event_type.minor and event_type.minor != self.minor:
-                                        return False
-                return True
-
-        @property
-        def name(self):
-                return str(self)
-
-        @property
-        def value(self):
-                return str(self)
-
-#------------------------------------------------------------------------------
-
-def event_type_to_signal_reciever(bus, cache, event_handler, event_type):
-        kwargs = {
-                        'sender_keyword':'sender',
-                        'interface_keyword':'interface',
-                        'member_keyword':'member',
-                        'path_keyword':'path',
-                 }
-        if event_type.major:
-                major = event_type.major.replace('-', '_')
-        if event_type.klass:
-                kwargs['dbus_interface'] = _klass_to_interface[event_type.klass]
-        if event_type.major:
-                kwargs['signal_name'] = major
-        if event_type.minor:
-                kwargs['arg0'] = event_type.minor
-
-        def handler_wrapper(minor, detail1, detail2, any_data,
-                            sender=None, interface=None, member=None, path=None):
-                event = Event(cache, path, sender, interface, member, (minor, detail1, detail2, any_data))
-                return event_handler(event)
-
-        return bus.add_signal_receiver(handler_wrapper, **kwargs)
-
-#------------------------------------------------------------------------------
-
-def signal_spec_to_event_string (interface, name, minor):
-        interface = _interface_to_klass[interface]
-        name = name.replace('_', '-')
-
-        if interface == "focus":
-                return "focus:"
-
-        result = interface + ':'
-        if name:
-                result += name + ':'
-        if minor:
-                result += minor
-        return result
-
-#------------------------------------------------------------------------------
-
-class Event(object):
-        """
-        Wraps an AT-SPI event with a more Pythonic interface managing exceptions,
-        the differences in any_data across versions, and the reference counting of
-        accessibles provided with the event.
-
-        @note: All unmarked attributes of this class should be considered public
-                readable and writable as the class is acting as a record object.
-
-        @ivar type: The type of the AT-SPI event
-        @type type: L{EventType}
-        @ivar detail1: First AT-SPI event parameter
-        @type detail1: integer
-        @ivar detail2: Second AT-SPI event parameter
-        @type detail2: integer
-        @ivar any_data: Extra AT-SPI data payload
-        @type any_data: object
-        @ivar host_application: Application owning the event source
-        @type host_application: Accessibility.Application
-        @ivar source_name: Name of the event source at the time of event dispatch
-        @type source_name: string
-        @ivar source_role: Role of the event source at the time of event dispatch
-        @type source_role: Accessibility.Role
-        @ivar source: Source of the event
-        @type source: Accessibility.Accessible
-        """
-        def __init__(self, cache, source_path, source_application, interface, name, event):
-                """
-                Extracts information from the provided event. If the event is a "normal" 
-                event, pulls the detail1, detail2, any_data, and source values out of the
-                given object and stores it in this object. If the event is a device event,
-                key ID is stored in detail1, scan code is stored in detail2, key name, 
-                key modifiers (e.g. ALT, CTRL, etc.), is text flag, and timestamp are 
-                stored as a 4-tuple in any_data, and source is None (since key events are
-                global).
-
-                @param event: Event from an AT-SPI callback
-                @type event: Accessibility.Event or Accessibility.DeviceEvent
-                """
-                self._cache = cache
-                self._source_path = source_path
-                self._source_application = source_application
-
-                self._source = None
-                self._application = None
-
-                self.type = EventType(signal_spec_to_event_string(interface, name, event[0]))
-
-                self.detail1 = event[1]
-                self.detail2 = event[2]
-
-                data = event[3]
-                if name == "object_bounds_changed":
-                        self.any_data = BoundingBox(*data)
-                else:
-                        self.any_data = data
-
-        @property
-        def host_application(self):
-                if not self._application:
-                        try:
-                                return self._cache.create_application(self._source_application)
-                        except AccessibleObjectNotAvailable:
-                                pass
-                return self._application
-
-        @property
-        def source(self):
-                if not self._source:
-                        try:
-                                self._source = self._cache.create_accessible(self._source_application,
-                                                                             self._source_path,
-                                                                             interfaces.ATSPI_ACCESSIBLE)
-                        except AccessibleObjectNotAvailable:
-                                pass
-                return self._source
-
-        @property
-        def source_name(self):
-                return source.name
-
-        @property
-        def source_role(self):
-                return source.getRole()
-
-        def __str__(self):
-                """
-                Builds a human readable representation of the event including event type,
-                parameters, and source info.
-
-                @return: Event description
-                @rtype: string
-                """
-                return '%s(%s, %s, %s)\n\tsource: %s\n\thost_application: %s' % \
-                                         (self.type, self.detail1, self.detail2, self.any_data,
-                                                self.source, self.host_application)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/factory.py b/pyatspi/factory.py
deleted file mode 100644 (file)
index 4b02320..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#------------------------------------------------------------------------------
-
-class AccessibleFactory(object):
-        __accessible_interfaces = {}
-
-        def register_accessible_class(self, name, cls):
-                self.__accessible_interfaces[name] = cls
-
-        def get_accessible_class(self, name):
-                return self.__accessible_interfaces[name]
-
-accessible_factory = AccessibleFactory()
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/hyperlink.py b/pyatspi/hyperlink.py
deleted file mode 100644 (file)
index de7a6db..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-import dbus
-
-__all__ = [
-           "Hyperlink",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Hyperlink(Accessible):
-        """
-        Instances of Hyperlink are returned by Hypertext objects, and
-        are the means by which end users and clients interact with linked,
-        and in some cases embedded, content. Hyperlinks may have multiple
-        "anchors", where an anchor corresponds to a reference to a particular
-        resource with a corresponding resource identified (URI). Hyperlinks
-        may be queried for their URIs, or queried for the objects corresponding
-        to their anchors. The objects thus obtained are instances of
-        Accessible, and may be queried, and manipulated via the Action
-        interface.
-        """
-
-        def getObject(self, index):
-                """
-                Gets the i'th object, (where i is an integer between 0 and Hyperlink::numAnchors
-                - 1, inclusive) associated with a Hyperlink. The objects returned
-                are usually actionable (i.e. they should implement Accessibility::Action),
-                and the available actions often include "open", "bookmark", "save
-                link as", etc. They may also implement Accessibility::StreamableContent,
-                although clients can normally use getURI to obtain a resource
-                locator via which the object's data may be accessed.
-                @return an Accessible object instance representing the Hyperlink's
-                ith anchor, or through which the content associated with the
-                ith anchor can be accessed.
-                """
-                func = self.get_dbus_method("getObject", dbus_interface=ATSPI_HYPERLINK)
-                return self._cache.create_accessible(self._app_name, func(index),
-                                                     interfaces.ATSPI_HYPERLINK)
-
-        def getURI(self, index):
-                """
-                Obtain a resource locator ('URI') which can be used to access
-                the content to which this link "points" or is connected. 
-                @return a string corresponding to the URI of the Hyperlink's
-                'ith' anchor, if one exists, or a NIL string otherwise.
-                """
-                func = self.get_dbus_method("getURI", dbus_interface=ATSPI_HYPERLINK)
-                return func(index)
-
-        def isValid(self):
-                """
-                Check the hyperlink to see if a connection to its backing content
-                can be established, or if its URI is valid. 
-                @return True if the object's content is available, or False if
-                the hyperlink's URI is invalid, or a connection to the resource
-                can not be established.
-                """
-                func = self.get_dbus_method("isValid", dbus_interface=ATSPI_HYPERLINK)
-                return func()
-
-        def get_endIndex(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "endIndex"))
-        _endIndexDoc = \
-                """
-                the ending offset within the containing Hypertext content with
-                which this Hyperlink is associated; that is, the offset of the
-                first element past the range within the Hypertext associated
-                with this Hyperlink.
-                """
-        endIndex = property(fget=get_endIndex, doc=_endIndexDoc)
-
-        def get_nAnchors(self):
-                return dbus.Int16(self._pgetter(self._dbus_interface, "nAnchors"))
-        _nAnchorsDoc = \
-                """
-                the number of separate anchors associated with this Hyperlink
-                """
-        nAnchors = property(fget=get_nAnchors, doc=_nAnchorsDoc)
-
-        def get_startIndex(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "startIndex"))
-        _startIndexDoc = \
-                """
-                the starting offset within the containing Hypertext content with
-                which this Hyperlink is associated
-                """
-        startIndex = property(fget=get_startIndex, doc=_startIndexDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_HYPERLINK, Hyperlink)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/hypertext.py b/pyatspi/hypertext.py
deleted file mode 100644 (file)
index 6e7332f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-__all__ = [
-           "Hypertext",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Hypertext(Accessible):
-        """
-        An interface used for objects which implement linking between
-        multiple resource or content locations, or multiple 'markers'
-        within a single document. A Hypertext instance is associated
-        with one or more Hyperlinks, which are associated with particular
-        offsets within the Hypertext's included content.
-        """
-
-        def getLink(self, index):
-                """
-                Get one of the Hyperlinks associated with this Hypertext object,
-                by index.
-                @param : linkIndex
-                an integer from 0 to getNLinks() - 1. 
-                @return the Hyperlink in this Hypertext object.
-                """
-                func = self.get_dbus_method("getLink", dbus_interface=ATSPI_HYPERTEXT)
-                return self._cache.create_accessible(self._app_name, func(index),
-                                                     interfaces.ATSPI_HYPERTEXT)
-
-        def getLinkIndex(self, character_index):
-                """
-                Get the hyperlink index, if any, associated with a particular
-                character offset in the Hypertext object. For Hypertext implementors
-                without textual content, all hyperlinks are associated with character
-                offset '0'.
-                @return the index of the Hyperlink associated with character
-                offset characterIndex, or -1 if no Hyperlink is associated with
-                that character offset.
-                """
-                func = self.get_dbus_method("getLinkIndex", dbus_interface=ATSPI_HYPERTEXT)
-                return func(character_index)
-
-        def getNLinks(self):
-                """
-                Query the hypertext object for the number of Hyperlinks it contains.
-                @return the number of Hyperlinks associated with this Hypertext
-                object, as a long integer.
-                """
-                func = self.get_dbus_method("getNLinks", dbus_interface=ATSPI_HYPERTEXT)
-                return func()
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_HYPERTEXT, Hypertext)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/image.py b/pyatspi/image.py
deleted file mode 100644 (file)
index b2b595a..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import dbus
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-from accessible import BoundingBox
-
-from dbus.types import UInt32
-
-__all__ = [
-           "Image",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Image(Accessible):
-        """
-        An interface implemented by objects which render image data or
-        pictorial information to the screen. When onscreen components
-        include graphical information that is not purely intended to
-        enhance "3d effect" or visual layout, but which conveys some
-        semantic or informational content to the sighted user, they should
-        implement Image, and that semantic content should be conveyed
-        textually to the extent possible via the image description, as
-        well as the Accessible::name and Accessible::description properties.
-        """
-
-        def getImageExtents(self, coordType):
-                """
-                Obtain a bounding box which entirely contains the image contents,
-                as displayed on screen. The bounds returned do not account for
-                any viewport clipping or the fact that the image may be partially
-                or wholly obscured by other onscreen content. 
-                @param : coordType
-                If 0, the returned bounding box position is returned relative
-                to the screen; if 1, the bounding box position is returned relative
-                to the containing window. 
-                @return a BoundingBox enclosing the image's onscreen representation.
-                """
-                func = self.get_dbus_method("getImageExtents", dbus_interface=ATSPI_IMAGE)
-                return BoundingBox(*func(UInt32(coordType)))
-
-        def getImagePosition(self, coord_type):
-                """
-                Get the coordinates of the current image position on screen.
-                @param : x
-                Back-filled with the x coordinate of the onscreen image (i.e.
-                the minimum x coordinate) 
-                @param : y
-                Back-filled with the y coordinate of the onscreen image (i.e.
-                the minimum y coordinate) 
-                @param : coordType
-                If 0, the returned x and y coordinates are returned relative
-                to the screen; if 1, they are returned relative to the containing
-                window.
-                """
-                func = self.get_dbus_method("getImagePosition", dbus_interface=ATSPI_IMAGE)
-                return func(UInt32(coord_type))
-
-        def getImageSize(self):
-                """
-                Obtain the width and height of the current onscreen view of the
-                image. The extents returned do not account for any viewport clipping
-                or the fact that the image may be partially or wholly obscured
-                by other onscreen content. 
-                @param : width
-                Back-filled with the x extents of the onscreen image (i.e. the
-                image width in pixels) 
-                @param : height
-                Back-filled with the y extents of the onscreen image (i.e. the
-                image height in pixels)
-                """
-                func = self.get_dbus_method("getImageSize", dbus_interface=ATSPI_IMAGE)
-                return func()
-
-        def get_imageDescription(self):
-                return dbus.String(self._pgetter(self._dbus_interface, "imageDescription"))
-        _imageDescriptionDoc = \
-                """
-                A UTF-8 string providing a textual description of what is visually
-                depicted in the image.
-                """
-        imageDescription = property(fget=get_imageDescription, doc=_imageDescriptionDoc)
-
-        def get_imageLocale(self):
-                return dbus.String(self._pgetter(self._dbus_interface, "imageLocale"))
-        _imageLocaleDoc = \
-                """
-                A string corresponding to the POSIX LC_MESSAGES locale used by
-                the imageDescription.
-                """
-        imageLocale = property(fget=get_imageLocale, doc=_imageLocaleDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_IMAGE, Image)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/interfaces.py b/pyatspi/interfaces.py
deleted file mode 100644 (file)
index 0883fb9..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-ATSPI_ACCESSIBLE = 'org.freedesktop.atspi.Accessible'
-ATSPI_ACTION = 'org.freedesktop.atspi.Action'
-ATSPI_APPLICATION = 'org.freedesktop.atspi.Application'
-ATSPI_COMPONENT = 'org.freedesktop.atspi.Component'
-ATSPI_COLLECTION = 'org.freedesktop.atspi.Collection'
-ATSPI_DESKTOP = 'org.freedesktop.atspi.Desktop'
-ATSPI_DOCUMENT = 'org.freedesktop.atspi.Document'
-ATSPI_EDITABLE_TEXT = 'org.freedesktop.atspi.EditableText'
-ATSPI_HYPERLINK = 'org.freedesktop.atspi.Hyperlink'
-ATSPI_HYPERTEXT = 'org.freedesktop.atspi.Hypertext'
-ATSPI_IMAGE = 'org.freedesktop.atspi.Image'
-ATSPI_LOGIN_HELPER = 'org.freedesktop.atspi.LoginHelper'
-ATSPI_SELECTION = 'org.freedesktop.atspi.Selection'
-ATSPI_SELECTOR = 'org.freedesktop.atspi.Selector'
-ATSPI_STREAMABLE_CONTENT = 'org.freedesktop.atspi.Content'
-ATSPI_TABLE = 'org.freedesktop.atspi.Table'
-ATSPI_TEXT = 'org.freedesktop.atspi.Text'
-ATSPI_VALUE = 'org.freedesktop.atspi.Value'
-
-ATSPI_REGISTRY_INTERFACE = 'org.freedesktop.atspi.Registry'
-ATSPI_REGISTRY_PATH = '/org/freedesktop/atspi/registry'
-ATSPI_REGISTRY_NAME = 'org.freedesktop.atspi.Registry'
-
-ATSPI_DEVICE_EVENT_CONTROLLER_INTERFACE = 'org.freedesktop.atspi.DeviceEventController'
-ATSPI_DEVICE_EVENT_CONTROLLER_PATH = '/org/freedesktop/atspi/registry/deviceeventcontroller'
-ATSPI_DEVICE_EVENT_LISTENER_INTERFACE = 'org.freedesktop.atspi.DeviceEventListener'
diff --git a/pyatspi/loginhelper.py b/pyatspi/loginhelper.py
deleted file mode 100644 (file)
index a8b5183..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from base import Enum
-from accessible import Accessible
-from factory import accessible_factory
-
-__all__ = [
-           "LoginHelper",
-          ]
-
-#------------------------------------------------------------------------------
-
-class LoginHelper(Accessible):
-        """
-        An interface for use by assistive technologies by which they
-        can access system information and services on a 'need to know'
-        basis while the screen is locked, during user authentication,
-        or during other sensitive operations.         
-        This interface is intended for use by assistive technologies
-        and related user-enabling services, and by applications and utilities
-        which may wish to restrict access to certain system devices and
-        services during security-sensitive states, e.g. when the screen
-        is locked or during authentication into some secure service.
-        Such 'applications' (for instance, screen lock dialogs and security-enabled
-        web browsers) use the LoginHelper client interfaces, and the
-        bonobo-activation query service, to query for assistive technologies
-        which advertise the LoginHelper service. The client then queries
-        these assistive technologies for their device I/O requirements,
-        via the getDeviceReqs call. The client may then issue the advisory
-        request setSafe (TRUE), which requests that the LoginHelper -implementing
-        service make a best-effort attempt to make itself more secure
-        (for instance, an onscreen keyboard might turn off word prediction,
-        and a screenreader may turn off keyboard echo via speech). The
-        return value of setSafe is an advisory indication of whether
-        this attempt was successful (no specific guarantees are implied).
-        Once the 'security sensitive' state is exited, the client should
-        call setSafe (FALSE).
-        The return values from getDeviceReqs inform the client of which
-        services the LoginHelper service (e. g. assistive technology)
-        needs in order to do its job. The client may use this information
-        to loosen any restrictions on access which it may currently have
-        in place (for instance, keyboard grabs, etc.). If it does not
-        do so, the likely outcome is that the end-user will experience
-        loss of access to the system.
-        """
-
-        def getDeviceReqs(self, *args, **kwargs):
-                """
-                getDeviceReqs:
-                Query a LoginHelper for the types of device I/O it requires,
-                in order to do its job. For instance, a LoginHelper which needs
-                to receive keyboard events will include Accessibility_LoginHelper_CORE_KEYBOARD
-                in this list.
-                @return : A sequence of LoginHelper_DeviceReq indicating the
-                device I/O required in order to facilitate end-user access to
-                the system.
-                """
-                func = self.get_dbus_method("getDeviceReqs", dbus_interface=ATSPI_LOGIN_HELPER)
-                return func(*args, **kwargs)
-
-        def getRaiseWindows(self, *args, **kwargs):
-                """
-                getRaiseWindows:
-                Get a list of window IDs that need raising on login.
-                @return : a sequence containing window IDS for toplevels which
-                need to be raised/made visible during user authentication, in
-                order for the LoginHelper to facilitate end-user access to the
-                system.
-                """
-                func = self.get_dbus_method("getRaiseWindows", dbus_interface=ATSPI_LOGIN_HELPER)
-                return func(*args, **kwargs)
-
-        def setSafe(self, *args, **kwargs):
-                """
-                setSafe: 
-                @param : safe_mode
-                TRUE if the client is requesting that 'safe mode' be initiated,
-                FALSE if the client is advising that 'safe mode' may be exited,
-                i.e. normal operation may be resumed.
-                Request a LoginHelper to enter "safe" mode, or inform LoginHelper
-                that "safe" mode may be exited. If safe_mode is TRUE, but the
-                return value is FALSE, the requesting client may wish to deny
-                services to the LoginHelper, for instance avoid raising its toplevels.
-                The return value is purely advisory, and no guarantees are intended
-                about what the implementing LoginHelper will do to improve security
-                when in "safe" mode.
-                @return : whether the LoginHelper is now "safe" or not.
-                """
-                func = self.get_dbus_method("setSafe", dbus_interface=ATSPI_LOGIN_HELPER)
-                return func(*args, **kwargs)
-
-        class DeviceReq(Enum):
-                _enum_lookup = {
-                        0:'GUI_EVENTS',
-                        1:'CORE_KEYBOARD',
-                        2:'CORE_POINTER',
-                        3:'EXT_INPUT',
-                        4:'POST_WINDOWS',
-                        5:'AUDIO_OUT',
-                        6:'AUDIO_IN',
-                        7:'NETWORK',
-                        8:'LOCALHOST',
-                        9:'SERIAL_OUT',
-                        10:'SERIAL_IN',
-                }
-
-        AUDIO_IN = DeviceReq(6)
-        AUDIO_OUT = DeviceReq(5)
-        CORE_KEYBOARD = DeviceReq(1)
-        CORE_POINTER = DeviceReq(2)
-        EXT_INPUT = DeviceReq(3)
-        GUI_EVENTS = DeviceReq(0)
-        LOCALHOST = DeviceReq(8)
-        NETWORK = DeviceReq(7)
-        POST_WINDOWS = DeviceReq(4)
-        SERIAL_IN = DeviceReq(10)
-        SERIAL_OUT = DeviceReq(9)
-
-        class WindowInfo(list):
-                def __new__(cls, winID):
-                        list.__new__(cls, (winID))
-                def __init__(self, winID):
-                        list.__init__(self, (winID))
-
-                def _get_winID(self):
-                        return self[0]
-                def _set_winID(self, val):
-                        self[0] = val
-                winID = property(fget=_get_winID, fset=_set_winID)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_LOGIN_HELPER, LoginHelper)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/registry.py b/pyatspi/registry.py
deleted file mode 100644 (file)
index ab22053..0000000
+++ /dev/null
@@ -1,482 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-#copyright: Copyright (c) 2005, 2007 IBM Corporation
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#Portions of this code originally licensed and copyright (c) 2005, 2007
-#IBM Corporation under the BSD license, available at
-#U{http://www.opensource.org/licenses/bsd-license.php}
-
-#authors: Peter Parente, Mark Doffman
-
-import os as _os
-import dbus as _dbus
-import gobject as _gobject
-
-from desktop import Desktop as _Desktop
-
-from event import EventType as _EventType
-from event import event_type_to_signal_reciever as _event_type_to_signal_reciever
-
-from applicationcache import TestApplicationCache, ApplicationCache
-
-from dbus.mainloop.glib import DBusGMainLoop as _DBusGMainLoop
-
-from Queue import Queue
-from deviceevent import *
-from deviceevent import _TestDeviceEventController
-
-_DBusGMainLoop(set_as_default=True)
-
-#------------------------------------------------------------------------------
-
-class _Registry(object):
-        """
-        Wraps the Accessibility.Registry to provide more Pythonic registration for
-        events.
-
-        This object should be treated as a singleton, but such treatment is not
-        enforced. You can construct another instance of this object and give it a
-        reference to the Accessibility.Registry singleton. Doing so is harmless and
-        has no point.
-
-        @ivar async: Should event dispatch to local listeners be decoupled from event
-                receiving from the registry?
-        @type async: boolean
-        @ivar reg: Reference to the real, wrapped registry object
-        @type reg: Accessibility.Registry
-        @ivar dev: Reference to the device controller
-        @type dev: Accessibility.DeviceEventController
-        @ivar queue: Queue of events awaiting local dispatch
-        @type queue: Queue.Queue
-        @ivar clients: Map of event names to client listeners
-        @type clients: dictionary
-        @ivar observers: Map of event names to AT-SPI L{_Observer} objects
-        @type observers: dictionary
-        """
-
-        def __init__(self):
-                """
-                Stores a reference to the AT-SPI registry. Gets and stores a reference
-                to the DeviceEventController.
-
-                @param reg: Reference to the AT-SPI registry daemon
-                @type reg: Accessibility.Registry
-                """
-                self._bus = _dbus.SessionBus()
-
-                app_name = None
-                if "ATSPI_TEST_APP_NAME" in _os.environ.keys():
-                        app_name = _os.environ["ATSPI_TEST_APP_NAME"]
-
-                if app_name:
-                        self._app_cache = TestApplicationCache(self, self._bus, app_name)
-                        self.dev = _TestDeviceEventController()
-                else:
-                        self._app_cache = ApplicationCache(self, self._bus)
-                        self.dev = DeviceEventController(self._bus)
-
-                self._event_listeners = {}
-
-                # All of this special casing is for the 'faked'
-                # events caused by cache updates.
-
-                self._name_type = _EventType("object:property-change:name")
-                self._name_listeners = {}
-                self._description_type = _EventType("object:property-change:description")
-                self._description_listeners = {}
-                self._parent_type = _EventType("object:property-change:parent")
-                self._parent_listeners = {}
-                self._children_changed_type = _EventType("object:children-changed")
-                self._children_changed_listeners = {}
-
-                self.clients = {}
-                self.deviceClients = {}
-
-        def __call__(self):
-                """
-                @return: This instance of the registry
-                @rtype: L{Registry}
-                """
-                return self
-
-        @property
-        def cache (self):
-                """
-                This is the accessible application cache through which
-                all accessible objects are accessed.
-                """
-                return self._app_cache
-
-        def start(self, async=False, gil=True):
-                """
-                Enter the main loop to start receiving and dispatching events.
-
-                @param async: Should event dispatch be asynchronous (decoupled) from 
-                        event receiving from the AT-SPI registry?
-                @type async: boolean
-                @param gil: Add an idle callback which releases the Python GIL for a few
-                        milliseconds to allow other threads to run? Necessary if other threads
-                        will be used in this process.
-                        Note - No Longer used.
-                @type gil: boolean
-                """
-                self._loop = _gobject.MainLoop()
-                try:
-                        self._loop.run()
-                except KeyboardInterrupt:
-                        pass
-
-        def stop(self, *args):
-                """Quits the main loop."""
-                self._loop.quit()
-                self.flushEvents()
-
-        def getDesktopCount(self):
-                """
-                Gets the number of available desktops.
-
-                @return: Number of desktops
-                @rtype: integer
-                """
-                return 1
-
-        def getDesktop(self, i):
-                """
-                Gets a reference to the i-th desktop.
-
-                @param i: Which desktop to get
-                @type i: integer
-                @return: Desktop reference
-                @rtype: Accessibility.Desktop
-                """
-                return _Desktop(self._app_cache)
-
-        # -------------------------------------------------------------------------------
-
-        def _callClients(self, register, event):
-                for client in register.keys():
-                        client(event)
-
-        def _notifyNameChange(self, event):
-                self._callClients(self._name_listeners, event)
-
-        def _notifyDescriptionChange(self, event):
-                self._callClients(self._description_listeners, event)
-
-        def _notifyParentChange(self, event):
-                self._callClients(self._parent_listeners, event)
-
-        def _notifyChildrenChange(self, event):
-                self._callClients(self._children_changed_listeners, event)
-
-        def _registerFake(self, type, register, client, *names):
-                """
-                Registers a client from a register of clients
-                for 'Fake' events emitted by the cache.
-                """
-                try:
-                        registered = register[client]
-                except KeyError:
-                        registered = []
-                        register[client] = registered
-
-                for name in names:
-                        new_type = _EventType(name)
-                        if new_type.is_subtype(type):
-                                registered.append(new_type.name)
-
-                if registered == []:
-                        del(register[client])
-
-        def _deregisterFake(self, type, register, client, *names):
-                """
-                Deregisters a client from a register of clients
-                for 'Fake' events emitted by the cache.
-                """
-                try:
-                        registered = register[client]
-                except KeyError:
-                        return True
-
-                for name in names:
-                        remove_type = _EventType(name)
-
-                        copy = registered[:]
-                        for i in range(0, len(copy)):
-                                type_name = copy[i]
-                                registered_type = _EventType(type_name)
-
-                                if remove_type.is_subtype(registered_type):
-                                        del(registered[i])
-
-                if registered == []:
-                        del(register[client])
-
-        # -------------------------------------------------------------------------------
-
-        def registerEventListener(self, client, *names):
-                """
-                Registers a new client callback for the given event names. Supports 
-                registration for all subevents if only partial event name is specified.
-                Do not include a trailing colon.
-
-                For example, 'object' will register for all object events, 
-                'object:property-change' will register for all property change events,
-                and 'object:property-change:accessible-parent' will register only for the
-                parent property change event.
-
-                Registered clients will not be automatically removed when the client dies.
-                To ensure the client is properly garbage collected, call 
-                L{deregisterEventListener}.
-
-                @param client: Callable to be invoked when the event occurs
-                @type client: callable
-                @param names: List of full or partial event names
-                @type names: list of string
-                """
-                try:
-                        registered = self._event_listeners[client]
-                except KeyError:
-                        registered = []
-                        self._event_listeners[client] = registered
-
-                for name in names:
-                        new_type = _EventType(name)
-                        registered.append((new_type.name,
-                                           _event_type_to_signal_reciever(self._bus, self._app_cache, client, new_type)))
-
-                self._registerFake(self._name_type, self._name_listeners, client, *names)
-                self._registerFake(self._description_type, self._description_listeners, client, *names)
-                self._registerFake(self._parent_type, self._parent_listeners, client, *names)
-                self._registerFake(self._children_changed_type, self._children_changed_listeners, client, *names)
-
-        def deregisterEventListener(self, client, *names):
-                """
-                Unregisters an existing client callback for the given event names. Supports 
-                unregistration for all subevents if only partial event name is specified.
-                Do not include a trailing colon.
-
-                This method must be called to ensure a client registered by
-                L{registerEventListener} is properly garbage collected.
-
-                @param client: Client callback to remove
-                @type client: callable
-                @param names: List of full or partial event names
-                @type names: list of string
-                @return: Were event names specified for which the given client was not
-                        registered?
-                @rtype: boolean
-                """
-                try:
-                        registered = self._event_listeners[client]
-                except KeyError:
-                        # Presumably if were trying to deregister a client with
-                        # no names then the return type is always true.
-                        return True
-
-                missing = False
-
-                for name in names:
-                        remove_type = _EventType(name)
-                        copy = registered[:]
-                        for i in range (0, len(copy)):
-                                type_name, signal_match = copy[i]
-                                registered_type = _EventType(type_name)
-
-                                if remove_type.is_subtype(registered_type):
-                                        signal_match.remove()
-                                        del(registered[i])
-                                else:
-                                        missing = True
-
-                if registered == []:
-                        del(self._event_listeners[client])
-
-                #TODO Do these account for missing also?
-                self._deregisterFake(self._name_type, self._name_listeners, client, *names)
-                self._deregisterFake(self._description_type, self._description_listeners, client, *names)
-                self._deregisterFake(self._parent_type, self._parent_listeners, client, *names)
-                self._deregisterFake(self._children_changed_type, self._children_changed_listeners, client, *names)
-
-                return missing
-
-        # -------------------------------------------------------------------------------
-
-        def registerKeystrokeListener(self,
-                                      client,
-                                      key_set=[],
-                                      mask=0,
-                                      kind=(KEY_PRESSED_EVENT, KEY_RELEASED_EVENT),
-                                      synchronous=True,
-                                      preemptive=True,
-                                      global_=False):
-                """
-                Registers a listener for key stroke events.
-
-                @param client: Callable to be invoked when the event occurs
-                @type client: callable
-                @param key_set: Set of hardware key codes to stop monitoring. Leave empty
-                        to indicate all keys.
-                @type key_set: list of integer
-                @param mask: When the mask is None, the codes in the key_set will be 
-                        monitored only when no modifier is held. When the mask is an 
-                        integer, keys in the key_set will be monitored only when the modifiers in
-                        the mask are held. When the mask is an iterable over more than one 
-                        integer, keys in the key_set will be monitored when any of the modifier
-                        combinations in the set are held.
-                @type mask: integer, iterable, None
-                @param kind: Kind of events to watch, KEY_PRESSED_EVENT or 
-                        KEY_RELEASED_EVENT.
-                @type kind: list
-                @param synchronous: Should the callback notification be synchronous, giving
-                        the client the chance to consume the event?
-                @type synchronous: boolean
-                @param preemptive: Should the callback be allowed to preempt / consume the
-                        event?
-                @type preemptive: boolean
-                @param global_: Should callback occur even if an application not supporting
-                        AT-SPI is in the foreground? (requires xevie)
-                @type global_: boolean
-                """
-                try:
-                        # see if we already have an observer for this client
-                        ob = self.deviceClients[client]
-                except KeyError:
-                        # create a new device observer for this client
-                        ob = KeyboardDeviceEventListener(self, synchronous, preemptive, global_)
-                        # store the observer to client mapping, and the inverse
-                        self.deviceClients[ob] = client
-                        self.deviceClients[client] = ob
-                if mask is None:
-                        # None means all modifier combinations
-                        mask = utils.allModifiers()
-                # register for new keystrokes on the observer
-                ob.register(self.dev, key_set, mask, kind)
-
-        def deregisterKeystrokeListener(self,
-                                        client,
-                                        key_set=[],
-                                        mask=0,
-                                        kind=(KEY_PRESSED_EVENT, KEY_RELEASED_EVENT)):
-                """
-                Deregisters a listener for key stroke events.
-
-                @param client: Callable to be invoked when the event occurs
-                @type client: callable
-                @param key_set: Set of hardware key codes to stop monitoring. Leave empty
-                        to indicate all keys.
-                @type key_set: list of integer
-                @param mask: When the mask is None, the codes in the key_set will be 
-                        monitored only when no modifier is held. When the mask is an 
-                        integer, keys in the key_set will be monitored only when the modifiers in
-                        the mask are held. When the mask is an iterable over more than one 
-                        integer, keys in the key_set will be monitored when any of the modifier
-                        combinations in the set are held.
-                @type mask: integer, iterable, None
-                @param kind: Kind of events to stop watching, KEY_PRESSED_EVENT or 
-                        KEY_RELEASED_EVENT.
-                @type kind: list
-                @raise KeyError: When the client isn't already registered for events
-                """
-                # see if we already have an observer for this client
-                ob = self.deviceClients[client]
-                if mask is None:
-                        # None means all modifier combinations
-                        mask = utils.allModifiers()
-                # register for new keystrokes on the observer
-                ob.unregister(self.dev, key_set, mask, kind)
-
-        def handleDeviceEvent(self, event, ob):
-                """
-                Dispatches L{event.DeviceEvent}s to registered clients. Clients are called
-                in the order they were registered for the given AT-SPI event. If any
-                client returns True, callbacks cease for the event for clients of this registry 
-                instance. Clients of other registry instances and clients in other processes may 
-                be affected depending on the values of synchronous and preemptive used when invoking
-                L{registerKeystrokeListener}. 
-
-                @note: Asynchronous dispatch of device events is not supported.
-
-                @param event: AT-SPI device event
-                @type event: L{event.DeviceEvent}
-                @param ob: Observer that received the event
-                @type ob: L{KeyboardDeviceEventListener}
-
-                @return: Should the event be consumed (True) or allowed to pass on to other
-                        AT-SPI observers (False)?
-                @rtype: boolean
-                """
-                try:
-                        # try to get the client registered for this event type
-                        client = self.deviceClients[ob]
-                except KeyError:
-                        # client may have unregistered recently, ignore event
-                        return False
-                # make the call to the client
-                try:
-                        return client(event) or event.consume
-                except Exception:
-                        # print the exception, but don't let it stop notification
-                        traceback.print_exc()
-
-        # -------------------------------------------------------------------------------
-
-        def pumpQueuedEvents (self):
-                """
-                No Longer needed all application events are asyncronous.
-                """
-                pass
-
-        def flushEvents (self):
-                """
-                No Longer needed all application events are asyncronous.
-                """
-                pass
-
-        # -------------------------------------------------------------------------------
-
-        def generateKeyboardEvent(self, keycode, keysym, kind):
-                """
-                Generates a keyboard event. One of the keycode or the keysym parameters
-                should be specified and the other should be None. The kind parameter is 
-                required and should be one of the KEY_PRESS, KEY_RELEASE, KEY_PRESSRELEASE,
-                KEY_SYM, or KEY_STRING.
-
-                @param keycode: Hardware keycode or None
-                @type keycode: integer
-                @param keysym: Symbolic key string or None
-                @type keysym: string
-                @param kind: Kind of event to synthesize
-                @type kind: integer
-                """
-                if keysym is None:
-                        self.dev.generateKeyboardEvent(keycode, '', kind)
-                else:
-                        self.dev.generateKeyboardEvent(None, keysym, kind)
-
-        def generateMouseEvent(self, x, y, name):
-                """
-                Generates a mouse event at the given absolute x and y coordinate. The kind
-                of event generated is specified by the name. For example, MOUSE_B1P 
-                (button 1 press), MOUSE_REL (relative motion), MOUSE_B3D (butten 3 
-                double-click).
-
-                @param x: Horizontal coordinate, usually left-hand oriented
-                @type x: integer
-                @param y: Vertical coordinate, usually left-hand oriented
-                @type y: integer
-                @param name: Name of the event to generate
-                @type name: string
-                """
-                self.dev.generateMouseEvent(_dbus.Int32(x), _dbus.Int32(y), name)
diff --git a/pyatspi/relation.py b/pyatspi/relation.py
deleted file mode 100644 (file)
index ef952c2..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-#copyright: Copyright (c) 2005, 2007 IBM Corporation
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#Portions of this code originally licensed and copyright (c) 2005, 2007
-#IBM Corporation under the BSD license, available at
-#U{http://www.opensource.org/licenses/bsd-license.php}
-
-#authors: Peter Parente, Mark Doffman
-
-import interfaces
-from base import Enum as _Enum
-
-#------------------------------------------------------------------------------
-
-class RelationType(_Enum):
-        _enum_lookup = {
-                0:'RELATION_NULL',
-                1:'RELATION_LABEL_FOR',
-                2:'RELATION_LABELLED_BY',
-                3:'RELATION_CONTROLLER_FOR',
-                4:'RELATION_CONTROLLED_BY',
-                5:'RELATION_MEMBER_OF',
-                6:'RELATION_TOOLTIP_FOR',
-                7:'RELATION_NODE_CHILD_OF',
-                8:'RELATION_EXTENDED',
-                9:'RELATION_FLOWS_TO',
-                10:'RELATION_FLOWS_FROM',
-                11:'RELATION_SUBWINDOW_OF',
-                12:'RELATION_EMBEDS',
-                13:'RELATION_EMBEDDED_BY',
-                14:'RELATION_POPUP_FOR',
-                15:'RELATION_PARENT_WINDOW_OF',
-                16:'RELATION_DESCRIPTION_FOR',
-                17:'RELATION_DESCRIBED_BY',
-                18:'RELATION_LAST_DEFINED',
-        }
-
-#------------------------------------------------------------------------------
-
-RELATION_CONTROLLED_BY = RelationType(4)
-RELATION_CONTROLLER_FOR = RelationType(3)
-RELATION_DESCRIBED_BY = RelationType(17)
-RELATION_DESCRIPTION_FOR = RelationType(16)
-RELATION_EMBEDDED_BY = RelationType(13)
-RELATION_EMBEDS = RelationType(12)
-RELATION_EXTENDED = RelationType(8)
-RELATION_FLOWS_FROM = RelationType(10)
-RELATION_FLOWS_TO = RelationType(9)
-RELATION_LABELLED_BY = RelationType(2)
-RELATION_LABEL_FOR = RelationType(1)
-RELATION_LAST_DEFINED = RelationType(18)
-RELATION_MEMBER_OF = RelationType(5)
-RELATION_NODE_CHILD_OF = RelationType(7)
-RELATION_NULL = RelationType(0)
-RELATION_PARENT_WINDOW_OF = RelationType(15)
-RELATION_POPUP_FOR = RelationType(14)
-RELATION_SUBWINDOW_OF = RelationType(11)
-RELATION_TOOLTIP_FOR = RelationType(6)
-
-#------------------------------------------------------------------------------
-
-# Build a dictionary mapping relation values to names based on the prefix of the enum constants.
-
-RELATION_VALUE_TO_NAME = dict(((value, name[9:].lower().replace('_', ' ')) 
-                               for name, value 
-                               in globals().items()
-                               if name.startswith('RELATION_')))
-
-#------------------------------------------------------------------------------
-
-def _marshal_relation_set(cache, app_name, relation_set):
-        """
-        The D-Bus protocol has a relation set passed as an array of
-        relation types and object arrays.
-
-        This function marshals the D-Bus message into a list of relation
-        objects.
-        """
-        return [Relation(cache, app_name, *relation) for relation in relation_set]
-
-#------------------------------------------------------------------------------
-
-class Relation(object):
-        """
-        An interface via which objects' non-hierarchical relationships
-        to one another are indicated. An instance of Relations represents
-        a "one-to-many" correspondance.
-        """
-
-        def __init__(self, cache, app_name, type, objects):
-                self._type = type
-                self._objects = objects
-
-                self._cache = cache
-                self._app_name = app_name
-
-        def getNTargets(self):
-                """
-                @return the number of objects to which this relationship applies.
-                """
-                return len(self._objects)
-
-        def getRelationType(self):
-                """
-                @return the RelationType of this Relation.
-                """
-                return RelationType(self._type)
-
-        def getRelationTypeName(self):
-                """
-                @return an unlocalized string representing the relation type.
-                """
-                return RELATION_VALUE_TO_NAME[self._type]
-
-        def getTarget(self, index):
-                """
-                @return an Object which is the 'nth'target of this Relation,
-                e.g. the Object at index i in the list of Objects having the
-                specified relationship to this Accessible.
-                """
-                return self._cache.create_accessible(self._app_name,
-                                                     self._objects[index],
-                                                     interfaces.ATSPI_ACCESSIBLE)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/role.py b/pyatspi/role.py
deleted file mode 100644 (file)
index a7dac27..0000000
+++ /dev/null
@@ -1,297 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from base import Enum as _Enum
-
-#------------------------------------------------------------------------------
-
-class Role(_Enum):
-        _enum_lookup = {
-                0:'ROLE_INVALID',
-                1:'ROLE_ACCELERATOR_LABEL',
-                2:'ROLE_ALERT',
-                3:'ROLE_ANIMATION',
-                4:'ROLE_ARROW',
-                5:'ROLE_CALENDAR',
-                6:'ROLE_CANVAS',
-                7:'ROLE_CHECK_BOX',
-                8:'ROLE_CHECK_MENU_ITEM',
-                9:'ROLE_COLOR_CHOOSER',
-                10:'ROLE_COLUMN_HEADER',
-                11:'ROLE_COMBO_BOX',
-                12:'ROLE_DATE_EDITOR',
-                13:'ROLE_DESKTOP_ICON',
-                14:'ROLE_DESKTOP_FRAME',
-                15:'ROLE_DIAL',
-                16:'ROLE_DIALOG',
-                17:'ROLE_DIRECTORY_PANE',
-                18:'ROLE_DRAWING_AREA',
-                19:'ROLE_FILE_CHOOSER',
-                20:'ROLE_FILLER',
-                21:'ROLE_FOCUS_TRAVERSABLE',
-                22:'ROLE_FONT_CHOOSER',
-                23:'ROLE_FRAME',
-                24:'ROLE_GLASS_PANE',
-                25:'ROLE_HTML_CONTAINER',
-                26:'ROLE_ICON',
-                27:'ROLE_IMAGE',
-                28:'ROLE_INTERNAL_FRAME',
-                29:'ROLE_LABEL',
-                30:'ROLE_LAYERED_PANE',
-                31:'ROLE_LIST',
-                32:'ROLE_LIST_ITEM',
-                33:'ROLE_MENU',
-                34:'ROLE_MENU_BAR',
-                35:'ROLE_MENU_ITEM',
-                36:'ROLE_OPTION_PANE',
-                37:'ROLE_PAGE_TAB',
-                38:'ROLE_PAGE_TAB_LIST',
-                39:'ROLE_PANEL',
-                40:'ROLE_PASSWORD_TEXT',
-                41:'ROLE_POPUP_MENU',
-                42:'ROLE_PROGRESS_BAR',
-                43:'ROLE_PUSH_BUTTON',
-                44:'ROLE_RADIO_BUTTON',
-                45:'ROLE_RADIO_MENU_ITEM',
-                46:'ROLE_ROOT_PANE',
-                47:'ROLE_ROW_HEADER',
-                48:'ROLE_SCROLL_BAR',
-                49:'ROLE_SCROLL_PANE',
-                50:'ROLE_SEPARATOR',
-                51:'ROLE_SLIDER',
-                52:'ROLE_SPIN_BUTTON',
-                53:'ROLE_SPLIT_PANE',
-                54:'ROLE_STATUS_BAR',
-                55:'ROLE_TABLE',
-                56:'ROLE_TABLE_CELL',
-                57:'ROLE_TABLE_COLUMN_HEADER',
-                58:'ROLE_TABLE_ROW_HEADER',
-                59:'ROLE_TEAROFF_MENU_ITEM',
-                60:'ROLE_TERMINAL',
-                61:'ROLE_TEXT',
-                62:'ROLE_TOGGLE_BUTTON',
-                63:'ROLE_TOOL_BAR',
-                64:'ROLE_TOOL_TIP',
-                65:'ROLE_TREE',
-                66:'ROLE_TREE_TABLE',
-                67:'ROLE_UNKNOWN',
-                68:'ROLE_VIEWPORT',
-                69:'ROLE_WINDOW',
-                70:'ROLE_EXTENDED',
-                71:'ROLE_HEADER',
-                72:'ROLE_FOOTER',
-                73:'ROLE_PARAGRAPH',
-                74:'ROLE_RULER',
-                75:'ROLE_APPLICATION',
-                76:'ROLE_AUTOCOMPLETE',
-                77:'ROLE_EDITBAR',
-                78:'ROLE_EMBEDDED',
-                79:'ROLE_ENTRY',
-                80:'ROLE_CHART',
-                81:'ROLE_CAPTION',
-                82:'ROLE_DOCUMENT_FRAME',
-                83:'ROLE_HEADING',
-                84:'ROLE_PAGE',
-                85:'ROLE_SECTION',
-                86:'ROLE_REDUNDANT_OBJECT',
-                87:'ROLE_FORM',
-                88:'ROLE_LINK',
-                89:'ROLE_INPUT_METHOD_WINDOW',
-                90:'ROLE_LAST_DEFINED',
-        }
-
-ROLE_ACCELERATOR_LABEL = Role(1)
-ROLE_ALERT = Role(2)
-ROLE_ANIMATION = Role(3)
-ROLE_APPLICATION = Role(75)
-ROLE_ARROW = Role(4)
-ROLE_AUTOCOMPLETE = Role(76)
-ROLE_CALENDAR = Role(5)
-ROLE_CANVAS = Role(6)
-ROLE_CAPTION = Role(81)
-ROLE_CHART = Role(80)
-ROLE_CHECK_BOX = Role(7)
-ROLE_CHECK_MENU_ITEM = Role(8)
-ROLE_COLOR_CHOOSER = Role(9)
-ROLE_COLUMN_HEADER = Role(10)
-ROLE_COMBO_BOX = Role(11)
-ROLE_DATE_EDITOR = Role(12)
-ROLE_DESKTOP_FRAME = Role(14)
-ROLE_DESKTOP_ICON = Role(13)
-ROLE_DIAL = Role(15)
-ROLE_DIALOG = Role(16)
-ROLE_DIRECTORY_PANE = Role(17)
-ROLE_DOCUMENT_FRAME = Role(82)
-ROLE_DRAWING_AREA = Role(18)
-ROLE_EDITBAR = Role(77)
-ROLE_EMBEDDED = Role(78)
-ROLE_ENTRY = Role(79)
-ROLE_EXTENDED = Role(70)
-ROLE_FILE_CHOOSER = Role(19)
-ROLE_FILLER = Role(20)
-ROLE_FOCUS_TRAVERSABLE = Role(21)
-ROLE_FONT_CHOOSER = Role(22)
-ROLE_FOOTER = Role(72)
-ROLE_FORM = Role(87)
-ROLE_FRAME = Role(23)
-ROLE_GLASS_PANE = Role(24)
-ROLE_HEADER = Role(71)
-ROLE_HEADING = Role(83)
-ROLE_HTML_CONTAINER = Role(25)
-ROLE_ICON = Role(26)
-ROLE_IMAGE = Role(27)
-ROLE_INPUT_METHOD_WINDOW = Role(89)
-ROLE_INTERNAL_FRAME = Role(28)
-ROLE_INVALID = Role(0)
-ROLE_LABEL = Role(29)
-ROLE_LAST_DEFINED = Role(90)
-ROLE_LAYERED_PANE = Role(30)
-ROLE_LINK = Role(88)
-ROLE_LIST = Role(31)
-ROLE_LIST_ITEM = Role(32)
-ROLE_MENU = Role(33)
-ROLE_MENU_BAR = Role(34)
-ROLE_MENU_ITEM = Role(35)
-ROLE_OPTION_PANE = Role(36)
-ROLE_PAGE = Role(84)
-ROLE_PAGE_TAB = Role(37)
-ROLE_PAGE_TAB_LIST = Role(38)
-ROLE_PANEL = Role(39)
-ROLE_PARAGRAPH = Role(73)
-ROLE_PASSWORD_TEXT = Role(40)
-ROLE_POPUP_MENU = Role(41)
-ROLE_PROGRESS_BAR = Role(42)
-ROLE_PUSH_BUTTON = Role(43)
-ROLE_RADIO_BUTTON = Role(44)
-ROLE_RADIO_MENU_ITEM = Role(45)
-ROLE_REDUNDANT_OBJECT = Role(86)
-ROLE_ROOT_PANE = Role(46)
-ROLE_ROW_HEADER = Role(47)
-ROLE_RULER = Role(74)
-ROLE_SCROLL_BAR = Role(48)
-ROLE_SCROLL_PANE = Role(49)
-ROLE_SECTION = Role(85)
-ROLE_SEPARATOR = Role(50)
-ROLE_SLIDER = Role(51)
-ROLE_SPIN_BUTTON = Role(52)
-ROLE_SPLIT_PANE = Role(53)
-ROLE_STATUS_BAR = Role(54)
-ROLE_TABLE = Role(55)
-ROLE_TABLE_CELL = Role(56)
-ROLE_TABLE_COLUMN_HEADER = Role(57)
-ROLE_TABLE_ROW_HEADER = Role(58)
-ROLE_TEAROFF_MENU_ITEM = Role(59)
-ROLE_TERMINAL = Role(60)
-ROLE_TEXT = Role(61)
-ROLE_TOGGLE_BUTTON = Role(62)
-ROLE_TOOL_BAR = Role(63)
-ROLE_TOOL_TIP = Role(64)
-ROLE_TREE = Role(65)
-ROLE_TREE_TABLE = Role(66)
-ROLE_UNKNOWN = Role(67)
-ROLE_VIEWPORT = Role(68)
-ROLE_WINDOW = Role(69)
-
-ROLE_NAMES = {
-        ROLE_INVALID:'invalid',
-        ROLE_ACCELERATOR_LABEL:'accelerator label',
-        ROLE_ALERT:'alert',
-        ROLE_ANIMATION:'animation',
-        ROLE_ARROW:'arrow',
-        ROLE_CALENDAR:'calendar',
-        ROLE_CANVAS:'canvas',
-        ROLE_CHECK_BOX:'check box',
-        ROLE_CHECK_MENU_ITEM:'check menu item',
-        ROLE_COLOR_CHOOSER:'color chooser',
-        ROLE_COLUMN_HEADER:'column header',
-        ROLE_COMBO_BOX:'combo box',
-        ROLE_DATE_EDITOR:'dateeditor',
-        ROLE_DESKTOP_ICON:'desktop icon',
-        ROLE_DESKTOP_FRAME:'desktop frame',
-        ROLE_DIAL:'dial',
-        ROLE_DIALOG:'dialog',
-        ROLE_DIRECTORY_PANE:'directory pane',
-        ROLE_DRAWING_AREA:'drawing area',
-        ROLE_FILE_CHOOSER:'file chooser',
-        ROLE_FILLER:'filler',
-        ROLE_FONT_CHOOSER:'font chooser',
-        ROLE_FRAME:'frame',
-        ROLE_GLASS_PANE:'glass pane',
-        ROLE_HTML_CONTAINER:'html container',
-        ROLE_ICON:'icon',
-        ROLE_IMAGE:'image',
-        ROLE_INTERNAL_FRAME:'internal frame',
-        ROLE_LABEL:'label',
-        ROLE_LAYERED_PANE:'layered pane',
-        ROLE_LIST:'list',
-        ROLE_LIST_ITEM:'list item',
-        ROLE_MENU:'menu',
-        ROLE_MENU_BAR:'menu bar',
-        ROLE_MENU_ITEM:'menu item',
-        ROLE_OPTION_PANE:'option pane',
-        ROLE_PAGE_TAB:'page tab',
-        ROLE_PAGE_TAB_LIST:'page tab list',
-        ROLE_PANEL:'panel',
-        ROLE_PASSWORD_TEXT:'password text',
-        ROLE_POPUP_MENU:'popup menu',
-        ROLE_PROGRESS_BAR:'progress bar',
-        ROLE_PUSH_BUTTON:'push button',
-        ROLE_RADIO_BUTTON:'radio button',
-        ROLE_RADIO_MENU_ITEM:'radio menu item',
-        ROLE_ROOT_PANE:'root pane',
-        ROLE_ROW_HEADER:'row header',
-        ROLE_SCROLL_BAR:'scroll bar',
-        ROLE_SCROLL_PANE:'scroll pane',
-        ROLE_SEPARATOR:'separator',
-        ROLE_SLIDER:'slider',
-        ROLE_SPLIT_PANE:'split pane',
-        ROLE_SPIN_BUTTON:'spin button',
-        ROLE_STATUS_BAR:'status bar',
-        ROLE_TABLE:'table',
-        ROLE_TABLE_CELL:'table cell',
-        ROLE_TABLE_COLUMN_HEADER:'table column header',
-        ROLE_TABLE_ROW_HEADER:'table row header',
-        ROLE_TEAROFF_MENU_ITEM:'tear off menu item',
-        ROLE_TERMINAL:'terminal',
-        ROLE_TEXT:'text',
-        ROLE_TOGGLE_BUTTON:'toggle button',
-        ROLE_TOOL_BAR:'tool bar',
-        ROLE_TOOL_TIP:'tool tip',
-        ROLE_TREE:'tree',
-        ROLE_TREE_TABLE:'tree table',
-        ROLE_UNKNOWN:'unknown',
-        ROLE_VIEWPORT:'viewport',
-        ROLE_WINDOW:'window',
-        ROLE_HEADER:'header',
-        ROLE_FOOTER:'footer',
-        ROLE_PARAGRAPH:'paragraph',
-        ROLE_RULER:'ruler',
-        ROLE_APPLICATION:'application',
-        ROLE_AUTOCOMPLETE:'autocomplete',
-        ROLE_EDITBAR:'edit bar',
-        ROLE_EMBEDDED:'embedded component',
-        ROLE_ENTRY:'entry',
-        ROLE_CHART:'chart',
-        ROLE_CAPTION:'caption',
-        ROLE_DOCUMENT_FRAME:'document frame',
-        ROLE_HEADING:'heading',
-        ROLE_PAGE:'page',
-        ROLE_SECTION:'section',
-        ROLE_REDUNDANT_OBJECT:'redundant object',
-        ROLE_FORM:'form',
-        ROLE_LINK:'link',
-        ROLE_INPUT_METHOD_WINDOW:'input method window',
-}
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/selection.py b/pyatspi/selection.py
deleted file mode 100644 (file)
index 4751ba5..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-import dbus
-
-__all__ = [
-           "Selection",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Selection(Accessible):
-        """
-        An interface which indicates that an object exposes a 'selection'
-        model, allowing the selection of one or more of its children.
-        Read-only Selection instances are possible, in which case the
-        interface is used to programmatically determine the selected-ness
-        of its children. A selected child has State::STATE_SELECTED,
-        and a child which may hypothetically be selected (though possibly
-        not programmatically selectable) has State::STATE_SELECTABLE.
-        """
-
-        def clearSelection(self):
-                """
-                Attempt to clear all selections (i.e. deselect all children)
-                of a Selection. Not all Selection implementations allow the removal
-                of all selections.
-                @return True if the selections were successfully cleared, False
-                otherwise.
-                """
-                func = self.get_dbus_method("clearSelection", dbus_interface=ATSPI_SELECTION)
-                return func()
-
-        def deselectChild(self, childIndex):
-                """
-                Remove a child from the selected children list of a Selection,
-                if the child is currently selected.
-                @param : childIndex
-                a long integer (the zero offset index into the Accessible object's
-                list of children) indicating which child of the Selection is
-                to be selected.
-                @return True if the child was successfully selected, False otherwise.
-                """
-                func = self.get_dbus_method("deselectChild", dbus_interface=ATSPI_SELECTION)
-                return func(childIndex)
-
-        def deselectSelectedChild(self, index):
-                """
-                Remove a child to the selected children list of a Selection.
-                @param : selectedChildIndex
-                a long integer indicating which of the selected children of the
-                Selection is to be deselected. The index is a zero-offset index
-                into the 'selected child list', not a zero-offset index into
-                the list of all children of the Selection.
-                @return True if the child was successfully deselected, False
-                otherwise.
-                """
-                func = self.get_dbus_method("deselectSelectedChild", dbus_interface=ATSPI_SELECTION)
-                return func(index)
-
-        def getSelectedChild(self, index):
-                """
-                Get the i-th selected Accessible child of a Selection. 
-                @param : selectedChildIndex
-                a long integer indicating which of the selected children of an
-                object is being requested. 
-                @return a pointer to a selected Accessible child object, specified
-                by selectedChildIndex.
-                """
-                func = self.get_dbus_method("getSelectedChild", dbus_interface=ATSPI_SELECTION)
-                return self._cache.create_accessible(self._app_name, func(index),
-                                                     interfaces.ATSPI_ACCESSIBLE)
-
-        def isChildSelected(self, index):
-                """
-                Determine whether a particular child of an Selection implementor
-                is currently selected. Note that childIndex is the zero-offset
-                index into the standard Accessible container's list of children.
-                @param : childIndex
-                an index into the Selection's list of children.
-                @return True if the specified child is currently selected, False
-                otherwise.
-                """
-                func = self.get_dbus_method("isChildSelected", dbus_interface=ATSPI_SELECTION)
-                return func(index)
-
-        def selectAll(self):
-                """
-                Attempt to select all of the children of a Selection implementor.
-                Not all Selection implementors support this operation (for instance,
-                implementations which support only "single selection" do not
-                support this operation).
-                @return True if successful, False otherwise.
-                """
-                func = self.get_dbus_method("selectAll", dbus_interface=ATSPI_SELECTION)
-                return func()
-
-        def selectChild(self, index):
-                """
-                Add a child to the selected children list of a Selection. 
-                @param : childIndex
-                a long integer indicating which child of the Selection is to
-                be selected.
-                @return True if the child was successfully selected, False otherwise.
-                """
-                func = self.get_dbus_method("selectChild", dbus_interface=ATSPI_SELECTION)
-                return func(index)
-
-        def get_nSelectedChildren(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "nSelectedChildren"))
-        _nSelectedChildrenDoc = \
-                """
-                The number of children of a Selection implementor which are currently
-                selected.
-                """
-        nSelectedChildren = property(fget=get_nSelectedChildren, doc=_nSelectedChildrenDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_SELECTION, Selection)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/state.py b/pyatspi/state.py
deleted file mode 100644 (file)
index fdfb284..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-#copyright: Copyright (c) 2005, 2007 IBM Corporation
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#Portions of this code originally licensed and copyright (c) 2005, 2007
-#IBM Corporation under the BSD license, available at
-#U{http://www.opensource.org/licenses/bsd-license.php}
-
-#authors: Peter Parente, Mark Doffman
-
-from base import Enum as _Enum
-
-#------------------------------------------------------------------------------
-
-class StateType(_Enum):
-        _enum_lookup = {
-                0:'STATE_INVALID',
-                1:'STATE_ACTIVE',
-                2:'STATE_ARMED',
-                3:'STATE_BUSY',
-                4:'STATE_CHECKED',
-                5:'STATE_COLLAPSED',
-                6:'STATE_DEFUNCT',
-                7:'STATE_EDITABLE',
-                8:'STATE_ENABLED',
-                9:'STATE_EXPANDABLE',
-                10:'STATE_EXPANDED',
-                11:'STATE_FOCUSABLE',
-                12:'STATE_FOCUSED',
-                13:'STATE_HAS_TOOLTIP',
-                14:'STATE_HORIZONTAL',
-                15:'STATE_ICONIFIED',
-                16:'STATE_MODAL',
-                17:'STATE_MULTI_LINE',
-                18:'STATE_MULTISELECTABLE',
-                19:'STATE_OPAQUE',
-                20:'STATE_PRESSED',
-                21:'STATE_RESIZABLE',
-                22:'STATE_SELECTABLE',
-                23:'STATE_SELECTED',
-                24:'STATE_SENSITIVE',
-                25:'STATE_SHOWING',
-                26:'STATE_SINGLE_LINE',
-                27:'STATE_STALE',
-                28:'STATE_TRANSIENT',
-                29:'STATE_VERTICAL',
-                30:'STATE_VISIBLE',
-                31:'STATE_MANAGES_DESCENDANTS',
-                32:'STATE_INDETERMINATE',
-                33:'STATE_REQUIRED',
-                34:'STATE_TRUNCATED',
-                35:'STATE_ANIMATED',
-                36:'STATE_INVALID_ENTRY',
-                37:'STATE_SUPPORTS_AUTOCOMPLETION',
-                38:'STATE_SELECTABLE_TEXT',
-                39:'STATE_IS_DEFAULT',
-                40:'STATE_VISITED',
-                41:'STATE_LAST_DEFINED',
-        }
-
-#------------------------------------------------------------------------------
-
-STATE_ACTIVE = StateType(1)
-STATE_ANIMATED = StateType(35)
-STATE_ARMED = StateType(2)
-STATE_BUSY = StateType(3)
-STATE_CHECKED = StateType(4)
-STATE_COLLAPSED = StateType(5)
-STATE_DEFUNCT = StateType(6)
-STATE_EDITABLE = StateType(7)
-STATE_ENABLED = StateType(8)
-STATE_EXPANDABLE = StateType(9)
-STATE_EXPANDED = StateType(10)
-STATE_FOCUSABLE = StateType(11)
-STATE_FOCUSED = StateType(12)
-STATE_HAS_TOOLTIP = StateType(13)
-STATE_HORIZONTAL = StateType(14)
-STATE_ICONIFIED = StateType(15)
-STATE_INDETERMINATE = StateType(32)
-STATE_INVALID = StateType(0)
-STATE_INVALID_ENTRY = StateType(36)
-STATE_IS_DEFAULT = StateType(39)
-STATE_LAST_DEFINED = StateType(41)
-STATE_MANAGES_DESCENDANTS = StateType(31)
-STATE_MODAL = StateType(16)
-STATE_MULTISELECTABLE = StateType(18)
-STATE_MULTI_LINE = StateType(17)
-STATE_OPAQUE = StateType(19)
-STATE_PRESSED = StateType(20)
-STATE_REQUIRED = StateType(33)
-STATE_RESIZABLE = StateType(21)
-STATE_SELECTABLE = StateType(22)
-STATE_SELECTABLE_TEXT = StateType(38)
-STATE_SELECTED = StateType(23)
-STATE_SENSITIVE = StateType(24)
-STATE_SHOWING = StateType(25)
-STATE_SINGLE_LINE = StateType(26)
-STATE_STALE = StateType(27)
-STATE_SUPPORTS_AUTOCOMPLETION = StateType(37)
-STATE_TRANSIENT = StateType(28)
-STATE_TRUNCATED = StateType(34)
-STATE_VERTICAL = StateType(29)
-STATE_VISIBLE = StateType(30)
-STATE_VISITED = StateType(40)
-
-#------------------------------------------------------------------------------
-
-# Build a dictionary mapping state values to names based on the prefix of the enum constants.
-
-STATE_VALUE_TO_NAME = dict(((value, name[6:].lower().replace('_', ' '))
-                            for name, value
-                            in globals().items() 
-                            if name.startswith('STATE_')))
-
-#------------------------------------------------------------------------------
-
-def _marshal_state_set(bitfield):
-        """
-        The D-Bus protocol has a stateset object passed
-        as a 64bit bitfield. The Bits are passed as two 32bit
-        integers.
-
-        This function marshals the D-Bus message into a 
-        StateSet object that corresponds to these states.
-        """
-        (lower, upper) = bitfield
-
-        states = []
-
-        pos = 0
-        while (lower):
-                if (1L)&lower:
-                        states.append(StateType(pos))
-                pos+=1
-                lower >>= 1
-
-        pos = 32
-        while (upper):
-                if (1L)&upper:
-                        states.append(StateType(pos))
-                pos+=1
-                upper >>= 1
-
-        return StateSet(*states)
-
-#------------------------------------------------------------------------------
-
-class StateSet(object):
-        """
-        The StateSet object implements a wrapper around a
-        bitmap of Accessible states.
-
-        The StateSet object is the instantaneous state of
-        the Accessible object and is not updated with its
-        container Accessible. This behaviour is different
-        to the CORBA version of AT-SPI
-        """
-        def __init__(self, *states):
-                """
-                Initializes the state set with the given states.
-
-                @param states: States to add immediately
-                @type states: list
-                """
-                self.states = set()
-                map(self.add, states)
-
-        def contains(self, state):
-                """
-                Checks if this StateSet contains the given state.
-
-                @param state: State to check
-                @type state: Accessibility.StateType
-                @return: True if the set contains the given state
-                @rtype: boolean
-                """
-                return state in self.states
-
-        def add(self, *states):
-                """
-                Adds states to this set.
-
-                @param states: State(s) to add
-                @type states: Accessibility.StateType
-                """
-                for state in states:
-                        self.states.add(state)
-
-        def remove(self, state):
-                """
-                Removes states from this set.
-
-                @param states: State(s) to remove
-                @type states: Accessibility.StateType
-                """
-                self.states.remove(state)
-
-        def equals(self, state_set):
-                """
-                Checks if this StateSet contains exactly the same members as the given
-                StateSet.
-
-                @param state_set: Another set
-                @type state_set: Accessibility.StateSet
-                @return: Are the sets equivalent in terms of their contents?
-                @rtype: boolean
-                """
-                return set(state_set.getStates()) == self.states
-
-        def compare(self, state_set):
-                """
-                Finds the symmetric difference between this state set andthe one provided,
-                and returns it as a new StateSet.
-
-                @note: This does not use L{_StateSetImpl.compare} which cannot be
-                implemented at this time
-                @param state_set: Set to compare against
-                @type state_set: Accessibility.StateSet
-                @return: Proxy for the new set
-                @rtype: L{StateSet}
-                """
-                a = set(self.getStates())
-                b = set(state_set.getStates())
-                diff = a.symmetric_difference(b)
-                return StateSet(*diff)
-
-        def isEmpty(self):
-                """
-                Checks if this StateSet is empty.
-
-                @return: Is it empty?
-                @rtype: boolean
-                """
-                return len(self.states) == 0
-
-        def getStates(self):
-                """
-                Gets the sequence of all states in this set.
-
-                @return: List of states
-                @rtype: list
-                """
-                return list(self.states)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/table.py b/pyatspi/table.py
deleted file mode 100644 (file)
index dd8879f..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-import dbus
-
-__all__ = [
-           "Table",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Table(Accessible):
-        """
-        An interface used by containers whose contained data is arranged
-        in a "tabular" (i.e. row-column) fashion. Tables may resemble
-        a two-dimensional grid, as in a spreadsheet, or may feature objects
-        which span multiple rows and/or columns, but whose bounds are
-        aligned on a row/column matrix. Thus, the Table interface may
-        be used to represent "spreadsheets" as well as "frames".
-        Objects within tables are children of the Table instance, and
-        they may be referenced either via a child index or via a row/column
-        pair. Their role may be ROLE_TABLE_CELL, but table 'cells' may
-        have other roles as well. These 'cells' may implement other interfaces,
-        such as Text, Action, Image, and Component, and should do so
-        as appropriate to their onscreen representation and/or behavior.
-        """
-
-        def addColumnSelection(self, column):
-                """
-                Select the specified column, adding it to the current column
-                selection, if the table's selection model permits it.
-                @param : column
-                @return True if the specified column was successfully selected,
-                False if not.
-                """
-                func = self.get_dbus_method("addColumnSelection", dbus_interface=ATSPI_TABLE)
-                return func(column)
-
-        def addRowSelection(self, row):
-                """
-                Select the specified row, adding it to the current row selection,
-                if the table's selection model permits it.
-                @param : row
-                @return True if the specified row was successfully selected,
-                False if not.
-                """
-                func = self.get_dbus_method("addRowSelection", dbus_interface=ATSPI_TABLE)
-                return func(row)
-
-        def getAccessibleAt(self, row, column):
-                """
-                Get the table cell at the specified row and column indices. 
-                @param : row
-                the specified table row, zero-indexed. 
-                @param : column
-                the specified table column, zero-indexed.
-                @return an Accessible object representing the specified table
-                cell.
-                """
-                func = self.get_dbus_method("getAccessibleAt", dbus_interface=ATSPI_TABLE)
-                return self._cache.create_accessible(self._app_name, func(row, column),
-                                                     interfaces.ATSPI_ACCESSIBLE)
-
-        def getColumnAtIndex(self, index):
-                """
-                Get the table column index occupied by the child at a particular
-                1-D child index.
-                @param : index
-                the specified child index, zero-indexed.
-                @return a long integer indicating the first column spanned by
-                the child of a table, at the specified 1-D (zero-offset) index.
-                """
-                func = self.get_dbus_method("getColumnAtIndex", dbus_interface=ATSPI_TABLE)
-                return func(index)
-
-        def getColumnDescription(self, column):
-                """
-                Get a text description of a particular table column. This differs
-                from AccessibleTable_getColumnHeader, which returns an Accessible.
-                @param : column
-                the specified table column, zero-indexed.
-                @return a UTF-8 string describing the specified table column,
-                if available.
-                """
-                func = self.get_dbus_method("getColumnDescription", dbus_interface=ATSPI_TABLE)
-                return func(column)
-
-        def getColumnExtentAt(self, row, column):
-                """
-                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).
-                @param : row
-                the specified table row, zero-indexed. 
-                @param : column
-                the specified table column, zero-indexed.
-                @return a long integer indicating the number of columns spanned
-                by the specified cell.
-                """
-                func = self.get_dbus_method("getColumnExtentAt", dbus_interface=ATSPI_TABLE)
-                return func(row, column)
-
-        def getColumnHeader(self, index):
-                """
-                Get the header associated with a table column, if available,
-                as an instance of Accessible. This differs from getColumnDescription,
-                which returns a string.
-                @param : column
-                the specified table column, zero-indexed.
-                @return an Accessible representatin of the specified table column,
-                if available.
-                """
-                func = self.get_dbus_method("getColumnHeader", dbus_interface=ATSPI_TABLE)
-                return self._cache.create_accessible(self._app_name, func(index),
-                                                     interfaces.ATSPI_ACCESSIBLE)
-
-        def getIndexAt(self, row, column):
-                """
-                Get the 1-D child index corresponding to the specified 2-D row
-                and column indices. 
-                @param : row
-                the specified table row, zero-indexed. 
-                @param : column
-                the specified table column, zero-indexed.
-                @return a long integer which serves as the index of a specified
-                cell in the table, in a form usable by Accessible::getChildAtIndex.
-                """
-                func = self.get_dbus_method("getIndexAt", dbus_interface=ATSPI_TABLE)
-                return func(row, column)
-
-        def getRowAtIndex(self, index):
-                """
-                Get the table row index occupied by the child at a particular
-                1-D child index.
-                @param : index
-                the specified child index, zero-indexed.
-                @return a long integer indicating the first row spanned by the
-                child of a table, at the specified 1-D (zero-offset) index.
-                """
-                func = self.get_dbus_method("getRowAtIndex", dbus_interface=ATSPI_TABLE)
-                return func(index)
-
-        def getRowColumnExtentsAtIndex(self, index):
-                """
-                Given a child index, determine the row and column indices and
-                extents, and whether the cell is currently selected. If the child
-                at index is not a cell (for instance, if it is a summary, caption,
-                etc.), False is returned.
-                @param : index
-                the index of the Table child whose row/column extents are requested.
-                @param : row
-                back-filled with the first table row associated with the cell
-                with child index index. 
-                @param : col
-                back-filled with the first table column associated with the cell
-                with child index index. 
-                @param : row_extents
-                back-filled with the number of table rows across which child
-                i extends. 
-                @param : col_extents
-                back-filled with the number of table columns across which child
-                i extends. 
-                @param : is_selected
-                a boolean which is back-filled with True if the child at index
-                i corresponds to a selected table cell, False otherwise.
-                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 is_selected will contain 2, 5, 1, 2, and True,
-                respectively.
-                @return True if the index is associated with a valid table cell,
-                False if the index does not correspond to a cell. If False is
-                returned, the values of the out parameters are undefined.
-                """
-                func = self.get_dbus_method("getRowColumnExtentsAtIndex", dbus_interface=ATSPI_TABLE)
-                return func(index)
-
-        def getRowDescription(self, index):
-                """
-                Get a text description of a particular table row. This differs
-                from AccessibleTable_getRowHeader, which returns an Accessible.
-                @param : row
-                the specified table row, zero-indexed.
-                @return a UTF-8 string describing the specified table row, if
-                available.
-                """
-                func = self.get_dbus_method("getRowDescription", dbus_interface=ATSPI_TABLE)
-                return func(index)
-
-        def getRowExtentAt(self, row, column):
-                """
-                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).
-                @param : row
-                the specified table row, zero-indexed. 
-                @param : column
-                the specified table column, zero-indexed.
-                @return a long integer indicating the number of rows spanned
-                by the specified cell.
-                """
-                func = self.get_dbus_method("getRowExtentAt", dbus_interface=ATSPI_TABLE)
-                return func(row, column)
-
-        def getRowHeader(self, row):
-                """
-                Get the header associated with a table row, if available. This
-                differs from getRowDescription, which returns a string.
-                @param : row
-                the specified table row, zero-indexed.
-                @return an Accessible representatin of the specified table row,
-                if available.
-                """
-                func = self.get_dbus_method("getRowHeader", dbus_interface=ATSPI_TABLE)
-                return self._cache.create_accessible(self._app_name, func(row),
-                                                     interfaces.ATSPI_ACCESSIBLE)
-
-        def getSelectedColumns(self):
-                """
-                Obtain the indices of all columns which are currently selected.
-                @return a sequence of integers comprising the indices of columns
-                currently selected.
-                """
-                func = self.get_dbus_method("getSelectedColumns", dbus_interface=ATSPI_TABLE)
-                return func()
-
-        def getSelectedRows(self):
-                """
-                Obtain the indices of all rows which are currently selected.
-                @return a sequence of integers comprising the indices of rows
-                currently selected.
-                """
-                func = self.get_dbus_method("getSelectedRows", dbus_interface=ATSPI_TABLE)
-                return func()
-
-        def isColumnSelected(self, column):
-                """
-                Determine whether a table column is selected. 
-                @param : column
-                the column being queried.
-                @return True if the specified column is currently selected, False
-                if not.
-                """
-                func = self.get_dbus_method("isColumnSelected", dbus_interface=ATSPI_TABLE)
-                return func(column)
-
-        def isRowSelected(self, row):
-                """
-                Determine whether a table row is selected. 
-                @param : row
-                the row being queried.
-                @return True if the specified row is currently selected, False
-                if not.
-                """
-                func = self.get_dbus_method("isRowSelected", dbus_interface=ATSPI_TABLE)
-                return func(row)
-
-        def isSelected(self, row, column):
-                """
-                Determine whether the cell at a specific row and column is selected.
-                @param : row
-                a row occupied by the cell whose state is being queried. 
-                @param : column
-                a column occupied by the cell whose state is being queried.
-                @return True if the specified cell is currently selected, False
-                if not.
-                """
-                func = self.get_dbus_method("isSelected", dbus_interface=ATSPI_TABLE)
-                return func(row, column)
-
-        def removeColumnSelection(self, column):
-                """
-                Remove the specified column from current column selection, if
-                the table's selection model permits it.
-                @param : column
-                @return True if the specified column was successfully de-selected,
-                False if not.
-                """
-                func = self.get_dbus_method("removeColumnSelection", dbus_interface=ATSPI_TABLE)
-                return func(column)
-
-        def removeRowSelection(self, row):
-                """
-                Remove the specified row from current row selection, if the table's
-                selection model permits it.
-                @param : row
-                @return True if the specified row was successfully de-selected,
-                False if not.
-                """
-                func = self.get_dbus_method("removeRowSelection", dbus_interface=ATSPI_TABLE)
-                return func(row)
-
-        def get_caption(self):
-                accessible = self._pgetter(self._dbus_interface, "caption")
-                return self._cache.create_accessible(self._app_name, accessible,
-                                                     interfaces.ATSPI_ACCESSIBLE)
-        _captionDoc = \
-                """
-                An Accessible which represents of a caption for a Table.
-                """
-        caption = property(fget=get_caption, doc=_captionDoc)
-
-        def get_nColumns(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "nColumns"))
-        _nColumnsDoc = \
-                """
-                The total number of columns in this table (including empty columns),
-                exclusive of columns which are programmatically hidden. Columns
-                which are scrolled out of view or clipped by the current viewport
-                are included.
-                """
-        nColumns = property(fget=get_nColumns, doc=_nColumnsDoc)
-
-        def get_nRows(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "nRows"))
-        _nRowsDoc = \
-                """
-                The total number of rows in this table (including empty rows),
-                exclusive of any rows which are programmatically hidden. Rows
-                which are merely scrolled out of view are included.
-                """
-        nRows = property(fget=get_nRows, doc=_nRowsDoc)
-
-        def get_nSelectedColumns(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "nSelectedColumns"))
-        _nSelectedColumnsDoc = \
-                """
-                The number of columns currently selected. A selected column is
-                one in which all included cells are selected.
-                """
-        nSelectedColumns = property(fget=get_nSelectedColumns, doc=_nSelectedColumnsDoc)
-
-        def get_nSelectedRows(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "nSelectedRows"))
-        _nSelectedRowsDoc = \
-                """
-                The number of rows currently selected. A selected row is one
-                in which all included cells are selected.
-                """
-        nSelectedRows = property(fget=get_nSelectedRows, doc=_nSelectedRowsDoc)
-
-        def get_summary(self):
-                accessible = self._pgetter(self._dbus_interface, "summary")
-                return self._cache.create_accessible(self._app_name, accessible,
-                                                     interfaces.ATSPI_ACCESSIBLE)
-        _summaryDoc = \
-                """
-                An accessible object which summarizes the contents of a Table.
-                This object is frequently itself a Table instance, albeit a simplified
-                one.
-                """
-        summary = property(fget=get_summary, doc=_summaryDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_TABLE, Table)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/text.py b/pyatspi/text.py
deleted file mode 100644 (file)
index 7b55ef7..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import dbus
-
-from interfaces import *
-from accessible import Accessible
-from base import Enum
-from factory import accessible_factory
-
-from dbus.types import UInt32
-
-__all__ = [
-           "Text",
-           "TEXT_BOUNDARY_TYPE",
-           "TEXT_BOUNDARY_CHAR",
-           "TEXT_BOUNDARY_WORD_START",
-           "TEXT_BOUNDARY_WORD_END",
-           "TEXT_BOUNDARY_SENTENCE_START",
-           "TEXT_BOUNDARY_SENTENCE_END",
-           "TEXT_BOUNDARY_LINE_START",
-           "TEXT_BOUNDARY_LINE_END",
-           "TEXT_CLIP_TYPE",
-           "TEXT_CLIP_NONE",
-           "TEXT_CLIP_MIN",
-           "TEXT_CLIP_MAX",
-           "TEXT_CLIP_BOTH",
-          ]
-
-#------------------------------------------------------------------------------
-
-class TEXT_BOUNDARY_TYPE(Enum):
-        _enum_lookup = {
-                0:'TEXT_BOUNDARY_CHAR',
-                1:'TEXT_BOUNDARY_WORD_START',
-                2:'TEXT_BOUNDARY_WORD_END',
-                3:'TEXT_BOUNDARY_SENTENCE_START',
-                4:'TEXT_BOUNDARY_SENTENCE_END',
-                5:'TEXT_BOUNDARY_LINE_START',
-                6:'TEXT_BOUNDARY_LINE_END',
-        }
-
-TEXT_BOUNDARY_CHAR = TEXT_BOUNDARY_TYPE(0)
-TEXT_BOUNDARY_LINE_END = TEXT_BOUNDARY_TYPE(6)
-TEXT_BOUNDARY_LINE_START = TEXT_BOUNDARY_TYPE(5)
-TEXT_BOUNDARY_SENTENCE_END = TEXT_BOUNDARY_TYPE(4)
-TEXT_BOUNDARY_SENTENCE_START = TEXT_BOUNDARY_TYPE(3)
-TEXT_BOUNDARY_WORD_END = TEXT_BOUNDARY_TYPE(2)
-TEXT_BOUNDARY_WORD_START = TEXT_BOUNDARY_TYPE(1)
-
-#------------------------------------------------------------------------------
-
-class TEXT_CLIP_TYPE(Enum):
-        _enum_lookup = {
-                0:'TEXT_CLIP_NONE',
-                1:'TEXT_CLIP_MIN',
-                2:'TEXT_CLIP_MAX',
-                3:'TEXT_CLIP_BOTH',
-        }
-
-TEXT_CLIP_BOTH = TEXT_CLIP_TYPE(3)
-TEXT_CLIP_MAX = TEXT_CLIP_TYPE(2)
-TEXT_CLIP_MIN = TEXT_CLIP_TYPE(1)
-TEXT_CLIP_NONE = TEXT_CLIP_TYPE(0)
-
-#------------------------------------------------------------------------------
-
-class Text(Accessible):
-        """
-        The text interface should be implemented by objects which place
-        textual information onscreen as character strings or glyphs.
-        The text interface allows access to textual content, including
-        display attributes and semantic hints associated with runs of
-        text, and access to bounding box information for glyphs and substrings.
-        It also allows portions of textual content to be selected, if
-        the object's StateSet includes STATE_SELECTABLE_TEXT.
-        In some cases a Text object may have, as its content, an empty
-        string. In particular this can occur in the case of Hypertext
-        objects which do not display explicitly textual information onscreen,
-        as Hypertext is derived from the Text interface. 
-        Typographic and semantic attributes of onscreen textual content,
-        for instance typeface, weight, language, and such qualities as
-        'emphasis' or 'blockquote', are represented as text attributes.
-        Contiguous sequences of characters over which these attributes
-        are unchanged are referred to as "attribute runs", and are available
-        via Text::getAttributeRun. Where possible, implementing clients
-        will report textual attributes which are the same over the entire
-        text object, for instance those inherited from a default or document-scope
-        style, via getDefaultAttributes instead of reporting them explicitly
-        for each character. Therefore, for any span of text, the attributes
-        in effect are the union of the set returned by Text::getDefaultAttributes,
-        and the set returned at a particular character offset via Text::getAttributeRun.
-        """
-
-        def addSelection(self, index):
-                """
-                The result of calling addSelection on objects which already have
-                one selection present, and which do not include STATE_MULTISELECTABLE,
-                is undefined, other than the return value. 
-                @return True of the selection was successfully added, False otherwise.
-                Selection may fail if the object does not support selection of
-                text (see STATE_SELECTABLE_TEXT), if the object does not support
-                multiple selections and a selection is already defined, or for
-                other reasons (for instance if the user does not have permission
-                to copy the text into the relevant selection buffer).
-                """
-                func = self.get_dbus_method("addSelection", dbus_interface=ATSPI_TEXT)
-                return func(index)
-
-        def getAttributeRun(self, offset):
-                """
-                Query a particular text object for the text attributes defined
-                at a given offset, obtaining the start and end of the "attribute
-                run" over which these attributes are currently invariant. Text
-                attributes are those presentational, typographic, or semantic
-                attributes or qualitites which apply to a range of text specifyable
-                by starting and ending offsets. Attributes relevant to localization
-                should be provided in accordance with the w3c "Internationalization
-                and Localization Markup Requirements", http://www.w3.org/TR/2005/WD-itsreq-20051122/
-                Other text attributes should choose their names and value semantics
-                in accordance with relevant standards such as CSS level 2 (http://www.w3.org/TR/1998/REC-CSS2-19980512),
-                XHTML 1.0 (http://www.w3.org/TR/2002/REC-xhtml1-20020801), and
-                WICD (http://www.w3.org/TR/2005/WD-WICD-20051121/). Those attributes
-                from the aforementioned specifications and recommendations which
-                do not concern typographic, presentational, or semantic aspects
-                of text should be exposed via the more general Accessible::getAttributes()
-                API (if at all).
-                For example, CSS attributes which should be exposed on text (either
-                as default attributes, or as explicitly-set attributes when non-default
-                values are specified in the content view) include the Font attributes
-                (i.e. "css2:font-weight", "css2:font-style"), the "css2:color"
-                and "css2:background-color" attributes, and "css2:text-decoration"
-                attribute.
-                If includeDefaults is TRUE, then this AttributeSet should include
-                the default attributes as well as those which are explicitly
-                assigned to the attribute run in question. startOffset and endOffset
-                will be back-filled to indicate the start and end of the attribute
-                run which contains 'offset' - an attribute run is a contiguous
-                section of text whose attributes are homogeneous. 
-                @param : offset
-                the offset of the character whose attributes will be reported.
-                @param : startOffset
-                backfilled with the starting offset of the character range over
-                which all text attributes match those of offset, i.e. the start
-                of the homogeneous attribute run including offset. 
-                @param : endOffset
-                backfilled with the offset of the first character past the character
-                range over which all text attributes match those of offset, i.e.
-                the character immediately after the homogeneous attribute run
-                including offset. 
-                @param : includeDefaults
-                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. See also
-                Text::getDefaultAttributes.
-                @return the AttributeSet defined at offset, optionally including
-                the 'default' attributes.
-                """
-                func = self.get_dbus_method("getAttributeRun", dbus_interface=ATSPI_TEXT)
-                [attrs, startOffset, endOffset] = func(offset, includeDefaults)
-                dict = [key + ':' + value for key, value in attrs.values()]
-                return [dict, startOffset, endOffset]
-
-        def getAttributeValue(self, offset, attributeName):
-                """
-                Get the string value of a named attribute at a given offset,
-                if defined. 
-                @param : offset
-                the offset of the character for which the attribute run is to
-                be obtained. 
-                @param : attributeName
-                the name of the attribute for which the value is to be returned,
-                if defined. 
-                @param : startOffset
-                back-filled with the offset of the first character in the attribute
-                run containing the character at offset. 
-                @param : endOffset
-                back-filled with the offset of the first character past the end
-                of the attribute run containing the character at offset. 
-                @param : defined
-                back-filled with True if the attributeName has a defined value
-                at offset, False otherwise. 
-                @return the value of attribute (name-value pair) corresponding
-                to "name", if defined.
-                """
-                func = self.get_dbus_method("getAttributeValue", dbus_interface=ATSPI_TEXT)
-                return func(offset, attributeName)
-
-        def getAttributes(self, offset):
-                """
-                getAttributes is deprecated in favor of getAttributeRun. 
-                @return the attributes at offset, as a semicolon-delimited set
-                of colon-delimited name-value pairs.
-                """
-                func = self.get_dbus_method("getAttributes", dbus_interface=ATSPI_TEXT)
-                [attrs, startOffset, endOffset] = func(dbus.Int32(offset))
-                dict = [key + ':' + value for key, value in attrs]
-                return [dict, startOffset, endOffset]
-
-        def getBoundedRanges(self, x, y, width, height, coordType, xClipType, yClipType):
-                #TODO Return a list of range structures
-                """
-                Return the text content within a bounding box, as a list of Range
-                structures. Depending on the TEXT_CLIP_TYPE parameters, glyphs
-                which are clipped by the bounding box (i.e. which lie partially
-                inside and partially outside it) may or may not be included in
-                the ranges returned. 
-                @param : x
-                the minimum x ( i.e. leftmost) coordinate of the bounding box.
-                @param : y
-                the minimum y coordinate of the bounding box. 
-                @param : width
-                the horizontal size of the bounding box. The rightmost bound
-                of the bounding box is (x + width); 
-                @param : height
-                the vertical size of the bounding box. The maximum y value of
-                the bounding box is (y + height); 
-                @param : coordType
-                If 0, the above coordinates are interpreted as pixels relative
-                to corner of the screen; if 1, the coordinates are interpreted
-                as pixels relative to the corner of the containing toplevel window.
-                @param : xClipType
-                determines whether text which intersects the bounding box in
-                the x direction is included. 
-                @param : yClipType
-                determines whether text which intersects the bounding box in
-                the y direction is included.
-                """
-                func = self.get_dbus_method("getBoundedRanges", dbus_interface=ATSPI_TEXT)
-                return func(x, y, width, height, UInt32(coordType), xClipType, yClipType)
-
-        def getCharacterAtOffset(self, offset):
-                """
-                @param : offset
-                position
-                @return an unsigned long integer whose value corresponds to the
-                UCS-4 representation of the character at the specified text offset,
-                or 0 if offset is out of range.
-                """
-                func = self.get_dbus_method("getCharacterAtOffset", dbus_interface=ATSPI_TEXT)
-                return func(offset)
-
-        def getCharacterExtents(self, offset, x, y, width, height, coordType):
-                """
-                Obtain a the bounding box, as x, y, width, and height, of the
-                character or glyph at a particular character offset in this object's
-                text content. The coordinate system in which the results are
-                reported is specified by coordType. If an onscreen glyph corresponds
-                to multiple character offsets, for instance if the glyph is a
-                ligature, the bounding box reported will include the entire glyph
-                and therefore may apply to more than one character offset. 
-                @param : offset
-                the character offset of the character or glyph being queried.
-                @param : x
-                the minimum horizontal coordinate of the bounding box of the
-                glyph representing the character at offset. 
-                @param : y
-                the minimum vertical coordinate of the bounding box of the glyph
-                representing the character at offset. 
-                @param : width
-                the horizontal extent of the bounding box of the glyph representing
-                the character at offset. 
-                @param : height
-                the vertical extent of the bounding box of the glyph representing
-                the character at offset. 
-                @param : coordType
-                If 0, the results will be reported in screen coordinates, i.e.
-                in pixels relative to the upper-left corner of the screen, with
-                the x axis pointing right and the y axis pointing down. If 1,
-                the results will be reported relative to the containing toplevel
-                window, with the x axis pointing right and the y axis pointing
-                down.
-                """
-                func = self.get_dbus_method("getCharacterExtents", dbus_interface=ATSPI_TEXT)
-                return func(offset, x, y, width, height, UInt32(coordType))
-
-        def getDefaultAttributeSet(self):
-                """
-                Return 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.
-                """
-                func = self.get_dbus_method("getDefaultAttributeSet", dbus_interface=ATSPI_TEXT)
-                return [key + ':' + value for key, value in func().values()]
-
-        def getDefaultAttributes(self):
-                """
-                Deprecated in favor of getDefaultAttributeSet. 
-                @return the attributes which apply to the entire text content,
-                but which were not explicitly specified by the content creator.
-                """
-                func = self.get_dbus_method("getDefaultAttributes", dbus_interface=ATSPI_TEXT)
-                return ';'.join([key + ':' + value for key, value in func().iteritems()])
-
-        def getNSelections(self):
-                """
-                Obtain the number of separate, contiguous selections in the current
-                Text object. Text objects which do not implement selection of
-                discontiguous text regions will always return '0' or '1'. Note
-                that "contiguous" is defined by continuity of the offsets, i.e.
-                a text 'selection' is defined by a start/end offset pair. In
-                the case of bidirectional text, this means that a continguous
-                selection may appear visually discontiguous, and vice-versa.
-                @return the number of contiguous selections in the current Text
-                object.
-                """
-                func = self.get_dbus_method("getNSelections", dbus_interface=ATSPI_TEXT)
-                return func()
-
-        def getOffsetAtPoint(self, x, y, coordType):
-                """
-                Get the offset of the character at a given onscreen coordinate.
-                The coordinate system used to interpret x and y is determined
-                by parameter coordType. 
-                @param : x
-                @param : y
-                @param : coordType
-                if 0, the input coordinates are interpreted relative to the entire
-                screen, if 1, they are relative to the toplevel window containing
-                this Text object. 
-                @return the text offset (as an offset into the character array)
-                of the glyph whose onscreen bounds contain the point x,y, or
-                -1 if the point is outside the bounds of any glyph.
-                """
-                func = self.get_dbus_method("getOffsetAtPoint", dbus_interface=ATSPI_TEXT)
-                return func(x, y, UInt32(coordType))
-
-        def getRangeExtents(self, startOffset, endOffset, coordType):
-                """
-                Obtain the bounding box which entirely contains a given text
-                range. Negative values may be returned for the bounding box parameters
-                in the event that all or part of the text range is offscreen
-                or not mapped to the screen. 
-                @param : startOffset
-                the offset of the first character in the specified range. 
-                @param : endOffset
-                the offset of the character immediately after the last character
-                in the specified range. 
-                @param : x
-                an integer parameter which is back-filled with the minimum horizontal
-                coordinate of the resulting bounding box. 
-                @param : y
-                an integer parameter which is back-filled with the minimum vertical
-                coordinate of the resulting bounding box. 
-                @param : width
-                an integer parameter which is back-filled with the horizontal
-                extent of the bounding box. 
-                @param : height
-                an integer parameter which is back-filled with the vertical extent
-                of the bounding box. 
-                @param : coordType
-                If 0, the above coordinates are reported in pixels relative to
-                corner of the screen; if 1, the coordinates are reported relative
-                to the corner of the containing toplevel window.
-                """
-                func = self.get_dbus_method("getRangeExtents", dbus_interface=ATSPI_TEXT)
-                return func(startOffset, endOffset, UInt32(coordType))
-
-        def getSelection(self, selectionNum):
-                """
-                The result of calling getSelection with an out-of-range selectionNum
-                (i.e. for a selection which does not exist) is not strictly defined,
-                but should set endOffset equal to startOffset.
-                @param : selectionNum
-                indicates which of a set of non-contiguous selections to modify.
-                @param : startOffset
-                back-filled with the starting offset of the resulting substring,
-                if one exists. 
-                @param : endOffset
-                back-filled with the offset of the character immediately following
-                the resulting substring, if one exists. 
-                """
-                func = self.get_dbus_method("getSelection", dbus_interface=ATSPI_TEXT)
-                return func(selectionNum)
-
-        def getText(self, startOffset, endOffset):
-                """
-                Obtain all or part of the onscreen textual content of a Text
-                object. If endOffset is specified as "-1", then this method will
-                return the entire onscreen textual contents of the Text object.
-                @param : startOffset
-                back-filled with the starting offset of the resulting substring,
-                if one exists. 
-                @param : endOffset
-                back-filled with the offset of the character immediately following
-                the resulting substring, if one exists. 
-                @return the textual content of the current Text object beginning
-                startOffset (inclusive) up to but not including the character
-                at endOffset.
-                """
-                func = self.get_dbus_method("getText", dbus_interface=ATSPI_TEXT)
-                if not endOffset:
-                        endOffset = -1
-                return func(dbus.Int32(startOffset), dbus.Int32(endOffset))
-
-        def getTextAfterOffset(self, offset, type):
-                """
-                Obtain a subset of the text content of an object which entirely
-                follows offset, delimited by character, word, line, or sentence
-                boundaries as specified by type. The starting and ending offsets
-                of the resulting substring are returned in startOffset and endOffset.
-                By definition, if such a substring exists, startOffset must be
-                greater than offset. 
-                @param : offset
-                the offset from which the substring search begins, and which
-                must lie before the returned substring. 
-                @param : type
-                the text-boundary delimiter which determines whether the returned
-                text constitures a character, word, line, or sentence (and possibly
-                attendant whitespace), and whether the start or ending of such
-                a substring forms the boundary condition. 
-                @param : startOffset
-                back-filled with the starting offset of the resulting substring,
-                if one exists. 
-                @param : endOffset
-                back-filled with the offset of the character immediately following
-                the resulting substring, if one exists. 
-                @return a string which is a substring of the text content of
-                the object, delimited by the specified boundary condition.
-                """
-                func = self.get_dbus_method("getTextAfterOffset", dbus_interface=ATSPI_TEXT)
-                return func(offset, type)
-
-        def getTextAtOffset(self, offset, type):
-                """
-                Obtain a subset of the text content of an object which includes
-                the specified offset, delimited by character, word, line, or
-                sentence boundaries as specified by type. The starting and ending
-                offsets of the resulting substring are returned in startOffset
-                and endOffset. 
-                @param : offset
-                the offset from which the substring search begins, and which
-                must lie within the returned substring. 
-                @param : type
-                the text-boundary delimiter which determines whether the returned
-                text constitures a character, word, line, or sentence (and possibly
-                attendant whitespace), and whether the start or ending of such
-                a substring forms the boundary condition. 
-                @param : startOffset
-                back-filled with the starting offset of the resulting substring,
-                if one exists. 
-                @param : endOffset
-                back-filled with the offset of the character immediately following
-                the resulting substring, if one exists. 
-                @return a string which is a substring of the text content of
-                the object, delimited by the specified boundary condition.
-                """
-                func = self.get_dbus_method("getTextAtOffset", dbus_interface=ATSPI_TEXT)
-                return func(offset, type)
-
-        def getTextBeforeOffset(self, offset, type):
-                """
-                Obtain a subset of the text content of an object which entirely
-                precedes offset, delimited by character, word, line, or sentence
-                boundaries as specified by type. The starting and ending offsets
-                of the resulting substring are returned in startOffset and endOffset.
-                By definition, if such a substring exists, endOffset is less
-                than or equal to offset. 
-                @param : offset
-                the offset from which the substring search begins. 
-                @param : type
-                the text-boundary delimiter which determines whether the returned
-                text constitures a character, word, line, or sentence (and possibly
-                attendant whitespace), and whether the start or ending of such
-                a substring forms the boundary condition. 
-                @param : startOffset
-                back-filled with the starting offset of the resulting substring,
-                if one exists. 
-                @param : endOffset
-                back-filled with the offset of the character immediately following
-                the resulting substring, if one exists. 
-                @return a string which is a substring of the text content of
-                the object, delimited by the specified boundary condition.
-                """
-                func = self.get_dbus_method("getTextBeforeOffset", dbus_interface=ATSPI_TEXT)
-                return func(offset, type)
-
-        def removeSelection(self, selectionNum):
-                """
-                Deselect the text contained in the specified selectionNum, if
-                such a selection exists, otherwise do nothing. Removal of a non-existant
-                selectionNum has no effect. 
-                @param : selectionNum
-                indicates which of a set of non-contiguous selections to modify.
-                @return True if the selection was successfully removed, False
-                otherwise.
-                """
-                func = self.get_dbus_method("removeSelection", dbus_interface=ATSPI_TEXT)
-                return func(selectionNum)
-
-        def setCaretOffset(self, offset):
-                """
-                Programmatically move the text caret (visible or virtual, as
-                above) to a given position. 
-                @param : offset
-                a long int indicating the desired character offset. Not all implementations
-                of Text will honor setCaretOffset requests, so the return value
-                below should be checked by the client. 
-                @return TRUE if the request was carried out, or FALSE if the
-                caret could not be moved to the requested position.
-                """
-                func = self.get_dbus_method("setCaretOffset", dbus_interface=ATSPI_TEXT)
-                return func(offset)
-
-        def setSelection(self, selectionNum, startOffset, endOffset):
-                """
-                Modify an existing selection's start or ending offset.
-                Calling setSelection for a selectionNum that is not already defined
-                has no effect. The result of calling setSelection with a selectionNum
-                greater than 0 for objects that do not include STATE_MULTISELECTABLE
-                is undefined. 
-                @param : selectionNum
-                indicates which of a set of non-contiguous selections to modify.
-                @param : startOffset
-                the new starting offset for the selection 
-                @param : endOffset
-                the new ending offset for the selection 
-                @return True if the selection corresponding to selectionNum is
-                successfully modified, False otherwise.
-                """
-                func = self.get_dbus_method("setSelection", dbus_interface=ATSPI_TEXT)
-                return func(selectionNum, startOffset, endOffset)
-
-        def get_caretOffset(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "caretOffset"))
-        _caretOffsetDoc = \
-                """
-                The current offset of the text caret in the Text object. This
-                caret may be virtual, e.g. non-visual and notional-only, but
-                if an onscreen representation of the caret position is visible,
-                it will correspond to this offset. The caret offset is given
-                as a character offset, as opposed to a byte offset into a text
-                buffer or a column offset.
-                """
-        caretOffset = property(fget=get_caretOffset, doc=_caretOffsetDoc)
-
-        def get_characterCount(self):
-                return dbus.Int32(self._pgetter(self._dbus_interface, "characterCount"))
-        _characterCountDoc = \
-                """
-                The total current number of characters in the Text object, including
-                whitespace and non-spacing characters.
-                """
-        characterCount = property(fget=get_characterCount, doc=_characterCountDoc)
-
-        class Range(list):
-                def __new__(cls, startOffset, endOffset, content, data):
-                        list.__new__(cls, (startOffset, endOffset, content, data))
-                def __init__(self, startOffset, endOffset, content, data):
-                        list.__init__(self, (startOffset, endOffset, content, data))
-
-                def _get_startOffset(self):
-                        return self[0]
-                def _set_startOffset(self, val):
-                        self[0] = val
-                startOffset = property(fget=_get_startOffset, fset=_set_startOffset)
-                def _get_endOffset(self):
-                        return self[1]
-                def _set_endOffset(self, val):
-                        self[1] = val
-                endOffset = property(fget=_get_endOffset, fset=_set_endOffset)
-                def _get_content(self):
-                        return self[2]
-                def _set_content(self, val):
-                        self[2] = val
-                content = property(fget=_get_content, fset=_set_content)
-                def _get_data(self):
-                        return self[3]
-                def _set_data(self, val):
-                        self[3] = val
-                data = property(fget=_get_data, fset=_set_data)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_TEXT, Text)
-
-#END----------------------------------------------------------------------------
diff --git a/pyatspi/utils.py b/pyatspi/utils.py
deleted file mode 100644 (file)
index 61cad1e..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-#copyright: Copyright (c) 2005, 2007 IBM Corporation
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#Portions of this code originally licensed and copyright (c) 2005, 2007
-#IBM Corporation under the BSD license, available at
-#U{http://www.opensource.org/licenses/bsd-license.php}
-
-#authors: Peter Parente, Mark Doffman
-
-import relation
-import state
-import registry
-
-__all__ = [
-                "setCacheLevel",
-                "getCacheLevel",
-                "clearCache",
-                "printCache",
-                "getInterfaceIID",
-                "getInterfaceName",
-                "listInterfaces",
-                "stringToConst",
-                "stateToString",
-                "relationToString",
-                "allModifiers",
-                "findDescendant",
-                "findAllDescendants",
-                "findAncestor",
-                "getPath",
-         ]
-
-def setCacheLevel(level):
-        pass
-
-def getCacheLevel():
-        return None
-
-def clearCache():
-        pass
-
-def printCache():
-        print "Print cache function is deprecated";
-
-def getInterfaceIID(obj):
-        """
-        Gets the ID of an interface class or object in string format for use in
-        queryInterface.
-
-        @param obj: Class representing an AT-SPI interface or instance
-        @type obj: object
-        @return: IID for the interface
-        @rtype: string
-        @raise AttributeError: When the parameter does not provide typecode info
-
-        WARNING!! DEPRECATED!!
-
-        In current D-Bus version of pyatspi this simply returns a null string.
-        """
-        return ""
-
-def getInterfaceName(obj):
-        """
-        Gets the human readable name of an interface class or object in string
-        format.
-
-        @param obj: Class representing an AT-SPI interface or instance
-        @type obj: class
-        @return: Name of the interface
-        @rtype: string
-        @raise AttributeError: When the parameter does not provide typecode info
-        """
-        return obj._dbus_interface.lstrip("org.freedesktop.atspi.")
-
-def listInterfaces(obj):
-        """
-        Gets a list of the names of all interfaces supported by this object. The
-        names are the short-hand interface names like "Accessible" and "Component",
-        not the full interface identifiers.
-
-        @param obj: Arbitrary object to query for all accessibility related
-        interfaces. Must provide a queryInterface method.
-        @type obj: object
-        @return: Set of supported interface names
-        @rtype: set
-        @raise AttributeError: If the object provide does not implement
-        queryInterface
-        """
-        return [itf.lstrip("org.freedesktop.atspi.") for itf in obj.interfaces]
-
-def stringToConst(prefix, suffix):
-        """
-        Maps a string name to an AT-SPI constant. The rules for the mapping are as 
-        follows:
-                - The prefix is captalized and has an _ appended to it.
-                - All spaces in the suffix are mapped to the _ character. 
-                - All alpha characters in the suffix are mapped to their uppercase.
-
-        The resulting name is used with getattr to look up a constant with that name
-        in the L{constants} module. If such a constant does not exist, the string
-        suffix is returned instead.
-
-        This method allows strings to be used to refer to roles, relations, etc.
-        without direct access to the constants. It also supports the future expansion
-        of roles, relations, etc. by allowing arbitrary strings which may or may not
-        map to the current standard set of roles, relations, etc., but may still
-        match some non-standard role, relation, etc. being reported by an
-        application.
-
-        @param prefix: Prefix of the constant name such as role, relation, state, 
-                text, modifier, key
-        @type prefix: string
-        @param suffix: Name of the role, relation, etc. to use to lookup the constant
-        @type suffix: string
-        @return: The matching constant value
-        @rtype: object
-        """
-        name = prefix.upper()+'_'+suffix.upper().replace(' ', '_')
-        return getattr(constants, name, suffix)
-
-def stateToString(value):
-        """
-        Converts a state value to a string based on the name of the state constant in
-        the L{constants} module that has the given value.
-
-        @param value: An AT-SPI state
-        @type value: Accessibility.StateType
-        @return: Human readable, untranslated name of the state
-        @rtype: string
-        """
-        return state.STATE_VALUE_TO_NAME.get(value)
-
-def relationToString(value):
-        """
-        Converts a relation value to a string based on the name of the state constant
-        in the L{constants} module that has the given value.
-
-        @param value: An AT-SPI relation
-        @type value: Accessibility.RelationType
-        @return: Human readable, untranslated name of the relation
-        @rtype: string
-        """
-        return relation.RELATION_VALUE_TO_NAME.get(value)
-
-def allModifiers():
-        """
-        Generates all possible keyboard modifiers for use with 
-        L{registry.Registry.registerKeystrokeListener}.
-        """
-        mask = 0
-        while mask <= (1 << registry.MODIFIER_NUMLOCK):
-                yield mask
-                mask += 1
-
-def findDescendant(acc, pred, breadth_first=False):
-        """
-        Searches for a descendant node satisfying the given predicate starting at 
-        this node. The search is performed in depth-first order by default or
-        in breadth first order if breadth_first is True. For example,
-
-        my_win = findDescendant(lambda x: x.name == 'My Window')
-
-        will search all descendants of x until one is located with the name 'My
-        Window' or all nodes are exausted. Calls L{_findDescendantDepth} or
-        L{_findDescendantBreadth} to start the recursive search.
-
-        @param acc: Root accessible of the search
-        @type acc: Accessibility.Accessible
-        @param pred: Search predicate returning True if accessible matches the 
-                        search criteria or False otherwise
-        @type pred: callable
-        @param breadth_first: Search breadth first (True) or depth first (False)?
-        @type breadth_first: boolean
-        @return: Accessible matching the criteria or None if not found
-        @rtype: Accessibility.Accessible or None
-        """
-        if breadth_first:
-                return _findDescendantBreadth(acc, pred)
-
-        for child in acc:
-                try:
-                        ret = _findDescendantDepth(acc, pred)
-                except Exception:
-                        ret = None
-                if ret is not None: return ret
-
-def _findDescendantBreadth(acc, pred):
-        """
-        Internal function for locating one descendant. Called by L{findDescendant} to
-        start the search.
-
-        @param acc: Root accessible of the search
-        @type acc: Accessibility.Accessible
-        @param pred: Search predicate returning True if accessible matches the 
-                        search criteria or False otherwise
-        @type pred: callable
-        @return: Matching node or None to keep searching
-        @rtype: Accessibility.Accessible or None
-        """
-        for child in acc:
-                try:
-                        if pred(child): return child
-                except Exception:
-                        pass
-        for child in acc:
-                try:
-                        ret = _findDescendantBreadth(child, pred)
-                except Exception:
-                        ret = None
-                if ret is not None: return ret
-
-def _findDescendantDepth(acc, pred):
-        """
-        Internal function for locating one descendant. Called by L{findDescendant} to
-        start the search.
-
-        @param acc: Root accessible of the search
-        @type acc: Accessibility.Accessible
-        @param pred: Search predicate returning True if accessible matches the 
-                search criteria or False otherwise
-        @type pred: callable
-        @return: Matching node or None to keep searching
-        @rtype: Accessibility.Accessible or None
-        """
-        try:
-                if pred(acc): return acc
-        except Exception:
-                pass
-        for child in acc:
-                try:
-                        ret = _findDescendantDepth(child, pred)
-                except Exception:
-                        ret = None
-                if ret is not None: return ret
-
-def findAllDescendants(acc, pred):
-        """
-        Searches for all descendant nodes satisfying the given predicate starting at 
-        this node. Does an in-order traversal. For example,
-
-        pred = lambda x: x.getRole() == pyatspi.ROLE_PUSH_BUTTON
-        buttons = pyatspi.findAllDescendants(node, pred)
-
-        will locate all push button descendants of node.
-
-        @param acc: Root accessible of the search
-        @type acc: Accessibility.Accessible
-        @param pred: Search predicate returning True if accessible matches the 
-                        search criteria or False otherwise
-        @type pred: callable
-        @return: All nodes matching the search criteria
-        @rtype: list
-        """
-        matches = []
-        _findAllDescendants(acc, pred, matches)
-        return matches
-
-def _findAllDescendants(acc, pred, matches):
-        """
-        Internal method for collecting all descendants. Reuses the same matches
-        list so a new one does not need to be built on each recursive step.
-        """
-        for child in acc:
-                try:
-                        if pred(child): matches.append(child)
-                except Exception:
-                        pass
-                _findAllDescendants(child, pred, matches)
-        
-def findAncestor(acc, pred):
-        """
-        Searches for an ancestor satisfying the given predicate. Note that the
-        AT-SPI hierarchy is not always doubly linked. Node A may consider node B its
-        child, but B is not guaranteed to have node A as its parent (i.e. its parent
-        may be set to None). This means some searches may never make it all the way
-        up the hierarchy to the desktop level.
-
-        @param acc: Starting accessible object
-        @type acc: Accessibility.Accessible
-        @param pred: Search predicate returning True if accessible matches the 
-                search criteria or False otherwise
-        @type pred: callable
-        @return: Node matching the criteria or None if not found
-        @rtype: Accessibility.Accessible
-        """
-        if acc is None:
-                # guard against bad start condition
-                return None
-        while 1:
-                if acc.parent is None:
-                        # stop if there is no parent and we haven't returned yet
-                        return None
-                try:
-                        if pred(acc.parent): return acc.parent
-                except Exception:
-                        pass
-                # move to the parent
-                acc = acc.parent
-
-def getPath(acc):
-        """
-        Gets the path from the application ancestor to the given accessible in
-        terms of its child index at each level.
-
-        @param acc: Target accessible
-        @type acc: Accessibility.Accessible
-        @return: Path to the target
-        @rtype: list of integer
-        @raise LookupError: When the application accessible cannot be reached
-        """
-        path = []
-        while 1:
-                if acc.parent is None:
-                        path.reverse()
-                        return path
-                try:
-                        path.append(acc.getIndexInParent())
-                except Exception:
-                        raise LookupError
-                acc = acc.parent
diff --git a/pyatspi/value.py b/pyatspi/value.py
deleted file mode 100644 (file)
index 121d5c8..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#This library is free software; you can redistribute it and/or
-#modify it under the terms of the GNU Lesser General Public
-#License version 2 as published by the Free Software Foundation.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU Lesser General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from interfaces import *
-from accessible import Accessible
-from factory import accessible_factory
-
-import dbus
-
-__all__ = [
-           "Value",
-          ]
-
-#------------------------------------------------------------------------------
-
-class Value(Accessible):
-        """
-        An interface supporting controls which allow a one-dimensional,
-        scalar quantity to be modified or which reflect a scalar quantity.
-        (If STATE_EDITABLE is not present, the valuator is treated as
-        "read only".
-        """
-
-        def get_currentValue(self):
-                return dbus.Double(self._pgetter(self._dbus_interface, "currentValue"))
-        def set_currentValue(self, value):
-                self._psetter(self._dbus_interface, "currentValue", dbus.Double(value, variant_level=1))
-        _currentValueDoc = \
-                """
-                The current value of the valuator.
-                """
-        currentValue = property(fget=get_currentValue, fset=set_currentValue, doc=_currentValueDoc)
-
-        def get_maximumValue(self):
-                return dbus.Double(self._pgetter(self._dbus_interface, "maximumValue"))
-        _maximumValueDoc = \
-                """
-                The maximum value allowed by this valuator.
-                """
-        maximumValue = property(fget=get_maximumValue, doc=_maximumValueDoc)
-
-        def get_minimumIncrement(self):
-                return dbus.Double(self._pgetter(self._dbus_interface, "minimumIncrement"))
-        _minimumIncrementDoc = \
-                """
-                The smallest incremental change which this valuator allows. If
-                0, the incremental changes to the valuator are limited only by
-                the precision of a double precision value on the platform.
-                """
-        minimumIncrement = property(fget=get_minimumIncrement, doc=_minimumIncrementDoc)
-
-        def get_minimumValue(self):
-                return dbus.Double(self._pgetter(self._dbus_interface, "minimumValue"))
-        _minimumValueDoc = \
-                """
-                The minimum value allowed by this valuator.
-                """
-        minimumValue = property(fget=get_minimumValue, doc=_minimumValueDoc)
-
-# Register the accessible class with the factory.
-accessible_factory.register_accessible_class(ATSPI_VALUE, Value)
-
-#END----------------------------------------------------------------------------
diff --git a/tests/Makefile.am b/tests/Makefile.am
deleted file mode 100644 (file)
index 8daea17..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-SUBDIRS = dummyatk apps data pyatspi cspi
-
-#TESTS=testrunner.py
-TESTS_ENVIRONMENT = PYTHONPATH=$(abs_top_srcdir)/python                                        \
-                   ATSPI_INTROSPECTION_PATH=$(top_srcdir)/xml/introspection            \
-                   TEST_DATA_DIRECTORY=$(abs_top_srcdir)/tests/data                    \
-                   TEST_ATSPI_LIBRARY=$(abs_top_srcdir)/atk-adaptor/.libs/libspiatk.so \
-                   TEST_MODULES_DIRECTORY=$(abs_top_srcdir)/tests/apps/.libs           \
-                   TEST_APPLICATION=$(abs_top_srcdir)/tests/apps/test-application
-
-CLEANFILES = *.pyc
diff --git a/tests/apps/Makefile.am b/tests/apps/Makefile.am
deleted file mode 100644 (file)
index 12a3257..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-check_PROGRAMS = test-application
-check_LTLIBRARIES = libnoopapp.la \
-                   libaccessibleapp.la \
-                   libcomponentapp.la \
-                   libactionapp.la \
-                   librelationapp.la
-
-test_application_CFLAGS = $(DBUS_GLIB_CFLAGS)  \
-                         $(ATK_CFLAGS)         \
-                         $(GMODULE_CFLAGS)     \
-                         -I$(top_srcdir)
-
-test_application_LDADD = $(DBUS_GLIB_LIBS)     \
-                        $(GMODULE_LIBS)        \
-                        $(ATK_LIBS)
-
-test_application_SOURCES = test-application.c
-
-
-TEST_APP_CFLAGS = $(ATK_CFLAGS) $(GMODULE_CFLAGS) -I$(top_srcdir) -I$(top_srcdir)/tests/dummyatk/
-TEST_APP_LDFLAGS = -no-undefined -module -avoid-version -rpath /a/fake/path
-TEST_APP_LIBADD = $(ATK_LIBS) $(GMODULE_LIBS) $(top_builddir)/tests/dummyatk/libdummyatk.la
-
-libnoopapp_la_CFLAGS = $(TEST_APP_CFLAGS)
-libnoopapp_la_LDFLAGS = $(TEST_APP_LDFLAGS)
-libnoopapp_la_LIBADD = $(TEST_APP_LIBADD)
-libnoopapp_la_SOURCES = noop-app.c
-
-libaccessibleapp_la_CFLAGS = $(TEST_APP_CFLAGS) $(LIB_XML_CFLAGS)
-libaccessibleapp_la_LDFLAGS = $(TEST_APP_LDFLAGS)
-libaccessibleapp_la_LIBADD = $(TEST_APP_LIBADD) $(LIB_XML_LIBS)
-libaccessibleapp_la_SOURCES = accessible-app.c atk-object-xml-loader.c atk-object-xml-loader.h
-
-libcomponentapp_la_CFLAGS = $(TEST_APP_CFLAGS)
-libcomponentapp_la_LDFLAGS = $(TEST_APP_LDFLAGS)
-libcomponentapp_la_LIBADD = $(TEST_APP_LIBADD)
-libcomponentapp_la_SOURCES = component-app.c
-
-libactionapp_la_CFLAGS = $(TEST_APP_CFLAGS)
-libactionapp_la_LDFLAGS = $(TEST_APP_LDFLAGS)
-libactionapp_la_LIBADD = $(TEST_APP_LIBADD)
-libactionapp_la_SOURCES = action-app.c
-
-librelationapp_la_CFLAGS = $(TEST_APP_CFLAGS)
-librelationapp_la_LDFLAGS = $(TEST_APP_LDFLAGS)
-librelationapp_la_LIBADD = $(TEST_APP_LIBADD)
-librelationapp_la_SOURCES = relation-app.c
diff --git a/tests/apps/accessible-app.c b/tests/apps/accessible-app.c
deleted file mode 100644 (file)
index 2796bf5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#include <gmodule.h>
-#include <atk/atk.h>
-#include <my-atk.h>
-
-#include "atk-object-xml-loader.h"
-
-static gchar *tdata_path = NULL;
-
-static AtkObject *root_accessible;
-
-static AtkStateType states[] =
-{
-  ATK_STATE_MULTI_LINE,
-  ATK_STATE_MODAL,
-  ATK_STATE_INDETERMINATE,
-  ATK_STATE_SUPPORTS_AUTOCOMPLETION,
-  ATK_STATE_VERTICAL
-};
-
-#define OBJECT_TEST_1 "accessible-test.xml"
-
-G_MODULE_EXPORT void
-test_init (gchar *path)
-{
-  AtkStateSet *ss;
-  gchar *td;
-
-  if (path == NULL)
-     g_error("No test data path provided");
-  tdata_path = path;
-
-  td = g_build_path(G_DIR_SEPARATOR_S, tdata_path, OBJECT_TEST_1, NULL);
-  root_accessible = ATK_OBJECT(atk_object_xml_parse(td));
-  g_free(td);
-
-  ss = atk_object_ref_state_set(ATK_OBJECT(root_accessible));
-  atk_state_set_add_states(ss, states, 5);
-  g_object_unref(G_OBJECT(ss));
-}
-
-G_MODULE_EXPORT void
-test_next (int argc, char *argv[])
-{
-  ;
-}
-
-G_MODULE_EXPORT void
-test_finished (int argc, char *argv[])
-{
-  ;
-}
-
-G_MODULE_EXPORT AtkObject *
-test_get_root (void)
-{
-  return root_accessible;
-}
diff --git a/tests/apps/action-app.c b/tests/apps/action-app.c
deleted file mode 100644 (file)
index 612cd59..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <gmodule.h>
-#include <atk/atk.h>
-#include <my-atk.h>
-
-static AtkObject *root_accessible;
-
-G_MODULE_EXPORT void
-test_init (gchar *path)
-{
-  root_accessible  = g_object_new(MY_TYPE_ATK_ACTION, NULL);
-}
-
-G_MODULE_EXPORT void
-test_next (int argc, char *argv[])
-{
-  g_print("Moving to next stage\n");
-}
-
-G_MODULE_EXPORT void
-test_finished (int argc, char *argv[])
-{
-  g_print("Test has completed\n");
-}
-
-G_MODULE_EXPORT AtkObject *
-test_get_root (void)
-{
-  return root_accessible;
-}
diff --git a/tests/apps/atk-object-xml-loader.c b/tests/apps/atk-object-xml-loader.c
deleted file mode 100644 (file)
index 5fa2354..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright 2008 Codethink Ltd.
- *
- * 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 <string.h>
-#include <glib.h>
-#include <libxml/parser.h>
-#include <libxml/tree.h>
-
-#include <my-atk.h>
-
-#define ACCESSIBLE_NODE ((const xmlChar *) "accessible")
-#define INTERFACE_NODE  ((const xmlChar *) "interface")
-
-#define NAME_ATTR ((const xmlChar *) "name")
-#define DESC_ATTR ((const xmlChar *) "description")
-#define ROLE_ATTR ((const xmlChar *) "role")
-
-static MyAtkObject *
-create_atk_object_from_element(xmlNode *element)
-{
-  xmlNode *child_node;
-
-  MyAtkObject *obj = NULL;
-  MyAtkObject *child_obj;
-
-  xmlChar *name;
-  xmlChar *description;
-  xmlChar *role_text; 
-  gint role;
-
-  name = xmlGetProp(element, NAME_ATTR);
-  description = xmlGetProp(element, DESC_ATTR);
-  role_text = xmlGetProp(element, ROLE_ATTR);
-  role = atoi(role_text);
-
-  obj = MY_ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                  "accessible-name", name,
-                                  "accessible-description", description,
-                                  "accessible-role", role,
-                                  NULL));
-
-  child_node = element->xmlChildrenNode;
-  while (child_node != NULL)
-    {
-      if (!xmlStrcmp(child_node->name, ACCESSIBLE_NODE))  
-       {
-         child_obj = create_atk_object_from_element(child_node); 
-         my_atk_object_add_child(obj, child_obj);
-       }
-      child_node = child_node->next;
-    }
-  return obj;
-}
-
-/*
- * Reads the XML from filename and uses it
- * to create a tree of MyAtkObjects.
- * 
- * returns: The root object of the tree.
- */
-MyAtkObject *
-atk_object_xml_parse(gchar *filename)
-{
-  xmlDoc *doc;
-  xmlNode *root_element;
-  MyAtkObject *new_atk_object = NULL;
-
-  doc = xmlReadFile(filename, NULL, 0);
-  g_assert(doc != NULL);
-
-  root_element = xmlDocGetRootElement(doc);
-
-  if (!xmlStrcmp(root_element->name, ACCESSIBLE_NODE))  
-    new_atk_object = create_atk_object_from_element(root_element); 
-
-  xmlFreeDoc(doc);
-  return new_atk_object;
-}
diff --git a/tests/apps/atk-object-xml-loader.h b/tests/apps/atk-object-xml-loader.h
deleted file mode 100644 (file)
index ce707bd..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2008 Codethink Ltd.
- *
- * 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 ATK_OBJECT_XML_LOADER_H
-#define ATK_OBJECT_XML_LOADER_H
-
-#include <glib.h>
-#include <my-atk.h>
-
-MyAtkObject *
-atk_object_xml_parse(gchar *filename);
-
-#endif /*ATK_OBJECT_XML_LOADER_H*/
diff --git a/tests/apps/component-app.c b/tests/apps/component-app.c
deleted file mode 100644 (file)
index d51e1ac..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#include <gmodule.h>
-#include <atk/atk.h>
-#include <my-atk.h>
-
-static gchar *tdata_path = NULL;
-
-static AtkComponent *comps[] = {NULL, NULL, NULL};
-static const AtkRectangle extents[] = {{0,0,30,20}, {40,30,30,40}, {0,0,70,70}};
-static const AtkLayer layers[] = {ATK_LAYER_WINDOW, ATK_LAYER_WIDGET, ATK_LAYER_MDI};
-static const guint zorders[] = {0, -100, 100};
-static const gboolean extent_may_changed[] = {TRUE, FALSE, TRUE};
-
-G_MODULE_EXPORT void
-test_init (gchar *path)
-{
-  int i;
-
-  if (path == NULL)
-     g_error("No test data path provided");
-  tdata_path = path;
-
-  g_type_init();
-  for(i = 0; i < sizeof(comps) / sizeof(comps[0]); i++)
-    {
-      MyAtkComponent *mycomp = MY_ATK_COMPONENT(g_object_new(MY_TYPE_ATK_COMPONENT, NULL));
-        
-      mycomp->extent = extents[i];
-      mycomp->is_extent_may_changed = extent_may_changed[i];
-      mycomp->layer = layers[i];
-      mycomp->zorder = zorders[i];
-      
-      comps[i] = ATK_COMPONENT(mycomp);
-    }
-    
-  my_atk_object_add_child(MY_ATK_OBJECT(comps[2]), MY_ATK_OBJECT(comps[0]));
-  my_atk_object_add_child(MY_ATK_OBJECT(comps[2]), MY_ATK_OBJECT(comps[1]));
-}
-
-G_MODULE_EXPORT void
-test_next (int argc, char *argv[])
-{
-  g_print("Moving to next stage\n");
-}
-
-G_MODULE_EXPORT void
-test_finished (int argc, char *argv[])
-{
-  g_print("Test has completed\n");
-}
-
-G_MODULE_EXPORT AtkObject *
-test_get_root (void)
-{
-  return ATK_COMPONENT(comps[2]);
-}
diff --git a/tests/apps/noop-app.c b/tests/apps/noop-app.c
deleted file mode 100644 (file)
index f2a5f51..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#include <gmodule.h>
-#include <atk/atk.h>
-
-G_MODULE_EXPORT void
-test_init (int argc, char *argv[])
-{
-  ;
-}
-
-G_MODULE_EXPORT void
-test_next (int argc, char *argv[])
-{
-  ;
-}
-
-G_MODULE_EXPORT void
-test_finished (int argc, char *argv[])
-{
-  ;
-}
-
-G_MODULE_EXPORT AtkObject *
-test_get_root (void)
-{
-  return NULL;
-}
diff --git a/tests/apps/relation-app.c b/tests/apps/relation-app.c
deleted file mode 100644 (file)
index 5734ffe..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#include <gmodule.h>
-#include <atk/atk.h>
-#include <my-atk.h>
-
-static AtkObject *root_accessible;
-
-G_MODULE_EXPORT void
-test_init (gchar *path)
-{
-  AtkObject *r1, *r2, *r3;
-  AtkObject *m1, *m2, *m3;
-  AtkRelationSet *rset;
-  AtkRelation *rel;
-  AtkObject *rls[3];
-
-  root_accessible  = g_object_new(MY_TYPE_ATK_OBJECT, NULL);
-  
-  r1 = ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                 "accessible-name", "r1",
-                                 "accessible-description", "",
-                                 "accessible-role", ATK_ROLE_INVALID,
-                                 NULL));
-  my_atk_object_add_child(MY_ATK_OBJECT(root_accessible), MY_ATK_OBJECT(r1));
-
-  r2 = ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                 "accessible-name", "r2",
-                                 "accessible-description", "",
-                                 "accessible-role", ATK_ROLE_INVALID,
-                                 NULL));
-  my_atk_object_add_child(MY_ATK_OBJECT(root_accessible), MY_ATK_OBJECT(r2));
-
-  r3 = ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                 "accessible-name", "r3",
-                                 "accessible-description", "",
-                                 "accessible-role", ATK_ROLE_INVALID,
-                                 NULL));
-  my_atk_object_add_child(MY_ATK_OBJECT(root_accessible), MY_ATK_OBJECT(r3));
-
-  m1 = ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                 "accessible-name", "m1",
-                                 "accessible-description", "",
-                                 "accessible-role", ATK_ROLE_INVALID,
-                                 NULL));
-  my_atk_object_add_child(MY_ATK_OBJECT(root_accessible), MY_ATK_OBJECT(m1));
-
-  m2 = ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                 "accessible-name", "m2",
-                                 "accessible-description", "",
-                                 "accessible-role", ATK_ROLE_INVALID,
-                                 NULL));
-  my_atk_object_add_child(MY_ATK_OBJECT(root_accessible), MY_ATK_OBJECT(m2));
-
-  m3 = ATK_OBJECT(g_object_new(MY_TYPE_ATK_OBJECT,
-                                 "accessible-name", "m3",
-                                 "accessible-description", "",
-                                 "accessible-role", ATK_ROLE_INVALID,
-                                 NULL));
-  my_atk_object_add_child(MY_ATK_OBJECT(root_accessible), MY_ATK_OBJECT(m3));
-
-  atk_object_add_relationship(root_accessible, ATK_RELATION_EMBEDS, r1);
-  atk_object_add_relationship(root_accessible, ATK_RELATION_PARENT_WINDOW_OF, r2);
-  atk_object_add_relationship(root_accessible, ATK_RELATION_DESCRIBED_BY, r3);
-
-  rls[0] = m1;
-  rls[1] = m2;
-  rls[2] = m3;
-
-  rset = atk_object_ref_relation_set(root_accessible);
-  rel = atk_relation_new(rls, 3, ATK_RELATION_POPUP_FOR);
-  atk_relation_set_add(rset, rel);
-  g_object_unref(G_OBJECT(rset));
-}
-
-G_MODULE_EXPORT void
-test_next (int argc, char *argv[])
-{
-  g_print("Moving to next stage\n");
-}
-
-G_MODULE_EXPORT void
-test_finished (int argc, char *argv[])
-{
-  g_print("Test has completed\n");
-}
-
-G_MODULE_EXPORT AtkObject *
-test_get_root (void)
-{
-  return root_accessible;
-}
diff --git a/tests/apps/test-application.c b/tests/apps/test-application.c
deleted file mode 100644 (file)
index 9c0bd3c..0000000
+++ /dev/null
@@ -1,286 +0,0 @@
-/*
- * AT-SPI - Assistive Technology Service Provider Interface
- * (Gnome Accessibility Project; http://developer.gnome.org/projects/gap)
- *
- * Copyright 2008 Codethink Ltd.
- *
- * 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.
- */
-
-/*
- * Testing AT-SPI requires both a test application and AT client. 
- * Test applications are built using the Dummy ATK implementation: MyAtk.
- * This file contains the entry point for all test applications.
- * Each test is built as a GModule, and this program loads the 
- * test module, as well as the AT-SPI module. The test module will
- * provide its own implementation of atk_get_root, and as such provide
- * all the application state for the test.
- */
-
-#include <stdlib.h>
-#include <glib.h>
-#include <gmodule.h>
-#include <atk/atk.h>
-#include <dbus/dbus.h>
-
-/* The test module, GModule containing interface for an atk-test */
-static GModule *test_module;
-static gpointer test_module_get_root;
-static gpointer test_module_next;
-static gpointer test_module_finished;
-
-static DBusConnection *dbus_bus;
-static GMainLoop *mainloop;
-
-/* Test module interface */
-/*************************/
-
-typedef AtkObject *(*TestModuleGetRoot) (void);
-
-/* Calls into the test module to get the root atk object */
-static AtkObject *
-get_root(void)
-{
-  return ((TestModuleGetRoot) test_module_get_root)();
-}
-
-typedef void (*VoidVoid) (void);
-
-/* Called to move to next stage of test.*/
-static void
-next(void)
-{
-  ((VoidVoid) test_module_next)();
-}
-
-
-/*************************/
-
-/* The AtkUtil class is called to find the root accessible and to deal
- * with events. Its an incomplete class, its v-table needs to be filled in.
- */
-static void
-setup_atk_util(void)
-{
-  AtkUtilClass *klass;
-
-  klass = g_type_class_ref(ATK_TYPE_UTIL);
-  klass->get_root = get_root;
-  g_type_class_unref(klass);
-}
-
-typedef void (*GtkModuleInit) (int *argc, char **argv[]);
-
-/* AT-SPI is a gtk module that must be loaded and initialized */
-static void
-load_atspi_module(const char *path, int *argc, char **argv[])
-{
-  GModule *bridge;
-  gpointer init;
-
-  bridge = g_module_open(path, G_MODULE_BIND_LOCAL|G_MODULE_BIND_LAZY);
-  if (!bridge)
-    g_error("Couldn't load atk-bridge module : %s\n", g_module_error());
-
-  if (!g_module_symbol(bridge, "gtk_module_init", &init))
-    g_error("Couldn't load symbol \"gtk_module_init\"\n");
-
-  ((GtkModuleInit) init)(argc, argv);
-}
-
-typedef void (*TestModuleInit) (gchar *path);
-
-static void
-load_test_module(const char *path, const char *tdpath)
-{
-  gpointer init;
-
-  test_module = g_module_open(path, G_MODULE_BIND_LOCAL|G_MODULE_BIND_LAZY);
-  if (!test_module)
-    g_error("Couldn't load test module : %s\n", path);
-
-  if (!g_module_symbol(test_module, "test_init", &init))
-    g_error("Couldn't load symbol \"test_init\"\n");
-
-  if (!g_module_symbol(test_module, "test_get_root", &test_module_get_root))
-    g_error("Couldn't load symbol \"test_get_root\"\n");
-
-  if (!g_module_symbol(test_module, "test_next", &test_module_next))
-    g_error("Couldn't load symbol \"test_next\"\n");
-
-  if (!g_module_symbol(test_module, "test_finished", &test_module_finished))
-    g_error("Couldn't load symbol \"test_finished\"\n");
-
-  ((TestModuleInit) init)((gchar *)tdpath);
-}
-
-static const char* introspection_string = 
-"<node name=\"/org/codethink/atspi/test\">"
-"      <interface name=\"org.codethink.atspi.test\">"
-"              <method name=\"next\"/>"
-"              <method name=\"finish\"/>"
-"               <signal name=\"started\"/>"
-"      </interface>"
-"</node>";
-
-static DBusHandlerResult
-message_handler (DBusConnection *bus, DBusMessage *message, void *user_data)
-{
-  const char *iface = dbus_message_get_interface (message);
-  const char *member = dbus_message_get_member (message);
-  DBusHandlerResult result = DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
-  gboolean exit = FALSE;
-
-  DBusMessage *reply = NULL;
-
-  g_return_val_if_fail(iface != NULL, DBUS_HANDLER_RESULT_NOT_YET_HANDLED);
-  
-  if (!strcmp(iface, "org.codethink.atspi.test"))
-    {
-      if (!strcmp(member, "next"))
-       {
-         next();
-          reply = dbus_message_new_method_return (message);
-         g_assert(reply != NULL);
-         result = DBUS_HANDLER_RESULT_HANDLED;
-       }
-
-      if (!strcmp(member, "finish"))
-       {
-         ((VoidVoid) test_module_finished)();
-          reply = dbus_message_new_method_return (message);
-         g_assert(reply != NULL);
-         result = DBUS_HANDLER_RESULT_HANDLED;
-         exit = TRUE;
-       }
-    }
-
-  if (!strcmp(iface, "org.freedesktop.DBus.Introspectable"))
-    {
-      if (!strcmp(member, "Introspect"))
-       {
-         reply = dbus_message_new_method_return (message);
-         g_assert(reply != NULL);
-         dbus_message_append_args(reply, DBUS_TYPE_STRING, &introspection_string,
-                                  DBUS_TYPE_INVALID);
-         result = DBUS_HANDLER_RESULT_HANDLED;
-       }
-    }
-
-  if (reply)
-    {
-      dbus_connection_send (bus, reply, NULL);
-      dbus_message_unref (reply);
-    }
-
-  if (exit == TRUE)
-    {
-      dbus_connection_flush(bus);
-      dbus_connection_unref(bus);
-      g_main_loop_quit(mainloop);
-    }
-  return result;
-}
-
-static DBusObjectPathVTable test_vtable =
-{
-  NULL,
-  &message_handler,
-  NULL, NULL, NULL, NULL
-};
-
-static void
-init_dbus_interface(void)
-{
-  DBusError error;
-
-  dbus_error_init(&error);
-  dbus_bus = dbus_bus_get(DBUS_BUS_SESSION, &error);
-  g_print("\nUnique D-Bus name is: %s\n", dbus_bus_get_unique_name(dbus_bus));
-
-  if (!dbus_bus)
-    g_error("Couldn't get the session bus - %s\n", error.message);
-
-  g_assert(dbus_connection_register_object_path(dbus_bus,
-                                               "/org/codethink/atspi/test",
-                                               &test_vtable,
-                                               NULL));
-
-  dbus_connection_setup_with_g_main(dbus_bus, g_main_context_default());
-}
-
-static void
-send_started_signal(void)
-{
-  DBusMessage* sig;
-  DBusMessageIter args;
-
-  sig = dbus_message_new_signal("/org/codethink/atspi/test", "org.codethink.atspi.test", "started");
-  g_assert(sig != NULL);
-  if (!dbus_connection_send(dbus_bus, sig, NULL))
-    g_error("Out of memory");
-  dbus_connection_flush(dbus_bus);
-  dbus_message_unref(sig);
-}
-
-/*Command line data*/
-static gchar *tmodule_path = NULL;
-static gchar *amodule_path = NULL;
-static gchar *tdata_path = NULL;
-
-static GOptionEntry optentries[] = 
-{
-  {"test-module", 0, 0, G_OPTION_ARG_STRING, &tmodule_path, "Module containing test scenario", NULL},
-  {"test-atspi-library", 0, 0, G_OPTION_ARG_STRING, &amodule_path, "Gtk module with atk-atspi adaptor", NULL},
-  {"test-data-directory", 0, 0, G_OPTION_ARG_STRING, &tdata_path, "Path to directory of test data", NULL},
-  {NULL}
-};
-
-/* main
- * 
- * Entry point for all test applications.
- */
-main(int argc, char *argv[])
-{
-  GOptionContext *opt;
-  GError *err = NULL;
-
-  /*Parse command options*/
-  opt = g_option_context_new(NULL);
-  g_option_context_add_main_entries(opt, optentries, NULL);
-  g_option_context_set_ignore_unknown_options(opt, TRUE);
-  
-  if (!g_option_context_parse(opt, &argc, &argv, &err))
-      g_error("Option parsing failed: %s\n", err->message);
-
-  if (tmodule_path == NULL)
-      g_error("No test module provided");
-  if (amodule_path == NULL)
-      g_error("No atspi module provided");
-
-  g_type_init();
-
-  setup_atk_util();
-  load_test_module(tmodule_path, tdata_path);
-  load_atspi_module(amodule_path, &argc, &argv);
-  init_dbus_interface();
-  send_started_signal();
-
-  mainloop = g_main_loop_new (NULL, FALSE);
-  g_main_loop_run (mainloop);
-
-  return 0;
-}
diff --git a/tests/cspi/Makefile.am b/tests/cspi/Makefile.am
deleted file mode 100644 (file)
index 316cbe4..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-noinst_PROGRAMS = key-listener-test keysynth-test simple-at test-simple
-
-key_listener_test_SOURCES = key-listener-test.c 
-keysynth_test_SOURCES = keysynth-test.c 
-simple_at_SOURCES = simple-at.c 
-test_simple_SOURCES = test-simple.c 
-
-INCLUDES = -I$(top_srcdir)           \
-           -I$(top_builddir)         \
-          $(DBUS_CFLAGS)            \
-          $(GLIB_CFLAGS)            \
-          $(GTK_CFLAGS)             \
-          $(ATK_CFLAGS)             \
-           $(DBIND_CFLAGS)           \
-          $(DEBUG_CFLAGS)
-
-LDADD = $(top_builddir)/common/libspicommon.la                         \
-       $(top_builddir)/cspi/libcspi.la                                 \
-       $(TESTS_LIBS) $(X_LIBS) $(XINPUT_LIBS) $(ATK_LIBS) $(GTK_LIBS) $(DBIND_LIBS)
diff --git a/tests/cspi/accessible-test.c b/tests/cspi/accessible-test.c
deleted file mode 100644 (file)
index ab490db..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2008 Codethink Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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 <glib.h>
-#include <string.h>
-#include <stdlib.h>
-
-typedef struct {
-  gchar *none;
-} AccessibleObjectFixture;
-
-static void
-test_getChildAtIndex (AccessibleObjectFixture *fix, gconstpointer test_data)
-{
-  return;
-}
-
-int
-main (int argc, char *argv[])
-{
-  return 0;
-}
diff --git a/tests/cspi/classy-test-suite.c b/tests/cspi/classy-test-suite.c
deleted file mode 100644 (file)
index dd22e7a..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- * Copyright (C) 2008 Codethink Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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 <glib-object.h>
-#include <string.h>
-#include <stdio.h>
-
-#include "classy-test.h"
-#include "classy-test-suite.h"
-
-/*---------------------------------------------------------------------------*/
-
-static gboolean
-run_test_app(gchar *module_name, gchar *dbus_name)
-{
-  gboolean result;
-  GPid pid;
-  GError *err = NULL;
-
-  const gchar *test_data_directory;
-  const gchar *test_modules_directory;
-  const gchar *test_atspi_library;
-  const gchar *test_application;
-  gchar *test_module;
-  gchar *command_line;
-
-  test_data_directory = g_getenv("TEST_DATA_DIRECTORY");
-  test_modules_directory = g_getenv("TEST_MODULES_DIRECTORY");
-  test_atspi_library = g_getenv("TEST_ATSPI_LIBRARY");
-  test_application = g_getenv("TEST_APPLICATION");
-
-  test_module = g_build_path("/", test_modules_directory, module_name, NULL); 
-
-  command_line = g_build_path(" ", test_application,
-                                   "--atspi-dbus-name", dbus_name,
-                                  "--test-atspi-library", test_atspi_library,
-                                  "--test-module", test_module,
-                                  "--test-data-directory", test_data_directory,
-                                  NULL); 
-
-  if (!(result = g_spawn_command_line_async(NULL, &err)))
-    {
-      fprintf(stderr, "\nCould not spawn test application - %s", err->message);
-    }
-
-  g_free(test_module);
-  g_free(command_line);
-
-  return result;
-}
-
-/*---------------------------------------------------------------------------*/
-
-static gboolean
-suite_idle_handler(gpointer data);
-
-static void
-suite_finished_handler(gpointer data)
-{
-       ClassyTestSuite *suite = CLASSY_TEST_SUITE(data);
-       ClassyTest *test = CLASSY_TEST(g_array_index(suite->cases, gpointer, suite->current));
-
-       if ((classy_test_state(test) == CLASSY_TEST_WIN) || suite->cont) {
-               g_idle_add(suite_idle_handler, suite);
-       }
-       /* TODO If test has failed remember to send signal saying so */
-}
-
-static gboolean
-suite_idle_handler(gpointer data)
-{
-       ClassyTestSuite *suite = CLASSY_TEST_SUITE(data);
-
-       suite->current++;
-       if (suite->current >= suite->cases->len) {
-               /* No more tests, check for success or fail */
-               gboolean succeeded = TRUE;
-               gint i;
-               for (i=0; i < suite->cases->len; i++) {
-                       ClassyTest *test;
-                       test = CLASSY_TEST(g_array_index(suite->cases, gpointer, i));
-                       succeeded = succeeded && (classy_test_state(test) == CLASSY_TEST_WIN);
-               }
-               if (succeeded == TRUE)
-                       classy_test_pass(CLASSY_TEST(suite));
-               else
-                       classy_test_fail(CLASSY_TEST(suite), "Sub-test has failed");
-       } else {
-               /* More tests, run this one*/
-               ClassyTest *test;
-               test = CLASSY_TEST(g_array_index(suite->cases, gpointer, suite->current));
-               g_signal_connect(test, "finished", (GCallback) suite_finished_handler, data);
-               classy_test_run(test);
-       }
-       return FALSE;
-}
-
-static void
-suite_run(ClassyTest *test)
-{
-       g_idle_add(suite_idle_handler, test);
-}
-
-/*---------------------------------------------------------------------------*/
-
-static gchar *
-suite_report(ClassyTest *test)
-{
-       ClassyTestSuite *suite = CLASSY_TEST_SUITE(test);
-       GString *report;
-       gint i;
-
-       report = g_string_new("");
-
-       switch (classy_test_state(test)) {
-               case CLASSY_TEST_FAIL:
-                       g_string_printf(report, "FAIL       : %s\n           : %s\n ", test->name);
-               case CLASSY_TEST_WIN:
-                       g_string_printf(report, "PASS       : %s\n", test->name);
-               default:
-                       g_string_printf(report, "INCOMPLETE : %s\n", test->name);
-       }
-
-       for (i=0; i < suite->cases->len; i++) {
-               ClassyTest *subtest = CLASSY_TEST(g_array_index(suite->cases, gpointer, i));
-               g_string_append_printf(report, "             ");
-               g_string_append_printf(report, "%s", classy_test_report(subtest));
-       }
-       return g_string_free(report, FALSE);
-}
-
-/*---------------------------------------------------------------------------*/
-
-G_DEFINE_TYPE (ClassyTestSuite, classy_test_suite, TYPE_CLASSY_TEST)
-
-static void
-classy_test_suite_finalize (GObject *obj)
-{
-       ClassyTestSuite *suite = CLASSY_TEST_SUITE(obj);
-       gint i;
-
-       for (i=0; i < suite->cases->len; i++) {
-               ClassyTest *test;
-               test = CLASSY_TEST(g_array_index(suite->cases, gpointer, i));
-               g_object_unref(test);
-       }
-       g_free(suite->data);
-
-       G_OBJECT_CLASS (classy_test_suite_parent_class)->finalize (obj);
-}
-
-static void 
-classy_test_suite_class_init (ClassyTestSuiteClass *klass)
-{
-       GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-       ClassyTestClass *test_class = CLASSY_TEST_CLASS(klass);
-
-       gobject_class->finalize = classy_test_suite_finalize;
-
-       test_class->report = suite_report;
-       test_class->run = suite_run;
-}
-
-static void
-classy_test_suite_init (ClassyTestSuite *suite)
-{
-       suite->cases = g_array_new(FALSE, FALSE, sizeof(gpointer));     
-       suite->current = -1;
-}
-
-/*---------------------------------------------------------------------------*/
-
-ClassyTestSuite *
-classy_test_suite_new(gchar *name, gint dsize, gboolean cont)
-{
-       ClassyTestSuite *suite;
-       ClassyTest *test;
-
-       suite = g_object_new(TYPE_CLASSY_TEST_SUITE, NULL);
-       suite->cont = cont;
-       suite->data = g_malloc0(dsize);
-
-       test = CLASSY_TEST(suite);
-       test->name = g_strdup(name);
-       
-       return suite;
-}
-
-void
-classy_test_suite_add(ClassyTestSuite *suite, ClassyTest *test)
-{
-       g_array_append(suite->cases, test);
-}
-
-/*---------------------------------------------------------------------------*/
diff --git a/tests/cspi/classy-test-suite.h b/tests/cspi/classy-test-suite.h
deleted file mode 100644 (file)
index d27aad0..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/* 
- * Classy Test - Terrible framework for testing asyncronous interface
- *
- * Copyright (C) 2008 Codethink Ltd
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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 CLASSY_TEST_SUITE_H
-#define CLASSY_TEST_SUITE_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-GType classy_test_suite_get_type(void);
-
-#define TYPE_CLASSY_TEST_SUITE (classy_test_suite_get_type())
-
-#define CLASSY_TEST_SUITE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),      \
-                               TYPE_CLASSY_TEST_SUITE,                 \
-                               ClassyTestSuite))
-
-#define CLASSY_TEST_SUITE_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass),   \
-                                           TYPE_CLASSY_TEST_SUITE,             \
-                                           ClassyTestSuiteClass))
-
-#define IS_CLASSY_TEST_SUITE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),   \
-                                           TYPE_CLASSY_TEST_SUITE))
-
-#define IS_CLASSY_TEST_SUITE_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),   \
-                                           TYPE_CLASSY_TEST_SUITE))
-
-#define CLASSY_TEST_SUITE_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj),   \
-                                           TYPE_CLASSY_TEST_SUITE,             \
-                                           ClassyTestSuiteClass))
-
-typedef struct _ClassyTestSuite ClassyTestSuite;
-typedef struct _ClassyTestSuiteClass ClassyTestSuiteClass;
-
-struct _ClassyTestSuite {
-       ClassyTest parent;
-
-       GArray *cases;
-       gint current;
-       gboolean cont;
-
-       gpointer data;
-};
-
-struct _ClassyTestSuiteClass {
-       ClassyTestClass parent;
-};
-
-ClassyTestSuite *
-classy_test_suite_new(gchar *name, gint dsize, gboolean cont);
-
-void
-classy_test_suite_add(ClassyTestSuite *suite, ClassyTest *test);
-
-/*---------------------------------------------------------------------------*/
-
-G_END_DECLS
-#endif /* CLASSY_TEST_SUITE_H */
diff --git a/tests/cspi/classy-test.c b/tests/cspi/classy-test.c
deleted file mode 100644 (file)
index e5ef266..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/* 
- * Classy Test - Terrible framework for testing asyncronous interface
- *
- * Copyright (C) 2008 Codethink Ltd
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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 <glib-object.h>
-
-#include "classy-test.h"
-
-static gchar *
-classy_test_report(ClassyTest *test)
-{
-       switch (classy_test_state(test)) {
-               case CLASSY_TEST_FAIL:
-                       return g_strdup_printf("FAIL       : %s - %s\n ", test->name, test->failm);
-               case CLASSY_TEST_WIN:
-                       return g_strdup_printf("PASS       : %s\n", test->name);
-               default:
-                       return g_strdup_printf("INCOMPLETE : %s\n", test->name);
-       }
-}
-
-/*---------------------------------------------------------------------------*/
-
-static void
-classy_test_run(ClassyTest *test)
-{
-       test->tstate = CLASSY_TEST_IN_PROGRESS;
-       (test->entry)(test, test->data);
-}
-
-/*---------------------------------------------------------------------------*/
-
-G_DEFINE_TYPE (ClassyTest, classy_test, G_TYPE_OBJECT)
-
-static void
-classy_test_finalize (GObject *obj)
-{
-       ClassyTest *test = CLASSY_TEST(obj);
-
-       g_free(test->name);
-       if (test->failm) {
-               g_free(test->failm);
-               test->failm = NULL;
-       }
-       G_OBJECT_CLASS (classy_test_parent_class)->finalize (obj);
-}
-
-static void 
-classy_test_class_init (ClassyTestClass *klass)
-{
-       GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-
-       gobject_class->finalize = classy_test_finalize;
-
-       klass->report = classy_test_report;
-       klass->run = classy_test_run;
-
-       /*Signals*/
-       klass->finished = g_signal_newv("finished",
-                                       TYPE_CLASSY_TEST,
-                                       G_SIGNAL_RUN_LAST | G_SIGNAL_NO_HOOKS,
-                                       NULL,
-                                       NULL,
-                                       NULL,
-                                       g_cclosure_marshal_VOID__VOID,
-                                       G_TYPE_NONE,
-                                       0,
-                                       NULL);
-}
-
-static void
-classy_test_init (ClassyTest *test)
-{
-       test->failm = NULL;
-       test->tstate = CLASSY_TEST_NOT_STARTED;
-}
-
-/*---------------------------------------------------------------------------*/
-
-ClassyTest *
-classy_test_new(gchar *name,
-               void (*entry) (ClassyTest*, gpointer data),
-               gint istate,
-               gpointer data)
-{
-       ClassyTest *test;
-
-       test = g_object_new(TYPE_CLASSY_TEST, NULL);
-
-       test->name = g_strdup(name);
-       test->entry = entry;
-       test->data = data;
-       
-       return test;
-}
-
-/*---------------------------------------------------------------------------*/
-
-void
-classy_test_pass(ClassyTest *test)
-{
-       test->tstate = CLASSY_TEST_WIN;
-       g_signal_emit (test, CLASSY_TEST_CLASS(test)->finished, 0, NULL);
-}
-
-/*---------------------------------------------------------------------------*/
-
-void
-classy_test_fail(ClassyTest *test, gchar *fmt, ...)
-{
-       va_list args;
-
-       va_start(args, fmt);
-       test->failm = g_strdup_vprintf(fmt, args);
-       va_end(args);
-       test->tstate = CLASSY_TEST_FAIL;
-       g_signal_emit (test, CLASSY_TEST_CLASS(test)->finished, 0, NULL);
-}
-
-/*---------------------------------------------------------------------------*/
-
-gint
-classy_test_state(ClassyTest *test)
-{
-       return test->tstate;
-}
-
-/*---------------------------------------------------------------------------*/
diff --git a/tests/cspi/classy-test.h b/tests/cspi/classy-test.h
deleted file mode 100644 (file)
index 68e59e1..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/* 
- * Classy Test - Terrible framework for testing asyncronous interface
- *
- * Copyright (C) 2008 Codethink Ltd
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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 CLASSY_TEST_H
-#define CLASSY_TEST_H
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-GType classy_test_get_type(void);
-
-#define TYPE_CLASSY_TEST (classy_test_get_type())
-
-#define CLASSY_TEST(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),    \
-                         TYPE_CLASSY_TEST,                     \
-                         ClassyTest))
-
-#define CLASSY_TEST_CLASS(klass)     (G_TYPE_CHECK_CLASS_CAST((klass), \
-                                     TYPE_CLASSY_TEST,                 \
-                                     ClassyTestClass))
-
-#define IS_CLASSY_TEST(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
-                                    TYPE_CLASSY_TEST))
-
-#define IS_CLASSY_TEST_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass), \
-                                     TYPE_CLASSY_TEST))
-
-#define CLASSY_TEST_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS((obj), \
-                                     TYPE_CLASSY_TEST,                 \
-                                     ClassyTestClass))
-
-typedef struct _ClassyTest ClassyTest;
-typedef struct _ClassyTestClass ClassyTestClass;
-
-enum {
-       CLASSY_TEST_NOT_STARTED,
-       CLASSY_TEST_IN_PROGRESS,
-       CLASSY_TEST_FAIL,
-       CLASSY_TEST_WIN
-};
-
-struct _ClassyTest {
-       GObject parent;
-
-       gchar *name;
-       gchar *failm;
-       gint tstate;
-
-       void (*entry) (ClassyTest *tc, gpointer data);
-
-       gpointer data;
-};
-
-struct _ClassyTestClass {
-       GObjectClass parent;
-
-       /*Virtuals*/
-       gchar *(*report) (ClassyTest *test);
-       void   (*run)    (ClassyTest *test);
-
-       /*Signals*/
-       gint finished;
-};
-
-ClassyTest *
-classy_test_new(gchar *name,
-               void (*entry) (ClassyTest*, gpointer data),
-               gint istate,
-               gpointer data);
-
-void
-classy_test_pass(ClassyTest *test);
-
-void
-classy_test_fail(ClassyTest *test, gchar *fmt, ...);
-
-gint
-classy_test_state(ClassyTest *test);
-
-G_END_DECLS
-#endif /* CLASSY_TEST_H */
diff --git a/tests/cspi/key-listener-test.c b/tests/cspi/key-listener-test.c
deleted file mode 100644 (file)
index b212a21..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/tests/cspi/keysynth-test.c b/tests/cspi/keysynth-test.c
deleted file mode 100644 (file)
index 73aa240..0000000
+++ /dev/null
@@ -1,65 +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 "common/spi-dbus.h"
-
-typedef struct {
-       long int val;
-       char *string;
-       AccessibleKeySynthType type;
-} TextTest;
-
-static TextTest text[] = {
-       {65, NULL, SPI_KEY_PRESSRELEASE},
-       {64, NULL, SPI_KEY_SYM},
-       {0,  "--hello!", SPI_KEY_STRING},
-       {0, "StudlyCaps!", SPI_KEY_STRING}
-};
-
-static void
-test_key_synthesis (void)
-{
-       int i;
-       for (i = 0; i < G_N_ELEMENTS (text); ++i) {
-               SPI_generateKeyboardEvent (text[i].val, text[i].string, text[i].type);
-       }
-}
-
-int
-main (int argc, char **argv)
-{
-       gtk_init (&argc, &argv);
-       SPI_init ();
-
-       test_key_synthesis ();
-
-       return SPI_exit ();
-}
-
diff --git a/tests/cspi/simple-at.c b/tests/cspi/simple-at.c
deleted file mode 100644 (file)
index 23cb0ec..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/tests/cspi/simple-test.c b/tests/cspi/simple-test.c
deleted file mode 100644 (file)
index 21c74a6..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 Codethink Ltd.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser 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 <glib.h>
-#include <cspi/spi.h>
-
-#include <stdio.h>
-
-int
-main (int argc, char **argv)
-{
-       gint i;
-       gint n_desktops;
-       gchar *s;
-
-       SPI_init ();
-
-       n_desktops = SPI_getDesktopCount ();
-
-       for (i=0; i<n_desktops; ++i) {
-               Accessible *desktop;
-
-               desktop = SPI_getDesktop (i);
-               s = Accessible_getName (desktop);
-               fprintf (stderr, "desktop %d name: %s\n", i, s);
-               SPI_freeString (s);
-               Accessible_unref (desktop);
-       }
-       return SPI_exit ();
-}
diff --git a/tests/cspi/test-simple.c b/tests/cspi/test-simple.c
deleted file mode 100644 (file)
index 62bcb31..0000000
+++ /dev/null
@@ -1,816 +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 <cspi/spi-private.h>
-
-#include "dbus/dbus.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++)
-               dbus_connection_read_write_dispatch (SPI_bus(), 5);
-
-       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/tests/data/Makefile.am b/tests/data/Makefile.am
deleted file mode 100644 (file)
index b06736b..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-EXTRA_DIST = \
-       accessible-test.xml\
-       accessible-test-results.xml
diff --git a/tests/data/accessible-test-results.xml b/tests/data/accessible-test-results.xml
deleted file mode 100644 (file)
index a522187..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" ?>
-<accessible description="The main accessible object, root of the accessible tree" name="main" role="69">
-       <accessible description="" name="gnome-settings-daemon" role="79"/>
-       <accessible description="" name="gnome-panel" role="79">
-               <accessible description="" name="Bottom Expanded Edge Panel" role="25"/>
-               <accessible description="" name="Top Expanded Edge Panel" role="25"/>
-       </accessible>
-       <accessible description="" name="nautilus" role="79">
-               <accessible description="" name="Desktop" role="25"/>
-       </accessible>
-       <accessible description="" name="metacity" role="79"/>
-       <accessible description="" name="tracker-applet" role="79"/>
-       <accessible description="" name="empathy" role="79">
-               <accessible description="" name="Contact List" role="25"/>
-       </accessible>
-       <accessible description="" name="nm-applet" role="79"/>
-       <accessible description="" name="gnome-power-manager" role="79"/>
-       <accessible description="" name="update-notifier" role="79"/>
-       <accessible description="Firefox Application Accessible" name="Firefox" role="79">
-               <accessible description="Firefox Application Accessible" name="Google Reader - Mozilla Firefox 3 Beta 5" role="25">
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="Strip originally conceived in conversation with Jeph Jacques. Soon to be a major motion picture." role="66"/>
-                       <accessible description="" name="" role="68">
-                               <accessible description="" name="" role="33">
-                                       <accessible description="" name="" role="10"/>
-                                       <accessible description="" name="" role="10"/>
-                               </accessible>
-                       </accessible>
-                       <accessible description="" name="" role="35">
-                               <accessible description="" name="" role="69"/>
-                       </accessible>
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="" role="66"/>
-                       <accessible description="" name="" role="66"/>
-                       <accessible description="" name="" role="65">
-                               <accessible description="" name="Application" role="36"/>
-                               <accessible description="" name="" role="53"/>
-                               <accessible description="" name="Activity Indicator" role="45"/>
-                       </accessible>
-                       <accessible description="" name="" role="65">
-                               <accessible description="Go back one page" name="Back" role="45"/>
-                               <accessible description="Go forwards one page" name="Forward" role="45"/>
-                               <accessible description="" name="" role="45"/>
-                               <accessible description="Reload current page" name="Reload" role="45"/>
-                               <accessible description="Stop loading this page" name="Stop" role="45"/>
-                               <accessible description="chrome://ubufox/content/startpage.html" name="Home" role="45"/>
-                               <accessible description="" name="Location" role="80"/>
-                               <accessible description="" name="Search using Google" role="80"/>
-                       </accessible>
-                       <accessible description="" name="" role="65">
-                               <accessible description="" name="Smart Bookmarks" role="45"/>
-                               <accessible description="" name="Getting Started" role="45"/>
-                               <accessible description="" name="Latest Headlines" role="45"/>
-                       </accessible>
-                       <accessible description="" name="" role="41">
-                               <accessible description="" name="Google Reader" role="66"/>
-                               <accessible description="" name="" role="35"/>
-                               <accessible description="" name="" role="40"/>
-                               <accessible description="" name="" role="51"/>
-                               <accessible description="" name="" role="51">
-                                       <accessible description="" name="Google Reader" role="30">
-                                               <accessible description="" name="Google Reader" role="86">
-                                                       <accessible description="" name="Click here for ARIA enhanced Google Reader." role="72"/>
-                                                       <accessible description="" name="" role="89"/>
-                                                       <accessible description="" name="" role="89"/>
-                                                       <accessible description="" name="" role="89"/>
-                                                       <accessible description="" name="Google Reader" role="72"/>
-                                                       <accessible description="" name="" role="63"/>
-                                                       <accessible description="" name="" role="89"/>
-                                                       <accessible description="" name="" role="89">
-                                                               <accessible description="" name="" role="89"/>
-                                                               <accessible description="" name="" role="89"/>
-                                                               <accessible description="" name="" role="89">
-                                                                       <accessible description="" name="" role="57"/>
-                                                                       <accessible description="" name="" role="89">
-                                                                               <accessible description="" name="" role="89">
-                                                                                       <accessible description="" name="" role="89">
-                                                                                               <accessible description="" name="" role="57"/>
-                                                                                               <accessible description="" name="" role="57">
-                                                                                                       <accessible description="" name="" role="58">
-                                                                                                               <accessible description="" name="" role="89">
-                                                                                                                       <accessible description="" name="" role="89"/>
-                                                                                                                       <accessible description="" name="" role="63"/>
-                                                                                                                       <accessible description="" name="Google News" role="72"/>
-                                                                                                                       <accessible description="" name="" role="89">
-                                                                                                                               <accessible description="" name="" role="89"/>
-                                                                                                                               <accessible description="" name="" role="89">
-                                                                                                                                       <accessible description="" name="Reader and ARIA: A new way to read" role="72"/>
-                                                                                                                               </accessible>
-                                                                                                                               <accessible description="" name="" role="89">
-                                                                                                                                       <accessible description="" name="Official Google Reader Blog" role="72"/>
-                                                                                                                               </accessible>
-                                                                                                                               <accessible description="" name="" role="89"/>
-                                                                                                                       </accessible>
-                                                                                                               </accessible>
-                                                                                                       </accessible>
-                                                                                                       <accessible description="" name="" role="58"/>
-                                                                                               </accessible>
-                                                                                       </accessible>
-                                                                                       <accessible description="" name="" role="89">
-                                                                                               <accessible description="" name="Google Reader Blog" role="72"/>
-                                                                                               <accessible description="" name="Discuss" role="72"/>
-                                                                                               <accessible description="" name="Privacy Policy" role="72"/>
-                                                                                               <accessible description="" name="Help" role="72"/>
-                                                                                               <accessible description="" name="" role="89"/>
-                                                                                       </accessible>
-                                                                               </accessible>
-                                                                       </accessible>
-                                                               </accessible>
-                                                       </accessible>
-                                                       <accessible description="" name="" role="89">
-                                                               <accessible description="" name="" role="29"/>
-                                                               <accessible description="" name="" role="29"/>
-                                                               <accessible description="" name="" role="29"/>
-                                                               <accessible description="" name="" role="29"/>
-                                                               <accessible description="" name="" role="29"/>
-                                                       </accessible>
-                                               </accessible>
-                                       </accessible>
-                               </accessible>
-                       </accessible>
-                       <accessible description="" name="" role="35"/>
-                       <accessible description="" name="" role="56">
-                               <accessible description="" name="Done" role="45"/>
-                               <accessible description="" name="" role="45"/>
-                       </accessible>
-               </accessible>
-       </accessible>
-       <accessible description="" name="gnome-terminal" role="79">
-               <accessible description="" name="mdoff@silver-wind: ~/Projects/accessibility/dbus-atspi/test" role="25"/>
-       </accessible>
-</accessible>
diff --git a/tests/data/accessible-test.xml b/tests/data/accessible-test.xml
deleted file mode 100644 (file)
index c881873..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-<?xml version="1.0" ?>
-<accessible description="The main accessible object, root of the accessible tree" name="main" role="68">
-       <accessible description="" name="gnome-settings-daemon" role="77"/>
-       <accessible description="" name="gnome-panel" role="77">
-               <accessible description="" name="Bottom Expanded Edge Panel" role="24"/>
-               <accessible description="" name="Top Expanded Edge Panel" role="24"/>
-       </accessible>
-       <accessible description="" name="nautilus" role="77">
-               <accessible description="" name="Desktop" role="24"/>
-       </accessible>
-       <accessible description="" name="metacity" role="77"/>
-       <accessible description="" name="tracker-applet" role="77"/>
-       <accessible description="" name="empathy" role="77">
-               <accessible description="" name="Contact List" role="24"/>
-       </accessible>
-       <accessible description="" name="nm-applet" role="77"/>
-       <accessible description="" name="gnome-power-manager" role="77"/>
-       <accessible description="" name="update-notifier" role="77"/>
-       <accessible description="Firefox Application Accessible" name="Firefox" role="77">
-               <accessible description="Firefox Application Accessible" name="Google Reader - Mozilla Firefox 3 Beta 5" role="24">
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="Strip originally conceived in conversation with Jeph Jacques. Soon to be a major motion picture." role="65"/>
-                       <accessible description="" name="" role="67">
-                               <accessible description="" name="" role="32">
-                                       <accessible description="" name="" role="10"/>
-                                       <accessible description="" name="" role="10"/>
-                               </accessible>
-                       </accessible>
-                       <accessible description="" name="" role="34">
-                               <accessible description="" name="" role="68"/>
-                       </accessible>
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="" role="65"/>
-                       <accessible description="" name="" role="65"/>
-                       <accessible description="" name="" role="64">
-                               <accessible description="" name="Application" role="35"/>
-                               <accessible description="" name="" role="51"/>
-                               <accessible description="" name="Activity Indicator" role="44"/>
-                       </accessible>
-                       <accessible description="" name="" role="64">
-                               <accessible description="Go back one page" name="Back" role="44"/>
-                               <accessible description="Go forwards one page" name="Forward" role="44"/>
-                               <accessible description="" name="" role="44"/>
-                               <accessible description="Reload current page" name="Reload" role="44"/>
-                               <accessible description="Stop loading this page" name="Stop" role="44"/>
-                               <accessible description="chrome://ubufox/content/startpage.html" name="Home" role="44"/>
-                               <accessible description="" name="Location" role="78"/>
-                               <accessible description="" name="Search using Google" role="78"/>
-                       </accessible>
-                       <accessible description="" name="" role="64">
-                               <accessible description="" name="Smart Bookmarks" role="44"/>
-                               <accessible description="" name="Getting Started" role="44"/>
-                               <accessible description="" name="Latest Headlines" role="44"/>
-                       </accessible>
-                       <accessible description="" name="" role="40">
-                               <accessible description="" name="Google Reader" role="65"/>
-                               <accessible description="" name="" role="34"/>
-                               <accessible description="" name="" role="39"/>
-                               <accessible description="" name="" role="50"/>
-                               <accessible description="" name="" role="50">
-                                       <accessible description="" name="Google Reader" role="29">
-                                               <accessible description="" name="Google Reader" role="84">
-                                                       <accessible description="" name="Click here for ARIA enhanced Google Reader." role="70"/>
-                                                       <accessible description="" name="" role="87"/>
-                                                       <accessible description="" name="" role="87"/>
-                                                       <accessible description="" name="" role="87"/>
-                                                       <accessible description="" name="Google Reader" role="70"/>
-                                                       <accessible description="" name="" role="62"/>
-                                                       <accessible description="" name="" role="87"/>
-                                                       <accessible description="" name="" role="87">
-                                                               <accessible description="" name="" role="87"/>
-                                                               <accessible description="" name="" role="87"/>
-                                                               <accessible description="" name="" role="87">
-                                                                       <accessible description="" name="" role="56"/>
-                                                                       <accessible description="" name="" role="87">
-                                                                               <accessible description="" name="" role="87">
-                                                                                       <accessible description="" name="" role="87">
-                                                                                               <accessible description="" name="" role="56"/>
-                                                                                               <accessible description="" name="" role="56">
-                                                                                                       <accessible description="" name="" role="57">
-                                                                                                               <accessible description="" name="" role="87">
-                                                                                                                       <accessible description="" name="" role="87"/>
-                                                                                                                       <accessible description="" name="" role="62"/>
-                                                                                                                       <accessible description="" name="Google News" role="70"/>
-                                                                                                                       <accessible description="" name="" role="87">
-                                                                                                                               <accessible description="" name="" role="87"/>
-                                                                                                                               <accessible description="" name="" role="87">
-                                                                                                                                       <accessible description="" name="Reader and ARIA: A new way to read" role="70"/>
-                                                                                                                               </accessible>
-                                                                                                                               <accessible description="" name="" role="87">
-                                                                                                                                       <accessible description="" name="Official Google Reader Blog" role="70"/>
-                                                                                                                               </accessible>
-                                                                                                                               <accessible description="" name="" role="87"/>
-                                                                                                                       </accessible>
-                                                                                                               </accessible>
-                                                                                                       </accessible>
-                                                                                                       <accessible description="" name="" role="57"/>
-                                                                                               </accessible>
-                                                                                       </accessible>
-                                                                                       <accessible description="" name="" role="87">
-                                                                                               <accessible description="" name="Google Reader Blog" role="70"/>
-                                                                                               <accessible description="" name="Discuss" role="70"/>
-                                                                                               <accessible description="" name="Privacy Policy" role="70"/>
-                                                                                               <accessible description="" name="Help" role="70"/>
-                                                                                               <accessible description="" name="" role="87"/>
-                                                                                       </accessible>
-                                                                               </accessible>
-                                                                       </accessible>
-                                                               </accessible>
-                                                       </accessible>
-                                                       <accessible description="" name="" role="87">
-                                                               <accessible description="" name="" role="28"/>
-                                                               <accessible description="" name="" role="28"/>
-                                                               <accessible description="" name="" role="28"/>
-                                                               <accessible description="" name="" role="28"/>
-                                                               <accessible description="" name="" role="28"/>
-                                                       </accessible>
-                                               </accessible>
-                                       </accessible>
-                               </accessible>
-                       </accessible>
-                       <accessible description="" name="" role="34"/>
-                       <accessible description="" name="" role="55">
-                               <accessible description="" name="Done" role="44"/>
-                               <accessible description="" name="" role="44"/>
-                       </accessible>
-               </accessible>
-       </accessible>
-       <accessible description="" name="gnome-terminal" role="77">
-               <accessible description="" name="mdoff@silver-wind: ~/Projects/accessibility/dbus-atspi/test" role="24"/>
-       </accessible>
-</accessible>
diff --git a/tests/dummyatk/Makefile.am b/tests/dummyatk/Makefile.am
deleted file mode 100644 (file)
index 2e93052..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-check_LTLIBRARIES = libdummyatk.la
-
-libdummyatk_la_CFLAGS = $(ATK_CFLAGS)  \
-                       -I$(top_srcdir)
-
-libdummyatk_la_LDFLAGS = -no-undefined \
-                        -module        \
-                        -avoid-version 
-
-libdummyatk_la_LIBADD = $(ATK_LIBS)
-
-libdummyatk_la_SOURCES = my-atk-action.c               \
-                        my-atk-action.h                \
-                        my-atk-component.c             \
-                        my-atk-component.h             \
-                        my-atk-hyperlink.c             \
-                        my-atk-hyperlink.h             \
-                        my-atk-hypertext.c             \
-                        my-atk-hypertext.h             \
-                        my-atk-object.c                \
-                        my-atk-object.h                \
-                        my-atk-selection.c             \
-                        my-atk-selection.h             \
-                        my-atk-streamable-content.c    \
-                        my-atk-streamable-content.h    \
-                        my-atk-table.c                 \
-                        my-atk-table.h                 \
-                        my-atk-text.c                  \
-                        my-atk-text.h                  \
-                        my-atk-value.c                 \
-                        my-atk-value.h                 \
-                        my-atk.h                       \
-                        resources_storage.c            \
-                        resources_storage.h            \
-                        useful_functions.c             \
-                        useful_functions.h             \
-                        user_marshal.c                 \
-                        user_marshal.h
diff --git a/tests/dummyatk/my-atk-action.c b/tests/dummyatk/my-atk-action.c
deleted file mode 100644 (file)
index 363356a..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-#include "my-atk-action.h"
-
-static GObjectClass *parent_class = NULL;
-//implementaion of the interface
-static gboolean my_atk_action_do_action(AtkAction *action, gint i)
-{
-    MyAtkAction *self = (MyAtkAction*)action;
-    gboolean result = (i>=0) && (i < self->n);
-    self->last_performed_action = result? i : -1;
-    return result;
-}
-static gint my_atk_action_get_n_actions(AtkAction *action)
-{
-    MyAtkAction *self = (MyAtkAction*)action;
-    return self->n;
-}
-static const gchar* my_atk_action_get_description(AtkAction *action, gint i)
-{
-    MyAtkAction *self = (MyAtkAction*)action;
-    if((i>=0) && (i<self->n))
-    {
-         return self->actions[i].description;
-    }
-    else
-    {
-        printf("get_description: Wrong index.\n");
-        return NULL;
-    }
-}
-static const gchar* my_atk_action_get_name(AtkAction *action, gint i)
-{
-    MyAtkAction *self = (MyAtkAction*)action;
-    if((i >= 0) && (i < self->n))
-    {
-         return self->actions[i].name;
-    }
-    else
-    {
-        printf("get_name: Wrong index.\n");
-        return NULL;
-    }
-}
-static const gchar* my_atk_action_get_localized_name(AtkAction *action, gint i)
-{
-    return my_atk_action_get_name(action,i);
-}
-
-static const gchar* my_atk_action_get_keybinding(AtkAction *action, gint i)
-{
-    MyAtkAction *self = (MyAtkAction*)action;
-    if((i >= 0) && (i < self->n))
-    {
-        gchar* keyb = self->actions[i].keybinding;
-        if(keyb == NULL || keybinding_note_define == NULL)
-        {
-            //anywhere(if action has keybinding or not) NULL will return
-            return NULL;
-        }
-        else
-        {
-            //verify, if string mean "no keybinding"
-            return strcmp(keyb, keybinding_note_define) != 0 ? keyb : NULL;
-        }
-    }
-    else
-    {
-        printf("get_keybinding: Wrong index.\n");
-        return NULL;
-    }
-}
-static gboolean my_atk_action_set_description(AtkAction *action, gint i, const gchar *desc)
-{
-    MyAtkAction *self = (MyAtkAction*)action;
-
-    if(!((i >= 0) && (i < self->n)) )
-    {
-        //index out of range, but this is not application error according documentation
-        return FALSE;
-    }
-    //index in correct range
-    if(self->actions[i].description == desc)
-    {
-        //self assignment - return immediately
-        return TRUE;
-    }
-    if(self->actions[i].description != NULL)
-    {
-        //free old value of description if it is not NULL
-        free(self->actions[i].description);
-    }
-    if(desc != NULL)
-    {
-        //dump new value of description if it is not NULL
-        self->actions[i].description = (gchar*)strdup((const char*)desc);
-    }
-    return TRUE;
-}
-//////////
-static void my_atk_action_instance_init(GTypeInstance *instance, gpointer g_class)
-{
-  int i;
-    MyAtkAction *self = (MyAtkAction*)instance;
-    self->n = DEFAULT_NUMBER_ACTIONS;
-    self->actions = g_new(struct OneAction, self->n);
-    if(self->actions == NULL)
-    {
-        self->n = 0;
-        return;
-    }
-    //init fields of action 0 with values which differ from others actions
-    self->actions[0].name = (gchar*)strdup(FIRST_ACTION_NAME);
-    self->actions[0].description = (gchar*)strdup(FIRST_ACTION_DESCRIPTION);
-    self->actions[0].keybinding = (gchar*)strdup(FIRST_ACTION_KEYBINDING);
-
-    for(i = 1; i < self->n; i++)
-    {
-        self->actions[i].name = (gchar*)strdup(DEFAULT_ACTION_NAME);
-        self->actions[i].description = (gchar*)strdup(DEFAULT_ACTION_DESCRIPTION);
-        self->actions[i].keybinding = g_strdup_printf("%d", i);
-    }
-    self->disposed = FALSE;
-    self->last_performed_action = -1;
-}
-
-static void
-my_atk_action_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkActionIface *klass = (AtkActionIface *)g_iface;
-
-    klass->do_action = my_atk_action_do_action;
-    klass->get_n_actions = my_atk_action_get_n_actions;
-    klass->get_description = my_atk_action_get_description;
-    klass->get_name = my_atk_action_get_name;
-    klass->get_localized_name = my_atk_action_get_localized_name;
-    klass->get_keybinding = my_atk_action_get_keybinding;
-    klass->set_description = my_atk_action_set_description;
-}
-
-static void
-my_atk_action_dispose(GObject *obj)
-{
-    MyAtkAction *self = (MyAtkAction*)obj;
-
-    if(self->disposed)
-    {
-        return;
-    }
-    self->disposed = TRUE;
-
-    G_OBJECT_CLASS(parent_class)->dispose(obj);
-}
-
-static void 
-my_atk_action_finalize(GObject *obj)
-{
-    MyAtkAction *self = (MyAtkAction*)obj;
-  int i;
-
-    for(i = 0; i < self->n; i++)
-    {
-        struct OneAction oneAction = self->actions[i];
-        if(oneAction.name != NULL)
-            free(oneAction.name);
-        if(oneAction.description != NULL)
-            free(oneAction.description);
-        if(oneAction.keybinding != NULL)
-            free(oneAction.keybinding);
-    }
-    if(self->actions != NULL)
-        g_free(self->actions);
-
-    G_OBJECT_CLASS(parent_class)->finalize(obj);
-}
-static void
-my_atk_action_class_init (gpointer g_class, gpointer g_class_data)
-{
-    GObjectClass *gobject_class = G_OBJECT_CLASS(g_class);
-    MyAtkActionClass *klass = MY_ATK_ACTION_CLASS (g_class);
-
-    gobject_class->dispose = my_atk_action_dispose;
-    gobject_class->finalize = my_atk_action_finalize;
-
-    parent_class = g_type_class_peek_parent(klass);
-}
-GType my_atk_action_get_type(void)
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo info =
-        {
-            sizeof (MyAtkActionClass),
-            NULL,   /* base_init */
-            NULL,   /* base_finalize */
-            my_atk_action_class_init, /* class_init */
-            NULL,   /* class_finalize */
-            NULL,   /* class_data */
-            sizeof (MyAtkAction),
-            0,      /* n_preallocs */
-            my_atk_action_instance_init    /* instance_init */
-        };
-
-        static const GInterfaceInfo iface_info = 
-        {
-            (GInterfaceInitFunc) my_atk_action_interface_init,    /* interface_init */
-            NULL,                                       /* interface_finalize */
-            NULL                                        /* interface_data */
-        };
-        type = g_type_register_static (MY_TYPE_ATK_OBJECT,
-            "MyAtkAction",
-            &info, 0);
-        g_type_add_interface_static (type,
-            ATK_TYPE_ACTION,
-            &iface_info);
-    }
-    return type;
-}
diff --git a/tests/dummyatk/my-atk-action.h b/tests/dummyatk/my-atk-action.h
deleted file mode 100644 (file)
index f33e75d..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#ifndef MY_ATK_ACTION_H
-#define MY_ATK_ACTION_H
-//Object, which implement interface AtkAction(all functions)
-#include <glib.h>
-#include <glib-object.h>
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-
-//declarations
-#define MY_TYPE_ATK_ACTION             (my_atk_action_get_type ())
-#define MY_ATK_ACTION(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_ACTION, MyAtkAction))
-#define MY_ATK_ACTION_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_ACTION, MyAtkActionClass))
-#define MY_IS_ATK_ACTION(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_ACTION))
-#define MY_IS_ATK_ACTION_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_ACTION))
-#define MY_ATK_ACTION_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_ACTION, MyAtkActionClass))
-
-static const gchar* keybinding_note_define = "none";
-
-#define FIRST_ACTION_NAME "First action"
-#define FIRST_ACTION_DESCRIPTION "First action performed"
-#define FIRST_ACTION_KEYBINDING "0"
-
-#define DEFAULT_NUMBER_ACTIONS 10
-#define DEFAULT_ACTION_NAME "Action"
-#define DEFAULT_ACTION_DESCRIPTION "Description of action"
-#define DEFAULT_ACTION_KEYBINDING keybinding_note_define
-
-
-//for external using
-#define LAST_PERFORMED_ACTION(myAtkAction) (MY_ATK_ACTION(myAtkAction)->last_performed_action)
-#define CLEAR_LAST_PERFOMED_ACTION(myAtkAction) (MY_ATK_ACTION(myAtkAction)->last_performed_action = -1
-
-typedef struct _MyAtkAction MyAtkAction;
-typedef struct _MyAtkActionClass MyAtkActionClass;
-
-struct _MyAtkAction
-{
-    MyAtkObject parent;
-
-    gboolean disposed;
-    struct OneAction
-    {
-        gchar *name;
-        gchar *description;
-        gchar *keybinding;
-    }*actions;
-    gint n;
-    gint last_performed_action;//this field is changed when perfoms action
-};
-
-struct _MyAtkActionClass
-{
-    MyAtkObjectClass parent;
-};
-GType my_atk_action_get_type(void);
-
-#endif /*MY_ATK_ACTION_H*/
diff --git a/tests/dummyatk/my-atk-component.c b/tests/dummyatk/my-atk-component.c
deleted file mode 100644 (file)
index e304c7d..0000000
+++ /dev/null
@@ -1,403 +0,0 @@
-#include <stdio.h>
-#include <atk/atk.h>
-#include <limits.h>
-
-#include "my-atk-object.h"
-#include "my-atk-component.h"
-
-//*************************implementation***********************
-static MyAtkObjectClass *component_parent_class = NULL;
-//current focus object
-static AtkComponent* focus_object = NULL;
-
-static guint focus_signal_id = 0;
-/*
- * Because of implementation of AtkUtils, we need to ensure that list of focus_trackers 
- * is not empty. Otherwise function atk_focus_tracker_notify will not change focus.
- */
-static guint focus_tracker_id = 0;
-static void my_event_listener(AtkObject* obj)
-{
-    //simply exist for register as focus_tracker
-}
-/*
- * If this flag is TRUE, then focus cannot be changed until someone clears the flag
- * via my_atk_component_set_modal(FALSE).
- */
-static gboolean is_modal = FALSE;
-//for debug
-void print_extent(AtkRectangle *extent)
-{
-    printf("{%d,%d,%d,%d}", extent->x, extent->y, extent->width, extent->height);
-}
-//for internal use
-static void emit_bounds_changed(MyAtkComponent *component)
-{
-    static guint bounds_changed_id = 0;
-    if(bounds_changed_id == 0)
-    {
-        bounds_changed_id = g_signal_lookup("bounds-changed", ATK_TYPE_COMPONENT);
-    }
-    AtkRectangle *param = g_boxed_copy(ATK_TYPE_RECTANGLE, &(component->extent));
-    g_signal_emit(component, bounds_changed_id, 0, param);
-}
-static void change_focus(AtkComponent* component, gboolean is_gain)
-{
-    const gchar* state_name = atk_state_type_get_name(ATK_STATE_FOCUSED);
-    
-    g_signal_emit_by_name(component, "focus-event", is_gain);
-    g_signal_emit_by_name(component, "state-change::focused",
-        state_name, is_gain);
-    
-    AtkObject* parent = atk_object_get_parent((AtkObject*)component);
-    if(parent != NULL)
-    {
-        AtkStateSet* stateSet = atk_object_ref_state_set(parent);
-        if(atk_state_set_contains_state(stateSet, ATK_STATE_MANAGES_DESCENDANTS))
-            g_signal_emit_by_name(parent, "active-descendant-changed",
-                atk_get_focus_object());
-        g_object_unref(stateSet);
-    }
-}
-//implementation of virtual functions
-//******************ref_state_set(AtkObject)*****************************
-static AtkStateSet* my_atk_component_ref_state_set(AtkObject *object)
-{
-    MyAtkComponent *self = (MyAtkComponent*)object;
-    
-    AtkStateSet* result = ((AtkObjectClass*)component_parent_class)->
-        ref_state_set(object);
-    if(self->is_manage_descendants) 
-        atk_state_set_add_state(result, ATK_STATE_MANAGES_DESCENDANTS);
-    return result;
-}
-//******************get_size*******************
-static void my_atk_component_get_size(AtkComponent *component, gint *width, gint *height)
-{
-    g_return_if_fail(MY_IS_ATK_COMPONENT(component));
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    *width = self->extent.width;
-    *height = self->extent.height;
-}
-//*********************get_position*******************
-static void my_atk_component_get_position(AtkComponent *component, gint *x, gint *y, AtkCoordType coord_type)
-{
-    g_return_if_fail(MY_IS_ATK_COMPONENT(component));
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    *x = self->extent.x;
-    *y = self->extent.y;
-    
-//**********************get_extents*******************
-}
-static void my_atk_component_get_extents(AtkComponent *component, gint *x, gint *y,
-    gint *width, gint *height, AtkCoordType coord_type)
-{
-    g_return_if_fail(MY_IS_ATK_COMPONENT(component));
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    *x = self->extent.x;
-    *y = self->extent.y;
-    *width = self->extent.width;
-    *height = self->extent.height;
-}
-
-//**************************set_size*******************
-static gboolean my_atk_component_set_size(AtkComponent *component, gint width, gint height)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), FALSE);
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    if(self->is_extent_may_changed)
-    {
-        self->extent.width = width;
-        self->extent.height = height;
-    
-        emit_bounds_changed(self);
-        
-        return TRUE;
-    }
-    return FALSE;
-}
-//**************************set_position********************
-static gboolean my_atk_component_set_position(AtkComponent *component,
-    gint x, gint y, AtkCoordType coord_type)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), FALSE);
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    if(self->is_extent_may_changed)
-    {
-        self->extent.x = x;
-        self->extent.y = y;
-        
-        emit_bounds_changed(self);
-
-        return TRUE;
-    }
-    return FALSE;
-}
-//*************************************set_extents***************
-static gboolean my_atk_component_set_extents(AtkComponent *component,
-    gint x, gint y, gint width, gint height, AtkCoordType coord_type)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), FALSE);
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    
-    if(self->is_extent_may_changed)
-    {
-        self->extent.x = x;
-        self->extent.y = y;
-        self->extent.width = width;
-        self->extent.height = height;
-        
-        emit_bounds_changed(self);
-        
-        return TRUE;
-    }
-    return FALSE;
-}
-//**************************get_layer****************
-static AtkLayer my_atk_component_get_layer(AtkComponent *component)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), ATK_LAYER_INVALID);
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    return self->layer;
-}
-//**************************get_mdi_zorder****************
-static gint my_atk_component_get_mdi_zorder(AtkComponent *component)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), G_MININT);
-    
-    MyAtkComponent *self = MY_ATK_COMPONENT(component);
-    return self->zorder;
-}
-//***********************contains**********************
-static gboolean my_atk_component_contains(AtkComponent *component,
-    gint x, gint y, AtkCoordType coord_type)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), FALSE);
-    //for extract extent
-    gint x_tmp, y_tmp, width_tmp, height_tmp;
-    my_atk_component_get_extents(component, &x_tmp, &y_tmp, &width_tmp, &height_tmp, coord_type);
-    
-    if( (x >= x_tmp) &&(y >= y_tmp) &&(x < x_tmp + width_tmp) && (y < y_tmp + height_tmp) )
-    {
-        return TRUE;
-    }
-    else
-    {
-        return FALSE;
-    }
-}
-//**********************ref_accessible_at_point***********************
-/*
- * Retuns accessible child that implements AtkCOmponent and contains the given point.
- */
-static AtkObject* my_atk_component_ref_accessible_at_point(AtkComponent* component,
-    gint x, gint y, AtkCoordType coord_type)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component), NULL);
-    gint i;
-    
-    gint n_children = atk_object_get_n_accessible_children((AtkObject*)component);
-    for(i = 0; i < n_children; i++)
-    {
-        AtkObject *child = atk_object_ref_accessible_child((AtkObject*)component, i);
-        if(ATK_IS_COMPONENT(child)
-            && atk_component_contains((AtkComponent*)child, x, y, coord_type))
-        {
-            return child;
-        }
-        g_object_unref(child);
-    }
-    return NULL;
-}
-//*************************************grab_focus*********************************
-static gboolean my_atk_component_grab_focus(AtkComponent* component)
-{
-    if(component == focus_object)
-    { 
-        //Already has focus
-        return TRUE;
-    }
-    if(is_modal)
-    {
-        //cannot grab focus
-        return FALSE;
-    }
-    AtkComponent *focus_object_old = focus_object;
-    focus_object = component;
-    
-    atk_focus_tracker_notify((AtkObject*)component);
-    
-    if(focus_object_old != NULL)
-    {
-        //signals for object which lost focus
-        change_focus(focus_object_old, FALSE);
-    }
-    if(component != NULL)
-    {
-        //signals for object which grab focus
-        change_focus(component, TRUE);
-    }
-    return TRUE;
-}
-//***********************my_atk_component_add_focus_handler*********************
-static guint my_atk_component_add_focus_handler(AtkComponent *component, AtkFocusHandler handler)
-{
-    g_return_val_if_fail(MY_IS_ATK_COMPONENT(component),0);
-    //verify whether handler already connect to object
-    gulong found_handler_id = g_signal_handler_find(component,
-        G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC,
-        focus_signal_id,
-        0,
-        NULL,
-        (gpointer)handler,
-        NULL);
-    if(found_handler_id == 0)
-    {
-        //handler hasn't been connected yet
-        return g_signal_connect_closure_by_id(component,
-            focus_signal_id,
-            0,
-            g_cclosure_new( (GCallback)handler,
-                NULL,
-                NULL),
-            FALSE);
-    }
-    else/* found_handler_id != 0*/
-    {
-        //handler has already been connected
-        return 0;
-    }
-
-}
-//***********************my_atk_component_remove_focus_handler*********************
-static void my_atk_component_remove_focus_handler(AtkComponent *component, guint handler_id)
-{
-    g_signal_handler_disconnect(component, handler_id);
-}
-//***********************my_atk_component_set_modal(my function)***************
-void my_atk_component_set_modal(gboolean value)
-{
-    is_modal = value;
-}
-//******************my_atk_component_set_manage_descendants(my_function)*******
-void my_atk_component_set_manage_descendants(MyAtkComponent* component, gboolean value)
-{
-    if(component->is_manage_descendants == value)return;
-    component->is_manage_descendants = value;
-    g_signal_emit_by_name(component, "state-change::manages-descendants",
-        "manages-descendants", value);
-}
-//Others funtions
-static void my_atk_component_instance_init(GTypeInstance *obj, gpointer g_class)
-{
-    MyAtkComponent *self = (MyAtkComponent*)obj;
-    //set defaults values
-    self->extent.x = 0;
-    self->extent.y = 0;
-    self->extent.width = 10;
-    self->extent.height = 10;
-    self->is_extent_may_changed = TRUE;
-    self->layer = ATK_LAYER_INVALID;
-    self->zorder = -2147;
-}
-static void my_atk_component_instance_finalize(GObject* obj)
-{
-    MyAtkComponent* component = (MyAtkComponent*)obj;
-
-    if(((AtkObject*)component) == atk_get_focus_object())
-    {
-        atk_focus_tracker_notify(NULL);
-    }
-}
-
-static void my_atk_component_class_init(gpointer g_class, gpointer class_data)
-{
-    GObjectClass* g_object_class = (GObjectClass*)g_class;
-    AtkObjectClass* atkObject_class = (AtkObjectClass*)g_class;
-    //GObject virtual table
-    g_object_class->finalize = my_atk_component_instance_finalize;
-    //AtkObject virtual table
-    atkObject_class->ref_state_set = my_atk_component_ref_state_set;
-    //parent_class
-    component_parent_class = g_type_class_peek_parent(g_class);
-    //make focus_tracker's table not empty.
-    focus_tracker_id = atk_add_focus_tracker(my_event_listener);
-    //store "focus-event"-signal id
-    focus_signal_id = g_signal_lookup("focus-event",MY_TYPE_ATK_COMPONENT);
-}
-/*
- * Though, according to the documentation, this function will never called for 
- * static-registred types.
- * Base_init function doesn't suite for this work,
- * because it will called in every derived classes.
- */
-/*static void my_atk_component_class_finalize(gpointer g_class, gpointer class_data)
-{
-    
-    if(focus_tracker_id != 0)
-    {
-        atk_remove_focus_tracker(focus_tracker_id);
-        focus_tracker_id = 0;
-    }
-}*/
-static void my_atk_component_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkComponentIface *klass = (AtkComponentIface*)g_iface;
-    
-    klass->get_extents = my_atk_component_get_extents;
-    klass->get_position = my_atk_component_get_position;
-    klass->get_size = my_atk_component_get_size;
-    
-    klass->set_extents = my_atk_component_set_extents;
-    klass->set_position = my_atk_component_set_position;
-    klass->set_size = my_atk_component_set_size;
-    
-    klass->contains = my_atk_component_contains;
-    klass->ref_accessible_at_point = my_atk_component_ref_accessible_at_point;
-    
-    klass->get_layer = my_atk_component_get_layer;
-    klass->get_mdi_zorder = my_atk_component_get_mdi_zorder;
-    
-    klass->grab_focus = my_atk_component_grab_focus;
-    klass->add_focus_handler = my_atk_component_add_focus_handler;
-    klass->remove_focus_handler = my_atk_component_remove_focus_handler;
-}
-
-GType my_atk_component_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkComponentClass),
-            NULL, //base_init
-            NULL, //base_finalize
-            my_atk_component_class_init, //class_init
-            NULL, //class_finalize
-            NULL, //class_data
-            sizeof(MyAtkComponent),
-            0, //n_preallocs
-            my_atk_component_instance_init //instance_init
-        };
-
-        static const GInterfaceInfo iface_info = 
-        {
-            my_atk_component_interface_init,    /* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        type = g_type_register_static(MY_TYPE_ATK_OBJECT, "MyAtkComponent", &typeInfo, 0);
-        g_type_add_interface_static(type,
-            ATK_TYPE_COMPONENT,
-            &iface_info);
-    }
-    return type;    
-}
diff --git a/tests/dummyatk/my-atk-component.h b/tests/dummyatk/my-atk-component.h
deleted file mode 100644 (file)
index 3fa5850..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#ifndef MY_ATK_COMPONENT_H
-#define MY_ATK_COMPONENT_H
-/*
- * MyAtkComponent: derives AtkObject(with parent-child accessibilities)
- * and implements AtkComponent.
- */
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-
-#define MY_TYPE_ATK_COMPONENT             (my_atk_component_get_type ())
-#define MY_ATK_COMPONENT(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_COMPONENT, MyAtkComponent))
-#define MY_ATK_COMPONENT_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_COMPONENT, MyAtkComponentClass))
-#define MY_IS_ATK_COMPONENT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_COMPONENT))
-#define MY_IS_ATK_COMPONENT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_COMPONENT))
-#define MY_ATK_COMPONENT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_COMPONENT, MyAtkComponentClass))
-
-typedef struct _MyAtkComponent MyAtkComponent;
-typedef struct _MyAtkComponentClass MyAtkComponentClass;
-
-struct _MyAtkComponent
-{
-    MyAtkObject parent;
-    //relative coordinates, which coincides with absolute ones
-    AtkRectangle extent;
-    //whether component may be relocated
-    gboolean is_extent_may_changed;
-    //for emit "active-descendant-changed" signal
-    gboolean is_manage_descendants;
-    //
-    AtkLayer layer;
-    gint zorder;
-};
-
-struct _MyAtkComponentClass
-{
-    MyAtkObjectClass parent;
-};
-
-GType my_atk_component_get_type();
-#endif /*MY_ATK_COMPONENT_H*/
diff --git a/tests/dummyatk/my-atk-hyperlink.c b/tests/dummyatk/my-atk-hyperlink.c
deleted file mode 100644 (file)
index cb6b435..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-#include <atk/atk.h>
-
-#include "my-atk-text.h"
-#include "my-atk-hyperlink.h"
-#include "resources_storage.h"
-
-//***************************implementation****************************************
-static MyAtkTextClass *parent_class_atk_hyperlink = NULL;
-
-// Implementation of virtual functions
-//***************************my_atk_hyperlink_get_uri**************
-gchar* my_atk_hyperlink_get_uri(AtkHyperlink* link_, gint index)
-{
-    MyAtkHyperlink* self = (MyAtkHyperlink*)link_;
-    
-    if(index < 0 || index >= self->number_of_anchors) return NULL;
-    return g_strdup(self->uri);
-}
-//**************************my_atk_hyperlink_is_valid**************************
-gboolean my_atk_hyperlink_is_valid(AtkHyperlink* link_)
-{
-    MyAtkHyperlink* self = (MyAtkHyperlink*)link_;
-    
-    return (resource_storage_get(self->uri) != NULL);
-}
-//*************************my_atk_hyperlink_get_object************************
-AtkObject* my_atk_hyperlink_get_object(AtkHyperlink* link_, gint index)
-{
-    MyAtkHyperlink* self = (MyAtkHyperlink*)link_;
-    
-    if(index < 0 || index >= self->number_of_anchors) return NULL;
-    return resource_storage_get(self->uri);
-}
-//***************************my_atk_hyperlink_get_start_index**************
-gint my_atk_hyperlink_get_start_index(AtkHyperlink* link_)
-{
-    MyAtkHyperlink* self = (MyAtkHyperlink*)link_;
-    
-    return self->start_index;
-}
-//***************************my_atk_hyperlink_get_end_index**************
-gint my_atk_hyperlink_get_end_index(AtkHyperlink* link_)
-{
-    MyAtkHyperlink* self = (MyAtkHyperlink*)link_;
-    
-    return self->end_index;
-}
-//***************************my_atk_hyperlink_link_state*******************
-guint my_atk_hyperlink_link_state(AtkHyperlink* link_)
-{
-    return 0;
-}
-//***************************my_atk_hyperlink_get_n_anchors*******************
-gboolean my_atk_hyperlink_get_n_anchors(AtkHyperlink* link_)
-{
-    return ((MyAtkHyperlink*)link_)->number_of_anchors;
-}
-//***************************my_atk_hypertlink_is_selected_link***********
-gboolean my_atk_hyperlink_is_selected_link(AtkHyperlink* link_)
-{
-    MyAtkHyperlink* self = (MyAtkHyperlink*)link_;
-    
-    return self->is_selected;
-}
-//others functions
-MyAtkHyperlink* my_atk_hyperlink_new(gint start_index, gint end_index,const gchar* uri)
-{
-    MyAtkHyperlink* result = g_object_new(MY_TYPE_ATK_HYPERLINK, NULL);
-    if(result == NULL) return NULL;
-    result->start_index = start_index;
-    result->end_index = end_index;
-    result->uri = g_strdup(uri);
-    result->number_of_anchors = 1;
-    return result;
-}
-void my_atk_hyperlink_activate(MyAtkHyperlink* hyperlink)
-{
-    g_signal_emit_by_name(hyperlink, "link-activated");
-}
-//initialize/finalize functions
-static void my_atk_hyperlink_instance_init(GTypeInstance *obj, gpointer g_class)
-{
-    MyAtkHyperlink *self = (MyAtkHyperlink*)obj;
-    
-    self->start_index = self->end_index = 0;
-    self->uri = NULL;
-    self->is_selected = FALSE;
-    self->number_of_anchors = 0;
-}
-static void my_atk_hyperlink_instance_finalize(GObject* obj)
-{
-    MyAtkHyperlink *self = (MyAtkHyperlink*)obj;
-    
-    g_free(self->uri);
-}
-
-static void my_atk_hyperlink_class_init(gpointer g_class, gpointer class_data)
-{
-    GObjectClass* g_object_class = (GObjectClass*)g_class;
-    //GObject virtual table
-    g_object_class->finalize = my_atk_hyperlink_instance_finalize;
-    //parent_class
-    parent_class_atk_hyperlink = g_type_class_peek_parent(g_class);
-    //
-    AtkHyperlinkClass* atkHyperlinkClass = (AtkHyperlinkClass*)g_class;
-    
-    atkHyperlinkClass->get_uri = my_atk_hyperlink_get_uri;
-    atkHyperlinkClass->get_object = my_atk_hyperlink_get_object;
-    atkHyperlinkClass->get_start_index = my_atk_hyperlink_get_start_index;
-    atkHyperlinkClass->get_end_index = my_atk_hyperlink_get_end_index;
-    atkHyperlinkClass->is_valid = my_atk_hyperlink_is_valid;
-    atkHyperlinkClass->link_state = my_atk_hyperlink_link_state;
-    atkHyperlinkClass->get_n_anchors = my_atk_hyperlink_get_n_anchors;
-    atkHyperlinkClass->is_selected_link = my_atk_hyperlink_is_selected_link; 
-}
-
-GType my_atk_hyperlink_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkHyperlinkClass),
-            NULL,                       //base_init
-            NULL,                       //base_finalize
-            my_atk_hyperlink_class_init,     //class_init
-            NULL,                       //class_finalize
-            NULL,                       //class_data
-            sizeof(MyAtkHyperlink),
-            0,                          //n_preallocs
-            my_atk_hyperlink_instance_init   //instance_init
-        };
-        type = g_type_register_static(ATK_TYPE_HYPERLINK, "MyAtkHyperlink", &typeInfo, 0);
-    }
-    return type;    
-}
diff --git a/tests/dummyatk/my-atk-hyperlink.h b/tests/dummyatk/my-atk-hyperlink.h
deleted file mode 100644 (file)
index 026ba54..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef MY_ATK_HYPERLINK_H
-#define MY_ATK_HYPERLINK_H
-/*
- * MyAtkHyperlink: implements AtkHyperlink
- */
-#include <atk/atk.h>
-
-#define MY_TYPE_ATK_HYPERLINK             (my_atk_hyperlink_get_type ())
-#define MY_ATK_HYPERLINK(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_HYPERLINK, MyAtkHyperlink))
-#define MY_ATK_HYPERLINK_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_HYPERLINK, MyAtkHyperlinkClass))
-#define MY_IS_ATK_HYPERLINK(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_HYPERLINK))
-#define MY_IS_ATK_HYPERLINK_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_HYPERLINK))
-#define MY_ATK_HYPERLINK_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_HYPERLINK, MyAtkHyperlinkClass))
-
-typedef struct _MyAtkHyperlink MyAtkHyperlink;
-typedef struct _MyAtkHyperlinkClass MyAtkHyperlinkClass;
-
-struct _MyAtkHyperlink
-{
-    AtkHyperlink parent;
-    
-    gint start_index, end_index;
-    
-    gchar* uri;
-    gint number_of_anchors;//0 on "clear" hyperlink and 1 after set it
-    gboolean is_selected;
-};
-
-struct _MyAtkHyperlinkClass
-{
-    AtkHyperlinkClass parent;
-};
-
-GType my_atk_hyperlink_get_type();
-#endif /*MY_ATK_HYPERLINK_H*/
diff --git a/tests/dummyatk/my-atk-hypertext.c b/tests/dummyatk/my-atk-hypertext.c
deleted file mode 100644 (file)
index 1bba620..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-#include <atk/atk.h>
-
-#include "my-atk-text.h"
-#include "my-atk-hyperlink.h"
-#include "my-atk-hypertext.h"
-
-//***************************implementation****************************************
-static MyAtkTextClass *parent_class_atk_text = NULL;
-
-typedef struct
-{
-    gint start_offset, end_offset;
-    gint index;
-}HyperlinkRange;
-// Implementation of virtual functions
-
-//***************************my_atk_hypertext_get_n_links*************************
-gint my_atk_hypertext_get_n_links(AtkHypertext* hypertext)
-{
-    MyAtkHypertext* self = (MyAtkHypertext*)hypertext;
-    
-    return self->hyperlinks->len; 
-}
-//***************************my_atk_hypertext_get_link***********************
-AtkHyperlink* my_atk_hypertext_get_link(AtkHypertext* hypertext, gint link_index)
-{
-    MyAtkHypertext* self = (MyAtkHypertext*)hypertext;
-    
-    if(link_index < 0 || link_index >= self->hyperlinks->len)
-        return NULL;
-    return g_ptr_array_index(self->hyperlinks, link_index);
-}
-//*************************my_atk_hypertext_get_link_index*******************
-gint my_atk_hypertext_get_link_index(AtkHypertext* hypertext, gint char_index)
-{
-    gint i;
-    MyAtkHypertext* self = (MyAtkHypertext*)hypertext;
-    GArray* ranges = self->hyperlink_ranges; 
-    for(i = ranges->len - 1; i >= 0; i--)
-    {
-        HyperlinkRange *range = &g_array_index(ranges, HyperlinkRange, i);
-        if(range->start_offset <= char_index)
-        {
-            if(range->end_offset > char_index)return range->index;
-            break;
-        }
-    }
-    return -1;
-}
-//others functions
-gboolean my_atk_hypertext_add_hyperlink(MyAtkHypertext* hypertext,
-    gint start_index, gint end_index, const gchar* uri)
-{
-    MyAtkHyperlink* new_hyperlink;
-    GArray* ranges = hypertext->hyperlink_ranges;
-    gint i;
-    for(i = 0; i < ranges->len; i++)
-    {
-        HyperlinkRange *range = &g_array_index(ranges, HyperlinkRange, i);
-        if(range->end_offset <= start_index) continue;
-        if(range->start_offset < end_index) return FALSE;
-        break;
-    }
-    new_hyperlink = my_atk_hyperlink_new(start_index, end_index, uri);
-    g_ptr_array_add(hypertext->hyperlinks, new_hyperlink);
-    HyperlinkRange new_range;
-    new_range.start_offset = start_index;
-    new_range.end_offset = end_index;
-    new_range.index = hypertext->hyperlinks->len - 1;
-    g_array_insert_val(ranges, i, new_range);
-    return TRUE;
-}
-//
-void my_atk_hypertext_select_link(MyAtkHypertext* hypertext, gint index)
-{
-    if(index < 0 || index >= my_atk_hypertext_get_n_links((AtkHypertext*)hypertext))
-        return;
-    
-    if(hypertext->current_selected_link != -1)
-    {
-        MyAtkHyperlink *selected_link_old = 
-            (MyAtkHyperlink*)my_atk_hypertext_get_link(
-            (AtkHypertext*)hypertext, hypertext->current_selected_link);
-        selected_link_old->is_selected = FALSE;
-    }
-    
-    hypertext->current_selected_link = index;
-    MyAtkHyperlink *selected_link_new = (MyAtkHyperlink*)my_atk_hypertext_get_link(
-        (AtkHypertext*)hypertext, hypertext->current_selected_link);
-    selected_link_new->is_selected = TRUE;
-    
-    g_signal_emit_by_name(hypertext,
-        "link-selected", hypertext->current_selected_link);    
-}
-//initialize/finalize functions
-static void my_atk_hypertext_instance_init(GTypeInstance *obj, gpointer g_class)
-{
-    MyAtkHypertext *self = (MyAtkHypertext*)obj;
-    
-    self->hyperlink_ranges = g_array_new(FALSE, FALSE, sizeof(HyperlinkRange));
-    self->hyperlinks = g_ptr_array_new();
-    
-    self->current_selected_link = -1;
-}
-static void my_atk_hypertext_instance_finalize(GObject* obj)
-{
-    MyAtkHypertext *self = (MyAtkHypertext*)obj;
-    
-    g_array_free(self->hyperlink_ranges, FALSE);
-    
-    g_ptr_array_foreach(self->hyperlinks,(GFunc)g_object_unref, NULL);
-    g_ptr_array_free(self->hyperlinks, FALSE);
-}
-
-static void my_atk_hypertext_class_init(gpointer g_class, gpointer class_data)
-{
-    GObjectClass* g_object_class = (GObjectClass*)g_class;
-    //GObject virtual table
-    g_object_class->finalize = my_atk_hypertext_instance_finalize;
-    //parent_class
-    parent_class_atk_text = g_type_class_peek_parent(g_class);
-}
-static void my_atk_hypertext_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkHypertextIface *klass = (AtkHypertextIface*)g_iface;
-    
-    klass->get_link = my_atk_hypertext_get_link;
-    klass->get_n_links = my_atk_hypertext_get_n_links;
-    klass->get_link_index = my_atk_hypertext_get_link_index;
-}
-
-GType my_atk_hypertext_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkHypertextClass),
-            NULL,                       //base_init
-            NULL,                       //base_finalize
-            my_atk_hypertext_class_init,     //class_init
-            NULL,                       //class_finalize
-            NULL,                       //class_data
-            sizeof(MyAtkHypertext),
-            0,                          //n_preallocs
-            my_atk_hypertext_instance_init   //instance_init
-        };
-
-        static const GInterfaceInfo AtkTextIface_info = 
-        {
-            my_atk_text_interface_init,         /* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        static const GInterfaceInfo AtkHypertextIface_info = 
-        {
-            my_atk_hypertext_interface_init,/* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        type = g_type_register_static(MY_TYPE_ATK_TEXT, "MyAtkHypertext", &typeInfo, 0);
-        g_type_add_interface_static(type,
-            ATK_TYPE_TEXT,
-            &AtkTextIface_info);
-        
-        g_type_add_interface_static(type,
-            ATK_TYPE_HYPERTEXT,
-            &AtkHypertextIface_info);
-    }
-    return type;    
-}
diff --git a/tests/dummyatk/my-atk-hypertext.h b/tests/dummyatk/my-atk-hypertext.h
deleted file mode 100644 (file)
index 50d02cf..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef MY_ATK_HYPERTEXT_H
-#define MY_ATK_HYPERTEXT_H
-/*
- * MyAtkHypertext: implements AtkHypertext
- */
-#include <atk/atk.h>
-#include <my-atk-text.h>
-
-#define MY_TYPE_ATK_HYPERTEXT             (my_atk_hypertext_get_type ())
-#define MY_ATK_HYPERTEXT(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_HYPERTEXT, MyAtkHypertext))
-#define MY_ATK_HYPERTEXT_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_HYPERTEXT, MyAtkHypertextClass))
-#define MY_IS_ATK_HYPERTEXT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_HYPERTEXT))
-#define MY_IS_ATK_HYPERTEXT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_HYPERTEXT))
-#define MY_ATK_HYPERTEXT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_HYPERTEXT, MyAtkHypertextClass))
-
-typedef struct _MyAtkHypertext MyAtkHypertext;
-typedef struct _MyAtkHypertextClass MyAtkHypertextClass;
-
-struct _MyAtkHypertext
-{
-    MyAtkText parent;
-    
-    GArray* hyperlink_ranges;
-    GPtrArray* hyperlinks;
-    
-    gint current_selected_link;
-};
-
-struct _MyAtkHypertextClass
-{
-    MyAtkTextClass parent;
-};
-#endif /*MY_ATK_HYPERTEXT_H*/
diff --git a/tests/dummyatk/my-atk-object.c b/tests/dummyatk/my-atk-object.c
deleted file mode 100644 (file)
index 4029424..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-
-#include <stdio.h>
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-
-static AtkObjectClass *atk_object_parent_class = NULL;
-
-void my_atk_object_add_child(MyAtkObject* parent, MyAtkObject* child)
-{
-    g_ptr_array_add(parent->children, child);
-    g_object_ref_sink(child);
-
-    atk_object_set_parent(ATK_OBJECT(child), ATK_OBJECT(parent));
-    
-    g_signal_emit_by_name(parent, "children-changed::add",
-        parent->children->len - 1, child);
-}
-
-void my_atk_object_remove_child(MyAtkObject* parent, MyAtkObject* child)
-{
-    gint i;
-    for(i = parent->children->len - 1; i >= 0; i--)
-    {
-        if(g_ptr_array_index(parent->children, i) == child) break;
-    }
-    if(i < 0)return;
-
-    g_ptr_array_remove_index(parent->children, i);
-    g_object_unref(child);
-    g_signal_emit_by_name(parent, "children-changed::remove",
-        i, child);
-}
-
-static void my_atk_object_set_parent(AtkObject *accessible, AtkObject *parent)
-{
-    g_return_if_fail(parent != NULL);
-
-    MyAtkObject *self = MY_ATK_OBJECT(accessible);
-    AtkObject *parent_old = (atk_object_get_parent(accessible));
-    
-    if(parent_old == parent)
-    {
-        //nothing to do because parent does not change
-        return;
-    }
-    
-    //set field 'parent' in child using 'base-method'
-    atk_object_parent_class->set_parent(accessible, parent);
-    
-    if(parent_old != NULL)
-    {
-        my_atk_object_remove_child((MyAtkObject*)parent_old, self);
-    }
-}
-
-static gint my_atk_object_get_n_children(AtkObject *accessible)
-{
-    return MY_ATK_OBJECT(accessible)->children->len;
-}
-
-static AtkObject* my_atk_object_ref_child(AtkObject *accessible, gint i)
-{
-    MyAtkObject *self = MY_ATK_OBJECT(accessible); 
-    if(i < 0 || i >= self->children->len)
-    {
-        printf("ref_child: Incorrect index of child.\n");
-        return NULL;
-    }
-
-    AtkObject* child = (AtkObject*)
-        g_ptr_array_index(self->children, i);
-
-    return (child == NULL) ? NULL : g_object_ref(child);
-}
-
-static gint my_atk_object_get_index_in_parent(AtkObject *accessible)
-{
-    AtkObject *parent = atk_object_get_parent(accessible);
-    if(parent == NULL) return -1;//no parent
-    
-    MyAtkObject *parent_my = MY_ATK_OBJECT(parent);
-
-    int i = parent_my->children->len;
-    for(; i>=0; i--)
-    {
-        if(g_ptr_array_index(parent_my->children,i) == accessible)
-            break;
-    }
-    if(i < 0)printf("Something wrong in parent-child strucutre.\n");
-    return i;//if error, i will be equal to -1
-}
-
-static AtkStateSet *my_atk_object_ref_state_set(AtkObject *accessible)
-{
-    MyAtkObject *obj = MY_ATK_OBJECT(accessible);
-
-    if (obj->state_set == NULL)
-        obj->state_set = atk_state_set_new();
-    return g_object_ref(G_OBJECT(obj->state_set));
-}
-
-static AtkAttributeSet *my_atk_object_get_attributes (AtkObject *accessible)
-{
-    MyAtkObject *obj = MY_ATK_OBJECT(accessible);
-    AtkAttributeSet *rs = obj->attributes = NULL;
-    AtkAttribute *a, *b, *c;
-
-    a = g_new(AtkAttribute, 1);
-    b = g_new(AtkAttribute, 1);
-    c = g_new(AtkAttribute, 1);
-
-    a->name = g_strdup("foo");
-    a->value = g_strdup("bar");
-    b->name = g_strdup("baz");
-    b->value = g_strdup("qux");
-    c->name = g_strdup("quux");
-    c->value = g_strdup("corge");
-
-    rs = g_slist_append(rs, (gpointer) a); 
-    rs = g_slist_append(rs, (gpointer) b); 
-    rs = g_slist_append(rs, (gpointer) c); 
-}
-
-//function, needed in instance_finalize()
-static void my_unref1(gpointer data, gpointer user_data)
-{
-    g_object_unref(data);
-}
-
-static void my_atk_object_instance_finalize(GObject *obj)
-{
-    MyAtkObject *self = (MyAtkObject*) obj;
-    //unrefs all children
-    g_ptr_array_foreach(self->children, my_unref1, NULL);
-    //then free array (without frees pointers)
-    g_ptr_array_free(self->children, FALSE);
-    //chain to parent class
-    G_OBJECT_CLASS(atk_object_parent_class)->finalize(obj);
-}
-
-void my_atk_object_class_init(gpointer g_class, gpointer g_class_data)
-{
-    AtkObjectClass *atkObjectClass = (AtkObjectClass*)g_class;
-    
-    ((GObjectClass*)g_class)->finalize = my_atk_object_instance_finalize;
-    //set pointers to new functions in table of virtuals functions
-    atkObjectClass->set_parent = my_atk_object_set_parent;
-    atkObjectClass->get_n_children = my_atk_object_get_n_children;
-    atkObjectClass->ref_child = my_atk_object_ref_child;
-    atkObjectClass->get_index_in_parent = my_atk_object_get_index_in_parent;
-    atkObjectClass->ref_state_set = my_atk_object_ref_state_set;
-    atkObjectClass->get_attributes = my_atk_object_get_attributes;
-
-    atk_object_parent_class = g_type_class_peek_parent(g_class);
-}
-
-static void my_atk_object_instance_init(GTypeInstance *obj, gpointer g_class)
-{
-    MyAtkObject *self = (MyAtkObject*)obj;
-
-    self->children = g_ptr_array_sized_new(10);
-    self->attributes =  g_slist_alloc();
-}
-
-GType my_atk_object_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkObjectClass),
-            NULL, //base_init
-            NULL, //base_finalize
-            my_atk_object_class_init, //class_init
-            NULL, //class_finalize
-            NULL, //class_data
-            sizeof(MyAtkObject),
-            0, //n_preallocs
-            my_atk_object_instance_init //instance_init
-        };
-        type = g_type_register_static(ATK_TYPE_OBJECT,"MyAtkObject",&typeInfo,0);
-    }
-    return type;
-}
diff --git a/tests/dummyatk/my-atk-object.h b/tests/dummyatk/my-atk-object.h
deleted file mode 100644 (file)
index 72a4aea..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-#ifndef MY_ATK_OBJECT_H
-#define MY_ATK_OBJECT_H
-
-#include <atk/atk.h>
-
-#define MY_TYPE_ATK_OBJECT             (my_atk_object_get_type ())
-#define MY_ATK_OBJECT(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_OBJECT, MyAtkObject))
-#define MY_ATK_OBJECT_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_OBJECT, MyAtkObjectClass))
-#define MY_IS_ATK_OBJECT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_OBJECT))
-#define MY_IS_ATK_OBJECT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_OBJECT))
-#define MY_ATK_OBJECT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_OBJECT, MyAtkObjectClass))
-
-typedef struct _MyAtkObject MyAtkObject;
-typedef struct _MyAtkObjectClass MyAtkObjectClass;
-
-struct _MyAtkObject
-{
-    AtkObject parent;
-    //array of children
-    AtkStateSet *state_set;
-    AtkAttributeSet *attributes;
-    GPtrArray* children;
-    gint id;
-};
-
-struct _MyAtkObjectClass
-{
-    AtkObjectClass parent;
-};
-
-GType my_atk_object_get_type();
-
-void my_atk_object_add_child(MyAtkObject* parent, MyAtkObject* child);
-
-void my_atk_object_remove_child(MyAtkObject* parent, MyAtkObject* child);
-
-#endif /*MY_ATK_OBJECT_H*/
diff --git a/tests/dummyatk/my-atk-selection.c b/tests/dummyatk/my-atk-selection.c
deleted file mode 100644 (file)
index e3f386f..0000000
+++ /dev/null
@@ -1,332 +0,0 @@
-/* This file contains both declaration and definition of the MyAtkSelection,
- * a GObject that implements the AtkSelectionIface interface.
- */
-
-#include <glib-object.h>
-#include <atk/atk.h> 
-
-#include "my-atk-object.h"
-#include "my-atk-selection.h"
-
-/******************************************************************/
-/*                    Implementation                              */
-/******************************************************************/
-static GObjectClass *parent_class_simple_selection = NULL;
-
-/* Implementation of the AtkSelectionIface interface. */
-static gboolean
-simple_selection_add_selection (AtkSelection *selection, gint i)
-{
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    if ((!self) || self->disposed)
-    {
-        return FALSE;
-    }
-    
-    if ((i >= 0) && (i < TEST_SELECTION_NCHILDREN))
-    {
-        /* If the child is not selected, select it and send the signal */
-        if (!self->is_selected[i])
-        {
-            self->is_selected[i] = TRUE;
-            g_signal_emit_by_name ((gpointer)self, "selection-changed");
-        }
-                
-        return TRUE;    
-    }
-    else
-    {
-        return FALSE;
-    }    
-    
-}
-
-static gboolean 
-simple_selection_clear_selection (AtkSelection *selection)
-{
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    if ((!self) || self->disposed)
-    {
-        return FALSE;
-    }
-    
-    /* clear selection */
-    {
-        gboolean changed = FALSE;
-        int i;
-        for (i = 0; i < TEST_SELECTION_NCHILDREN; ++i)
-        {
-            changed |= self->is_selected[i];
-            self->is_selected[i] = FALSE;
-        }
-        
-        if (changed)
-        {
-            g_signal_emit_by_name ((gpointer)self, "selection-changed");
-        }
-    }
-    
-    return TRUE;
-}
-
-static AtkObject* 
-simple_selection_ref_selection (AtkSelection *selection, gint i)
-{
-    int pos;
-    int nsel;
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    if ((!self) || self->disposed)
-    {
-        return NULL;
-    }
-    
-    nsel = 0;
-    for (pos = 0; pos < TEST_SELECTION_NCHILDREN; ++pos)
-    {
-        if (self->is_selected[pos])
-        {
-            if (i == nsel)
-            {
-                g_object_ref (G_OBJECT (self->child[pos]));
-                return ATK_OBJECT(self->child[pos]);
-            }
-            ++nsel;
-        }
-    }
-            
-    return NULL;
-}
-
-static gint 
-simple_selection_get_selection_count (AtkSelection *selection)
-{
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    
-    int cnt = 0;
-    int i;
-    
-    if ((!self) || self->disposed)
-    {
-        return 0;
-    }
-    
-    for (i = 0; i < TEST_SELECTION_NCHILDREN; ++i)
-    {
-        if (self->is_selected[i]) 
-        {
-            ++cnt;
-        }
-    }
-    
-     return cnt;
-}
-
-static gboolean 
-simple_selection_is_child_selected (AtkSelection *selection, gint i)
-{
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    if ((!self) || self->disposed)
-    {
-        return FALSE;
-    }
-    
-    if ((i >= 0) && (i < TEST_SELECTION_NCHILDREN))
-    {
-        return (self->is_selected[i]);
-    }
-    else
-    {
-        return FALSE;
-    }
-}
-
-static gboolean 
-simple_selection_remove_selection (AtkSelection *selection, gint i)
-{
-    int pos;
-    int nsel;
-    
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    if ((!self) || self->disposed)
-    {
-        return FALSE;
-    }
-    
-    nsel = 0;
-    for (pos = 0; pos < TEST_SELECTION_NCHILDREN; ++pos)
-    {
-        if (self->is_selected[pos])
-        {
-            if (i == nsel)
-            {
-                self->is_selected[pos] = FALSE;
-                g_signal_emit_by_name ((gpointer)self, "selection-changed");
-                return TRUE;
-            }
-            ++nsel;
-        }
-    }
-    
-    return TRUE;
-}
-
-static gboolean 
-simple_selection_select_all_selection (AtkSelection *selection)
-{
-    MyAtkSelection* self = (MyAtkSelection*)selection;
-    if ((!self) || self->disposed)
-    {
-        return FALSE;
-    }
-    
-    if (!self->multisel_supported)
-    {
-        return FALSE;
-    }
-    
-    /* select all */
-    {
-        gboolean changed = FALSE;
-        int i;
-        for (i = 0; i < TEST_SELECTION_NCHILDREN; ++i)
-        {
-            changed |= !self->is_selected[i];
-            self->is_selected[i] = TRUE;
-        }
-        
-        if (changed)
-        {
-            g_signal_emit_by_name ((gpointer)self, "selection-changed");
-        }
-    }
-    
-    return TRUE;
-}
-
-/******************************************************************/
-static void
-simple_selection_interface_init (gpointer g_iface, gpointer iface_data)
-{
-    AtkSelectionIface *klass = (AtkSelectionIface *)g_iface;
-    
-    /* set up overrides here */
-    klass->add_selection = 
-        (gboolean (*) (AtkSelection *selection, gint i)) simple_selection_add_selection;
-    
-    klass->clear_selection = 
-        (gboolean (*) (AtkSelection *selection)) simple_selection_clear_selection;
-    
-    klass->ref_selection = 
-        (AtkObject* (*) (AtkSelection *selection, gint i)) simple_selection_ref_selection;
-    
-    klass->get_selection_count = 
-        (gint (*) (AtkSelection *selection)) simple_selection_get_selection_count;
-    
-    klass->is_child_selected = 
-        (gboolean (*) (AtkSelection *selection, gint i)) simple_selection_is_child_selected;
-    
-    klass->remove_selection = 
-        (gboolean (*) (AtkSelection *selection, gint i)) simple_selection_remove_selection;
-    
-    klass->select_all_selection = 
-        (gboolean (*) (AtkSelection *selection)) simple_selection_select_all_selection;
-}
-
-static void
-simple_selection_instance_init (GTypeInstance *instance, gpointer g_class)
-{
-    MyAtkSelection *self = (MyAtkSelection *)instance;
-    int i;
-    
-    self->disposed = FALSE;
-    self->multisel_supported = TRUE;
-    for (i = 0; i < TEST_SELECTION_NCHILDREN; ++i)
-    {
-        self->child[i] = MY_ATK_OBJECT (g_object_new (MY_TYPE_ATK_OBJECT, NULL));
-        self->child[i]->id = i;
-        self->is_selected[i] = FALSE; /* not selected by default */
-    }
-}
-
-static void
-my_atk_selection_dispose (GObject *obj)
-{
-    MyAtkSelection *self = (MyAtkSelection *)obj;
-    int i;
-
-    if (self->disposed) 
-    {
-        return;
-    }
-    
-    /* Make sure dispose does not run twice. */
-    self->disposed = TRUE;
-
-    for (i = 0; i < TEST_SELECTION_NCHILDREN; ++i)
-    {
-        g_object_unref (G_OBJECT (self->child[i]));
-    }
-
-    /* Chain up to the parent class */
-    G_OBJECT_CLASS (parent_class_simple_selection)->dispose (obj);
-}
-
-static void
-my_atk_selection_finalize (GObject *obj)
-{
-    /*MyAtkSelection *self = (MyAtkSelection *)obj;
-    if (self)
-    {
-    }*/
-    
-    /* Chain up to the parent class */
-    G_OBJECT_CLASS (parent_class_simple_selection)->finalize (obj);
-}
-
-static void
-my_atk_selection_class_init (gpointer g_class, gpointer g_class_data)
-{
-    GObjectClass *gobject_class = G_OBJECT_CLASS (g_class);
-    MyAtkSelectionClass *klass = MY_ATK_SELECTION_CLASS (g_class);
-
-    gobject_class->dispose = my_atk_selection_dispose;
-    gobject_class->finalize = my_atk_selection_finalize;
-
-    parent_class_simple_selection = g_type_class_peek_parent (klass);
-}
-
-GType 
-my_atk_selection_get_type (void)
-{
-    static GType type = 0;
-    if (type == 0) 
-    {
-        static const GTypeInfo info = 
-        {
-            sizeof (MyAtkSelectionClass),
-            NULL,   /* base_init */
-            NULL,   /* base_finalize */
-            my_atk_selection_class_init, /* class_init */
-            NULL,   /* class_finalize */
-            NULL,   /* class_data */
-            sizeof (MyAtkSelection),
-            0,      /* n_preallocs */
-            simple_selection_instance_init    /* instance_init */
-        };
-                
-        static const GInterfaceInfo iface_info = 
-        {
-            (GInterfaceInitFunc) simple_selection_interface_init,    /* interface_init */
-            NULL,                                       /* interface_finalize */
-            NULL                                        /* interface_data */
-        };
-        type = g_type_register_static (MY_TYPE_ATK_OBJECT,
-                                       "MyAtkSelectionType",
-                                       &info, 0);
-        g_type_add_interface_static (type,
-                                     ATK_TYPE_SELECTION,
-                                     &iface_info);
-    }
-    return type;
-}
-
diff --git a/tests/dummyatk/my-atk-selection.h b/tests/dummyatk/my-atk-selection.h
deleted file mode 100644 (file)
index 8e8fcf5..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* This file contains both declaration and definition of the MyAtkSelection,
- * a GObject that implements the AtkSelectionIface interface.
- */
-
-#ifndef MY_ATK_SELECTION_H
-#define MY_ATK_SELECTION_H
-
-#include <glib-object.h>
-#include <atk/atk.h> 
-
-#include <my-atk-object.h>
-
-#define MY_TYPE_ATK_SELECTION             (my_atk_selection_get_type ())
-#define MY_ATK_SELECTION(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_SELECTION, MyAtkSelection))
-#define MY_ATK_SELECTION_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_SELECTION, MyAtkSelectionClass))
-#define MY_IS_ATK_SELECTION(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_SELECTION))
-#define MY_IS_ATK_SELECTION_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_SELECTION))
-#define MY_ATK_SELECTION_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_SELECTION, MyAtkSelectionClass))
-
-/* Number of child objects for the MyAtkSelection instance */
-#define TEST_SELECTION_NCHILDREN 10    
-
-typedef struct _MyAtkSelection MyAtkSelection;
-typedef struct _MyAtkSelectionClass MyAtkSelectionClass;
-
-struct _MyAtkSelection 
-{
-    MyAtkObject parent;
-        
-    gboolean disposed;
-    
-    /* TRUE if multiple selection is supported, FALSE otherwise.
-     * default - TRUE.
-     */
-    gboolean multisel_supported;
-    
-    /* Children of this object */
-    MyAtkObject* child[TEST_SELECTION_NCHILDREN];
-    
-    /* is_selected[i] == TRUE means the ith child is selected, == FALSE - 
-     * it is not.
-     */
-    gboolean is_selected[TEST_SELECTION_NCHILDREN];
-};
-
-struct _MyAtkSelectionClass 
-{
-    MyAtkObjectClass parent;
-};
-
-GType 
-my_atk_selection_get_type (void);
-
-#endif /*MY_ATK_SELECTION_H*/
-
diff --git a/tests/dummyatk/my-atk-streamable-content.c b/tests/dummyatk/my-atk-streamable-content.c
deleted file mode 100644 (file)
index 460dd9a..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-#include "my-atk-streamable-content.h"
-
-//*************************implementation***********************
-//implementation of virtual functions
-//*****************get_n_mime_types************
-static gint my_atk_streamable_content_get_n_mime_types(
-    AtkStreamableContent *streamable)
-{
-    g_return_val_if_fail(MY_IS_ATK_STREAMABLE_CONTENT(streamable), 0);
-    
-    return sizeof(mime_types) / sizeof(mime_types[0]);
-}
-//*****************get_mime_type****************
-static const gchar* my_atk_streamable_content_get_mime_type(
-    AtkStreamableContent *streamable,
-    gint i)
-{
-    g_return_val_if_fail(MY_IS_ATK_STREAMABLE_CONTENT(streamable), NULL);
-    
-    if((i < 0) || (i >= sizeof(mime_types) / sizeof(mime_types[0])))
-    {
-        return NULL;
-    }
-    return mime_types[i];
-}
-//**********************get_stream*******************
-static GIOChannel* my_atk_streamable_content_get_stream(
-    AtkStreamableContent *streamable,
-    const gchar* mime_type)
-{
-    gint i;
-    g_return_val_if_fail(MY_IS_ATK_STREAMABLE_CONTENT(streamable), NULL);
-    
-    for(i = 0; i < sizeof(mime_types) / sizeof(mime_types[0]); i++)
-    {
-        if(strcmp(mime_type, mime_types[i]) == 0)
-        {
-            GError *error = NULL;
-            gchar* full_filename = T2C_GET_DATA_PATH(file_names[i]);
-            GIOChannel* channel = g_io_channel_new_file(full_filename, "r", &error);
-            if(error != NULL)
-            {
-                TRACE("Cannot open file '%s' for read: %s", full_filename,
-                    error->message);
-                g_error_free(error);
-            }
-            g_free(full_filename);
-            return channel;
-        }
-    }
-    return NULL;
-}
-//others functions
-static void my_atk_streamable_content_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkStreamableContentIface *klass = (AtkStreamableContentIface*)g_iface;
-    
-    klass->get_n_mime_types = my_atk_streamable_content_get_n_mime_types;
-    klass->get_mime_type = my_atk_streamable_content_get_mime_type;
-    klass->get_stream = my_atk_streamable_content_get_stream;
-}
-
-GType my_atk_streamable_content_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkStreamableContentClass),
-            NULL, //base_init
-            NULL, //base_finalize
-            NULL, //class_init
-            NULL, //class_finalize
-            NULL, //class_data
-            sizeof(MyAtkStreamableContent),
-            0, //n_preallocs
-            NULL //instance_init
-        };
-
-        static const GInterfaceInfo iface_info = 
-        {
-            my_atk_streamable_content_interface_init,    /* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        type = g_type_register_static(MY_TYPE_ATK_OBJECT, "MyAtkStreamableContent", &typeInfo, 0);
-        g_type_add_interface_static(type,
-            ATK_TYPE_STREAMABLE_CONTENT,
-            &iface_info);
-    }
-    return type;    
-}
diff --git a/tests/dummyatk/my-atk-streamable-content.h b/tests/dummyatk/my-atk-streamable-content.h
deleted file mode 100644 (file)
index 7a476ac..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-#ifndef MY_ATK_STREAMABLE_CONTENT_H
-#define MY_ATK_STREAMABLE_CONTENT_H
-
-/*
- * MyAtkStreamableContent: derives GObject and implements AtkStreamableContent
- */
-
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-
-#define MY_TYPE_ATK_STREAMABLE_CONTENT             (my_atk_streamable_content_get_type ())
-#define MY_ATK_STREAMABLE_CONTENT(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_STREAMABLE_CONTENT, MyAtkStreamableContent))
-#define MY_ATK_STREAMABLE_CONTENT_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_STREAMABLE_CONTENT, MyAtkStreamableContentClass))
-#define MY_IS_ATK_STREAMABLE_CONTENT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_STREAMABLE_CONTENT))
-#define MY_IS_ATK_STREAMABLE_CONTENT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_STREAMABLE_CONTENT))
-#define MY_ATK_STREAMABLE_CONTENT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_STREAMABLE_CONTENT, MyAtkStreamableContentClass))
-
-typedef struct _MyAtkStreamableContent MyAtkStreamableContent;
-typedef struct _MyAtkStreamableContentClass MyAtkStreamableContentClass;
-
-static const gchar* mime_types[]={"text/plain", "text/richtext"};
-static const gchar* file_names[]={"file1", "file2"};
-struct _MyAtkStreamableContent
-{
-    MyAtkObject parent;
-};
-
-struct _MyAtkStreamableContentClass
-{
-    MyAtkObjectClass parent;
-};
-
-GType my_atk_streamable_content_get_type();
-#endif /*MY_ATK_STREAMABLE_CONTENT_H*/
diff --git a/tests/dummyatk/my-atk-table.c b/tests/dummyatk/my-atk-table.c
deleted file mode 100644 (file)
index a76c70e..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-/* This file contains both declaration and definition of the MyAtkTable,
- * a GObject that pretends to implement the AtkTableIface interface (it 
- * registers appropriate interface), but provides no implementation for any of the
- * methods of this interface (NULL-filled vftbl).
- */
-
-#include <glib-object.h>
-#include <atk/atk.h> 
-
-#include "my-atk-object.h"
-#include "my-atk-table.h"
-    
-///////////////////////////////////////////////////////////////////////////
-// Helper functions and data
-///////////////////////////////////////////////////////////////////////////
-void
-my_atk_table_select_rows (MyAtkTable* table, gboolean sel_scheme[])
-{
-    // the function does nothing  
-}
-
-void
-my_atk_table_select_columns (MyAtkTable* table, gboolean sel_scheme[])
-{
-    // the function does nothing
-}
-
-///////////////////////////////////////////////////////////////////////////
-// Implementation
-///////////////////////////////////////////////////////////////////////////
-static GObjectClass *parent_class_table = NULL;
-
-/******************************************************************/
-static void
-table_interface_init (gpointer g_iface, gpointer iface_data)
-{
-    AtkTableIface *klass = (AtkTableIface *)g_iface;
-    
-    /* set up overrides here */
-    klass-> ref_at =
-        (AtkObject* (*) (AtkTable *table, gint row, gint column)) NULL;
-    klass-> get_index_at =
-        (gint (*) (AtkTable *table, gint row, gint column)) NULL;
-    klass-> get_column_at_index =
-        (gint (*) (AtkTable *table, gint index_)) NULL;
-    klass-> get_row_at_index =
-        (gint (*) (AtkTable *table, gint index_)) NULL;
-    klass-> get_n_columns =
-        (gint (*) (AtkTable *table)) NULL;
-    klass-> get_n_rows =
-        (gint (*) (AtkTable *table)) NULL;
-    klass-> get_column_extent_at =
-        (gint (*) (AtkTable *table, gint row, gint column)) NULL;
-    klass-> get_row_extent_at =
-        (gint (*) (AtkTable *table, gint row, gint column)) NULL;
-    klass-> get_caption =
-        (AtkObject* (*) (AtkTable *table)) NULL;
-    klass-> get_column_description =
-        (const gchar* (*) (AtkTable *table, gint column)) NULL;
-    klass-> get_column_header =
-        (AtkObject* (*) (AtkTable *table, gint column)) NULL;
-    klass-> get_row_description =
-        (const gchar* (*) (AtkTable *table, gint row)) NULL;
-    klass-> get_row_header =
-        (AtkObject* (*) (AtkTable *table, gint row)) NULL;
-    klass-> get_summary =
-        (AtkObject* (*) (AtkTable *table)) NULL;
-    klass-> set_caption =
-        (void (*) (AtkTable *table, AtkObject *caption)) NULL;
-    klass-> set_column_description =
-        (void (*) (AtkTable *table, gint column, const gchar *description)) NULL;
-    klass-> set_column_header =
-        (void (*) (AtkTable *table, gint column, AtkObject *header)) NULL;
-    klass-> set_row_description =
-        (void (*) (AtkTable *table, gint row, const gchar *description)) NULL;
-    klass-> set_row_header =
-        (void (*) (AtkTable *table, gint row, AtkObject *header)) NULL;
-    klass-> set_summary =
-        (void (*) (AtkTable *table, AtkObject *accessible)) NULL;
-    klass-> get_selected_columns =
-        (gint (*) (AtkTable *table, gint **selected)) NULL;
-    klass-> get_selected_rows =
-        (gint (*) (AtkTable *table, gint **selected)) NULL;
-    klass-> is_column_selected =
-        (gboolean (*) (AtkTable *table, gint column)) NULL;
-    klass-> is_row_selected =
-        (gboolean (*) (AtkTable *table, gint row)) NULL;
-    klass-> is_selected =
-        (gboolean (*) (AtkTable *table, gint row, gint column)) NULL;
-    klass-> add_row_selection =
-        (gboolean (*) (AtkTable *table, gint row)) NULL;
-    klass-> remove_row_selection =
-        (gboolean (*) (AtkTable *table, gint row)) NULL;
-    klass-> add_column_selection =
-        (gboolean (*) (AtkTable *table, gint column)) NULL;
-    klass-> remove_column_selection =
-        (gboolean (*) (AtkTable *table, gint column)) NULL;
-}
-
-static void
-table_instance_init (GTypeInstance *instance, gpointer g_class)
-{
-    MyAtkTable *self = (MyAtkTable *)instance;
-    
-    self->disposed = FALSE;
-}
-
-static void
-my_atk_table_dispose (GObject *obj)
-{
-    MyAtkTable *self = (MyAtkTable *)obj;
-
-    if (self->disposed) 
-    {
-        return;
-    }
-    
-    /* Make sure dispose does not run twice. */
-    self->disposed = TRUE;
-
-    /* Chain up to the parent class */
-    G_OBJECT_CLASS (parent_class_table)->dispose (obj);
-}
-
-static void
-my_atk_table_finalize (GObject *obj)
-{
-    /* Chain up to the parent class */
-    G_OBJECT_CLASS (parent_class_table)->finalize (obj);
-}
-
-static void
-my_atk_table_class_init (gpointer g_class, gpointer g_class_data)
-{
-    GObjectClass *gobject_class = G_OBJECT_CLASS (g_class);
-    MyAtkTableClass *klass = MY_ATK_TABLE_CLASS (g_class);
-
-    gobject_class->dispose = my_atk_table_dispose;
-    gobject_class->finalize = my_atk_table_finalize;
-
-    parent_class_table = g_type_class_peek_parent (klass);
-}
-
-GType 
-my_atk_table_get_type (void)
-{
-    static GType type = 0;
-    if (type == 0) 
-    {
-        static const GTypeInfo info = 
-        {
-            sizeof (MyAtkTableClass),
-            NULL,   /* base_init */
-            NULL,   /* base_finalize */
-            my_atk_table_class_init, /* class_init */
-            NULL,   /* class_finalize */
-            NULL,   /* class_data */
-            sizeof (MyAtkTable),
-            0,      /* n_preallocs */
-            table_instance_init    /* instance_init */
-        };
-                
-        static const GInterfaceInfo iface_info = 
-        {
-            (GInterfaceInitFunc) table_interface_init,    /* interface_init */
-            NULL,                                       /* interface_finalize */
-            NULL                                        /* interface_data */
-        };
-        type = g_type_register_static (MY_TYPE_ATK_OBJECT,
-                                       "MyAtkTableType",
-                                       &info, 0);
-        g_type_add_interface_static (type,
-                                     ATK_TYPE_TABLE,
-                                     &iface_info);
-    }
-    return type;
-}
diff --git a/tests/dummyatk/my-atk-table.h b/tests/dummyatk/my-atk-table.h
deleted file mode 100644 (file)
index 7860a2d..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#ifndef MY_ATK_TABLE_H
-#define MY_ATK_TABLE_H
-
-#include <glib-object.h>
-#include <atk/atk.h> 
-#include <my-atk-object.h>
-    
-#define MY_TYPE_ATK_TABLE             (my_atk_table_get_type ())
-#define MY_ATK_TABLE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_TABLE, MyAtkTable))
-#define MY_ATK_TABLE_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_TABLE, MyAtkTableClass))
-#define MY_IS_ATK_TABLE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_TABLE))
-#define MY_IS_ATK_TABLE_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_TABLE))
-#define MY_ATK_TABLE_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_TABLE, MyAtkTableClass))
-
-#define NROWS 4     /* row count */
-#define NCOLS 5     /* column count */
-
-static gint ids[NROWS][NCOLS] = 
-    { {0,  1,  2,  2,  3},
-      {4,  5,  6,  7,  8},
-      {9,  9, 10, 11, 12},
-      {9,  9, 13, 14, -1} };
-      
-static gint row_ext[NROWS][NCOLS] = 
-    { {1,  1,  1,  1,  1},
-      {1,  1,  1,  1,  1},
-      {2,  2,  1,  1,  1},
-      {2,  2,  1,  1,  1} };
-
-static gint col_ext[NROWS][NCOLS] = 
-    { {1,  1,  2,  2,  1},
-      {1,  1,  1,  1,  1},
-      {2,  2,  1,  1,  1},
-      {2,  2,  1,  1,  1} };
-
-#define NCHILDREN 16    /* child object count */
-
-// default string values
-#define DEF_CAPTION_TEXT    "Default table caption"
-#define DEF_SUMMARY_TEXT    "Default table summary"
-#define DEF_ROW_DESCR_TPL   "Row No%d"
-#define DEF_COL_DESCR_TPL   "Column No%d"
-
-/* row and column headers */
-typedef struct
-{
-    AtkObject* hdr;
-    gboolean selected;  /* TRUE if the row/column is selected, FALSE otherwise */
-} TestSimpleHeaderStruct;
-
-/* This struct represents a table cell */
-typedef struct
-{
-    MyAtkObject* elem;   /* the element */
-    guint ext_row;           /* its row extent */
-    guint ext_col;           /* its column extent */
-} TestSimpleCell;
-
-typedef struct _MyAtkTable MyAtkTable;
-typedef struct _MyAtkTableClass MyAtkTableClass;
-
-struct _MyAtkTable 
-{
-    MyAtkObject parent;
-        
-    gboolean disposed;
-    
-    MyAtkObject* child[NCHILDREN];
-    MyAtkObject* not_a_child;
-    TestSimpleHeaderStruct row[NROWS];
-    TestSimpleHeaderStruct col[NCOLS];
-    guint nrows;
-    guint ncols;
-    AtkObject* caption;
-    AtkObject* summary;
-};
-
-struct _MyAtkTableClass 
-{
-    MyAtkObjectClass parent;
-};
-
-GType 
-my_atk_table_get_type (void);
-
-#endif /*MY_ATK_TABLE_H*/
diff --git a/tests/dummyatk/my-atk-text.c b/tests/dummyatk/my-atk-text.c
deleted file mode 100644 (file)
index 6729c4b..0000000
+++ /dev/null
@@ -1,1290 +0,0 @@
-
-#include <atk/atk.h>
-#include <string.h>
-#include <limits.h>
-#include <useful_functions.h>
-
-#include "my-atk-text.h"
-//*************************implementation***********************
-
-//Attributes
-/*
- * Auxiliary functions create/copy/print/free structures
- * Use the same naming principe, as atk, but without 'atk' prefix
- */
- //AtkAttribute
-AtkAttribute* attribute_new(const gchar* name, const gchar* value)
-{
-    AtkAttribute* attr = g_malloc(sizeof(AtkAttribute));
-    if(attr == NULL) return NULL;
-    attr->name = g_strdup(name);
-    attr->value = g_strdup(value);
-    return attr;
-}
-AtkAttribute* attribute_copy(AtkAttribute* attr)
-{
-    return attribute_new(attr->name, attr->value);
-}
-void attribute_print(AtkAttribute* attr)
-{
-    TRACE("name=%s, value=%s", attr->name, attr->value);
-}
-
-//AtkAttributeSet
-AtkAttributeSet* attribute_set_copy(AtkAttributeSet* attr)
-{
-    GSList *tmp;
-    AtkAttributeSet* result = g_slist_copy(attr);
-    for(tmp = result; tmp != NULL; tmp = tmp->next)
-        tmp->data = attribute_copy((AtkAttribute*)tmp->data);
-    return result;
-}
-void attribute_set_print(AtkAttributeSet *set)
-{
-    if(set == NULL) 
-       TRACE0("(empty)");
-    else 
-       g_slist_foreach(set, (GFunc)attribute_print, NULL);
-}
-
-// STATIC FUNCTIONS
-//
-//auxiliary functions for search tokens
-//Number of different characters
-#define TABLE_SIZE 256  
-//modificator static isn't used because this tables will be use in tests
-/*static*/ gboolean  table_word_symbols[TABLE_SIZE],
-                     table_sentence_symbols[TABLE_SIZE],
-                     table_line_symbols[TABLE_SIZE];
-static gboolean *tables[7]={NULL,
-    table_word_symbols,
-    table_word_symbols,
-    table_sentence_symbols,
-    table_sentence_symbols,
-    table_line_symbols,
-    table_line_symbols
-    };
-
-static gboolean current_token(const gchar* str, gint offset, gint *token_start, gint *token_end,
-    const gboolean table_token_symbols[TABLE_SIZE])
-{
-    const gchar *current = str + offset;
-    if(!table_token_symbols[(guchar)*current])
-    {
-        return FALSE;
-    }
-    for( --current; (current >= str) && table_token_symbols[(guchar)*current]; --current);
-    *token_start = current - str + 1;
-    for(current = str + offset + 1;
-        (*current != 0) && table_token_symbols[(guchar)*current]; ++current);
-    *token_end = current - str;
-    return TRUE;
-}
-static gboolean next_token(const gchar* str, gint offset, gint *token_start, gint *token_end,
-    const gboolean table_token_symbols[TABLE_SIZE])
-{
-    const gchar *current = str + offset;
-    for( ; (*current != 0) && table_token_symbols[(guchar)*current]; ++current);
-    if(*current == 0)
-        return FALSE;
-    for(++current ; (*current != 0) && !table_token_symbols[(guchar)*current]; ++current);
-    if(!table_token_symbols[(guchar)*current])
-        return FALSE;
-    return current_token(str, current - str, token_start, token_end, table_token_symbols);
-}
-static gboolean previous_token(const gchar* str, gint offset, gint *token_start, gint *token_end,
-    const gboolean table_token_symbols[TABLE_SIZE])
-{
-    const gchar *current = str + offset;
-    for( ; (current > str) && table_token_symbols[(guchar)*current]; --current);
-    if(current == str)
-        return FALSE;
-    for( ; (current > str) && !table_token_symbols[(guchar)*current]; --current);
-    if(!table_token_symbols[(guchar)*current])
-        return FALSE;
-    return current_token(str, current - str, token_start, token_end, table_token_symbols);
-}
-
-
-//Range: type of data, containing in list of attributes
-typedef struct
-{
-    gint start,end;//range, containing this attributes
-    AtkAttributeSet* attributeSet;
-} Range;
-//auxiliary functions for ranges
-Range* range_new(gint start, gint end)
-{
-    Range *range = g_malloc(sizeof(Range));
-    range->start = start;
-    range->end = end;
-    range->attributeSet = NULL;
-    return range;
-}
-
-void range_free(Range* range)
-{
-    atk_attribute_set_free(range->attributeSet);
-    g_free(range);
-}
-void range_print(const Range*range)
-{
-    TRACE("[%d,%d):", range->start, range->end);
-    attribute_set_print(range->attributeSet);
-}
-//only for correct list of ranges - ranges shouldn't intersect
-gint range_compare(const Range* range1, const Range* range2)
-{
-    return range1->start - range2->start;//never equal
-}
-//Bounds of text
-void text_bounds_init(TextBounds *bounds)
-{
-    bounds->base_x = 0;
-    bounds->base_y = 0;
-    bounds->pixels_above_line = 2;
-    bounds->pixels_below_line = 3;
-    bounds->size = 8;
-    bounds->pixels_between_characters = 1;
-    bounds->width = 3;
-}
-
-//auxiliary function - create new range according to start_offset and end_offset
-AtkTextRange* text_range_new(AtkText* text,
-    gint start_offset, gint end_offset, AtkCoordType coord_type)
-{
-    AtkTextRange* range = g_malloc(sizeof(AtkTextRange));
-    if(range == NULL) return NULL;
-    range->start_offset = start_offset;
-    range->end_offset = end_offset;
-    range->content = atk_text_get_text(text, start_offset, end_offset);
-    atk_text_get_range_extents(text, start_offset, end_offset, coord_type, &range->bounds);
-    return range;
-}
-// Returns number of line, which contain given character.
-// Also return relative offset - offset of this character from start of the line
-gint get_character_line(MyAtkText *text, gint offset, gint *relative_offset)
-{
-    gint result = 0;
-    //simple realization - counts lines from start of the text, until reaches offset
-    const guchar *text_str = (guchar*)text->str; 
-    gboolean state_FSM = table_line_symbols[text_str[0]];
-    gint i, last_line_start = 0;
-    for(i = 1; i <= offset; state_FSM = table_line_symbols[text_str[i++]])
-    {
-        if(state_FSM)continue;
-        result++;
-        last_line_start = i;
-    }
-    if(relative_offset != NULL) *relative_offset = offset - last_line_start;
-    return result;
-}
-// Compute extent of character,
-// as it was at line 'line' and at offset 'relative_offset' in that line
-//(geometry) 
-void get_extents(MyAtkText *text, gint line, gint relative_offset, AtkTextRectangle *rect)
-{
-    rect->x = text->bounds.base_x + relative_offset * 
-        (text->bounds.width + text->bounds.pixels_between_characters);
-    rect->y = text->bounds.base_y + text->bounds.pixels_above_line + line *
-        (text->bounds.size + text->bounds.pixels_below_line + text->bounds.pixels_above_line);
-    rect->width = text->bounds.width;
-    rect->height = text->bounds.size; 
-}
-//return line, corresponding to given y-coordinate
-gint get_point_line(MyAtkText *text, gint y)
-{
-    //slightly differ from invers operation
-    if(y - text->bounds.base_y < 0)return -1;
-    return  (y - text->bounds.base_y)
-        /(text->bounds.size + text->bounds.pixels_below_line + text->bounds.pixels_above_line);
-}
-// Returns offset from left boundary of text, correspondind to x-coordinate
-gint get_point_relative_offset(MyAtkText *text, gint x)
-{
-    //slightly differ from invers operation
-    if(x - text->bounds.base_x < 0)return -1;
-    return (x - text->bounds.base_x) 
-        /(text->bounds.width + text->bounds.pixels_between_characters);
-}
-// Returns offset where given line start(even if this line is empty)
-// If line number too small(<0)return -1, if too big - return length of the text 
-gint get_offset_at_line_start(MyAtkText *text, gint line)
-{
-    gint i;
-    if(line < 0)return -1;
-    if(line == 0)return 0;
-    gint len = my_strlen(text->str);
-    guchar *str = (guchar*)text->str;
-    gint current_line = 0;
-    gboolean state_FSM = table_line_symbols[str[0]];
-    for(i = 1; i < len; state_FSM = table_line_symbols[str[i++]])
-    {
-        if(state_FSM || ++current_line != line)continue;
-        return i;
-    }
-    return len;
-    
-}
-// Return offset of character at the given line and at the given offset at this line
-// If such character doesn't exist, return -1 
-gint get_offset_at_line(MyAtkText *text, gint line, gint relative_offset)
-{
-    gint j;
-    if(line < 0 || relative_offset < 0)return -1; 
-    const guchar* str = (guchar*)text->str;
-    gint len = my_strlen(text->str);
-    gint offset_at_line_start = get_offset_at_line_start(text, line);
-    if(offset_at_line_start + relative_offset >= len)return -1;
-    for(j = 0; j <= relative_offset; j++) 
-        if(!table_line_symbols[str[offset_at_line_start + j]])
-            return -1;
-    return offset_at_line_start + relative_offset;
-}
-/*
- * Count ranges of text, which clipping by rel_start_offset and relative_end_offset.
- * 'offset' stands start of search(start of first line),
- * number_of_lines - maximum number of lines for search.
- * If 'ranges' not NULL, writes ranges to it. 'coord_type' used only in this case.
- */
-gint count_ranges(MyAtkText *text, gint offset, gint rel_start_offset, gint rel_end_offset, 
-                 gint number_of_lines, AtkTextRange** ranges, AtkCoordType coord_type)
-{
-    guchar *str = (guchar*)text->str;
-    gint len = my_strlen(text->str);
-    
-    gint number_of_ranges = 0;
-    gint current_line = 0;
-    gint current_line_start = offset;
-    for(;(current_line < number_of_lines) && (current_line_start < len); current_line ++)
-    {
-        if(!table_line_symbols[str[current_line_start]])
-        {
-            current_line_start++;
-            continue;
-        }
-        gint start_offset,end_offset;
-        gchar *tmp_str = atk_text_get_text_at_offset((AtkText*)text, current_line_start,
-            ATK_TEXT_BOUNDARY_LINE_END, &start_offset, &end_offset);
-        g_free(tmp_str);
-        if(end_offset - current_line_start > rel_start_offset)
-        {
-            if(ranges != NULL)
-            {
-                gint range_start_offset = current_line_start + rel_start_offset;
-                gint range_end_offset =  current_line_start + rel_end_offset + 1;
-                if(range_end_offset > end_offset)
-                    range_end_offset = end_offset;
-                //add element    
-                ranges[number_of_ranges] = text_range_new((AtkText*)text, 
-                    range_start_offset, range_end_offset, coord_type);
-            }
-            number_of_ranges++;
-        }
-        current_line_start = end_offset + 1;
-    }
-    if(ranges != NULL) ranges[number_of_ranges] = NULL;
-    return number_of_ranges;
-}
-
-//"free"-functions(for internal using, because them don't emit signals)
-void my_atk_text_free_run_attributes(MyAtkText *text)
-{
-    g_list_foreach(text->attributes, (GFunc)range_free, NULL);
-    g_list_free(text->attributes);
-    text->attributes = NULL;
-}
-void my_atk_text_free_default_attributes(MyAtkText *text)
-{
-    atk_attribute_set_free(text->default_attributes);
-    text->default_attributes = NULL;
-}
-void my_atk_text_clear_selections(MyAtkText *text)
-{
-    if(text->selections->len != 0)
-        g_array_remove_range(text->selections, 0, text->selections->len);
-}
-void table_symbols_init()
-{
-    //word
-    gint i;
-    for(i = TABLE_SIZE - 1;i > 0 ; --i)
-        table_word_symbols[i] = g_ascii_isalnum(i);
-    table_word_symbols['\0'] = FALSE;
-    //sentence
-    for(i = TABLE_SIZE - 1;i >= 0x20; --i)
-        table_sentence_symbols[i] = TRUE;
-    table_sentence_symbols['.'] = FALSE; 
-    table_sentence_symbols['!'] = FALSE;
-    table_sentence_symbols['?'] = FALSE;
-    for(i = 0x1f;i > 0; --i)
-        table_sentence_symbols[i] = FALSE;
-    table_sentence_symbols['\0'] = FALSE;
-    //line
-    for(i = TABLE_SIZE - 1;i > 0 ; --i)
-        table_line_symbols[i] = TRUE;
-    table_line_symbols['\n'] = FALSE;
-    table_line_symbols['\0'] = FALSE;
-}
-void correct_selections_after_insert(MyAtkText *text, gint position, gint length)
-{
-    gint i;
-    GArray* selections = text->selections;
-    for(i = selections->len - 1; i >=0; i--)
-    {
-        TextSelection* sel  = &g_array_index(selections, TextSelection, i);
-        if(sel->end_offset >= position) sel->end_offset+= length;
-        if(sel->start_offset >= position) sel->start_offset+= length;
-        else break;
-    }
-}
-void correct_selections_after_delete(MyAtkText *text, gint position, gint length)
-{
-    gint i;
-    GArray* selections = text->selections;
-    for(i = selections->len - 1; i >=0; i--)
-    {
-        TextSelection* sel  = &g_array_index(selections, TextSelection, i);
-        if(sel->start_offset >= position)
-        {
-             if(sel->start_offset >= position + length)
-             {
-                sel->start_offset-= length;
-                sel->end_offset-= length;
-             }
-             //position <= sel->start_offset < position + length
-             else if(sel->end_offset > position + length)
-             {
-                sel->start_offset = position;
-                sel->end_offset -= length;
-             }
-             else
-             {
-                g_array_remove_index(selections, i);
-             }
-             continue;  
-        }
-        /*sel->start_offset < position*/
-        if(sel->end_offset > position + length) sel->end_offset-= length;
-        else if(sel->end_offset > position) sel->end_offset = position;
-        break;
-    }
-}
-void correct_attributes_after_insert(MyAtkText* text, gint position, gint length)
-{
-    GList *attributes = text->attributes;
-    GList *tmp;
-    //before inserted position
-    for(tmp = attributes; tmp != NULL; tmp = tmp -> next)
-    {
-        Range* range = (Range*)tmp->data;
-        if(range->end <= position)continue;
-        //range->end > position
-        if(range->start < position)
-            range->start -= length;//will be restore in the next loop
-        break;
-    }
-    //after inserted position
-    for(; tmp != NULL; tmp = tmp -> next)
-    {
-        Range* range = (Range*)tmp->data;
-        range->end += length;
-        range->start += length;
-    }
-}
-void correct_attributes_after_delete(MyAtkText* text, gint position, gint length)
-{
-    GList *attributes = text->attributes;
-    GList *tmp = attributes;
-    //before deleting range
-    for(tmp = attributes; tmp != NULL; tmp = tmp->next)
-    {
-        Range* range  = (Range*)tmp->data;
-        if(range->end <= position) continue;
-        if(range->start < position)
-        {
-             if(range->end > position + length) range->end -= length;
-             else range->end = position;
-             tmp = tmp->next;
-        }
-        break;
-    }
-    //at deleting range
-    while(tmp != NULL)
-    {
-        Range* range = (Range*)tmp->data;
-        if(range->start >= position + length) break;
-        if(range->end <= position + length)
-        {
-            GList *tmp1 = tmp->next;
-            range_free(range);
-            attributes = g_list_remove_link(attributes, tmp);
-            tmp = tmp1;
-            continue;
-        }
-        //range->end > position + length
-        //range->start < position + length
-        range->start = position + length;//will be restored in next loop
-        break;
-    }
-    //after deleting range
-    for(;tmp != NULL; tmp = tmp->next)
-    {
-        Range* range = (Range*)tmp->data;
-        range->end -= length;
-        range->start -= length;
-    }
-    text->attributes = attributes;
-}
-void correct_caret_after_insert(MyAtkText* text, gint position, gint length)
-{
-    if(text->caret_offset > position)text->caret_offset += length;
-}
-void correct_caret_after_delete(MyAtkText* text, gint position, gint length)
-{
-    if(text->caret_offset >= position + length)text->caret_offset -= length;
-    else if(text->caret_offset > position) text->caret_offset = position;
-}
-
-// Implementation of virtual functions
-//******************************my_atk_text_get_character_count*************************
-static gint my_atk_text_get_character_count(AtkText *text)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    return my_strlen(self->str);
-}
-//**************************************my_atk_text_get_text*****************************
-static gchar* my_atk_text_get_text(AtkText *text, gint start_offset, gint end_offset)
-{
-    gchar *str = ((MyAtkText*)text)->str;
-    if((start_offset < 0) || (end_offset > my_strlen(str)) || (end_offset <= start_offset))
-    {
-        //incorrect bounds
-        return NULL;
-    }
-    return g_strndup(str + start_offset, end_offset - start_offset);
-    
-}
-//*******************************my_atk_text_get_character_at_offset************************
-static gunichar my_atk_text_get_character_at_offset(AtkText *text, gint offset)
-{
-    gchar *str = ((MyAtkText*)text)->str;
-    if(offset < 0 || offset >= my_strlen(str))
-    {
-        return 0;
-    }
-    return (gunichar)str[offset];
-}
-// In the next 3 functions some code is commented for verify tests themselves on 'mutants'
-// in realization.
-//******************************my_atk_text_get_text_after_offset***************************
-static gchar* my_atk_text_get_text_after_offset(AtkText *text, gint offset,
-    AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset)
-{
-    gchar *str = ((MyAtkText*)text)->str;
-    gint len = my_strlen(str);
-    if((offset < 0) || (offset >= len))
-    {
-        return NULL;//incorrect offset
-    }
-    
-    // This variable is set in switch statement. If after that statement variable is TRUE,
-    // then return text from 'strat_offset' to 'end_offset'. Otherwise NULL will be returned.
-    gboolean is_successed = TRUE;
-    
-    gint start_tmp;
-    gint end_tmp;
-    
-    switch(boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-        if(offset + 1 == len)
-        {
-            is_successed = FALSE;
-            break;
-        }
-        *start_offset = offset + 1;
-        *end_offset = offset + 2;
-        is_successed = TRUE;
-        break;
-    case ATK_TEXT_BOUNDARY_WORD_START:
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-    case ATK_TEXT_BOUNDARY_LINE_START:
-        if(!next_token(str, offset, start_offset, &end_tmp, tables[boundary_type]))
-        {
-            //debug
-//            if(current_token(str, offset, start_offset, end_offset, tables[boundary_type]))
-//            {
-//                is_successed = TRUE;
-//                break;
-//            }
-            is_successed = FALSE;
-            break;
-        }
-        if(!next_token(str, end_tmp, end_offset, &end_tmp, tables[boundary_type]))
-        {
-            *end_offset = len;
-        }
-        is_successed = TRUE;
-        //debug
-//        (*start_offset)++;
-//        if(*start_offset > 10) ++(*start_offset);
-        break;
-    case ATK_TEXT_BOUNDARY_WORD_END:
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-    case ATK_TEXT_BOUNDARY_LINE_END:
-        if(!current_token(str, offset, &start_tmp, start_offset, tables[boundary_type]))
-        {
-            if(!next_token(str, offset, &start_tmp, start_offset, tables[boundary_type]))
-            {
-                is_successed = FALSE;
-                break;
-            }
-        }
-        //debug
-//        else if(*start_offset > strlen(str) - 7)
-//        {
-//           *end_offset = *start_offset + 3;
-//            is_successed = TRUE;
-//           break;
-//        }
-        if(!next_token(str, *start_offset, &start_tmp, end_offset, tables[boundary_type]))
-        {
-            is_successed = FALSE;
-            break;
-        }
-        //debug
-//        --(*start_offset);
-        is_successed = TRUE;
-        
-        break;
-    default:
-        is_successed = FALSE;
-    }
-
-    if(is_successed)
-    {
-        return my_atk_text_get_text(text, *start_offset, *end_offset);
-    }
-    else
-    {
-        return NULL;
-    }
-}
-//*******************************my_atk_text_get_text_at_offset*******************************
-static gchar* my_atk_text_get_text_at_offset(AtkText *text, gint offset,
-    AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset)
-{
-    gchar *str = ((MyAtkText*)text)->str;
-    gint len = my_strlen(str);
-    if((offset < 0) || (offset >= len))
-    {
-        return NULL;
-    }
-    
-    // This variable is set in switch statement. If after that statement variable is TRUE,
-    // then return text from 'strat_offset' to 'end_offset'. Otherwise NULL will be returned.
-    gboolean is_successed = TRUE;
-    
-    gint start_tmp;
-    gint end_tmp;
-    
-    switch(boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-        *start_offset = offset;
-        *end_offset = offset + 1;
-        is_successed = TRUE;
-        break;
-    case ATK_TEXT_BOUNDARY_WORD_START:
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-    case ATK_TEXT_BOUNDARY_LINE_START:
-        if(!current_token(str, offset, start_offset, &end_tmp, tables[boundary_type]))
-        {
-            if(!previous_token(str, offset, start_offset, &end_tmp, tables[boundary_type]))
-            {
-                is_successed = FALSE;
-                break;
-            }
-        }
-        if(!next_token(str, offset, end_offset, &end_tmp, tables[boundary_type]))
-        {
-            *end_offset = len;
-        }
-        is_successed = TRUE;
-        break;
-    case ATK_TEXT_BOUNDARY_WORD_END:
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-    case ATK_TEXT_BOUNDARY_LINE_END:
-        if(!current_token(str, offset, &start_tmp, end_offset, tables[boundary_type]))
-        {
-            if(!next_token(str, offset, &start_tmp, end_offset, tables[boundary_type]))
-            {
-                is_successed = FALSE;
-                break;
-            }
-        }
-        if(!previous_token(str, start_tmp, &start_tmp, start_offset, tables[boundary_type]))
-        {
-            *start_offset = 0;
-        }
-        is_successed = TRUE;
-        //debug
-//        ++(*start_offset);
-        break;
-    default:
-        is_successed = FALSE;
-    }
-
-    if(is_successed)
-    {
-        //debug
-//        if(boundary_type == ATK_TEXT_BOUNDARY_LINE_START)
-//            return my_atk_text_get_text(text, ++(*start_offset), *end_offset);
-        return my_atk_text_get_text(text, *start_offset, *end_offset);
-    }
-    else
-    {
-        return NULL;
-    }
-}
-//***********************************my_atk_text_get_text_before_offset******************
-static gchar* my_atk_text_get_text_before_offset(AtkText *text, gint offset,
-    AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset)
-{
-    gchar *str = ((MyAtkText*)text)->str;
-    gint len = my_strlen(str);
-    if((offset < 0) || (offset >= len))
-    {
-        return NULL;
-    }
-    
-    // This variable is set in switch statement. If after that statement variable is TRUE,
-    // then return text from 'strat_offset' to 'end_offset'. Otherwise NULL will be returned.
-    gboolean is_successed = TRUE;
-    
-    gint start_tmp;
-    gint end_tmp;
-    
-    switch(boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-        if(offset == 0)
-        {
-            is_successed = FALSE;
-            break;
-        }
-        *start_offset = offset - 1;
-        *end_offset = offset;
-        is_successed = TRUE;
-        break;
-    case ATK_TEXT_BOUNDARY_WORD_START:
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-    case ATK_TEXT_BOUNDARY_LINE_START:
-        if(!current_token(str, offset, end_offset, &end_tmp, tables[boundary_type]))
-        {
-            if(!previous_token(str, offset, end_offset, &end_tmp, tables[boundary_type]))
-            {
-                is_successed = FALSE;
-                break;
-            }
-        }
-        if(!previous_token(str, *end_offset, start_offset, &end_tmp, tables[boundary_type]))
-        {
-            is_successed = FALSE;
-            break;    
-        }
-        is_successed = TRUE;
-        //debug
-//        ++(*start_offset);
-        break;
-    case ATK_TEXT_BOUNDARY_WORD_END:
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-    case ATK_TEXT_BOUNDARY_LINE_END:
-        if(!previous_token(str, offset, &start_tmp, end_offset, tables[boundary_type]))
-        {
-            is_successed = FALSE;
-            break;
-        }
-        if(!previous_token(str, start_tmp, &start_tmp, start_offset, tables[boundary_type]))
-        {
-            *start_offset = 0;
-        }
-        is_successed = TRUE;
-        break;
-    default:
-        is_successed = FALSE;
-    }
-
-    if(is_successed)
-    {
-        return my_atk_text_get_text(text, *start_offset, *end_offset);
-    }
-    else
-    {
-        return NULL;
-    }
-}
-//*********************************my_atk_text_get_run_attributes*****************
-AtkAttributeSet* my_atk_text_get_run_attributes(AtkText* text, gint offset,
-    gint *start_offset, gint *end_offset)
-{
-    GList *tmp;
-    GList *attributes = ((MyAtkText*)text)->attributes;
-    if(offset < 0 || offset >= my_atk_text_get_character_count(text))
-    {
-        TRACE0("Incorrect value of offset.");
-        return NULL;
-    }
-    gint start = -1, end = -1;
-    for(tmp = attributes; tmp != NULL; tmp = tmp->next)
-    {
-        Range* range = (Range*)(tmp->data); 
-        if(range->end <= offset)
-        {
-             start = range->end;
-             continue;
-        }
-        if(range->start > offset)
-        {
-             end = range->start;
-             break;
-        }
-        
-        *start_offset = range->start;
-        *end_offset = range->end;
-        return attribute_set_copy(range->attributeSet);
-    }    
-    *start_offset = (start == -1) ? 0 : start;
-    *end_offset = (end == -1) ? my_atk_text_get_character_count(text) : end;
-    return NULL;
-}
-//*********************************my_atk_text_get_default_attributes*****************
-AtkAttributeSet* my_atk_text_get_default_attributes(AtkText* text)
-{
-    return attribute_set_copy(((MyAtkText*)text)->default_attributes);
-}
-//*********************************my_atk_text_get_character_extents*****************
-void my_atk_text_get_character_extents(AtkText* text, gint offset, gint *x, gint *y,
-    gint *width, gint *height, AtkCoordType coord_type)
-{
-    AtkTextRectangle result;
-    gint relative_offset, line;
-    line = get_character_line((MyAtkText*)text, offset, &relative_offset);
-    get_extents((MyAtkText*)text, line, relative_offset, &result);
-    *x = result.x;
-    *y = result.y;
-    *width = result.width;
-    *height = result.height;
-}
-//*******************************my_atk_text_get_range_extents************************
-void my_atk_text_get_range_extents(AtkText *text, gint start_offset, gint end_offset,
-    AtkCoordType coord_type, AtkTextRectangle *rect)
-{
-    //simple - union of extents of the characters, contained in this range
-    AtkTextRectangle result, bounds_tmp;
-    gint i;
-
-    atk_text_get_character_extents (text, start_offset,
-                                  &result.x, &result.y,
-                                  &result.width, &result.height,
-                                  coord_type);
-
-    for (i = start_offset + 1; i < end_offset; i++)
-    {
-        my_atk_text_get_character_extents (text, i,&bounds_tmp.x, &bounds_tmp.y, 
-            &bounds_tmp.width, &bounds_tmp.height, coord_type);
-        
-        if(bounds_tmp.x < result.x)
-        {
-            //corrects left boundary
-            result.width += result.x - bounds_tmp.x;
-            result.x = bounds_tmp.x; 
-        }
-        if(bounds_tmp.x + bounds_tmp.width > result.x + result.width)
-        {
-            //corrects right boundary
-            result.width = bounds_tmp.x + bounds_tmp.width - result.x;
-        }
-        if(bounds_tmp.y < result.y)
-        {
-            //corrects top boundary
-            result.height += result.y - bounds_tmp.y;
-            result.y = bounds_tmp.y; 
-        }
-        if(bounds_tmp.y + bounds_tmp.height > result.y + result.height)
-        {
-            //corrects buttom boundary
-            result.height = bounds_tmp.y + bounds_tmp.height - result.y;
-        }
-    }
-    *rect = result;
-}
-//**********************************my_atk_text_get_offset_at_point*********************
-gint my_atk_text_get_offset_at_point(AtkText* text, gint x, gint y, AtkCoordType coord_type)
-{
-    gint line, relative_offset;
-
-    line = get_point_line((MyAtkText*)text, y);
-    relative_offset = get_point_relative_offset((MyAtkText*)text, x);
-
-    return get_offset_at_line((MyAtkText*)text, line, relative_offset);
-}
-//*****************************my_atk_text_get_bounded_ranges******************************
-AtkTextRange** my_atk_text_get_bounded_ranges(AtkText *text, AtkTextRectangle *rect,
-    AtkCoordType coord_type, AtkTextClipType x_clip_type, AtkTextClipType y_clip_type)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    
-    gint start_line, end_line, start_rel_offset, end_rel_offset;
-    AtkTextRange** result;    
-    gint len = my_strlen(self->str);
-//macro for simplify return empty ranges when fail to do smth
-#define RETURN_EMTPY_RANGES {result = g_malloc(sizeof(AtkTextRange*));result[0] = NULL;return result;}
-    //start line
-    start_line = (y_clip_type == ATK_TEXT_CLIP_NONE) || (y_clip_type == ATK_TEXT_CLIP_MAX)
-        ? 0 : get_point_line(self, rect->y);
-    if(start_line < 0) start_line = 0;
-    //end line
-    end_line = (y_clip_type == ATK_TEXT_CLIP_NONE) || (y_clip_type == ATK_TEXT_CLIP_MIN)
-        ? G_MAXINT/2 : get_point_line(self, rect->y  + rect->height);
-    if(end_line < 0) RETURN_EMTPY_RANGES;
-    //start relative offset
-    start_rel_offset = (x_clip_type == ATK_TEXT_CLIP_NONE) || (x_clip_type == ATK_TEXT_CLIP_MAX)
-        ? 0 : get_point_relative_offset(self, rect->x);
-    if(start_rel_offset < 0) start_rel_offset = 0;
-    //end relative offset
-    end_rel_offset = (x_clip_type == ATK_TEXT_CLIP_NONE) || (x_clip_type == ATK_TEXT_CLIP_MIN)
-        ? G_MAXINT/2 : get_point_relative_offset(self, rect->x + rect->width);
-    if(end_rel_offset < 0) RETURN_EMTPY_RANGES;
-    //start offset(at the start of 'start_line')
-    gint start_offset = get_offset_at_line_start(self, start_line);
-    if(start_offset + start_rel_offset >= len) RETURN_EMTPY_RANGES;
-    //count ranges
-    gint number_of_ranges = count_ranges(self, start_offset,
-        start_rel_offset, end_rel_offset, end_line - start_line + 1, NULL, coord_type);
-    //create array(with just getting size)
-    result = g_malloc(sizeof(AtkTextRange*) * (number_of_ranges + 1));
-    //write ranges
-    count_ranges(self, start_offset,
-        start_rel_offset, end_rel_offset, end_line - start_line + 1, result, coord_type);
-#undef RETURN_EMPTY_RANGES
-    return result;
-}
-
-//********************************my_atk_text_get_n_selections*******************************
-gint my_atk_text_get_n_selections(AtkText *text)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    return self->selections->len;
-}
-
-//********************************my_atk_text_get_selection*******************************
-gchar* my_atk_text_get_selection(AtkText *text,
-    gint selection_num, gint *start_offset, gint *end_offset)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    GArray *selections = self->selections;
-    if(selection_num < 0 || selection_num >= selections->len) return NULL;
-    *start_offset = g_array_index(selections, TextSelection, selection_num).start_offset;
-    *end_offset = g_array_index(selections, TextSelection, selection_num).end_offset;
-    return my_atk_text_get_text(text, *start_offset, *end_offset);
-}
-//********************************my_atk_text_remove_selection*******************************
-gboolean my_atk_text_remove_selection(AtkText *text, gint selection_num)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    GArray *selections = self->selections;
-    if(selection_num < 0 || selection_num >= selections->len) return FALSE;
-    g_array_remove_index(selections, selection_num);
-    
-    g_signal_emit_by_name(text, "text-selection-changed");
-    return TRUE;
-}
-//********************************my_atk_text_add_selection*******************************
-gboolean my_atk_text_add_selection(AtkText *text, gint start_offset, gint end_offset)
-{
-    if(start_offset < 0 || end_offset > my_atk_text_get_character_count(text) 
-        || start_offset >= end_offset) return FALSE;
-
-    MyAtkText *self = (MyAtkText*)text;
-    GArray *selections = self->selections;
-    gint i;
-    for(i = 0; i < selections->len; i++)
-    {
-        if(g_array_index(selections, TextSelection, i).start_offset >= start_offset)
-        {
-            if(g_array_index(selections, TextSelection, i).start_offset < end_offset)
-                return FALSE;
-            break;
-        }
-    }    
-    TextSelection new_selection;
-    new_selection.start_offset = start_offset;
-    new_selection.end_offset = end_offset;
-    g_array_insert_val(selections, i, new_selection);
-    
-    g_signal_emit_by_name(text, "text-selection-changed");
-    return TRUE;
-}
-//********************************my_atk_text_set_selection*******************************
-gboolean my_atk_text_set_selection(AtkText *text,
-    gint selection_num, gint start_offset, gint end_offset)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    GArray *selections = self->selections;
-    if(selection_num < 0 || selection_num >= selections->len) return NULL;
-    
-    if((selection_num == 0 
-        || g_array_index(selections, TextSelection, selection_num - 1).end_offset <= start_offset)
-        && (selection_num == selections->len - 1
-        || g_array_index(selections, TextSelection, selection_num + 1).start_offset >= end_offset)
-        )
-    {
-        //Arrange of selections won't change
-        g_array_index(selections, TextSelection, selection_num).start_offset = 
-            start_offset;
-        g_array_index(selections, TextSelection, selection_num).end_offset =
-            end_offset;
-        g_signal_emit_by_name(text, "text-selection-changed");
-        return TRUE;
-    }
-    gint start_offset_old = 
-        g_array_index(selections, TextSelection, selection_num).start_offset;
-    gint end_offset_old = 
-        g_array_index(selections, TextSelection, selection_num).end_offset;
-    
-    my_atk_text_remove_selection(text, selection_num);
-    if(!my_atk_text_add_selection(text, start_offset, end_offset))
-    {
-        //fail when adding selection. Restore initial state.
-        my_atk_text_add_selection(text, start_offset_old, end_offset_old);
-        return FALSE;
-    }
-    g_signal_emit_by_name(text, "text-selection-changed");
-    return TRUE;
-
-}
-
-//************************************my_atk_text_get_caret_offset******************
-gint my_atk_text_get_caret_offset(AtkText *text)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    return self->caret_offset;
-}
-//************************************my_atk_text_set_caret_offset******************
-gboolean my_atk_text_set_caret_offset(AtkText *text, gint offset)
-{
-    MyAtkText *self = (MyAtkText*)text;
-    //caret may be set just after the last character
-    if(offset < 0 || offset > my_atk_text_get_character_count(text))return FALSE;
-    self->caret_offset = offset;
-    g_signal_emit_by_name(self, "text-caret-moved", offset);
-    return TRUE;
-}
-
-//***********************my_atk_text_insert_text*******************************
-void my_atk_text_insert_text(AtkEditableText* text, const gchar* string,
-    gint length, gint *position)
-{
-    gint i;
-    MyAtkText* myAtkText = (MyAtkText*)text;
-    gchar *str = myAtkText->str;
-    gint strlen_old = my_strlen(str);
-    
-    if(string == NULL) return;
-    //correct length
-    for(i = 0; i < length; i ++)
-    {
-        if(string[i] == '\0') {length = i; break;}
-    }
-    
-    if(*position < 0 || *position > strlen_old || length <= 0 )return;
-    
-    
-    gchar *new_str = g_malloc(strlen_old + length + 1);
-    if(new_str == NULL)return;
-    
-    if(*position != 0) 
-        memcpy(new_str, str, (size_t)*position);
-    memcpy(new_str + *position, string, (size_t)length);
-    if(strlen_old != *position) 
-        memcpy(new_str + *position + length, str + *position,
-            (size_t)(strlen_old - *position));
-    new_str[strlen_old + length] = '\0';
-    
-    g_free(str);
-    myAtkText->str = new_str;
-    correct_selections_after_insert(myAtkText, *position, length);
-    correct_attributes_after_insert(myAtkText, *position, length);
-    correct_caret_after_insert(myAtkText, *position, length);
-    g_signal_emit_by_name(text, "text-changed::insert", *position, length);
-    g_signal_emit_by_name(text, "text-selection-changed");
-    g_signal_emit_by_name(text, "text-attributes-changed");
-    g_signal_emit_by_name(text, "text-caret-moved", myAtkText->caret_offset);
-    
-    (*position) += length;
-}
-//*************************my_atk_text_delete_text*******************
-void my_atk_text_delete_text(AtkEditableText* text, gint start_pos, gint end_pos)
-{
-    MyAtkText* myAtkText = (MyAtkText*)text;
-    gchar *str = myAtkText->str;
-    gint strlen_old = my_strlen(str);
-    
-    if(start_pos < 0 || end_pos > strlen_old || start_pos >= end_pos )return;
-    if(strlen_old != end_pos)
-        memmove(str + start_pos, str + end_pos, strlen_old - end_pos);
-    str[start_pos - end_pos + strlen_old] = '\0';
-    
-    correct_selections_after_delete(myAtkText, start_pos, end_pos - start_pos);
-    correct_attributes_after_delete(myAtkText, start_pos, end_pos - start_pos);
-    correct_caret_after_delete(myAtkText, start_pos, end_pos - start_pos);
-    g_signal_emit_by_name(text, "text-changed::delete", start_pos, end_pos - start_pos);
-    g_signal_emit_by_name(text, "text-selection-changed");
-    g_signal_emit_by_name(text, "text-attributes-changed");
-    g_signal_emit_by_name(text, "text-caret-moved", myAtkText->caret_offset);
-}
-//***********************my_atk_text_set_text_contents*************************
-void my_atk_text_set_text_contents(AtkEditableText* text, const gchar* string)
-{
-    my_atk_text_delete_text(text, 0, my_atk_text_get_character_count((AtkText*)text));
-    gint position = 0;
-    my_atk_text_insert_text(text, string, my_strlen(string), &position);
-}
-//**********************my_atk_text_copy_text***************************
-void my_atk_text_copy_text(AtkEditableText* text, gint start_pos, gint end_pos)
-{
-    MyAtkText* myAtkText = (MyAtkText*)text;
-    const gchar *str = myAtkText->str;
-    gint strlen_old = my_strlen(str);
-    if(start_pos < 0 || end_pos > strlen_old || start_pos >= end_pos )return;
-    
-    MyAtkTextClass *parent = MY_ATK_TEXT_GET_CLASS(text); 
-    g_free(parent->clipboard);
-    /*parent->clipboard = g_malloc(end_pos - start_pos + 1);
-    
-    strncpy(parent->clipboard, str + start_pos, end_pos - start_pos);
-    parent->clipboard[end_pos - start_pos] = '\0';*/
-    parent->clipboard = g_strndup(str + start_pos, end_pos - start_pos); 
-}
-//**********************my_atk_text_paste_text***************************
-void my_atk_text_paste_text(AtkEditableText *text, gint position)
-{
-    //NULL-clipboard process corretly
-    MyAtkTextClass* parent = MY_ATK_TEXT_GET_CLASS(text);
-    my_atk_text_insert_text(text, parent->clipboard, my_strlen(parent->clipboard), &position);
-}
-//**********************my_atk_text_cut_text***************************
-void my_atk_text_cut_text(AtkEditableText* text, gint start_pos, gint end_pos)
-{
-    my_atk_text_copy_text(text, start_pos, end_pos);
-    my_atk_text_delete_text(text, start_pos, end_pos);
-}
-//*********************my_atk_text_set_run_attributes************************
-gboolean my_atk_text_set_run_attributes(AtkEditableText* text, AtkAttributeSet* attrib_set,
-    gint start_offset, gint end_offset)
-{
-    MyAtkText* self = (MyAtkText*)text;
-    gint len = atk_text_get_character_count((AtkText*)text);
-    if(start_offset < 0 || start_offset >= end_offset || end_offset > len)
-        return FALSE;
-    GList *attributes = self->attributes;
-    GList *tmp = attributes;
-    
-    while(tmp != NULL)
-    {
-        Range *range = (Range*)tmp->data;
-        if(range->start < start_offset)
-        {
-            if(range->end <= end_offset)
-            {
-                if(range->end > start_offset) range->end = start_offset; 
-                tmp = tmp->next;
-                continue;
-            }
-            /*range->end > end_offset*/
-            Range* additional_range = range_new(end_offset, range->end);
-            additional_range->attributeSet = attribute_set_copy(range->attributeSet);
-            range->end = start_offset;
-            attributes = g_list_insert_before(attributes, tmp->next, additional_range);
-            tmp = tmp->next;
-            break;
-        }
-        else/*range->start >= start_offset*/
-        {
-            if(range->end <= end_offset)
-            {
-                GList *tmp1 = tmp->next;
-                attributes = g_list_remove_link(attributes, tmp);
-                tmp = tmp1;
-                continue;
-            }
-            /*range->end > end_offset*/
-            if(range->start < end_offset) range->start = end_offset;
-            break;
-        }
-    }
-    Range *new_range = range_new(start_offset, end_offset);
-    new_range->attributeSet = attribute_set_copy(attrib_set);
-    if(tmp == NULL)attributes = g_list_append(attributes, new_range);
-    else attributes = g_list_insert_before(attributes, tmp, new_range);
-    
-    self->attributes = attributes;
-    g_signal_emit_by_name(self, "text_attributes_changed");
-    return TRUE;
-}
-
-//others functions
-//sets default attributes
-void my_atk_text_set_default_attributes(MyAtkText* text, AtkAttributeSet *set)
-{
-    atk_attribute_set_free(text->default_attributes);
-    text->default_attributes = attribute_set_copy(set);
-    g_signal_emit_by_name(text, "text-attributes-changed");
-}
-
-void my_atk_text_print_run_attributes(MyAtkText *text)
-{
-    g_list_foreach(text->attributes, (GFunc)range_print, NULL);
-}
-void my_atk_text_print_default_attributes(MyAtkText *text)
-{
-    attribute_set_print(text->default_attributes);
-}
-//need for separate testing interfaces
-void auxiliary_atk_text_set_text_contents(MyAtkText* text, const gchar* string)
-{
-    my_atk_text_set_text_contents((AtkEditableText*)text, string);
-}
-void auxiliary_atk_text_set_run_attributes(MyAtkText* text, AtkAttributeSet* attrib_set,
-    gint start_offset, gint end_offset)
-{
-    my_atk_text_set_run_attributes((AtkEditableText*)text, attrib_set, start_offset, end_offset);
-}
-
-//initialize/finalize functions
-static void my_atk_text_instance_init(GTypeInstance *obj, gpointer g_class)
-{
-    MyAtkText *self = (MyAtkText*)obj;
-    
-    self->str = NULL;
-    self->attributes = NULL;
-    self->default_attributes = NULL;
-    text_bounds_init(&self->bounds);
-    
-    self->selections = g_array_new(FALSE, FALSE, sizeof(TextSelection));
-    
-    self->caret_offset = 0;
-}
-static void my_atk_text_instance_finalize(GObject* obj)
-{
-    MyAtkText *self = (MyAtkText*)obj;
-    g_free(self->str);
-    my_atk_text_free_run_attributes(self);
-    my_atk_text_free_default_attributes(self);
-    if(self->selections != NULL)g_array_free(self->selections, FALSE);
-}
-
-static void my_atk_text_class_init(gpointer g_class, gpointer class_data)
-{
-    GObjectClass* g_object_class = (GObjectClass*)g_class;
-    //GObject virtual table
-    g_object_class->finalize = my_atk_text_instance_finalize;
-    //Fills tables of symbols
-    table_symbols_init();
-    //initialize clipboard
-    ((MyAtkTextClass*)g_class)->clipboard = NULL;
-}
-//Because of static registration of type, finalization function will never been called
-//And glib prints warning if use it in registration.
-/*static void my_atk_text_class_finalize(gpointer g_class, gpointer class_data)
-{
-    MyAtkTextClass *self = (MyAtkTextClass*)g_class;
-    
-    g_free(self->clipboard);
-    self->clipboard = NULL; 
-}*/
-void my_atk_text_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkTextIface *klass = (AtkTextIface*)g_iface;
-    //"get_text"
-    klass->get_character_count = my_atk_text_get_character_count;
-    klass->get_text = my_atk_text_get_text;
-    klass->get_character_at_offset = my_atk_text_get_character_at_offset;
-    klass->get_text_after_offset = my_atk_text_get_text_after_offset;
-    klass->get_text_at_offset = my_atk_text_get_text_at_offset;
-    klass->get_text_before_offset = my_atk_text_get_text_before_offset;
-    //"attributes"
-    klass->get_run_attributes = my_atk_text_get_run_attributes;
-    klass->get_default_attributes = my_atk_text_get_default_attributes;
-    //"bounds"
-    klass->get_character_extents = my_atk_text_get_character_extents;
-    klass->get_range_extents = my_atk_text_get_range_extents;
-    klass->get_offset_at_point = my_atk_text_get_offset_at_point;
-    klass->get_bounded_ranges = my_atk_text_get_bounded_ranges; 
-    //"selection"
-    klass->get_n_selections = my_atk_text_get_n_selections;
-    klass->get_selection = my_atk_text_get_selection;
-    klass->remove_selection = my_atk_text_remove_selection;
-    klass->add_selection = my_atk_text_add_selection;
-    klass->set_selection = my_atk_text_set_selection;
-    //"caret"
-    klass->get_caret_offset = my_atk_text_get_caret_offset;
-    klass->set_caret_offset = my_atk_text_set_caret_offset;
-}
-
-static void my_atk_editable_text_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkEditableTextIface *klass = (AtkEditableTextIface*)g_iface;
-    
-    klass->set_text_contents = my_atk_text_set_text_contents;
-    klass->set_run_attributes = my_atk_text_set_run_attributes;
-    klass->copy_text =  my_atk_text_copy_text;
-    klass->insert_text =  my_atk_text_insert_text;
-    klass->paste_text = my_atk_text_paste_text;
-    klass->cut_text = my_atk_text_cut_text;
-    klass->delete_text = my_atk_text_delete_text;
-}
-GType my_atk_text_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkTextClass),
-            NULL,                       //base_init
-            NULL,                       //base_finalize
-            my_atk_text_class_init,     //class_init
-            NULL,                       //class_finalize
-            NULL,                       //class_data
-            sizeof(MyAtkText),
-            0,                          //n_preallocs
-            my_atk_text_instance_init   //instance_init
-        };
-
-        static const GInterfaceInfo AtkTextIface_info = 
-        {
-            my_atk_text_interface_init,         /* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        static const GInterfaceInfo AtkEditableTextIface_info = 
-        {
-            my_atk_editable_text_interface_init,/* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        type = g_type_register_static(MY_TYPE_ATK_OBJECT, "MyAtkText", &typeInfo, 0);
-        g_type_add_interface_static(type,
-            ATK_TYPE_TEXT,
-            &AtkTextIface_info);
-        
-        g_type_add_interface_static(type,
-            ATK_TYPE_EDITABLE_TEXT,
-            &AtkEditableTextIface_info);
-    }
-    return type;    
-}
diff --git a/tests/dummyatk/my-atk-text.h b/tests/dummyatk/my-atk-text.h
deleted file mode 100644 (file)
index 7a6a73e..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef MY_ATK_TEXT_H
-#define MY_ATK_TEXT_H
-/*
- * MyAtkText: implements AtkText and AtkEditableText
- */
-#include <atk/atk.h>
-
-#include "my-atk-object.h"
-       
-#define MY_TYPE_ATK_TEXT             (my_atk_text_get_type ())
-#define MY_ATK_TEXT(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_TEXT, MyAtkText))
-#define MY_ATK_TEXT_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_TEXT, MyAtkTextClass))
-#define MY_IS_ATK_TEXT(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_TEXT))
-#define MY_IS_ATK_TEXT_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_TEXT))
-#define MY_ATK_TEXT_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_TEXT, MyAtkTextClass))
-
-typedef struct _MyAtkText MyAtkText;
-typedef struct _MyAtkTextClass MyAtkTextClass;
-
-//Struct, describing bounds of one selection.
-typedef struct
-{
-    gint start_offset, end_offset;
-}TextSelection;
-//Struct, describing values, needed for determine extent of characters 
-typedef struct
-{
-    gint base_x, base_y;//coordinates of the top-left corner of text
-    gint pixels_above_line;
-    gint pixels_below_line;
-    gint size;//size of the character(height in pixels)
-    gint pixels_between_characters;//monoscaped font
-    gint width;//width of character
-}TextBounds; 
-
-struct _MyAtkText
-{
-    MyAtkObject parent;
-    
-    gchar* str;//string, containing text
-    GList* attributes;//running atributes
-    AtkAttributeSet *default_attributes;//default attributes
-    
-    TextBounds bounds;
-    
-    GArray* selections;
-    
-    gint caret_offset;
-};
-
-struct _MyAtkTextClass
-{
-    MyAtkObjectClass parent;
-    gchar* clipboard;
-};
-
-GType my_atk_text_get_type();
-
-void my_atk_text_interface_init(gpointer g_iface, gpointer iface_data);
-#endif /*MY_ATK_TEXT_H*/
diff --git a/tests/dummyatk/my-atk-value.c b/tests/dummyatk/my-atk-value.c
deleted file mode 100644 (file)
index 3530d4f..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-#include <atk/atk.h>
-#include <limits.h>
-
-#include "my-atk-object.h"
-#include "my-atk-value.h"
-
-//*************************implementation***********************
-//implementation of virtual functions
-//******************get_current_value*******************
-static void my_atk_value_get_current_value(AtkValue *obj, GValue *value)
-{
-    g_return_if_fail(MY_IS_ATK_VALUE(obj));
-    MyAtkValue* self = (MyAtkValue*)obj;
-    
-    g_value_init(value, G_TYPE_INT);
-    g_value_set_int(value, self->current);
-}
-//******************get_maximum_value*******************
-static void my_atk_value_get_maximum_value(AtkValue *obj, GValue *value)
-{
-    g_return_if_fail(MY_IS_ATK_VALUE(obj));
-    MyAtkValue* self = (MyAtkValue*)obj;
-    
-    g_value_init(value, G_TYPE_INT);
-    g_value_set_int(value, self->maximum);
-}
-//******************get_minimum_value*******************
-static void my_atk_value_get_minimum_value(AtkValue *obj, GValue *value)
-{
-    g_return_if_fail(MY_IS_ATK_VALUE(obj));
-    MyAtkValue* self = (MyAtkValue*)obj;
-    
-    g_value_init(value, G_TYPE_INT);
-    g_value_set_int(value, self->minimum);
-}
-//******************set_current_value*******************
-static gboolean my_atk_value_set_current_value(AtkValue *obj, const GValue *value)
-{
-    g_return_val_if_fail(MY_IS_ATK_VALUE(obj), FALSE);
-    MyAtkValue* self = (MyAtkValue*)obj;
-    
-    if(self->readonly) return FALSE;
-    
-    gint new_value = g_value_get_int(value);
-    if(new_value < self->minimum || new_value > self->maximum) return FALSE;
-    
-    self->current = new_value;
-    return TRUE;
-}
-
-//others
-MyAtkValue* my_atk_value_new(gint minimum, gint maximum, gint current)
-{
-    MyAtkValue* result = g_object_new(MY_TYPE_ATK_VALUE, NULL);
-    if(result == NULL) return NULL;
-    result->minimum = minimum;
-    result->maximum = maximum;
-    result->current = current;
-    
-    return result;
-}
-static void my_atk_value_instance_init(GTypeInstance *obj, gpointer g_class)
-{
-    MyAtkValue *self = (MyAtkValue*)obj;
-    
-    self->minimum = 0;
-    self->maximum = 0;
-    self->current = 0;
-    
-    self->readonly = FALSE;
-}
-static void my_atk_value_interface_init(gpointer g_iface, gpointer iface_data)
-{
-    AtkValueIface *klass = (AtkValueIface*)g_iface;
-    
-    klass->get_current_value = my_atk_value_get_current_value;
-    klass->get_minimum_value = my_atk_value_get_minimum_value;
-    klass->get_maximum_value = my_atk_value_get_maximum_value;
-    
-    klass->set_current_value = my_atk_value_set_current_value;
-}
-
-GType my_atk_value_get_type()
-{
-    static GType type = 0;
-    if(type == 0)
-    {
-        static const GTypeInfo typeInfo = 
-        {
-            sizeof(MyAtkValueClass),
-            NULL, //base_init
-            NULL, //base_finalize
-            NULL, //class_init
-            NULL, //class_finalize
-            NULL, //class_data
-            sizeof(MyAtkValue),
-            0, //n_preallocs
-            my_atk_value_instance_init //instance_init
-        };
-
-        static const GInterfaceInfo iface_info = 
-        {
-            my_atk_value_interface_init,        /* interface_init*/
-            NULL,                               /* interface_finalize*/
-            NULL                                /* interface_data */
-        };
-        type = g_type_register_static(MY_TYPE_ATK_OBJECT, "MyAtkValue", &typeInfo, 0);
-        g_type_add_interface_static(type,
-            ATK_TYPE_VALUE,
-            &iface_info);
-    }
-    return type;    
-}
diff --git a/tests/dummyatk/my-atk-value.h b/tests/dummyatk/my-atk-value.h
deleted file mode 100644 (file)
index 03ed6d1..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#ifndef MY_ATK_VALUE_H
-#define MY_ATK_VALUE_H
-/*
- * MyAtkValue: derives AtkObject
- * and implements AtkValue
- */
-#include <atk/atk.h>
-
-#define MY_TYPE_ATK_VALUE             (my_atk_value_get_type ())
-#define MY_ATK_VALUE(obj)             (G_TYPE_CHECK_INSTANCE_CAST ((obj), MY_TYPE_ATK_VALUE, MyAtkValue))
-#define MY_ATK_VALUE_CLASS(vtable)    (G_TYPE_CHECK_CLASS_CAST ((vtable), MY_TYPE_ATK_VALUE, MyAtkValueClass))
-#define MY_IS_ATK_VALUE(obj)          (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MY_TYPE_ATK_VALUE))
-#define MY_IS_ATK_VALUE_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), MY_TYPE_ATK_VALUE))
-#define MY_ATK_VALUE_GET_CLASS(inst)  (G_TYPE_INSTANCE_GET_CLASS ((inst), MY_TYPE_ATK_VALUE, MyAtkValueClass))
-
-typedef struct _MyAtkValue MyAtkValue;
-typedef struct _MyAtkValueClass MyAtkValueClass;
-
-struct _MyAtkValue
-{
-    MyAtkObject parent;
-    
-    gint minimum, maximum, current;
-    gboolean readonly;
-};
-
-struct _MyAtkValueClass
-{
-    MyAtkObjectClass parent;
-};
-
-MyAtkValue* my_atk_value_new(gint minimum, gint maximium, gint current);
-GType my_atk_value_get_type();
-#endif /*MY_ATK_VALUE_H*/
diff --git a/tests/dummyatk/my-atk.h b/tests/dummyatk/my-atk.h
deleted file mode 100644 (file)
index 935d3d8..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#ifndef MY_ATK_H
-#define MY_ATK_H
-
-#include <my-atk-action.h>
-#include <my-atk-component.h>
-#include <my-atk.h>
-#include <my-atk-hyperlink.h>
-#include <my-atk-hypertext.h>
-#include <my-atk-object.h>
-#include <my-atk-streamable-content.h>
-#include <my-atk-text.h>
-#include <my-atk-value.h>
-
-#endif /*MY_ATK_H*/
diff --git a/tests/dummyatk/resources_storage.c b/tests/dummyatk/resources_storage.c
deleted file mode 100644 (file)
index e86051d..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-#include <atk/atk.h>
-
-GHashTable* resources = NULL;
-
-void resource_storage_init()
-{
-    if(resources == NULL)
-    resources = g_hash_table_new_full(g_str_hash, g_str_equal,
-        (GDestroyNotify)g_free, (GDestroyNotify)g_object_unref);
-}
-
-void resource_storage_free()
-{
-    if(resources == NULL) return;
-    g_hash_table_destroy(resources);
-    resources = NULL;
-}
-
-void resource_storage_add(const gchar* name, AtkObject* resource)
-{
-    if(resources == NULL) return;
-    g_hash_table_insert(resources, g_strdup(name), g_object_ref(resource));
-}
-
-AtkObject* resource_storage_get(const gchar* name)
-{
-    if(resources == NULL) return NULL;
-    return g_hash_table_lookup(resources, name);
-}
-void resources_storage_remove(const gchar* name)
-{
-    if(resources == NULL) return;
-    g_hash_table_remove(resources, name);
-}
diff --git a/tests/dummyatk/resources_storage.h b/tests/dummyatk/resources_storage.h
deleted file mode 100644 (file)
index 3decd86..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef RESOURCES_STORAGE_H
-#define RESOURCES_STORAGE_H
-
-#include <glib.h>
-
-void resource_storage_init();
-
-void resource_storage_free();
-
-void resource_storage_add(const gchar* name, AtkObject* resource);
-
-AtkObject* resource_storage_get(const gchar* name);
-
-void resources_storage_remove(const gchar* name);
-
-#endif /*RESOURCES_STORAGE_H*/
diff --git a/tests/dummyatk/useful_functions.c b/tests/dummyatk/useful_functions.c
deleted file mode 100644 (file)
index 49b6a82..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <string.h>
-#include <glib.h>
-/*
- * Functions and macros widely used in the tests.
- */
-//same as strcmp() == 0 but works properly for NULL pointers
-gboolean my_strcmp(const gchar* str1, const gchar* str2)
-{
-    if(str1 == str2) return TRUE;
-    if(str1 == NULL || str2 == NULL) return FALSE;
-    
-    return strcmp(str1,str2) == 0;
-}
-//same as strlen but works properly for NULL pointer and returns gint instead of guint
-gint my_strlen(const gchar* str)
-{
-    if(str == NULL)return 0;
-    return (gint)strlen(str);
-}
-//same as strncmp() == 0 but works properly for NULL pointers
-gboolean my_strncmp(const gchar* str1, const gchar* str2, gint n)
-{
-    if(n <= 0)return TRUE;
-    if(str1 == str2)return TRUE;
-    if(str1 == NULL || str2 == NULL)return FALSE;
-
-    return strncmp(str1, str2, n) == 0;
-}
diff --git a/tests/dummyatk/useful_functions.h b/tests/dummyatk/useful_functions.h
deleted file mode 100644 (file)
index 4fbce6c..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#ifndef USEFUL_FUNCTIONS_H
-#define USEFUL_FUNCTIONS_H
-/*
- * Functions and macros widely used in the tests.
- */
-//macro for creating objects in startup section
-#define OBJECT_NEW(obj, type, type_str) obj = g_object_new(type,NULL);\
-    if(obj == NULL)\
-    {\
-        INIT_FAILED("Cannot create instance of type" type_str ".\n");\
-    }
-//macro for destroying object 
-#define OBJECT_UNREF(obj) if(obj != NULL)\
-    {\
-        g_object_unref((gpointer)obj);\
-    }
-//for testing signals
-#define HANDLER_DISCONNECT(obj, h) if((h) != 0)\
-       {\
-               g_signal_handler_disconnect(obj, h);\
-       }
-
-gboolean my_strcmp(const gchar* str1, const gchar* str2);
-
-gint my_strlen(const gchar* str);
-
-gboolean my_strncmp(const gchar* str1, const gchar* str2, gint n);
-
-#endif /*USEFUL_FUNCTIONS_H*/
diff --git a/tests/dummyatk/user_marshal.c b/tests/dummyatk/user_marshal.c
deleted file mode 100644 (file)
index 1f8ecf0..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-#include       <glib-object.h>
-
-/* INT:BOXED (marshal.list:1) */
-void
-g_cclosure_user_marshal_INT__BOXED (GClosure     *closure,
-                                    GValue       *return_value,
-                                    guint         n_param_values,
-                                    const GValue *param_values,
-                                    gpointer      invocation_hint,
-                                    gpointer      marshal_data)
-{
-  typedef gint (*GMarshalFunc_INT__BOXED) (gpointer     data1,
-                                           gpointer     arg_1,
-                                           gpointer     data2);
-  register GMarshalFunc_INT__BOXED callback;
-  register GCClosure *cc = (GCClosure*) closure;
-  register gpointer data1, data2;
-  gint v_return;
-
-  g_return_if_fail (return_value != NULL);
-  g_return_if_fail (n_param_values == 2);
-
-  if (G_CCLOSURE_SWAP_DATA (closure))
-    {
-      data1 = closure->data;
-      data2 = g_value_peek_pointer (param_values + 0);
-    }
-  else
-    {
-      data1 = g_value_peek_pointer (param_values + 0);
-      data2 = closure->data;
-    }
-  callback = (GMarshalFunc_INT__BOXED) (marshal_data ? marshal_data : cc->callback);
-
-  v_return = callback (data1,
-                       g_marshal_value_peek_boxed (param_values + 1),
-                       data2);
-
-  g_value_set_int (return_value, v_return);
-}
-
diff --git a/tests/dummyatk/user_marshal.h b/tests/dummyatk/user_marshal.h
deleted file mode 100644 (file)
index a845925..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef USER_MARSHAL_H
-#define USER_MARSHAL_H
-
-#include       <glib-object.h>
-
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v)     g_value_get_char (v)
-#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v)      g_value_get_int (v)
-#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
-#define g_marshal_value_peek_long(v)     g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
-#define g_marshal_value_peek_float(v)    g_value_get_float (v)
-#define g_marshal_value_peek_double(v)   g_value_get_double (v)
-#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v)    g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v)   g_value_get_object (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- *          Do not access GValues directly in your code. Instead, use the
- *          g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
-#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
-#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
-#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-void
-g_cclosure_user_marshal_INT__BOXED (GClosure     *closure,
-                                    GValue       *return_value,
-                                    guint         n_param_values,
-                                    const GValue *param_values,
-                                    gpointer      invocation_hint,
-                                    gpointer      marshal_data);
-
-#endif /*USER_MARSHAL_H*/
diff --git a/tests/pyatspi/Makefile.am b/tests/pyatspi/Makefile.am
deleted file mode 100644 (file)
index 97213ce..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-SUBDIRS = pasytest
-
-EXTRA_DIST = \
-       accessibletest.py\
-       actiontest.py\
-       componenttest.py\
-       desktoptest.py\
-       statetest.py\
-       Makefile.am\
-       Makefile.in\
-       setvars.sh\
-       relationtest.py\
-       runtests.sh\
-       testrunner
-
-TESTS_ENVIRONMENT = top_builddir=$(top_builddir) top_srcdir=$(top_srcdir)
-
-TESTS = runtests.sh
-
-CLEANFILES = *.pyc
diff --git a/tests/pyatspi/accessibletest.py b/tests/pyatspi/accessibletest.py
deleted file mode 100644 (file)
index 6cd2cdd..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-import dbus
-import gobject
-import os.path
-
-from xml.dom import minidom
-import os
-
-from pasytest import PasyTest as _PasyTest
-
-import pyatspi
-from pyatspi import StateSet
-
-st = [pyatspi.STATE_MULTI_LINE,
-      pyatspi.STATE_MODAL,
-      pyatspi.STATE_INDETERMINATE,
-      pyatspi.STATE_SUPPORTS_AUTOCOMPLETION,
-      pyatspi.STATE_VERTICAL,]
-
-def _createNode(accessible, parentElement):
-       e = minidom.Element("accessible")
-
-       e.attributes["name"] = accessible.name
-       e.attributes["role"] = str(int(accessible.getRole()))
-       e.attributes["description"] = accessible.description
-
-       for i in range(0, accessible.childCount):
-               _createNode(accessible.getChildAtIndex(i), e)
-
-       parentElement.appendChild(e)
-
-class AccessibleTest(_PasyTest):
-
-       __tests__ = ["setup",
-                    "test_name",
-                    "test_getChildAtIndex",
-                    "test_isEqual",
-                    "test_getApplication",
-                    "test_getAttributes",
-                    "test_parent",
-                    "test_getIndexInParent",
-                    "test_getLocalizedRoleName",
-                    "test_getRelationSet",
-                    "test_getRole",
-                    "test_getRoleName",
-                    "test_getState",
-                    "test_childCount",
-                    "test_description",
-                    "test_tree",
-                    "teardown",
-                    ]
-
-       def __init__(self, bus, path):
-               _PasyTest.__init__(self, "Accessible", False)
-               self._bus = bus
-               self._path = path
-
-       def setup(self, test):
-               self._registry = pyatspi.Registry()
-               print self._path
-               self._desktop = self._registry.getDesktop(0)
-
-       def test_name(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               test.assertEqual(root.name, "main", "Expected name - \"main\". Recieved - \"%s\"" % (root.name,))
-
-       def test_getChildAtIndex(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               a = root.getChildAtIndex(0)
-               test.assertEqual(a.name, "gnome-settings-daemon",
-                                        "Expected name - \"gnome-settings-daemon\". Recieved - \"%s\"" % (a.name,))
-               b = root.getChildAtIndex(1)
-               test.assertEqual(b.name, "gnome-panel",
-                                        "Expected name - \"gnome-panel\". Recieved - \"%s\"" % (b.name,))
-               c = root.getChildAtIndex(2)
-               test.assertEqual(c.name, "nautilus",
-                                        "Expected name - \"nautilus\". Recieved - \"%s\"" % (c.name,))
-               
-       def test_isEqual(self, test):
-               root = self._desktop.getChildAtIndex(0)
-
-               a = root.getChildAtIndex(1)
-               if not a.isEqual(a):
-                       test.fail("Same accessible found unequal to self")
-
-               b = root.getChildAtIndex(1)
-               if not a.isEqual(b):
-                       test.fail("Similar accessibles found unequal")
-               if not b.isEqual(a):
-                       test.fail("Similar accessibles found unequal")
-
-               c = root.getChildAtIndex(2)
-               if c.isEqual(a):
-                       test.fail("Different accessibles found equal")
-               if a.isEqual(c):
-                       test.fail("Different accessibles found equal")
-
-       def test_getApplication(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               application = root.getApplication()
-               if not root.isEqual(application):
-                       test.fail("Root accessible does not provide itself as its Application")
-
-               a = root.getChildAtIndex(1)
-               application = a.getApplication()
-               if not root.isEqual(application):
-                       test.fail("Child accessible does not provide the root as its Application")
-
-
-       def test_getAttributes(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               attr = root.getAttributes()
-               res = ["foo:bar", "baz:qux", "quux:corge"]
-                attr.sort()
-                res.sort()
-               test.assertEqual(attr, res, "Attributes expected %s, recieved %s" % (attr, res))
-
-       def test_parent(self, test):
-               root = self._desktop.getChildAtIndex(0)
-
-               a = root.getChildAtIndex(1)
-               pa = a.parent
-               if not root.isEqual(pa):
-                       test.fail("Child does not correctly report its parent")
-
-       def test_getIndexInParent(self, test):
-               root = self._desktop.getChildAtIndex(0)
-
-               for i in range(0, root.childCount):
-                       child = root.getChildAtIndex(i)
-                       test.assertEqual(i, child.getIndexInParent(), "Childs index in parent reported incorrectly")
-
-       def test_getLocalizedRoleName(self, test):
-               root = self._desktop.getChildAtIndex(0)
-
-               ans = "window"
-               res = root.getLocalizedRoleName()
-               test.assertEqual(ans, res,
-                                "Expected LocalizedRoleName - \"%s\". Recieved - \"%s\"" % (ans, res,))
-
-               a = root.getChildAtIndex(1)
-               a = a.getChildAtIndex(0)
-               ans = "html container"
-               res = a.getLocalizedRoleName()
-               test.assertEqual(ans, res,
-                                "Expected LocalizedRoleName - \"%s\". Recieved - \"%s\"" % (ans, res,))
-
-       def test_getRelationSet(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               # Complete test of Relation interface is separate
-               rset = root.getRelationSet()
-
-       def test_getRole(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               test.assertEqual(root.getRole(), 69,
-                                "Expected role - \"69\". Recieved - \"%d\"" % (int(root.getRole()),))
-
-       def test_getRoleName(self, test):
-               root = self._desktop.getChildAtIndex(0)
-
-               ans = "window"
-               res = root.getRoleName()
-               test.assertEqual(ans, res,
-                                "Expected roleName - \"%s\". Recieved - \"%s\"" % (ans, res,))
-
-               a = root.getChildAtIndex(1)
-               a = a.getChildAtIndex(0)
-               ans = "html container"
-               res = a.getRoleName()
-               test.assertEqual(ans, res,
-                                "Expected roleName - \"%s\". Recieved - \"%s\"" % (ans, res,))
-
-       def test_getState(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               state = root.getState()
-               res = StateSet(*st)
-               if not res.equals(state):
-                       test.fail("States not reported correctly")
-
-       def test_childCount(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               test.assertEqual(root.childCount, 11,
-                                "Expected role - \"11\". Recieved - \"%d\"" % (root.childCount,))
-
-       def test_description(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               description = "The main accessible object, root of the accessible tree"
-               test.assertEqual(root.description, description,
-                                "Expected description - \"%s\". Recieved - \"%s\"" % (description, root.description,))
-
-       def test_tree(self, test):
-               """
-               This is a mild stress test for the 
-               methods:
-
-               getChildAtIndex
-               
-               And the attributes:
-
-               name
-               description
-
-               It checks a tree of these values is correctly
-               passed from Application to AT.
-               """
-               root = self._desktop.getChildAtIndex(0)
-
-               doc = minidom.Document()
-               _createNode(root, doc)
-               answer = doc.toprettyxml()
-
-               correct = os.path.join(os.environ["TEST_DATA_DIRECTORY"],
-                                       "accessible-test-results.xml")
-               file = open(correct)
-               cstring = file.read()
-               
-               test.assertEqual(answer, cstring, "Object tree not passed correctly")
-
-       def teardown(self, test):
-               pass
diff --git a/tests/pyatspi/actiontest.py b/tests/pyatspi/actiontest.py
deleted file mode 100644 (file)
index 405f898..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-import dbus
-import gobject
-import os.path
-
-from xml.dom import minidom
-import os
-
-from pasytest import PasyTest as _PasyTest
-
-import pyatspi
-
-class ActionTest(_PasyTest):
-
-       __tests__ = ["setup",
-                    "test_nActions",
-                    "test_getDescription",
-                    "test_getName",
-                    "test_doAction",
-                    "test_getKeyBinding",
-                    "teardown",
-                    ]
-
-       def __init__(self, bus, path):
-               _PasyTest.__init__(self, "Action", False)
-               self._bus = bus
-               self._path = path
-
-       def setup(self, test):
-               self._registry = pyatspi.Registry()
-               self._desktop = self._registry.getDesktop(0)
-
-       def test_nActions(self, test):
-               root = self._desktop[0]
-               root = root.queryAction()
-               nact = root.nActions
-               test.assertEqual(nact, 10, "nActions expected %d, recieved %d" % (10, nact))
-
-       def test_getName(self, test):
-               root = self._desktop[0]
-               root = root.queryAction()
-               name = root.getName(0)
-               test.assertEqual(name, "First action", "Name expected %s, recieved %s" % ("First action", name))
-               name = root.getName(1)
-               test.assertEqual(name, "Action", "Name expected %s, recieved %s" % ("Action", name))
-
-       def test_getDescription(self, test):
-               root = self._desktop[0]
-               root = root.queryAction()
-               description = root.getDescription(0)
-               expected = "First action performed"
-               test.assertEqual(description, expected, "Description expected %s, recieved %s" % (expected, description))
-               description = root.getDescription(1)
-               expected = "Description of action"
-               test.assertEqual(description, expected, "Description expected %s, recieved %s" % (expected, description))
-
-       def test_doAction(self, test):
-               root = self._desktop[0]
-               root = root.queryAction()
-               #TODO have event emitted to check action has been performed
-               for i in range(0, root.nActions):
-                       root.doAction(i)
-
-       def test_getKeyBinding(self, test):
-               root = self._desktop[0]
-               root = root.queryAction()
-               for i in range(0, root.nActions):
-                       keybinding = root.getKeyBinding(i)
-                       expected = "%s" % (i,)
-                       test.assertEqual(keybinding, expected,
-                                        "Keybinding expected %s, recieved %s" % (expected, keybinding))
-
-       def teardown(self, test):
-               pass
diff --git a/tests/pyatspi/componenttest.py b/tests/pyatspi/componenttest.py
deleted file mode 100644 (file)
index fe30c88..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-import dbus
-import gobject
-import os.path
-
-from xml.dom import minidom
-import os
-
-from pasytest import PasyTest as _PasyTest
-
-import pyatspi
-from pyatspi import Accessible
-from pyatspi import BoundingBox
-
-ATSPI_LAYER_WIDGET = 3
-ATSPI_LAYER_MDI = 4
-ATSPI_LAYER_WINDOW = 7
-
-extents_expected = [(0,0,30,20), (40,30,30,40), (0,0,70,70)]
-sizes_expected = [(30,20), (30,40), (70,70)]
-positions_expected = [(0,0), (40,30), (0,0)]
-layers_expected = [ATSPI_LAYER_WINDOW, ATSPI_LAYER_WIDGET, ATSPI_LAYER_MDI]
-zorders_expected = [-100, 100]
-
-class ComponentTest(_PasyTest):
-
-       __tests__ = ["setup",
-                    "test_contains",
-                    "test_getAccessibleAtPoint",
-                    "test_getExtents",
-                    "test_getPosition",
-                    "test_getSize",
-                    "test_getLayer",
-                    "test_getMDIZOrder",
-                    "test_grabFocus",
-                    "test_registerFocusHandler",
-                    "test_deregisterFocusHandler",
-                    "test_getAlpha",
-                    "teardown",
-                    ]
-
-       def __init__(self, bus, path):
-               _PasyTest.__init__(self, "Component", False)
-               self._bus = bus
-               self._path = path
-
-       def setup(self, test):
-               self._registry = pyatspi.Registry()
-               self._desktop = self._registry.getDesktop(0)
-
-       def test_contains(self, test):
-               pass
-
-       def test_getAccessibleAtPoint(self, test):
-               pass
-
-       def test_getExtents(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               one = root.getChildAtIndex(0)
-               two = root.getChildAtIndex(1)
-
-               comps = [one.queryComponent(),
-                        two.queryComponent(),
-                        root.queryComponent(),]
-               for expected, comp in zip(extents_expected, comps):
-                       extents = comp.getExtents(0)
-                       test.assertEqual(extents, BoundingBox(*expected), 
-                                        "Extents not correct. Expected (%d, %d, %d, %d), Recieved (%d, %d, %d, %d)"
-                                        % (expected[0], expected[1], expected[2], expected[3], 
-                                               extents[0], extents[1], extents[2], extents[3]))
-
-       def test_getPosition(self, test):
-               pass
-               root = self._desktop.getChildAtIndex(0)
-               one = root.getChildAtIndex(0)
-               two = root.getChildAtIndex(1)
-
-               comps = [one.queryComponent(),
-                        two.queryComponent(),
-                        root.queryComponent(),]
-               for expected, comp in zip(positions_expected, comps):
-                       position = comp.getPosition(0)
-                       test.assertEqual(position, expected, 
-                                        "Position not correct. Expected (%d, %d) Recieved (%d, %d)"
-                                        % (expected[0], expected[1], position[0], position[1]))
-
-       def test_getSize(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               one = root.getChildAtIndex(0)
-               two = root.getChildAtIndex(1)
-
-               comps = [one.queryComponent(),
-                        two.queryComponent(),
-                        root.queryComponent(),]
-               for expected, comp in zip(sizes_expected, comps):
-                       size = comp.getSize()
-                       test.assertEqual(size, expected, 
-                                        "Size not correct. Expected (%d, %d) Recieved (%d, %d)"
-                                        % (expected[0], expected[1], size[0], size[1]))
-
-       def test_getLayer(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               one = root.getChildAtIndex(0)
-               two = root.getChildAtIndex(1)
-
-               comps = [one.queryComponent(),
-                        two.queryComponent(),
-                        root.queryComponent(),]
-               for expected, comp in zip(layers_expected, comps):
-                       layer = comp.getLayer()
-                       test.assertEqual(layer, expected, 
-                                        "Layer not correct. Expected %d, Recieved %d"
-                                        % (int(layer), int(expected)))
-
-       def test_getMDIZOrder(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               one = root.getChildAtIndex(0)
-               two = root.getChildAtIndex(1)
-
-               comps = [two.queryComponent(),
-                        root.queryComponent(),]
-               for expected, comp in zip(zorders_expected, comps):
-                       mdizo = comp.getMDIZOrder()
-                       test.assertEqual(mdizo, expected, 
-                                        "ZOrder not correct. Expected %d, Recieved %d"
-                                        % (expected, mdizo))
-
-       def test_grabFocus(self, test):
-               pass
-
-       def test_registerFocusHandler(self, test):
-               pass
-
-       def test_deregisterFocusHandler(self, test):
-               pass
-
-       def test_getAlpha(self, test):
-               pass
-
-       def teardown(self, test):
-               pass
diff --git a/tests/pyatspi/desktoptest.py b/tests/pyatspi/desktoptest.py
deleted file mode 100644 (file)
index 409f634..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-import dbus
-import gobject
-import os.path
-
-from xml.dom import minidom
-import os
-
-from pasytest import PasyTest as _PasyTest
-
-import pyatspi
-
-class DesktopTest(_PasyTest):
-
-       __tests__ = ["setup",
-                    "test_name",
-                    "test_getChildAtIndex",
-                    "test_isEqual",
-                    "test_getApplication",
-                    "test_getAttributes",
-                    "test_parent",
-                    "test_getIndexInParent",
-                    "test_getLocalizedRoleName",
-                    "test_getRelationSet",
-                    "test_getRole",
-                    "test_getRoleName",
-                    "test_getState",
-                    "test_childCount",
-                    "test_description",
-                    "test_contains",
-                    "test_getAccessibleAtPoint",
-                    "test_getExtents",
-                    "test_getPosition",
-                    "test_getSize",
-                    "test_getLayer",
-                    "test_getMDIZOrder",
-                    "test_grabFocus",
-                    "test_registerFocusHandler",
-                    "test_deregisterFocusHandler",
-                    "test_getAlpha",
-                    "teardown",
-                    ]
-
-       def __init__(self, bus, path):
-               _PasyTest.__init__(self, "Desktop", False)
-               self._bus = bus
-               self._path = path
-
-       def setup(self, test):
-               self._registry = pyatspi.Registry()
-               self._desktop = self._registry.getDesktop(0)
-
-       def test_name(self, test):
-               name = self._desktop.name
-               test.assertEqual(name, "main", "Expected name - \"main\". Recieved - \"%s\"" % (name,))
-
-       def test_getChildAtIndex(self, test):
-               root = self._desktop.getChildAtIndex(0)
-               test.assertEqual(root.name, "main",
-                                        "Expected name - \"main\". Recieved - \"%s\"" % (root.name,))
-               
-       def test_isEqual(self, test):
-               if not self._desktop.isEqual(self._desktop):
-                       test.fail("Same accessible found unequal to self")
-
-               root = self._desktop.getChildAtIndex(0)
-               if root.isEqual(self._desktop):
-                       test.fail("Different accessibles found equal")
-               if self._desktop.isEqual(root):
-                       test.fail("Different accessibles found equal")
-
-       def test_getApplication(self, test):
-               test.assertEqual(self._desktop.getApplication(), None,
-                               "Expected application - \"None\". Recieved - \"%s\"" % (self._desktop.getApplication(),))
-
-       def test_getAttributes(self, test):
-               test.assertEqual(self._desktop.getAttributes(), [],
-                               "Expected attributes - \"[]\". Recieved - \"%s\"" % (self._desktop.getAttributes(),))
-
-       def test_parent(self, test):
-               test.assertEqual(self._desktop.parent, None,
-                               "Expected parent - \"None\". Recieved - \"%s\"" % (self._desktop.parent,))
-
-       def test_getIndexInParent(self, test):
-               test.assertEqual(self._desktop.getIndexInParent(), -1,
-                               "Expected index - \"-1\". Recieved - \"%d\"" % (self._desktop.getIndexInParent(),))
-
-       def test_getLocalizedRoleName(self, test):
-               ans = "unknown"
-               res = self._desktop.getLocalizedRoleName()
-               test.assertEqual(ans, res,
-                                "Expected LocalizedRoleName - \"%s\". Recieved - \"%s\"" % (ans, res,))
-
-       def test_getRelationSet(self, test):
-               rset = self._desktop.getRelationSet()
-               test.assertEqual(rset, [],
-                                "Expected relation set - \"[]\". Recieved - \"%s\"" % (rset,))
-
-       def test_getRole(self, test):
-               test.assertEqual(self._desktop.getRole(), pyatspi.ROLE_UNKNOWN,
-                                "Expected role - \"ROLE_UNKNOWN\". Recieved - \"%s\"" % (self._desktop.getRole(),))
-
-       def test_getRoleName(self, test):
-               ans = "unknown"
-               res = self._desktop.getRoleName()
-               test.assertEqual(ans, res,
-                                "Expected RoleName - \"%s\". Recieved - \"%s\"" % (ans, res,))
-
-       def test_getState(self, test):
-               state = self._desktop.getState()
-               res = pyatspi.StateSet()
-               if not state.equals(res):
-                       test.fail("Desktop state set is not empty")
-
-       def test_childCount(self, test):
-               test.assertEqual(self._desktop.childCount, 1,
-                                "Expected childCount - \"1\". Recieved - \"%d\"" % (self._desktop.childCount,))
-
-       def test_description(self, test):
-               description = ""
-               test.assertEqual(self._desktop.description, description,
-                       "Expected description - \"%s\". Recieved - \"%s\"" % (description, self._desktop.description,))
-
-       def test_contains(self, test):
-               pass
-
-       def test_getAccessibleAtPoint(self, test):
-               pass
-
-       def test_getExtents(self, test):
-               comp = self._desktop.queryComponent()
-               extents = comp.getExtents(0)
-               expected = pyatspi.BoundingBox(*(0,0,1024, 768))
-               test.assertEqual(extents, expected, 
-                                "Extents not correct. Expected (%d, %d, %d, %d), Recieved (%d, %d, %d, %d)"
-                                % (expected[0], expected[1], expected[2], expected[3], 
-                                       extents[0], extents[1], extents[2], extents[3]))
-
-       def test_getPosition(self, test):
-               comp = self._desktop.queryComponent()
-
-               position = comp.getPosition(0)
-               test.assertEqual(position, (0,0), 
-                                "Position not correct. Expected (%d, %d) Recieved (%d, %d)"
-                                % (0, 0, position[0], position[1]))
-
-       def test_getSize(self, test):
-               comp = self._desktop.queryComponent()
-               size = comp.getSize()
-               test.assertEqual(size, (1024, 768), 
-                                "Size not correct. Expected (%d, %d) Recieved (%d, %d)"
-                                % (1024, 768, size[0], size[1]))
-
-       def test_getLayer(self, test):
-               comp = self._desktop.queryComponent()
-               layer = comp.getLayer()
-               test.assertEqual(layer, pyatspi.LAYER_WIDGET, 
-                                "Layer not correct. Expected %d, Recieved %d"
-                                % (layer, pyatspi.LAYER_WIDGET))
-
-       def test_getMDIZOrder(self, test):
-               comp = self._desktop.queryComponent()
-               mdizo = comp.getMDIZOrder()
-               test.assertEqual(mdizo, 0, 
-                                "ZOrder not correct. Expected %d, Recieved %d"
-                                % (0, mdizo))
-
-       def test_grabFocus(self, test):
-               pass
-
-       def test_registerFocusHandler(self, test):
-               pass
-
-       def test_deregisterFocusHandler(self, test):
-               pass
-
-       def test_getAlpha(self, test):
-               pass
-
-       def teardown(self, test):
-               pass
diff --git a/tests/pyatspi/pasytest/Events.py b/tests/pyatspi/pasytest/Events.py
deleted file mode 100644 (file)
index 8e340ff..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-#C#-Style Events in Python
-#Taken from http://code.activestate.com/recipes/410686/
-#By Zoran Isailovski
-
-class Events:
-       def __getattr__(self, name):
-               if hasattr(self.__class__, '__events__'):
-                       assert name in self.__class__.__events__, \
-                                        "Event '%s' is not declared" % name
-               self.__dict__[name] = ev = _EventSlot(name)
-               return ev
-       def __repr__(self): return 'Events' + str(list(self))
-       __str__ = __repr__
-       def __len__(self): return NotImplemented
-       def __iter__(self):
-               def gen(dictitems=self.__dict__.items()):
-                       for attr, val in dictitems:
-                               if isinstance(val, _EventSlot):
-                                       yield val
-               return gen()
-
-#------------------------------------------------------------------------------
-
-class _EventSlot:
-       def __init__(self, name):
-               self.targets = []
-               self.__name__ = name
-       def __repr__(self):
-               return 'event ' + self.__name__
-       def __call__(self, *a, **kw):
-               for f in self.targets: f(*a, **kw)
-       def __iadd__(self, f):
-               self.targets.append(f)
-               return self
-       def __isub__(self, f):
-               while f in self.targets: self.targets.remove(f)
-               return self
-
-#------------------------------------------------------------------------------
-
-if __name__ == '__main__':
-
-       class MyEvents(Events):
-               __events__ = ('OnChange', )
-
-       class ValueModel(object):
-               def __init__(self):
-                       self.events = MyEvents()
-                       self.__value = None
-               def __set(self, value):
-                       if (self.__value == value): return
-                       self.__value = value
-                       self.events.OnChange()
-                       ##self.events.OnChange2() # would fail
-               def __get(self):
-                       return self.__value
-               Value = property(__get, __set, None, 'The actual value')
-
-       class SillyView(object):
-               def __init__(self, model):
-                       self.model = model
-                       model.events.OnChange += self.DisplayValue
-                       ##model.events.OnChange2 += self.DisplayValue # would raise exeception
-               def DisplayValue(self):
-                       print self.model.Value
-
-
-       model = ValueModel()
-       view = SillyView(model)
-
-       print '\n--- Events Demo ---'
-       # Events in action
-       for i in range(5):
-               model.Value = 2*i + 1
-       # Events introspection
-       print model.events
-       for event in model.events:
-               print event
diff --git a/tests/pyatspi/pasytest/Makefile.am b/tests/pyatspi/pasytest/Makefile.am
deleted file mode 100644 (file)
index 1fa89ed..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-EXTRA_DIST = \
-       Events.py\
-       Pasy.py\
-       __init__.py
-
-CLEANFILES = *.pyc
diff --git a/tests/pyatspi/pasytest/Pasy.py b/tests/pyatspi/pasytest/Pasy.py
deleted file mode 100644 (file)
index 80318ee..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#his program is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2 of the License, or
-#(at your option) any later version.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-import gobject
-from Events import Events
-
-import traceback
-
-PASY_TEST_NOT_STARTED = 0
-PASY_TEST_IN_PROGRESS = 1
-PASY_TEST_FAIL = 2
-PASY_TEST_WIN = 3
-
-class PasyEvents(Events):
-       __events__ = ('finished', )
-
-class PasyTestStep(object):
-
-       def __init__(self, name):
-               self.events = PasyEvents()
-               self._state = PASY_TEST_NOT_STARTED
-
-               self._name = name
-
-       def win(self):
-               if self._state == PASY_TEST_IN_PROGRESS:
-                       self._state = PASY_TEST_WIN
-                       self.events.finished()
-       
-       def fail(self, msg):
-               if self._state == PASY_TEST_IN_PROGRESS:
-                       self._state = PASY_TEST_FAIL
-                       self.failMsg = msg
-                       self.events.finished()
-
-       def assertEqual(self, a, b, msg):
-               if a != b:
-                       self.fail(msg)
-
-       def assertNotEqual(self, a, b, msg):
-               if a == b:
-                       self.fail(msg)
-
-       def run(self):
-               self._state = PASY_TEST_IN_PROGRESS
-               self.entry()
-
-       def report(self):
-               if self._state == PASY_TEST_WIN:
-                       return "%s - PASSED" % (self._name,)
-               elif self._state == PASY_TEST_FAIL:
-                       return "%s - FAILED - %s" % (self._name, self.failMsg)
-               else:
-                       return "%s - INCOMPLETE" % (self._name,)
-
-       @property
-       def state(self):
-               return self._state
-
-class PasyTestFunc(PasyTestStep):
-       
-       def __init__(self, name, func):
-               PasyTestStep.__init__(self, name)
-               self._func = func
-
-       def entry(self):
-               try:
-                       self._func(self)
-               except Exception, e:
-                       self.fail(e.message)
-                       traceback.print_exc()
-               self.win()
-
-class PasyTest(PasyTestStep):
-
-       __tests__ = []
-
-       def __init__(self, name, cont):
-               PasyTestStep.__init__(self, name)
-
-               self._cont = cont
-               self._tests = []
-
-               for name in self.__tests__:
-                       func = getattr(self, name)
-                       self._addfunc(func.func_name, func)
-
-       def _addfunc(self, name, func):
-               functest = PasyTestFunc(func.func_name, func)
-               self._tests.append(functest)
-
-       def entry(self):
-               self._iter = self._test_iterator()
-               gobject.idle_add(self.idle_handler)
-
-       def idle_handler(self):
-               try:
-                       step = self._iter.next()
-                       def finished_handler():
-                               if step.state == PASY_TEST_WIN or self._cont == True:
-                                       gobject.idle_add(self.idle_handler)
-                               elif step.state == PASY_TEST_FAIL and self._cont == False:
-                                       self.fail("Sub test %s Failed" % step._name)
-                       step.events.finished += finished_handler
-                       step.run()
-               except StopIteration:
-                       # No More tests, check for success or fail
-                       succeeded = True
-                       for test in self._tests:
-                               succeeded = succeeded and (test.state == PASY_TEST_WIN)
-                       if succeeded:
-                               self.win()
-                       else:
-                               self.fail()
-               return False
-
-       def _test_iterator(self):
-               for test in self._tests:
-                       yield test
-
-       def report(self):
-               if self._state == PASY_TEST_WIN:
-                       header =  "%s - PASSED" % (self._name,)
-               elif self._state == PASY_TEST_FAIL:
-                       header =  "%s - FAILED" % (self._name,)
-               else:
-                       header =  "%s - INCOMPLETE" %s (self._name,)
-
-               step_messages = []
-               for test in self._tests:
-                       step_messages.append(test.report())
-
-               step_report =  "\n\t".join(step_messages)
-               return header + "\n\t" + step_report
diff --git a/tests/pyatspi/pasytest/__init__.py b/tests/pyatspi/pasytest/__init__.py
deleted file mode 100644 (file)
index c54bff1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#Copyright (C) 2008 Codethink Ltd
-
-#his program is free software; you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation; either version 2 of the License, or
-#(at your option) any later version.
-
-#This program 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 General Public License for more details.
-#You should have received a copy of the GNU General Public License
-#along with this program; if not, write to the Free Software
-#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from Pasy import PasyTestStep, PasyTestFunc, PasyTest
diff --git a/tests/pyatspi/relationtest.py b/tests/pyatspi/relationtest.py
deleted file mode 100644 (file)
index 77ce31c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-import dbus
-import gobject
-import os.path
-
-from xml.dom import minidom
-import os
-
-from pasytest import PasyTest as _PasyTest
-
-import pyatspi
-
-class RelationTest(_PasyTest):
-
-       __tests__ = ["setup",
-                    "teardown",
-                    "test_getRelationType",
-                    "test_getRelationTypeName",
-                    "test_getNTargets",
-                    "test_getTarget",
-                    ]
-
-       def __init__(self, bus, path):
-               _PasyTest.__init__(self, "Relation", False)
-               self._bus = bus
-               self._path = path
-
-       def setup(self, test):
-               self._registry = pyatspi.Registry()
-               self._desktop = self._registry.getDesktop(0)
-               self._root = self._desktop[0]
-               self._rset = self._root.getRelationSet()
-               test.assertEqual(len(self._rset), 4, "Num relations expected %d, recieved %d" % (6, len(self._rset)))
-
-       def test_getRelationType(self, test):
-               expected = [pyatspi.RELATION_EMBEDS,
-                           pyatspi.RELATION_PARENT_WINDOW_OF,
-                           pyatspi.RELATION_DESCRIBED_BY,
-                           pyatspi.RELATION_POPUP_FOR,]
-               rtypes = [rel.getRelationType() for rel in self._rset]
-               for exp, type in zip(expected, rtypes):
-                       test.assertEqual(exp, type, "Relation type expected %s, recieved %s" % (exp, type))
-
-       def test_getRelationTypeName(self, test):
-               # FIXME This may not have been implemented in CORBA.
-               #       Completely unused?
-               pass
-
-       def test_getNTargets(self, test):
-               expected = [1, 1, 1, 3]
-               ntargs = [rel.getNTargets() for rel in self._rset]
-               for exp, ntarg in zip(expected, ntargs):
-                       test.assertEqual(exp, ntarg, "Number of targets expected %s, recieved %s" % (exp, ntarg))
-
-       def test_getTarget(self, test):
-               rone = self._rset[0]
-               tone = rone.getTarget(0)
-               tonename = tone.name
-               test.assertEqual(tonename, "r1", "Target name expected %s, recieved %s" % ("r1", tonename))
-               tonerole = tone.getRoleName()
-               test.assertEqual(tonerole, "invalid", "Target RoleName expected %s, recieved %s" % ("invalid", tonename))
-
-               rtwo = self._rset[3]
-               ttwo = rtwo.getTarget(2)
-               ttwoname = ttwo.name
-               test.assertEqual(ttwoname, "m3", "Target name expected %s, recieved %s" % ("m3", ttwoname))
-               ttworole = ttwo.getRoleName()
-               test.assertEqual(ttworole, "invalid", "Target RoleName expected %s, recieved %s" % ("invalid", ttwoname))
-
-       def teardown(self, test):
-               pass
diff --git a/tests/pyatspi/runtests.sh b/tests/pyatspi/runtests.sh
deleted file mode 100755 (executable)
index 1ef1295..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-export PYTHONPATH=$top_srcdir
-
-export TEST_DATA_DIRECTORY=$top_srcdir/tests/data
-export TEST_ATSPI_LIBRARY=$top_builddir/atk-adaptor/.libs/libspiatk.so
-export TEST_MODULES_DIRECTORY=$top_builddir/tests/apps/.libs
-export TEST_APPLICATION=$top_builddir/tests/apps/test-application
-
-$PYTHON $top_srcdir/tests/pyatspi/testrunner -l libaccessibleapp.so -m accessibletest -n AccessibleTest
-$PYTHON $top_srcdir/tests/pyatspi/testrunner -l libactionapp.so -m actiontest -n ActionTest
-$PYTHON $top_srcdir/tests/pyatspi/testrunner -l libcomponentapp.so -m componenttest -n ComponentTest
-$PYTHON $top_srcdir/tests/pyatspi/testrunner -l librelationapp.so -m relationtest -n RelationTest
-$PYTHON $top_srcdir/tests/pyatspi/testrunner -l libaccessibleapp.so -m statetest -n StateTest
diff --git a/tests/pyatspi/setvars.sh b/tests/pyatspi/setvars.sh
deleted file mode 100644 (file)
index d9638a2..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-export PYTHONPATH=../../
-
-export TEST_DATA_DIRECTORY=../data
-export TEST_ATSPI_LIBRARY=../../atk-adaptor/.libs/libspiatk.so
-export TEST_MODULES_DIRECTORY=../apps/.libs
-export TEST_APPLICATION=../apps/test-application
diff --git a/tests/pyatspi/statetest.py b/tests/pyatspi/statetest.py
deleted file mode 100644 (file)
index 223cf6e..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-import dbus
-import gobject
-import os.path
-
-from xml.dom import minidom
-import os
-
-from pasytest import PasyTest as _PasyTest
-
-import pyatspi
-from pyatspi import StateSet
-
-os = [pyatspi.STATE_MULTISELECTABLE,
-      pyatspi.STATE_PRESSED,
-      pyatspi.STATE_SHOWING,
-      pyatspi.STATE_TRANSIENT,
-      pyatspi.STATE_COLLAPSED,
-      pyatspi.STATE_EDITABLE,]
-
-class StateTest(_PasyTest):
-
-       __tests__ = ["setup",
-                    "test_contains",
-                    "test_add",
-                    "test_remove",
-                    "test_equals",
-                    "test_compare",
-                    "test_isEmpty",
-                    "test_getStates",
-                    "teardown",
-                    ]
-
-       def __init__(self, bus, path):
-               _PasyTest.__init__(self, "State", False)
-
-       def setup(self, test):
-               pass
-
-       def test_contains(self, test):
-               state = StateSet(*os)
-               if not state.contains(pyatspi.STATE_PRESSED):
-                       test.fail("Does not find contained state")
-               if state.contains(pyatspi.STATE_ACTIVE):
-                       test.fail("Finds state not contained")
-
-       def test_add(self, test):
-               state = StateSet()
-               state.add(pyatspi.STATE_PRESSED)
-               if not state.contains(pyatspi.STATE_PRESSED):
-                       test.fail("State not added")
-
-       def test_remove(self, test):
-               state = StateSet(*os)
-               state.remove(pyatspi.STATE_PRESSED)
-               if state.contains(pyatspi.STATE_PRESSED):
-                       test.fail("State not removed")
-
-       def test_equals(self, test):
-               one = StateSet(*os)
-               two = StateSet(*os)
-               if not one.equals(two):
-                       test.fail("Same states not found equal")
-               two.remove(pyatspi.STATE_PRESSED)
-               if two.equals(one):
-                       test.fail("Unequal states found equal")
-
-       def test_isEmpty(self, test):
-               emp = StateSet()
-               if not emp.isEmpty():
-                       test.fail("Empty state found non-empty")
-               emp.add(pyatspi.STATE_PRESSED)
-               if emp.isEmpty():
-                       test.fail("State incorrectly found empty")
-
-       def test_compare(self, test):
-               one = StateSet(*os)
-               two = StateSet(*os)
-
-               onemtwo = one.compare(two)
-               if not onemtwo.isEmpty():
-                       test.fail("Equal states when compared yeilds non-empty state")
-
-               one.add(pyatspi.STATE_ACTIVE)
-               onemtwo = one.compare(two)
-               
-               act = StateSet(pyatspi.STATE_ACTIVE)
-               if not onemtwo.equals(act):
-                       test.fail("Compared states do not yeild correct state")
-
-       def test_getStates(self, test):
-               state = StateSet(*os)
-
-               states = state.getStates()
-               cone = set(states)
-               ctwo = set(os)
-
-               if not (cone.issubset(ctwo) and ctwo.issubset(cone)):
-                       test.fail("States not reported correctly")
-
-       def teardown(self, test):
-               pass
diff --git a/tests/pyatspi/testrunner b/tests/pyatspi/testrunner
deleted file mode 100755 (executable)
index 92531e2..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/python
-
-import gobject
-import dbus
-import sys
-import os
-import time
-from random import randint
-
-from optparse import OptionParser
-from pasytest import PasyTest
-
-from dbus.mainloop.glib import DBusGMainLoop
-
-DBusGMainLoop(set_as_default=True)
-
-def run_test_app(module_name, dbus_name=None, wait_for_debug=False):
-       import os
-       from subprocess import Popen
-
-       test_data_directory = os.environ["TEST_DATA_DIRECTORY"]
-       test_modules_directory = os.environ["TEST_MODULES_DIRECTORY"]
-       test_atspi_library = os.environ["TEST_ATSPI_LIBRARY"]
-       test_application = os.environ["TEST_APPLICATION"]
-
-       test_module = os.path.join(test_modules_directory, module_name)
-
-       if (dbus_name):
-               print " ".join([test_application,
-                       "--atspi-dbus-name", dbus_name,
-                       "--test-atspi-library", test_atspi_library,
-                       "--test-module", test_module,
-                       "--test-data-directory", test_data_directory,])
-               pop = Popen([test_application,
-                       "--atspi-dbus-name", dbus_name,
-                       "--test-atspi-library", test_atspi_library,
-                       "--test-module", test_module,
-                       "--test-data-directory", test_data_directory,])
-       else:
-               print " ".join([test_application,
-                       "--test-atspi-library", test_atspi_library,
-                       "--test-module", test_module,
-                       "--test-data-directory", test_data_directory,])
-               pop = Popen([test_application,
-                       "--test-atspi-library", test_atspi_library,
-                       "--test-module", test_module,
-                       "--test-data-directory", test_data_directory,])
-
-       wait_message = """
-       The test application %s has been started with PID %d.
-       
-       To continue the test press ENTER.\n\n
-       """
-       if (wait_for_debug):
-               raw_input(wait_message % (module_name, pop.pid))
-
-def main(argv):
-       parser = OptionParser()
-       parser.add_option("-l", "--library", dest="test_library")
-       parser.add_option("-m", "--module", dest="test_module")
-       parser.add_option("-n", "--name", dest="test_name")
-       parser.add_option("-w", "--wait", action="store_true", dest="wait", default=False)
-       (options, args) = parser.parse_args()
-
-       bus = dbus.SessionBus()
-       name = "test.atspi.R" + str(randint(1, 1000)) 
-
-       app = run_test_app(options.test_library, name, wait_for_debug=options.wait)
-       time.sleep(1)
-       print "Started test app on bus name %s" % (name,)
-
-       to = bus.get_object(name, "/org/codethink/atspi/test")
-       test = dbus.Interface(to, "org.codethink.atspi.test")
-
-       # Run the test script here
-       os.environ["ATSPI_TEST_APP_NAME"] = name
-       module = __import__(options.test_module)
-       test_class = getattr(module, options.test_name)
-       test_object = test_class(bus, name)
-       test_object.run()
-
-       loop = gobject.MainLoop()
-
-       def finished_handler():
-               loop.quit()
-               print "\n" + test_object.report() + "\n"
-               test.finish()
-
-       test_object.events.finished += finished_handler
-
-       loop.run()
-
-if __name__=="__main__":
-       sys.exit(main(sys.argv))