From 0cd31b900a92936cbc7e850ca641ea7a1f879cb4 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Tue, 03 Oct 2006 16:52:11 +0000 Subject: Move the menu to hippo canvas --- (limited to 'shell') diff --git a/shell/view/BuddyMenu.py b/shell/view/BuddyMenu.py index 3b8752a..6d866e8 100644 --- a/shell/view/BuddyMenu.py +++ b/shell/view/BuddyMenu.py @@ -1,9 +1,11 @@ -from sugar.canvas.Menu import Menu -from sugar.canvas.IconItem import IconItem -from sugar.presence import PresenceService -import gtk, gobject +import gtk +import gobject import goocanvas +from sugar.graphics.menu import Menu +from sugar.graphics.canvasicon import CanvasIcon +from sugar.presence import PresenceService + _ICON_SIZE = 75 class BuddyMenu(Menu): @@ -12,12 +14,21 @@ class BuddyMenu(Menu): ACTION_REMOVE_FRIEND = 2 def __init__(self, shell, buddy): - Menu.__init__(self, shell.get_grid(), buddy.get_name()) - self._buddy = buddy - self._buddy.connect('icon-changed', self.__buddy_icon_changed_cb) self._shell = shell + icon_item = None + pixbuf = self._get_buddy_icon_pixbuf() + if pixbuf: + scaled_pixbuf = pixbuf.scale_simple(_ICON_SIZE, _ICON_SIZE, + gtk.gdk.INTERP_BILINEAR) + del pixbuf + icon_item = hippo.Image(pixbuf=scaled_pixbuf) + + Menu.__init__(self, buddy.get_name(), icon_item) + + self._buddy.connect('icon-changed', self.__buddy_icon_changed_cb) + owner = shell.get_model().get_owner() if buddy.get_name() != owner.get_name(): self._add_actions() @@ -48,20 +59,12 @@ class BuddyMenu(Menu): shell_model = self._shell.get_model() pservice = PresenceService.get_instance() - pixbuf = self._get_buddy_icon_pixbuf() - if pixbuf: - scaled_pixbuf = pixbuf.scale_simple(_ICON_SIZE, _ICON_SIZE, gtk.gdk.INTERP_BILINEAR) - del pixbuf - self._buddy_icon_item = goocanvas.Image() - self._buddy_icon_item.set_property('pixbuf', scaled_pixbuf) - self.add_image(self._buddy_icon_item, 5, 5) - friends = shell_model.get_friends() if friends.has_buddy(self._buddy): - icon = IconItem(icon_name='stock-remove') + icon = CanvasIcon(icon_name='stock-remove') self.add_action(icon, BuddyMenu.ACTION_REMOVE_FRIEND) else: - icon = IconItem(icon_name='stock-add') + icon = CanvasIcon(icon_name='stock-add') self.add_action(icon, BuddyMenu.ACTION_MAKE_FRIEND) activity_id = shell_model.get_current_activity() -- cgit v0.9.1