From f6a93fd8e9f44acdcddf4a487f1483eca55ae805 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 20 Apr 2007 14:45:39 +0200 Subject: [PATCH] Some initial work on graphics2 --- sugar-emulator | 9 +++++++++ sugar/graphics2/Makefile.am | 5 +++++ sugar/graphics2/__init__.py | 0 sugar/graphics2/toolbox.py | 31 ++++++++++++++++++++++++++++++ sugar/graphics2/window.py | 38 +++++++++++++++++++++++++++++++++++++ tests/test-ui.py | 34 +++++++++++++++------------------ 6 files changed, 98 insertions(+), 19 deletions(-) create mode 100644 sugar/graphics2/Makefile.am create mode 100644 sugar/graphics2/__init__.py create mode 100644 sugar/graphics2/toolbox.py create mode 100644 sugar/graphics2/window.py diff --git a/sugar-emulator b/sugar-emulator index 2d6b04f1..29b02603 100755 --- a/sugar-emulator +++ b/sugar-emulator @@ -72,6 +72,14 @@ def _start_xephyr(): os.environ['DISPLAY'] = ":%d" % (display) os.environ['SUGAR_EMULATOR_PID'] = str(pid) +def _start_matchbox(): + cmd = ['matchbox-window-manager'] + + cmd.extend(['-use_titlebar', 'no']) + cmd.extend(['-theme', 'olpc']) + + gobject.spawn_async(cmd, flags=gobject.SPAWN_SEARCH_PATH) + def _setup_env(): os.environ['SUGAR_EMULATOR'] = 'yes' @@ -97,6 +105,7 @@ os.environ['GTK2_RC_FILES'] = env.get_data_path(gtkrc_filename) if len(sys.argv) == 1: program = 'sugar-shell' else: + _start_matchbox() program = sys.argv[1] os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', program) diff --git a/sugar/graphics2/Makefile.am b/sugar/graphics2/Makefile.am new file mode 100644 index 00000000..f5bde18a --- /dev/null +++ b/sugar/graphics2/Makefile.am @@ -0,0 +1,5 @@ +sugardir = $(pythondir)/sugar/graphics2 +sugar_PYTHON = \ + __init__.py \ + window.py \ + toolbox.py diff --git a/sugar/graphics2/__init__.py b/sugar/graphics2/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sugar/graphics2/toolbox.py b/sugar/graphics2/toolbox.py new file mode 100644 index 00000000..c3148b76 --- /dev/null +++ b/sugar/graphics2/toolbox.py @@ -0,0 +1,31 @@ +# 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 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.pack_start(self._notebook) + self._notebook.show() + + def add_toolbar(self, name, toolbar): + self._notebook.append_page(toolbar, gtk.Label(name)) diff --git a/sugar/graphics2/window.py b/sugar/graphics2/window.py new file mode 100644 index 00000000..068d1770 --- /dev/null +++ b/sugar/graphics2/window.py @@ -0,0 +1,38 @@ +# 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.graphics2.toolbox import Toolbox + +class Window(gtk.Window): + def __init__(self): + gtk.Window.__init__(self) + + vbox = gtk.VBox() + self.add(vbox) + + self.toolbox = Toolbox() + vbox.pack_start(self.toolbox, False) + self.toolbox.show() + + self.canvas = hippo.Canvas() + vbox.pack_start(self.canvas) + self.canvas.show() + + vbox.show() diff --git a/tests/test-ui.py b/tests/test-ui.py index ad324cc9..e44828cd 100755 --- a/tests/test-ui.py +++ b/tests/test-ui.py @@ -17,32 +17,28 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA import gtk +import hippo +from sugar.graphics2.window import Window -class Toolbar(gtk.Toolbar): +class TextToolbar(gtk.Toolbar): def __init__(self): gtk.Toolbar.__init__(self) - - icon = gtk.ToolButton() - icon.set_icon_name('text-format-bold') - self.insert(icon, -1) - icon.show() -class Window(gtk.Window): - def __init__(self): - gtk.Window.__init__(self) - self.set_default_size(800, 600) - - box = gtk.VBox() - self.add(box) - box.show() - - toolbar = Toolbar() - box.pack_start(toolbar, False) - toolbar.show() - + button = gtk.ToolButton() + button.set_icon_name('text-format-bold') + self.insert(button, -1) + button.show() + window = Window() window.connect("destroy", lambda w: gtk.main_quit()) + +text_toolbar = TextToolbar() +window.toolbox.add_toolbar('Text', text_toolbar) +text_toolbar.show() + +window.canvas.set_root(hippo.CanvasBox(background_color=0)) + window.show() gtk.main()