From 8a2cb49ffba017f1a7fc1ed138bfb9c58e7b70c7 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 3 Sep 2007 00:20:53 +0200 Subject: [PATCH] Use a toolbar for zoom icons --- NEWS | 1 + shell/view/frame/frame.py | 10 ++-- shell/view/frame/zoombox.py | 78 ------------------------------ shell/view/frame/zoomtoolbar.py | 84 +++++++++++++++++++++++++++++++++ 4 files changed, 89 insertions(+), 84 deletions(-) delete mode 100644 shell/view/frame/zoombox.py create mode 100644 shell/view/frame/zoomtoolbar.py diff --git a/NEWS b/NEWS index 9c3e3105..561f5b09 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,4 @@ +* #3088: Fix style of zoom buttons palettes. (marco) * Refactor activity share/join in Activity.__init__() to be clearer and cover all cases (dcbw) * #2971: Fix palette flash when the mouse pointer leave the palete and go diff --git a/shell/view/frame/frame.py b/shell/view/frame/frame.py index e87b939e..1ce10edb 100644 --- a/shell/view/frame/frame.py +++ b/shell/view/frame/frame.py @@ -27,7 +27,7 @@ from sugar.clipboard import clipboardservice from view.frame.eventarea import EventArea from view.frame.ActivitiesBox import ActivitiesBox -from view.frame.zoombox import ZoomBox +from view.frame.zoomtoolbar import ZoomToolbar from view.frame.overlaybox import OverlayBox from view.frame.FriendsBox import FriendsBox from view.frame.framewindow import FrameWindow @@ -210,11 +210,9 @@ class Frame(object): def _create_top_panel(self): panel = self._create_panel(gtk.POS_TOP) - box = ZoomBox(self._shell) - panel.append(box) - - #box = OverlayBox(self._shell) - #root.append(box, hippo.PACK_END) + toolbar = ZoomToolbar(self._shell) + panel.append(hippo.CanvasWidget(widget=toolbar)) + toolbar.show() return panel diff --git a/shell/view/frame/zoombox.py b/shell/view/frame/zoombox.py deleted file mode 100644 index 37bfcc02..00000000 --- a/shell/view/frame/zoombox.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright (C) 2006-2007 Red Hat, Inc. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -from gettext import gettext as _ - -import hippo - -from sugar.graphics.palette import Palette -from sugar.graphics.iconbutton import IconButton -from frameinvoker import FrameCanvasInvoker - -from model.shellmodel import ShellModel - -class ZoomBox(hippo.CanvasBox): - def __init__(self, shell): - hippo.CanvasBox.__init__(self, orientation=hippo.ORIENTATION_HORIZONTAL) - - self._shell = shell - - icon = IconButton(icon_name='zoom-mesh') - icon.connect('activated', - self._level_clicked_cb, - ShellModel.ZOOM_MESH) - self.append(icon) - - palette = Palette(_('Neighborhood')) - palette.props.invoker = FrameCanvasInvoker(icon) - palette.set_group_id('frame') - icon.set_palette(palette) - - icon = IconButton(icon_name='zoom-friends') - icon.connect('activated', - self._level_clicked_cb, - ShellModel.ZOOM_FRIENDS) - self.append(icon) - - palette = Palette(_('Group')) - palette.props.invoker = FrameCanvasInvoker(icon) - palette.set_group_id('frame') - icon.set_palette(palette) - - icon = IconButton(icon_name='zoom-home') - icon.connect('activated', - self._level_clicked_cb, - ShellModel.ZOOM_HOME) - self.append(icon) - - palette = Palette(_('Home')) - palette.props.invoker = FrameCanvasInvoker(icon) - palette.set_group_id('frame') - icon.set_palette(palette) - - icon = IconButton(icon_name='zoom-activity') - icon.connect('activated', - self._level_clicked_cb, - ShellModel.ZOOM_ACTIVITY) - self.append(icon) - - palette = Palette(_('Activity')) - palette.props.invoker = FrameCanvasInvoker(icon) - palette.set_group_id('frame') - icon.set_palette(palette) - - def _level_clicked_cb(self, item, level): - self._shell.set_zoom_level(level) diff --git a/shell/view/frame/zoomtoolbar.py b/shell/view/frame/zoomtoolbar.py new file mode 100644 index 00000000..30cd1fb0 --- /dev/null +++ b/shell/view/frame/zoomtoolbar.py @@ -0,0 +1,84 @@ +# Copyright (C) 2006-2007 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +from gettext import gettext as _ + +import gtk + +from sugar.graphics.palette import Palette +from sugar.graphics.toolbutton import ToolButton + +from view.frame.frameinvoker import FrameWidgetInvoker +from model.shellmodel import ShellModel + +class ZoomToolbar(gtk.Toolbar): + def __init__(self, shell): + gtk.Toolbar.__init__(self) + + self._shell = shell + + self.set_show_arrow(False) + + button = ToolButton(icon_name='zoom-mesh') + button.connect('clicked', + self._level_clicked_cb, + ShellModel.ZOOM_MESH) + self.insert(button, -1) + button.show() + + palette = Palette(_('Neighborhood')) + palette.props.invoker = FrameWidgetInvoker(button) + palette.set_group_id('frame') + button.set_palette(palette) + + button = ToolButton(icon_name='zoom-friends') + button.connect('clicked', + self._level_clicked_cb, + ShellModel.ZOOM_FRIENDS) + self.insert(button, -1) + button.show() + + palette = Palette(_('Group')) + palette.props.invoker = FrameWidgetInvoker(button) + palette.set_group_id('frame') + button.set_palette(palette) + + button = ToolButton(icon_name='zoom-home') + button.connect('clicked', + self._level_clicked_cb, + ShellModel.ZOOM_HOME) + self.insert(button, -1) + button.show() + + palette = Palette(_('Home')) + palette.props.invoker = FrameWidgetInvoker(button) + palette.set_group_id('frame') + button.set_palette(palette) + + button = ToolButton(icon_name='zoom-activity') + button.connect('clicked', + self._level_clicked_cb, + ShellModel.ZOOM_ACTIVITY) + self.insert(button, -1) + button.show() + + palette = Palette(_('Activity')) + palette.props.invoker = FrameWidgetInvoker(button) + palette.set_group_id('frame') + button.set_palette(palette) + + def _level_clicked_cb(self, button, level): + self._shell.set_zoom_level(level)