From a57fde73b509adcf56a73ae1fb97474d136fd2af Mon Sep 17 00:00:00 2001 From: Johan Dahlin Date: Tue, 1 May 2007 15:54:05 +0000 Subject: Add a property helper, fixes #338098 * examples/properties.py: * gobject/Makefile.am: * gobject/__init__.py: * gobject/constants.py.in: * gobject/generate-constants.c: (main): * gobject/propertyhelper.py: * tests/Makefile.am: * tests/test_enum.py: * tests/test_interface.py: * tests/test_properties.py: Add a property helper, fixes #338098 svn path=/trunk/; revision=662 --- examples/properties.py | 50 +++++++++++++++++++------------------------------- 1 file changed, 19 insertions(+), 31 deletions(-) (limited to 'examples') diff --git a/examples/properties.py b/examples/properties.py index 2d36afc..cc05920 100644 --- a/examples/properties.py +++ b/examples/properties.py @@ -1,43 +1,31 @@ import gobject class MyObject(gobject.GObject): - __gproperties__ = { - 'foo': (gobject.TYPE_STRING, 'foo property', 'the foo of the object', - 'bar', gobject.PARAM_READWRITE), - 'boolprop': (gobject.TYPE_BOOLEAN, 'bool prop', 'a test boolean prop', - 0, gobject.PARAM_READABLE), - } + + foo = gobject.property(type=str, default='bar') + boolprop = gobject.property(type=bool, default=False) def __init__(self): - self.__gobject_init__() - self.foo = 'bar' - def do_set_property(self, pspec, value): - print ' do_set_property called for %s=%r' % (pspec.name, value) - if pspec.name == 'foo': - self.foo = value - else: - raise AttributeError, 'unknown property %s' % pspec.name - def do_get_property(self, pspec): - print ' do_get_property called for %s' % pspec.name - if pspec.name == 'foo': - return self.foo - elif pspec.name == 'boolprop': - return 1 - else: - raise AttributeError, 'unknown property %s' % pspec.name + gobject.GObject.__init__(self) + + @gobject.property + def readonly(self): + return 'readonly' + gobject.type_register(MyObject) -print "MyObject properties: ", gobject.list_properties(MyObject) +print "MyObject properties: ", list(MyObject.props) + obj = MyObject() -val = obj.get_property('foo') -print "obj.get_property('foo') == ", val +print "obj.foo ==", obj.foo + +obj.foo = 'spam' +print "obj.foo = spam" -obj.set_property('foo', 'spam') -print "obj.set_property('foo', 'spam')" +print "obj.foo == ", obj.foo -val = obj.get_property('foo') -print "obj.get_property('foo') == ", val +print "obj.boolprop == ", obj.boolprop -val = obj.get_property('boolprop') -print "obj.get_property('boolprop') == ", val +print obj.readonly +obj.readonly = 'does-not-work' -- cgit