More work on the new home page.

Remove obsolete import.
This commit is contained in:
Marco Pesenti Gritti
2006-07-24 15:11:14 +02:00
parent 1acd82599a
commit d2f76cc41d
9 changed files with 71 additions and 26 deletions
+52 -18
View File
@@ -1,8 +1,12 @@
import gtk
from sugar.scene.Stage import Stage
from sugar.scene.SceneView import SceneView
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):
@@ -11,36 +15,66 @@ class ActivityLauncher(gtk.HButtonBox):
self._shell = shell
for module in shell.get_registry().list_activities():
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()
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(SceneView):
class HomeScene(StageView):
def __init__(self, shell):
self._stage = Stage()
SceneView.__init__(self, self._stage)
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)
fixed.put(scene, 0, 0)
scene.set_size_request(640, 480)
self.add(scene)
scene.show()
launcher = ActivityLauncher(shell)
fixed.put(launcher, 0, 0)
launcher.show()
self.add(fixed)
fixed.show()
def __realize_cb(self, window):
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)
+1 -2
View File
@@ -8,7 +8,6 @@ import wnck
import gobject
from sugar.LogWriter import LogWriter
from ConsoleLogger import ConsoleLogger
from ActivityRegistry import ActivityRegistry
from HomeWindow import HomeWindow
from sugar import env
@@ -56,7 +55,7 @@ class Shell:
bus_name = dbus.service.BusName('com.redhat.Sugar.Shell', bus=session_bus)
ShellDbusService(self, bus_name)
self._owner = ShellOwner()
#self._owner = ShellOwner()
self._registry = ActivityRegistry()
self._registry.scan_directory(env.get_activities_dir())
+5 -1
View File
@@ -1,4 +1,8 @@
confdir = $(datadir)
conf_DATA = kbdconfig
EXTRA_DIST = kbdconfig
imagesdir = $(imagesdir)
images_DATA = \
home-background.png
EXTRA_DIST = $(conf_DATA) $(images_DATA)
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB