Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/tests/graphics/customdestroy.py
blob: 72156a81ffe5e5fed431fcc52d7d601066f33c53 (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
44
from gi.repository import Gtk

"""
Since GTK+3 Gtk.CellRenderer doesn't have a destroy signal anymore.
We can do the cleanup in the python destructor method instead.

"""


class MyCellRenderer(Gtk.CellRenderer):
    def __init__(self):
        Gtk.CellRenderer.__init__(self)

    def __del__(self):
        print "cellrenderer destroy"

    def do_render(self, cairo_t, widget, background_area, cell_area, flags):
        pass


def window_destroy_cb(*kwargs):
    print "window destroy"
    Gtk.main_quit()

window = Gtk.Window(Gtk.WindowType.TOPLEVEL)
window.connect("destroy", window_destroy_cb)
window.show()


def treeview_destroy_cb(*kwargs):
    print "treeview destroy"

treeview = Gtk.TreeView()
treeview.connect("destroy", treeview_destroy_cb)
window.add(treeview)
treeview.show()

col = Gtk.TreeViewColumn()
treeview.append_column(col)

cel = MyCellRenderer()
col.pack_start(cel, expand=True)

Gtk.main()