Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/graphics
diff options
context:
space:
mode:
authorMarco 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)
commite49146752ff322c53430419749be53b741f02540 (patch)
tree0de1e78d17b52759f6ba5fe038fbc96ffc559af3 /sugar/graphics
parent9446c951acfe1c96e10bdec88c0f8a5f8d8b77ce (diff)
More work on the new graphics API.
Diffstat (limited to 'sugar/graphics')
-rw-r--r--sugar/graphics/toolbox.py52
-rw-r--r--sugar/graphics/toolbutton.py25
-rw-r--r--sugar/graphics/window.py64
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)