From d51a00eaec74f81ffe32cfc0acd7db1ed8d2d5f7 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Fri, 8 Sep 2006 00:51:45 +0200 Subject: [PATCH] Get the top panel back --- shell/frame/Frame.py | 13 +++++---- shell/frame/RightPanel.py | 27 ------------------ shell/frame/TopPanel.py | 59 +++++++++++++++++++++++++-------------- sugar/canvas/IconItem.py | 1 + 4 files changed, 47 insertions(+), 53 deletions(-) diff --git a/shell/frame/Frame.py b/shell/frame/Frame.py index 31de27cd..61d84f2c 100644 --- a/shell/frame/Frame.py +++ b/shell/frame/Frame.py @@ -4,7 +4,7 @@ import goocanvas from frame.BottomPanel import BottomPanel #from frame.RightPanel import RightPanel -#from frame.TopPanel import TopPanel +from frame.TopPanel import TopPanel from frame.PanelWindow import PanelWindow from sugar.canvas.ScreenContainer import ScreenContainer @@ -23,6 +23,13 @@ class Frame: self._screen_layout = GridLayout() self._screen_container = ScreenContainer(self._windows) + constraints = GridConstraints(0, 0, 16, 1) + self._create_window(constraints) + + panel = TopPanel(shell) + layout.set_constraints(panel, constraints) + self._model.add(panel) + constraints = GridConstraints(0, 11, 16, 1) self._create_window(constraints) @@ -30,10 +37,6 @@ class Frame: layout.set_constraints(panel, constraints) self._model.add(panel) - # Top - constraints = GridConstraints(0, 0, 16, 1) - self._create_window(constraints) - # Left constraints = GridConstraints(0, 1, 1, 10) self._create_window(constraints) diff --git a/shell/frame/RightPanel.py b/shell/frame/RightPanel.py index 6fac8f5b..85ec297d 100644 --- a/shell/frame/RightPanel.py +++ b/shell/frame/RightPanel.py @@ -125,30 +125,3 @@ class ActionsBar(goocanvas.Group): self._y = 0 - icon = IconItem(icon_name='stock-share', size=self._width) - icon.connect('clicked', self.__share_clicked_cb) - self.add_icon(icon) - - icon = IconItem(icon_name='stock-invite', size=self._width) - icon.connect('clicked', self.__invite_clicked_cb) - self.add_icon(icon) - - icon = IconItem(icon_name='stock-chat', size=self._width) - icon.connect('clicked', self.__chat_clicked_cb) - self.add_icon(icon) - - def add_icon(self, icon): - icon.set_property('y', self._y) - self._y += (self._width + 6) - self.add_child(icon) - - def __share_clicked_cb(self, item): - activity = self._shell.get_current_activity() - if activity != None: - activity.share() - - def __invite_clicked_cb(self, item): - pass - - def __chat_clicked_cb(self, item): - pass diff --git a/shell/frame/TopPanel.py b/shell/frame/TopPanel.py index 06554f6c..8cd42847 100644 --- a/shell/frame/TopPanel.py +++ b/shell/frame/TopPanel.py @@ -1,40 +1,57 @@ import goocanvas -from frame.Panel import Panel +from sugar.canvas.GridLayout import GridGroup +from sugar.canvas.GridLayout import GridConstraints from sugar.canvas.IconItem import IconItem import sugar -class ZoomBar(goocanvas.Group): - def __init__(self, shell, height): - goocanvas.Group.__init__(self) - self._height = height +class TopPanel(GridGroup): + def __init__(self, shell): + GridGroup.__init__(self) self._shell = shell - self.add_zoom_level(sugar.ZOOM_ACTIVITY, 'stock-zoom-activity') - self.add_zoom_level(sugar.ZOOM_HOME, 'stock-zoom-home') - self.add_zoom_level(sugar.ZOOM_FRIENDS, 'stock-zoom-friends') - self.add_zoom_level(sugar.ZOOM_MESH, 'stock-zoom-mesh') + self.add_zoom_level(sugar.ZOOM_ACTIVITY, 'stock-zoom-activity', 1) + self.add_zoom_level(sugar.ZOOM_HOME, 'stock-zoom-home', 2) + self.add_zoom_level(sugar.ZOOM_FRIENDS, 'stock-zoom-friends', 3) + self.add_zoom_level(sugar.ZOOM_MESH, 'stock-zoom-mesh', 4) - def add_zoom_level(self, level, icon_name): + icon = IconItem(icon_name='stock-share', size=self._width) + icon.connect('clicked', self.__share_clicked_cb) + self.add_icon(icon, 12) + + icon = IconItem(icon_name='stock-invite', size=self._width) + icon.connect('clicked', self.__invite_clicked_cb) + self.add_icon(icon, 13) + + icon = IconItem(icon_name='stock-chat', size=self._width) + icon.connect('clicked', self.__chat_clicked_cb) + self.add_icon(icon, 14) + + def add_zoom_level(self, level, icon_name, pos): icon = IconItem(icon_name=icon_name, size=self._height) icon.connect('clicked', self.__level_clicked_cb, level) - icon_size = self._height - x = (icon_size + 6) * self.get_n_children() - icon.set_property('x', x) + constraints = GridConstraints(pos, 0, 1, 1) + constraints.padding = 6 + self._layout.set_constraints(icon, constraints) + self.add_child(icon) + def add_icon(self, icon, pos): + constraints = GridConstraints(pos, 0, 1, 1) + constraints.padding = 6 + self._layout.set_constraints(icon, constraints) self.add_child(icon) def __level_clicked_cb(self, item, level): self._shell.set_zoom_level(level) -class TopPanel(Panel): - def __init__(self, shell): - Panel.__init__(self) - self._shell = shell + def __share_clicked_cb(self, item): + activity = self._shell.get_current_activity() + if activity != None: + activity.share() - def construct(self): - Panel.construct(self) + def __invite_clicked_cb(self, item): + pass - zoom_bar = ZoomBar(self._shell, self.get_height()) - self.get_root().add_child(zoom_bar) + def __chat_clicked_cb(self, item): + pass diff --git a/sugar/canvas/IconItem.py b/sugar/canvas/IconItem.py index 5ed21c9f..babc2529 100644 --- a/sugar/canvas/IconItem.py +++ b/sugar/canvas/IconItem.py @@ -152,6 +152,7 @@ class IconItem(goocanvas.ItemSimple, goocanvas.Item): self.x = 0.0 self.y = 0.0 self.size = 24 + self.color = None goocanvas.ItemSimple.__init__(self, **kwargs)