Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2007-04-20 12:45:39 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2007-04-20 12:45:39 (GMT)
commitf6a93fd8e9f44acdcddf4a487f1483eca55ae805 (patch)
tree698b3b3b1201cb4343e134b49b688327eed9af27
parentbf8dbeade5017140c7d95a2d9ca95ba5b30ea00c (diff)
Some initial work on graphics2
-rwxr-xr-xsugar-emulator9
-rw-r--r--sugar/graphics2/Makefile.am5
-rw-r--r--sugar/graphics2/__init__.py0
-rw-r--r--sugar/graphics2/toolbox.py31
-rw-r--r--sugar/graphics2/window.py38
-rwxr-xr-xtests/test-ui.py34
6 files changed, 98 insertions, 19 deletions
diff --git a/sugar-emulator b/sugar-emulator
index 2d6b04f..29b0260 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 0000000..f5bde18
--- /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 0000000..e69de29
--- /dev/null
+++ b/sugar/graphics2/__init__.py
diff --git a/sugar/graphics2/toolbox.py b/sugar/graphics2/toolbox.py
new file mode 100644
index 0000000..c3148b7
--- /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 0000000..068d177
--- /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 ad324cc..e44828c 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()