Use a toolbar for zoom icons

master
Marco Pesenti Gritti 17 years ago
parent 044afe4ae8
commit 8a2cb49ffb

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

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

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

@ -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)
Loading…
Cancel
Save