sugar-toolkit-gtk3/shell/HomeWindow2.py
Marco Pesenti Gritti d2f76cc41d More work on the new home page.
Remove obsolete import.
2006-07-24 15:11:14 +02:00

81 lines
1.9 KiB
Python

import gtk
from sugar.scene.Stage import Stage
from sugar.scene.StageView import StageView
from sugar.scene.PixbufActor import PixbufActor
from sugar.scene.CircleLayout import CircleLayout
from sugar.scene.Group import Group
from sugar.activity import Activity
from sugar import env
class ActivityLauncher(gtk.HButtonBox):
def __init__(self, shell):
gtk.HButtonBox.__init__(self)
self._shell = shell
for module in shell.get_registry().list_activities():
if module.get_show_launcher():
self._add_activity(module)
def _add_activity(self, module):
button = gtk.Button(module.get_name())
activity_id = module.get_id()
button.connect('clicked', self.__clicked_cb, activity_id)
self.pack_start(button)
button.show()
def __clicked_cb(self, button, activity_id):
Activity.create(activity_id)
class HomeScene(StageView):
def __init__(self, shell):
self._stage = self._create_stage()
StageView.__init__(self, self._stage)
self._shell = shell
launcher = ActivityLauncher(shell)
self.put(launcher, 10, 440)
launcher.show()
def _create_stage(self):
stage = Stage()
background = env.get_data_file('home-background.png')
pixbuf = gtk.gdk.pixbuf_new_from_file(background)
stage.add(PixbufActor(pixbuf))
icons_group = Group()
icons_group.set_position(310, 80)
pholder = env.get_data_file('activity-placeholder.png')
pholder_pixbuf = gtk.gdk.pixbuf_new_from_file(pholder)
i = 0
while i < 7:
icons_group.add(PixbufActor(pholder_pixbuf))
i += 1
layout = CircleLayout(110)
icons_group.set_layout(layout)
stage.add(icons_group)
return stage
class HomeWindow(gtk.Window):
def __init__(self, shell):
gtk.Window.__init__(self)
self.connect('realize', self.__realize_cb)
fixed = gtk.Fixed()
scene = HomeScene(shell)
scene.set_size_request(640, 480)
self.add(scene)
scene.show()
def __realize_cb(self, window):
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)