Use a toolbar for zoom icons

This commit is contained in:
Marco Pesenti Gritti 2007-09-03 00:20:53 +02:00
parent 044afe4ae8
commit 8a2cb49ffb
4 changed files with 89 additions and 84 deletions

1
NEWS
View File

@ -1,3 +1,4 @@
* #3088: Fix style of zoom buttons palettes. (marco)
* Refactor activity share/join in Activity.__init__() to be clearer and cover * Refactor activity share/join in Activity.__init__() to be clearer and cover
all cases (dcbw) all cases (dcbw)
* #2971: Fix palette flash when the mouse pointer leave the palete and go * #2971: Fix palette flash when the mouse pointer leave the palete and go

View File

@ -27,7 +27,7 @@ from sugar.clipboard import clipboardservice
from view.frame.eventarea import EventArea from view.frame.eventarea import EventArea
from view.frame.ActivitiesBox import ActivitiesBox 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.overlaybox import OverlayBox
from view.frame.FriendsBox import FriendsBox from view.frame.FriendsBox import FriendsBox
from view.frame.framewindow import FrameWindow from view.frame.framewindow import FrameWindow
@ -210,11 +210,9 @@ class Frame(object):
def _create_top_panel(self): def _create_top_panel(self):
panel = self._create_panel(gtk.POS_TOP) panel = self._create_panel(gtk.POS_TOP)
box = ZoomBox(self._shell) toolbar = ZoomToolbar(self._shell)
panel.append(box) panel.append(hippo.CanvasWidget(widget=toolbar))
toolbar.show()
#box = OverlayBox(self._shell)
#root.append(box, hippo.PACK_END)
return panel return panel

View File

@ -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)

View File

@ -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)