Delete sub-widgets clearly

master
Aleksey Lim 15 years ago
parent 4c8c845e6c
commit f9de29f539

@ -9,23 +9,27 @@ window.add(box)
toolbar = Toolbar()
box.pack_start(toolbar, False)
tollbarbutton_1 = ToolbarButton(toolbar, gtk.Button('1'),
tollbarbutton_1 = ToolbarButton(toolbar, gtk.Button('sub-widget #1'),
icon_name='computer-xo',
tooltip='foo')
toolbar.top.insert(tollbarbutton_1, -1)
toolbar.top.insert(gtk.SeparatorToolItem(), -1)
tollbarbutton_2 = ToolbarButton(toolbar, gtk.Button('1'),
tollbarbutton_2 = ToolbarButton(toolbar, gtk.Button('sub-widget #2'),
icon_name='button_cancel',
tooltip='foo')
toolbar.top.insert(tollbarbutton_2, -1)
toolbar.top.insert(gtk.SeparatorToolItem(), -1)
tollbarbutton_3 = ToolbarButton(toolbar, gtk.Button('3'),
def del_cb(widget):
toolbar.top.remove(tollbarbutton_3)
del_b = gtk.Button('delete sub-widget #3')
del_b.connect('clicked', del_cb)
tollbarbutton_3 = ToolbarButton(toolbar, del_b,
icon_name='activity-journal',
tooltip='foo')
tooltip='del')
toolbar.top.insert(tollbarbutton_3, -1)
window.show_all()

@ -50,7 +50,7 @@ class ToolbarButton(ToolButton):
return
if value:
expanded = self._bar._expanded_page()
if expanded:
if expanded and expanded._toolitem.window:
expanded._toolitem.window.invalidate_rect(None, True)
self._page._toolitem_alloc = self.allocation
self._bar._expand_page(self._page)
@ -104,8 +104,15 @@ class Toolbar(gtk.VBox):
self._notebook.connect('notify::page', lambda notebook, pspec:
self.emit('current-toolbar-changed', notebook.props.page))
self._bar.connect('remove', self._remove_cb)
top = property(lambda self: self._bar)
def _remove_cb(self, sender, widget):
if not isinstance(widget, ToolbarButton):
return
widget.expanded = False
def _remove_page(self, page):
page = self._notebook.page_num(page)
self._notebook.remove_page(page)

Loading…
Cancel
Save