From b98d703df4f7837c2ed5359e85d158bec880bd30 Mon Sep 17 00:00:00 2001 From: James Henstridge Date: Tue, 18 Dec 2001 08:19:51 +0000 Subject: add new example to dist. 2001-12-18 James Henstridge * Makefile.am (EXTRA_DIST): add new example to dist. * examples/gobject/properties.py: test program that implements a few properties. * gobjectmodule.c (add_properties): new function for parsing the __gproperties__ class attribute. (create_property): helper routine for creating and installing the new pspecs. (pyg_type_register): add code to call add_properties if a __gproperties__ attribute is found. (pyg_object_class_init): set set_property/get_property methods in vtable, and get rid of debug message. (initgobject): add G_PARAM_* constants. --- examples/properties.py | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 examples/properties.py (limited to 'examples/properties.py') diff --git a/examples/properties.py b/examples/properties.py new file mode 100644 index 0000000..2d36afc --- /dev/null +++ b/examples/properties.py @@ -0,0 +1,43 @@ +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), + } + + 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.type_register(MyObject) + +print "MyObject properties: ", gobject.list_properties(MyObject) +obj = MyObject() + +val = obj.get_property('foo') +print "obj.get_property('foo') == ", val + +obj.set_property('foo', 'spam') +print "obj.set_property('foo', 'spam')" + +val = obj.get_property('foo') +print "obj.get_property('foo') == ", val + +val = obj.get_property('boolprop') +print "obj.get_property('boolprop') == ", val -- cgit