summaryrefslogtreecommitdiff
path: root/examples/signal.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/signal.py')
-rw-r--r--examples/signal.py9
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)