diff options
Diffstat (limited to 'examples/signal.py')
-rw-r--r-- | examples/signal.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/examples/signal.py b/examples/signal.py index 6fd622d2..b98bca77 100644 --- a/examples/signal.py +++ b/examples/signal.py @@ -3,18 +3,25 @@ import gobject class C(gobject.GObject): def do_my_signal(self, arg): - print "class closure for `my_signal' called with argument", arg + print "C: class closure for `my_signal' called with argument", arg gobject.signal_new("my_signal", C, gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE, (gobject.TYPE_INT, )) +class D(C): + def do_my_signal(self, arg): + print "D: class closure for `my_signal' called. Chaining up to C" + C.do_my_signal(self, arg) + def my_signal_handler(object, arg, *extra): print "handler for `my_signal' called with argument", arg, \ "and extra args", extra inst = C() +inst2 = D() print "instance id 0x%x" % id(inst) inst.connect("my_signal", my_signal_handler, 1, 2, 3) inst.emit("my_signal", 42) +inst2.emit("my_signal", 42) |