diff options
Diffstat (limited to 'dogtail/wrapped.py')
-rwxr-xr-x | dogtail/wrapped.py | 33 |
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") |