diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-04-26 09:31:41 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-04-26 09:31:41 (GMT) |
commit | e49146752ff322c53430419749be53b741f02540 (patch) | |
tree | 0de1e78d17b52759f6ba5fe038fbc96ffc559af3 /sugar/graphics | |
parent | 9446c951acfe1c96e10bdec88c0f8a5f8d8b77ce (diff) |
More work on the new graphics API.
Diffstat (limited to 'sugar/graphics')
-rw-r--r-- | sugar/graphics/toolbox.py | 52 | ||||
-rw-r--r-- | sugar/graphics/toolbutton.py | 25 | ||||
-rw-r--r-- | sugar/graphics/window.py | 64 |
3 files changed, 125 insertions, 16 deletions
diff --git a/sugar/graphics/toolbox.py b/sugar/graphics/toolbox.py new file mode 100644 index 0000000..52accbc --- /dev/null +++ b/sugar/graphics/toolbox.py @@ -0,0 +1,52 @@ +# Copyright (C) 2007, Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +import gtk +import gobject + +from sugar.graphics.toolbutton import ToolButton + +class Toolbox(gtk.VBox): + __gtype_name__ = 'SugarToolbox' + def __init__(self): + gtk.VBox.__init__(self) + + self._notebook = gtk.Notebook() + self._notebook.set_tab_pos(gtk.POS_BOTTOM) + self._notebook.set_show_border(False) + self.pack_start(self._notebook) + self._notebook.show() + + 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') diff --git a/sugar/graphics/toolbutton.py b/sugar/graphics/toolbutton.py new file mode 100644 index 0000000..a8c7aba --- /dev/null +++ b/sugar/graphics/toolbutton.py @@ -0,0 +1,25 @@ +# Copyright (C) 2007, Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +import gtk + +class ToolButton(gtk.ToolButton): + def __init__(self, icon_name=None): + gtk.ToolButton.__init__(self) + + if icon_name: + self.set_icon_name(icon_name) diff --git a/sugar/graphics/window.py b/sugar/graphics/window.py index 85cbc4e..56ff59f 100644 --- a/sugar/graphics/window.py +++ b/sugar/graphics/window.py @@ -1,24 +1,56 @@ -import hippo +# Copyright (C) 2007, Red Hat, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the +# Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + import gtk +import hippo -from sugar.graphics import color +from sugar.graphics.toolbox import Toolbox -class _Style(gtk.Style): - __gtype_name__ = 'SugarCanvasStyle' +class Window(gtk.Window): def __init__(self): - gtk.Style.__init__(self) + gtk.Window.__init__(self) - def do_set_background(self, window, state): - window.set_back_pixmap(None, False) + 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() -class Window(gtk.Window): - def __init__(self, window_type=gtk.WINDOW_TOPLEVEL): - gtk.Window.__init__(self, window_type) + 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._canvas = hippo.Canvas() - self._canvas.set_style(_Style()) - self.add(self._canvas) - self._canvas.show() + def set_canvas(self, canvas): + if self.canvas: + self._canvas_box.remove(self.canvas) - def set_root(self, root): - self._canvas.set_root(root) + self._canvas_box.add(canvas) + self.canvas = canvas + + def _window_realize_cb(self, window): + group = gtk.Window() + group.realize() + window.window.set_group(group.window) |