Some initial work on graphics2

This commit is contained in:
Marco Pesenti Gritti 2007-04-20 14:45:39 +02:00
parent bf8dbeade5
commit f6a93fd8e9
6 changed files with 98 additions and 19 deletions

View File

@ -72,6 +72,14 @@ def _start_xephyr():
os.environ['DISPLAY'] = ":%d" % (display) os.environ['DISPLAY'] = ":%d" % (display)
os.environ['SUGAR_EMULATOR_PID'] = str(pid) 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(): def _setup_env():
os.environ['SUGAR_EMULATOR'] = 'yes' 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: if len(sys.argv) == 1:
program = 'sugar-shell' program = 'sugar-shell'
else: else:
_start_matchbox()
program = sys.argv[1] program = sys.argv[1]
os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', program) os.execlp('dbus-launch', 'dbus-launch', '--exit-with-session', program)

View File

@ -0,0 +1,5 @@
sugardir = $(pythondir)/sugar/graphics2
sugar_PYTHON = \
__init__.py \
window.py \
toolbox.py

View File

View File

@ -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))

38
sugar/graphics2/window.py Normal file
View File

@ -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()

View File

@ -17,32 +17,28 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
import gtk import gtk
import hippo
from sugar.graphics2.window import Window
class Toolbar(gtk.Toolbar): class TextToolbar(gtk.Toolbar):
def __init__(self): def __init__(self):
gtk.Toolbar.__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): button = gtk.ToolButton()
def __init__(self): button.set_icon_name('text-format-bold')
gtk.Window.__init__(self) self.insert(button, -1)
self.set_default_size(800, 600) button.show()
box = gtk.VBox()
self.add(box)
box.show()
toolbar = Toolbar()
box.pack_start(toolbar, False)
toolbar.show()
window = Window() window = Window()
window.connect("destroy", lambda w: gtk.main_quit()) 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() window.show()
gtk.main() gtk.main()