Use Tray also for the frame friends view.

Drop the deprecated IconButton.
This commit is contained in:
Marco Pesenti Gritti
2007-09-03 01:48:03 +02:00
parent 8a2cb49ffb
commit a09a786ff7
9 changed files with 56 additions and 88 deletions
-1
View File
@@ -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):
+2 -2
View File
@@ -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
+4 -3
View File
@@ -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
-7
View File
@@ -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):