class IDL:
""" Contains a list of IDL interface names """
# interface name strings for ease of reference
DEVICEEVENT_LISTENER_IDL = 'IDL:Accessibility/DeviceEventListener:1.0'
EVENT_LISTENER_IDL = 'IDL:Accessibility/EventListener:1.0'
ACTION_IDL = 'IDL:Accessibility/Action:1.0'
ACCESSIBLE_IDL = 'IDL:Accessibility/Accessible:1.0'
APPLICATION_IDL = 'IDL:Accessibility/Application:1.0'
COLLECTION_IDL = 'IDL:Accessibility/Collection:1.0'
COMPONENT_IDL = 'IDL:Accessibility/Component:1.0'
DESKTOP_IDL = 'IDL:Accessibility/Desktop:1.0'
EDITABLE_TEXT_IDL = 'IDL:Accessibility/EditableText:1.0'
HYPERLINK_IDL = 'IDL:Accessibility/Hyperlink:1.0'
HYPERTEXT_IDL = 'IDL:Accessibility/Hypertext:1.0'
IMAGE_IDL = 'IDL:Accessibility/Image:1.0'
LOGIN_HELPER_IDL = 'IDL:Accessibility/LoginHelper:1.0'
STREAMABLE_CONTENT_IDL = 'IDL:Accessibility/StreamableContent:1.0'
TABLE_IDL = 'IDL:Accessibility/Table:1.0'
TEXT_IDL = 'IDL:Accessibility/Text:1.0'
VALUE_IDL = 'IDL:Accessibility/Value:1.0'
SELECTION_IDL = 'IDL:Accessibility/Selection:1.0'
def __init__(self):
pass
class Role:
""" Contains a list of the roles played by each widget in the appplications
"""
def __init__ (self):
self.prefixes = ['ROLE_', 'STATE_', 'TEXT_', 'MODIFIER_', 'LOCALE_',
'RELATION_', 'KEY_', 'MATCH_', 'SORT_', 'LAYER_']
def get_role (self, widget):
"""returns the Role of the widget"""
for prefix in self.prefixes:
for attr in Accessibility.__dict__.keys():
if attr.startswith(prefix) and \
Accessibility.__dict__[prefix] == widget.getRole():
return prefix
class Desktop:
""" Contains a List of workspaces in the current desktop """
def __init__ (self):
self.desktops = {} # contains the actual desktops
# desktops = {0 : Workspace 0,
# 1 : Workspace 1,
# .
# .
# }
def __iter__ (self, index):
pass
def __str__ (self):
return 'List of '+len(self.desktops.keys())+' workspaces'
class Workspace:
""" Represents a Workspace in the desktop. Each Workspace contains a list
of applications that are present in that particular workspace """
def __init__ (self, WS):
self.apps = {} # list of applications
# apps = {app_name1 : Application 1,
# app_name2 : Application 2,
# .
# .
# }
def __iter__ (self, index):
pass
def __str__ (self):
return 'Workspace containing '+len(self.apps.keys())+' Applications'
class Application:
""" Contains the Appmap for each Application """
def __init__ (self, app):
# populate the appmap