From 2c1e65e494d7690d3e5028711f06960b59ef2f88 Mon Sep 17 00:00:00 2001
From: Eben Eliason <[EMAIL PROTECTED]>
Date: Mon, 24 Mar 2008 06:35:42 -0400
Subject: [PATCH] Add icons to palettes of objects in Groups/Neighborhood

This update adds icons to the palettes of people and
activities shown in both Groups and Neighborhood views.
As I cannot see APs in my jhbuild, I have not done the
same for them, though it should be.
---
 src/view/BuddyIcon.py         |    8 ++++++++
 src/view/BuddyMenu.py         |    7 ++++++-
 src/view/frame/friendstray.py |    1 +
 src/view/home/FriendView.py   |    1 +
 src/view/home/FriendsBox.py   |    9 +++++++--
 src/view/home/MeshBox.py      |    8 ++++++--
 6 files changed, 29 insertions(+), 5 deletions(-)

diff --git a/src/view/BuddyIcon.py b/src/view/BuddyIcon.py
index ccc9c46..041f757 100644
--- a/src/view/BuddyIcon.py
+++ b/src/view/BuddyIcon.py
@@ -40,11 +40,19 @@ class BuddyIcon(CanvasIcon):
         self._update_color()
 
     def _update_color(self):
+
+        # keep the icon in the palette in sync with the view
+        palette = self.get_palette()
+        palette_icon = palette.props.icon
+
         if self._greyed_out:
             self.props.stroke_color = '#D5D5D5'
             self.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
+            palette_icon.props.stroke_color = '#D5D5D5'
+            palette_icon.props.fill_color = style.COLOR_TRANSPARENT.get_svg()
         else:
             self.props.xo_color = self._buddy.get_color()
+            palette_icon.props.xo_color = self._buddy.get_color()
 
     def set_filter(self, query):
         self._greyed_out = (self._buddy.get_nick().lower().find(query) == -1) \
diff --git a/src/view/BuddyMenu.py b/src/view/BuddyMenu.py
index 2bdb6d9..10ee3a0 100644
--- a/src/view/BuddyMenu.py
+++ b/src/view/BuddyMenu.py
@@ -18,6 +18,7 @@ import logging
 
 import gobject
 import hippo
+import gtk
 
 from sugar.graphics.palette import Palette
 from sugar.graphics.menuitem import MenuItem
@@ -31,7 +32,11 @@ class BuddyMenu(Palette):
     def __init__(self, buddy):
         self._buddy = buddy
 
-        Palette.__init__(self, buddy.get_nick())
+        buddy_icon = Icon(icon_name='computer-xo',
+                          xo_color=buddy.get_color(),
+                          icon_size=gtk.ICON_SIZE_LARGE_TOOLBAR)
+        Palette.__init__(self, None, primary_text=buddy.get_nick(),
+                         icon=buddy_icon)
         self._active_activity_changed_hid = None
         self.connect('destroy', self.__destroy_cb)
 
diff --git a/src/view/frame/friendstray.py b/src/view/frame/friendstray.py
index d45bfb2..8b45409 100644
--- a/src/view/frame/friendstray.py
+++ b/src/view/frame/friendstray.py
@@ -31,6 +31,7 @@ class FriendIcon(TrayIcon):
                           xo_color=buddy.get_color())
 
         palette = BuddyMenu(buddy)
+        palette.props.icon_visible = False
         self.set_palette(palette)
         palette.set_group_id('frame')
         palette.props.invoker = FrameWidgetInvoker(self)
diff --git a/src/view/home/FriendView.py b/src/view/home/FriendView.py
index 86b46c4..6ef75ef 100644
--- a/src/view/home/FriendView.py
+++ b/src/view/home/FriendView.py
@@ -83,4 +83,5 @@ class FriendView(hippo.CanvasBox):
         self._buddy_activity_changed_cb(buddy, None)
 
     def _buddy_color_changed_cb(self, buddy, color):
+        # TODO: shouldn't this change self._buddy_icon instead?
         self._activity_icon.props.xo_color = buddy.get_color()
diff --git a/src/view/home/FriendsBox.py b/src/view/home/FriendsBox.py
index a25415e..3e776b2 100644
--- a/src/view/home/FriendsBox.py
+++ b/src/view/home/FriendsBox.py
@@ -16,12 +16,13 @@
 
 import random
 
+import gtk
 import hippo
 import gobject
 
 from sugar import profile
 from sugar.graphics import style
-from sugar.graphics.icon import CanvasIcon
+from sugar.graphics.icon import CanvasIcon, Icon
 from sugar.graphics.palette import Palette
 
 from model import shellmodel
@@ -42,7 +43,11 @@ class FriendsBox(hippo.CanvasBox):
         self._owner_icon = CanvasIcon(icon_name='computer-xo', cache=True,
                                       xo_color=profile.get_color())
         self._owner_icon.props.size = style.LARGE_ICON_SIZE
-        palette = Palette(profile.get_nick_name())
+        palette_icon = Icon(icon_name='computer-xo',
+                            xo_color=profile.get_color())
+        palette_icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
+        palette = Palette(None, primary_text=profile.get_nick_name(),
+                          icon=palette_icon)
         self._owner_icon.set_palette(palette)
         self._layout.add_center(self._owner_icon)
 
diff --git a/src/view/home/MeshBox.py b/src/view/home/MeshBox.py
index cd0eee9..b166edc 100644
--- a/src/view/home/MeshBox.py
+++ b/src/view/home/MeshBox.py
@@ -22,7 +22,7 @@ import hippo
 import gobject
 import gtk
 
-from sugar.graphics.icon import CanvasIcon
+from sugar.graphics.icon import CanvasIcon, Icon
 from sugar.graphics.xocolor import XoColor
 from sugar.graphics import style
 from sugar.graphics.icon import get_icon_state
@@ -261,7 +261,11 @@ class ActivityView(hippo.CanvasBox):
         return icon
 
     def _create_palette(self):
-        p = palette.Palette(self._model.activity.props.name)
+        p_icon = Icon(file=self._model.get_icon_name(),
+                      xo_color=self._model.get_color())
+        p_icon.props.icon_size = gtk.ICON_SIZE_LARGE_TOOLBAR
+        p = palette.Palette(None, primary_text=self._model.activity.props.name,
+                            icon=p_icon)
 
         private = self._model.activity.props.private
         joined = self._model.activity.props.joined
-- 
1.5.2.5

_______________________________________________
Sugar mailing list
[email protected]
http://lists.laptop.org/listinfo/sugar

Reply via email to