diff options
author | James Henstridge <james@daa.com.au> | 2001-12-18 08:19:51 +0000 |
---|---|---|
committer | James Henstridge <jamesh@src.gnome.org> | 2001-12-18 08:19:51 +0000 |
commit | 979e8ba7b34b49de6ba6fce8a1dbb51c0221c550 (patch) | |
tree | e148802211eeaeb7225b96ca3bc1c0f3d0e395af /examples/gobject | |
parent | 7638263dccb263783dcf1cb0a3ed0e8fd94db212 (diff) | |
download | pygtk-979e8ba7b34b49de6ba6fce8a1dbb51c0221c550.tar.gz |
add new example to dist.
2001-12-18 James Henstridge <james@daa.com.au>
* 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.
Diffstat (limited to 'examples/gobject')
-rw-r--r-- | examples/gobject/properties.py | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/examples/gobject/properties.py b/examples/gobject/properties.py new file mode 100644 index 00000000..2d36afc6 --- /dev/null +++ b/examples/gobject/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 |