More work on the new home page.
Remove obsolete import.
This commit is contained in:
parent
1acd82599a
commit
d2f76cc41d
@ -7,7 +7,7 @@ import gtk
|
||||
|
||||
from sugar.scene.Stage import Stage
|
||||
from sugar.scene.Group import Group
|
||||
from sugar.scene.View import View
|
||||
from sugar.scene.SceneView import SceneView
|
||||
from sugar.scene.PixbufActor import PixbufActor
|
||||
from sugar.scene.CircleLayout import CircleLayout
|
||||
from sugar.scene.Timeline import Timeline
|
||||
@ -43,10 +43,14 @@ stage.add(icons_group)
|
||||
window = gtk.Window()
|
||||
window.set_default_size(640, 480)
|
||||
|
||||
view = View(stage)
|
||||
view = SceneView(stage)
|
||||
window.add(view)
|
||||
view.show()
|
||||
|
||||
button = gtk.Button('Hello')
|
||||
view.put(button, 10, 10)
|
||||
button.show()
|
||||
|
||||
window.show()
|
||||
|
||||
timeline = Timeline(stage, 200)
|
||||
|
@ -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)
|
||||
|
@ -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())
|
||||
|
@ -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)
|
||||
|
BIN
shell/data/activity-placeholder.png
Normal file
BIN
shell/data/activity-placeholder.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.1 KiB |
BIN
shell/data/home-background.png
Normal file
BIN
shell/data/home-background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 69 KiB |
@ -33,6 +33,9 @@ def get_nick_name():
|
||||
|
||||
def get_data_dir():
|
||||
return sugar_data_dir
|
||||
|
||||
def get_data_file(filename):
|
||||
return os.path.join(get_data_dir(), filename)
|
||||
|
||||
def get_activities_dir():
|
||||
return sugar_activities_dir
|
||||
|
@ -2,9 +2,10 @@ import gtk
|
||||
|
||||
from sugar.scene.Stage import Stage
|
||||
|
||||
class SceneView(gtk.DrawingArea):
|
||||
class StageView(gtk.Fixed):
|
||||
def __init__(self, stage):
|
||||
gtk.DrawingArea.__init__(self)
|
||||
gtk.Fixed.__init__(self)
|
||||
self.set_has_window(True)
|
||||
|
||||
self._stage = stage
|
||||
self._stage.connect('changed', self.__stage_changed_cb)
|
@ -15,7 +15,7 @@ class Transformation:
|
||||
return (translated_x, translated_y)
|
||||
|
||||
def compose(self, transf):
|
||||
composed = copy.copy(transf)
|
||||
composed = copy.copy(self)
|
||||
composed._translation_x += transf._translation_x
|
||||
composed._translation_y += transf._translation_y
|
||||
return composed
|
||||
|
Loading…
Reference in New Issue
Block a user