aboutsummaryrefslogtreecommitdiffstats
path: root/dogtail/wrapped.py
diff options
context:
space:
mode:
Diffstat (limited to 'dogtail/wrapped.py')
-rwxr-xr-xdogtail/wrapped.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/dogtail/wrapped.py b/dogtail/wrapped.py
new file mode 100755
index 00000000000..30c0570fa61
--- /dev/null
+++ b/dogtail/wrapped.py
@@ -0,0 +1,33 @@
+"""
+Superclasses for application wrappers
+
+Subclass these classes if you want to create application wrappers, e.g.:
+http://svn.gnome.org/viewvc/dogtail-tests/trunk/appwrappers/dogtail/appwrappers/gedit.py?view=markup
+"""
+__author__ = "Zack Cerza <zcerza@redhat.com>"
+import Accessibility
+
+
+def makeWrapperClass(wrappedClass, name): # pragma: no cover
+ class klass(object):
+
+ def __init__(self, obj):
+ self.obj = obj
+
+ def __getattr__(self, name):
+ if name == 'obj':
+ return self.__dict__['obj']
+ return getattr(self.obj, name)
+
+ def __setattr__(self, name, value):
+ if name == 'obj':
+ self.__dict__['obj'] = value
+ else:
+ return setattr(self.obj, name, value)
+
+ klass.__name__ = name
+ return klass
+
+Application = makeWrapperClass(Accessibility.Application,
+ "WrappedApplication")
+Node = makeWrapperClass(Accessibility.Accessible, "WrappedNode")