summaryrefslogtreecommitdiff
path: root/examples/gobject/properties.py
blob: 2d36afc6c5d8855fdf8f107563d83658459f9761 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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