-'''
-Defines constants used throughout this wrapper.
+#Copyright (C) 2008 Codethink Ltd
+#copyright: Copyright (c) 2005, 2007 IBM Corporation
-@author: Peter Parente
-@author: Pete Brunet
-@organization: IBM Corporation
-@copyright: Copyright (c) 2005, 2007 IBM Corporation
-@license: LGPL
+#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 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 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.
-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.
+#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}
-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.
+#authors: Peter Parente, Mark Doffman
-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}
-'''
-import ORBit
-import Accessibility
-import utils
-
-# pull dictionary of Accessibility module namespace into local var, temporarily
-acc_dict = vars(Accessibility)
-
-# run through all objects in the Accessibility module
-ALL_INTERFACES = []
-# list of classes that are not queriable interfaces
-not_interfaces = ['RoleSet', 'StateSet', 'DeviceEventListener', 'LoginHelper',
- 'ContentStream', 'DeviceEventController', 'Registry'
- 'DeviceEventListener', 'EventListener', 'Relation',
- 'CommandListener', 'Selector']
-for obj in acc_dict.values():
- try:
- # see if the object has a typecode
- kind = obj.__typecode__.kind
- except AttributeError:
- continue
- # compare the typecode to the one for CORBA objects, and to our list of
- # classes that are not queriable interfaces
- if (kind == ORBit.CORBA.tk_objref and
- utils.getInterfaceName(obj) not in not_interfaces):
- # this is an interface class
- ALL_INTERFACES.append(obj)
-# get rid of our temporary list
-del not_interfaces
-
-# constants used in the Component interface to get screen coordinates
+# Constants used in the Component interface to get screen coordinates
DESKTOP_COORDS = 0
WINDOW_COORDS = 1
-# constants used to synthesize mouse events
+# Constants used to synthesize mouse events
MOUSE_B1P = 'b1p'
MOUSE_B1R = 'b1r'
MOUSE_B1C = 'b1c'
MOUSE_ABS = 'abs'
MOUSE_REL = 'rel'
-# defines levels of caching where if x > y, x caches all of y plus more
-CACHE_INTERFACES = 0
-CACHE_PROPERTIES = 1
-
# 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']
-# dictionary used to correct the bug of not being able to register for all the
+# 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
'focus' :
['focus:']
}
-
-# pull ROLE_*, STATE_*, TEXT_*, MODIFIER_*, LOCALE_*, and RELATION_*, etc.
-# constants into the local namespace for convenient access
-# grab all the variable names and their values from the Accessibility module
-
-# get the dictionary for the local namespace
-loc_dict = locals()
-# these are the prefixes for the variable names we want to pull out of the
-# Accessibility module
-prefixes = ['ROLE_', 'STATE_', 'TEXT_', 'MODIFIER_', 'LOCALE_', 'RELATION_',
- 'KEY_', 'MATCH_', 'SORT_', 'LAYER_']
-# for each variable name in the Accessibility namespace, check if it starts
-# with at least one of the prefixes above; if it does, add a 2-tuple of
-# variable name and value to the values list
-values = ((name, value) for name, value in acc_dict.items()
- if len([p for p in prefixes if name.startswith(p)]))
-# create a new dictionary from the list of tuples and then update the local
-# namespace dictionary with that dictionary
-loc_dict.update(dict(values))
-
-# build a dictionary mapping state values to names based on the prefix of the
-# constant name imported from Accessibility
-STATE_VALUE_TO_NAME = dict(((value, name[6:].lower().replace('_', ' '))
- for name, value
- in acc_dict.items()
- if name.startswith('STATE_')))
-
-# build a dictionary mapping relation values to names based on the prefix of
-# the constant name imported from Accessibility
-RELATION_VALUE_TO_NAME = dict(((value, name[9:].lower().replace('_', ' '))
- for name, value
- in acc_dict.items()
- if name.startswith('RELATION_')))
-
-# throw away any temporary variables so they don't hang around in this module
-del acc_dict, loc_dict, prefixes, values