Some work to implement the activity bar

This commit is contained in:
Marco Pesenti Gritti
2006-08-16 23:20:22 +02:00
parent 47f25f234e
commit dae3d2be2b
4 changed files with 64 additions and 21 deletions
+12
View File
@@ -8,6 +8,7 @@ class ActivityModule:
def __init__(self, name, activity_id, directory):
self._name = name
self._icon = None
self._id = activity_id
self._directory = directory
self._show_launcher = False
@@ -20,6 +21,14 @@ class ActivityModule:
"""Get the activity identifier"""
return self._id
def get_icon(self):
"""Get the activity icon name"""
return self._icon
def set_icon(self, icon):
"""Set the activity icon name"""
self._icon = icon
def get_directory(self):
"""Get the path to activity directory."""
return self._directory
@@ -97,6 +106,9 @@ class ActivityRegistry:
if cp.has_option('Activity', 'show_launcher'):
module.set_show_launcher(True)
if cp.has_option('Activity', 'icon'):
module.set_icon(cp.get('Activity', 'icon'))
module.set_default_type(default_type)
return True
+18 -2
View File
@@ -3,6 +3,19 @@ import goocanvas
from sugar.canvas.IconItem import IconItem
class ActivityBar(goocanvas.Group):
def __init__(self, registry):
goocanvas.Group.__init__(self)
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)
self.add_child(item)
class Background(goocanvas.Group):
def __init__(self):
goocanvas.Group.__init__(self)
@@ -22,7 +35,7 @@ class Background(goocanvas.Group):
self.add_child(item)
class Model(goocanvas.CanvasModelSimple):
def __init__(self):
def __init__(self, shell):
goocanvas.CanvasModelSimple.__init__(self)
root = self.get_root_item()
@@ -30,6 +43,9 @@ class Model(goocanvas.CanvasModelSimple):
background = Background()
root.add_child(background)
activity_bar = ActivityBar(shell.get_registry())
root.add_child(activity_bar)
class HomeWindow(gtk.Window):
def __init__(self, shell):
gtk.Window.__init__(self)
@@ -39,7 +55,7 @@ class HomeWindow(gtk.Window):
self.connect('realize', self.__realize_cb)
canvas = goocanvas.CanvasView()
canvas_model = Model()
canvas_model = Model(shell)
canvas.set_bounds(0, 0, 1200, 900)
canvas.set_scale(float(800) / float(1200))
canvas.set_size_request(800, 600)