Use Tray also for the frame friends view.
Drop the deprecated IconButton.
This commit is contained in:
parent
8a2cb49ffb
commit
a09a786ff7
@ -24,7 +24,6 @@ from sugar.graphics import style
|
||||
from sugar import profile
|
||||
from sugar import activity
|
||||
|
||||
from frameinvoker import FrameCanvasInvoker
|
||||
from activitybutton import ActivityButton
|
||||
|
||||
class InviteButton(TrayButton):
|
||||
|
@ -6,9 +6,9 @@ sugar_PYTHON = \
|
||||
clipboardbox.py \
|
||||
clipboardpanelwindow.py \
|
||||
frameinvoker.py \
|
||||
FriendsBox.py \
|
||||
friendstray.py \
|
||||
eventarea.py \
|
||||
frame.py \
|
||||
overlaybox.py \
|
||||
framewindow.py \
|
||||
zoombox.py
|
||||
zoomtoolbar.py
|
||||
|
@ -29,7 +29,7 @@ from view.frame.eventarea import EventArea
|
||||
from view.frame.ActivitiesBox import ActivitiesBox
|
||||
from view.frame.zoomtoolbar import ZoomToolbar
|
||||
from view.frame.overlaybox import OverlayBox
|
||||
from view.frame.FriendsBox import FriendsBox
|
||||
from view.frame.friendstray import FriendsTray
|
||||
from view.frame.framewindow import FrameWindow
|
||||
from view.frame.clipboardpanelwindow import ClipboardPanelWindow
|
||||
from model.shellmodel import ShellModel
|
||||
@ -227,8 +227,9 @@ class Frame(object):
|
||||
def _create_right_panel(self):
|
||||
panel = self._create_panel(gtk.POS_RIGHT)
|
||||
|
||||
box = FriendsBox(self._shell)
|
||||
panel.append(box)
|
||||
tray = FriendsTray(self._shell)
|
||||
panel.append(hippo.CanvasWidget(widget=tray), hippo.PACK_EXPAND)
|
||||
tray.show()
|
||||
|
||||
return panel
|
||||
|
||||
|
@ -37,10 +37,3 @@ class FrameWidgetInvoker(WidgetInvoker):
|
||||
|
||||
self._position_hint = self.ANCHORED
|
||||
self._screen_area = _get_screen_area()
|
||||
|
||||
class FrameCanvasInvoker(CanvasInvoker):
|
||||
def __init__(self, item):
|
||||
CanvasInvoker.__init__(self, item)
|
||||
|
||||
self._position_hint = self.ANCHORED
|
||||
self._screen_area = _get_screen_area()
|
||||
|
@ -16,32 +16,27 @@
|
||||
|
||||
import hippo
|
||||
|
||||
from sugar.graphics.palette import Palette
|
||||
from sugar.graphics.icon import CanvasIcon
|
||||
from sugar.graphics import style
|
||||
from sugar.presence import presenceservice
|
||||
from sugar.graphics.tray import VTray, TrayIcon
|
||||
|
||||
from view.BuddyIcon import BuddyIcon
|
||||
from view.BuddyMenu import BuddyMenu
|
||||
from view.frame.frameinvoker import FrameWidgetInvoker
|
||||
from model.BuddyModel import BuddyModel
|
||||
from view.frame.frameinvoker import FrameCanvasInvoker
|
||||
|
||||
class FriendIcon(BuddyIcon):
|
||||
class FriendIcon(TrayIcon):
|
||||
def __init__(self, shell, buddy):
|
||||
BuddyIcon.__init__(self, shell, buddy)
|
||||
TrayIcon.__init__(self, icon_name='computer-xo',
|
||||
xo_color=buddy.get_color())
|
||||
|
||||
palette = self.get_palette()
|
||||
palette = BuddyMenu(shell, buddy)
|
||||
self.set_palette(palette)
|
||||
palette.set_group_id('frame')
|
||||
palette.props.invoker = FrameCanvasInvoker(self)
|
||||
palette.props.invoker = FrameWidgetInvoker(self)
|
||||
|
||||
def prelight(self, enter):
|
||||
if enter:
|
||||
self.props.background_color = style.COLOR_BLACK.get_int()
|
||||
else:
|
||||
self.props.background_color = style.COLOR_TOOLBAR_GREY.get_int()
|
||||
|
||||
class FriendsBox(hippo.CanvasBox):
|
||||
class FriendsTray(VTray):
|
||||
def __init__(self, shell):
|
||||
hippo.CanvasBox.__init__(self)
|
||||
VTray.__init__(self)
|
||||
|
||||
self._shell = shell
|
||||
self._activity_ps = None
|
||||
self._joined_hid = -1
|
||||
@ -68,8 +63,10 @@ class FriendsBox(hippo.CanvasBox):
|
||||
return
|
||||
|
||||
model = BuddyModel(buddy=buddy)
|
||||
|
||||
icon = FriendIcon(self._shell, model)
|
||||
self.append(icon)
|
||||
self.add_item(icon)
|
||||
icon.show()
|
||||
|
||||
self._buddies[buddy.props.key] = icon
|
||||
|
||||
@ -77,11 +74,11 @@ class FriendsBox(hippo.CanvasBox):
|
||||
if not self._buddies.has_key(buddy.props.key):
|
||||
return
|
||||
|
||||
self.remove(self._buddies[buddy.props.key])
|
||||
self.remove_item(self._buddies[buddy.props.key])
|
||||
|
||||
def clear(self):
|
||||
for item in self.get_children():
|
||||
self.remove(item)
|
||||
self.remove_item(item)
|
||||
self._buddies = {}
|
||||
|
||||
def __activity_appeared_cb(self, pservice, activity_ps):
|
@ -6,7 +6,6 @@ sugar_PYTHON = \
|
||||
combobox.py \
|
||||
entry.py \
|
||||
icon.py \
|
||||
iconbutton.py \
|
||||
iconentry.py \
|
||||
menuitem.py \
|
||||
notebook.py \
|
||||
|
@ -1,48 +0,0 @@
|
||||
# Copyright (C) 2007, One Laptop Per Child
|
||||
#
|
||||
# This library is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU Lesser General Public
|
||||
# License as published by the Free Software Foundation; either
|
||||
# version 2 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library 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
|
||||
# Lesser General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Lesser General Public
|
||||
# License along with this library; if not, write to the
|
||||
# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
# Boston, MA 02111-1307, USA.
|
||||
|
||||
#
|
||||
# DEPRECATED. Do not use in new code. We will reimplement it in gtk
|
||||
#
|
||||
|
||||
import sys
|
||||
|
||||
import gobject
|
||||
import hippo
|
||||
|
||||
from sugar.graphics.icon import CanvasIcon
|
||||
from sugar.graphics import style
|
||||
|
||||
class IconButton(CanvasIcon, hippo.CanvasItem):
|
||||
__gtype_name__ = 'SugarIconButton'
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
CanvasIcon.__init__(self, **kwargs)
|
||||
|
||||
if not self.props.fill_color and not self.props.stroke_color:
|
||||
self.props.fill_color = style.Color("#404040").get_svg()
|
||||
self.props.stroke_color = style.Color("#FFFFFF").get_svg()
|
||||
|
||||
self.connect('activated', self._icon_clicked_cb)
|
||||
|
||||
self.props.box_width = style.GRID_CELL_SIZE
|
||||
self.props.box_height = style.GRID_CELL_SIZE
|
||||
self.props.size = style.STANDARD_ICON_SIZE
|
||||
|
||||
def _icon_clicked_cb(self, button):
|
||||
if self._palette:
|
||||
self._palette.popdown(True)
|
@ -19,6 +19,7 @@ import gobject
|
||||
import gtk
|
||||
|
||||
from sugar.graphics import style
|
||||
from sugar.graphics.palette import Palette, ToolInvoker
|
||||
from sugar.graphics.toolbutton import ToolButton
|
||||
from sugar.graphics.icon import Icon
|
||||
|
||||
@ -145,6 +146,9 @@ class HTray(gtk.HBox):
|
||||
scroll_left.viewport = self._viewport
|
||||
scroll_right.viewport = self._viewport
|
||||
|
||||
def get_children(self):
|
||||
return self._viewport.traybar.get_children()
|
||||
|
||||
def add_item(self, item, index=-1):
|
||||
self._viewport.traybar.insert(item, index)
|
||||
|
||||
@ -173,6 +177,9 @@ class VTray(gtk.VBox):
|
||||
scroll_left.viewport = self._viewport
|
||||
scroll_right.viewport = self._viewport
|
||||
|
||||
def get_children(self):
|
||||
return self._viewport.traybar.get_children()
|
||||
|
||||
def add_item(self, item, index=-1):
|
||||
self._viewport.traybar.insert(item, index)
|
||||
|
||||
@ -185,3 +192,24 @@ class VTray(gtk.VBox):
|
||||
class TrayButton(ToolButton):
|
||||
def __init__(self, **kwargs):
|
||||
ToolButton.__init__(self, **kwargs)
|
||||
|
||||
class TrayIcon(gtk.ToolItem):
|
||||
def __init__(self, icon_name=None, xo_color=None):
|
||||
gtk.ToolItem.__init__(self)
|
||||
|
||||
event_box = gtk.EventBox()
|
||||
|
||||
icon = Icon(icon_name=icon_name, xo_color=xo_color,
|
||||
icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
|
||||
event_box.add(icon)
|
||||
icon.show()
|
||||
|
||||
self.add(event_box)
|
||||
event_box.show()
|
||||
|
||||
def set_palette(self, palette):
|
||||
self._palette = palette
|
||||
self._palette.props.invoker = ToolInvoker(self.child)
|
||||
|
||||
def set_tooltip(self, text):
|
||||
self.set_palette(Palette(text))
|
||||
|
@ -21,9 +21,8 @@ Test the sugar.graphics.icon.Icon widget.
|
||||
|
||||
import gtk
|
||||
|
||||
from sugar.graphics.tray import HTray
|
||||
from sugar.graphics.tray import VTray
|
||||
from sugar.graphics.tray import TrayButton
|
||||
from sugar.graphics.tray import HTray, VTray
|
||||
from sugar.graphics.tray import TrayButton, TrayIcon
|
||||
|
||||
import common
|
||||
|
||||
@ -47,9 +46,9 @@ vbox.pack_start(tray, False)
|
||||
tray.show()
|
||||
|
||||
for i in range(0, 10):
|
||||
button = TrayButton(icon_name=theme_icons[i])
|
||||
tray.add_item(button)
|
||||
button.show()
|
||||
icon = TrayIcon(icon_name=theme_icons[i])
|
||||
tray.add_item(icon)
|
||||
icon.show()
|
||||
|
||||
hbox = gtk.HBox()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user