File: signal.py

package info (click to toggle)
pygobject 3.2.2-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 4,264 kB
  • sloc: ansic: 21,686; sh: 11,449; python: 9,482; makefile: 655; xml: 23
file content (25 lines) | stat: -rw-r--r-- 739 bytes parent folder | download
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
from gi.repository import GObject

class C(GObject.GObject):
    __gsignals__ = {
        'my_signal': (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE,
                      (GObject.TYPE_INT,))
    }
    def do_my_signal(self, arg):
        print "C: class closure for `my_signal' called with argument", arg

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()

inst.connect("my_signal", my_signal_handler, 1, 2, 3)
inst.emit("my_signal", 42)
inst2.emit("my_signal", 42)