Refactor the window API a bit to make it more flexible.

This commit is contained in:
Marco Pesenti Gritti
2007-04-27 10:51:19 +02:00
parent 9dcfcf89e9
commit 9ccda70199
4 changed files with 56 additions and 55 deletions
-17
View File
@@ -33,20 +33,3 @@ class Toolbox(gtk.VBox):
def add_toolbar(self, name, toolbar):
self._notebook.append_page(toolbar, gtk.Label(name))
class ActivityToolbar(gtk.Toolbar):
__gsignals__ = {
'close': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE, ([])),
}
def __init__(self):
gtk.Toolbar.__init__(self)
button = ToolButton('window-close')
button.connect('clicked', self._close_button_clicked_cb)
self.insert(button, -1)
button.show()
def _close_button_clicked_cb(self, button):
self.emit('close')
+20 -21
View File
@@ -18,37 +18,36 @@
import gtk
import hippo
from sugar.graphics.toolbox import Toolbox
class Window(gtk.Window):
def __init__(self):
gtk.Window.__init__(self)
self.connect('realize', self._window_realize_cb)
vbox = gtk.VBox()
self.add(vbox)
self.toolbox = Toolbox()
vbox.pack_start(self.toolbox, False)
self.toolbox.show()
self.connect('realize', self._window_realize_cb)
self._canvas_box = gtk.VBox()
vbox.pack_start(self._canvas_box)
self._canvas_box.show()
self.canvas = hippo.Canvas()
self._canvas_box.pack_start(self.canvas)
self.canvas.show()
vbox.show()
self.toolbox = None
self.canvas = None
self._vbox = gtk.VBox()
self.add(self._vbox)
self._vbox.show()
def set_canvas(self, canvas):
if self.canvas:
self._canvas_box.remove(self.canvas)
self._vbox.remove(self.canvas)
self._canvas_box.add(canvas)
self._vbox.pack_start(canvas)
self._vbox.reorder_child(canvas, -1)
self.canvas = canvas
def set_toolbox(self, toolbox):
if self.toolbox:
self._vbox.remove(self.toolbox)
self._vbox.pack_start(toolbox, False)
self._vbox.reorder_child(toolbox, 0)
self.toolbox = toolbox
def _window_realize_cb(self, window):
group = gtk.Window()