Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2006-08-17 08:32:59 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2006-08-17 08:32:59 (GMT)
commit7990bc0d3126408e2728e3f41745e1332182de5b (patch)
tree5434fa00ac1502b55e961672f3d9a69c73e4f2d4 /shell
parentdae3d2be2b99cbbb59a3aff1ab00fb0b8705a3ff (diff)
Get activity bar and activity creation to work
Diffstat (limited to 'shell')
-rw-r--r--shell/HomeWindow.py32
1 files changed, 28 insertions, 4 deletions
diff --git a/shell/HomeWindow.py b/shell/HomeWindow.py
index d44add6..1449d0d 100644
--- a/shell/HomeWindow.py
+++ b/shell/HomeWindow.py
@@ -3,17 +3,27 @@ import goocanvas
from sugar.canvas.IconItem import IconItem
+class ActivityItem(IconItem):
+ def __init__(self, activity):
+ IconItem.__init__(self, activity.get_icon(), 'white', 30)
+ self._activity = activity
+
+ def get_activity_id(self):
+ return self._activity.get_id()
+
class ActivityBar(goocanvas.Group):
- def __init__(self, registry):
+ def __init__(self, shell):
goocanvas.Group.__init__(self)
+ self._shell = shell
+
+ registry = shell.get_registry()
for activity in registry.list_activities():
if activity.get_show_launcher():
self.add_activity(activity)
def add_activity(self, activity):
- item = IconItem(icon_name=activity.get_icon(),
- color='white', width=42, height=42)
+ item = ActivityItem(activity)
self.add_child(item)
class Background(goocanvas.Group):
@@ -43,7 +53,8 @@ class Model(goocanvas.CanvasModelSimple):
background = Background()
root.add_child(background)
- activity_bar = ActivityBar(shell.get_registry())
+ activity_bar = ActivityBar(shell)
+ activity_bar.translate(50, 860)
root.add_child(activity_bar)
class HomeWindow(gtk.Window):
@@ -55,14 +66,27 @@ class HomeWindow(gtk.Window):
self.connect('realize', self.__realize_cb)
canvas = goocanvas.CanvasView()
+
canvas_model = Model(shell)
canvas.set_bounds(0, 0, 1200, 900)
canvas.set_scale(float(800) / float(1200))
canvas.set_size_request(800, 600)
+
+ canvas.connect("item_view_created", self.__item_view_created_cb)
+
self.add(canvas)
canvas.show()
canvas.set_model(canvas_model)
+ def __item_view_created_cb(self, view, item_view, item):
+ if isinstance(item, ActivityItem):
+ item_view.connect("button_press_event",
+ self.__activity_button_press_cb,
+ item.get_activity_id())
+
+ def __activity_button_press_cb(self, view, target, event, activity_id):
+ self._shell.start_activity(activity_id)
+
def __realize_cb(self, window):
self.window.set_type_hint(gtk.gdk.WINDOW_TYPE_HINT_DESKTOP)