Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2007-11-09 15:51:43 (GMT)
committer Simon Schampijer <simon@schampijer.de>2007-11-09 15:51:43 (GMT)
commit9fa94bbe267e83898ab55ac2e4bdeaafe5a5aacc (patch)
tree646b4ca5628265078a1f39dad3badf820fc7c5c1
parent670722bc497b1ba90d4300bfc2a48424334d29b8 (diff)
Display meshbox invite palette menu with colored activity icon #4624
-rw-r--r--NEWS1
-rw-r--r--lib/sugar/graphics/menuitem.py2
-rw-r--r--shell/view/BuddyMenu.py28
3 files changed, 23 insertions, 8 deletions
diff --git a/NEWS b/NEWS
index 7825e57..c4ecf3a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,4 @@
+* Display meshbox invite palette menu with colored activity icon #4624
* Always checkin to the DS from a new file. (tomeu)
Snapshot c682a5e241
diff --git a/lib/sugar/graphics/menuitem.py b/lib/sugar/graphics/menuitem.py
index 5b457a5..1b90843 100644
--- a/lib/sugar/graphics/menuitem.py
+++ b/lib/sugar/graphics/menuitem.py
@@ -19,7 +19,7 @@ import gtk
from sugar.graphics.icon import Icon
class MenuItem(gtk.ImageMenuItem):
- def __init__(self, text_label, icon_name=None):
+ def __init__(self, text_label=None, icon_name=None):
gtk.ImageMenuItem.__init__(self, text_label)
if icon_name:
icon = Icon(icon_name=icon_name, icon_size=gtk.ICON_SIZE_MENU)
diff --git a/shell/view/BuddyMenu.py b/shell/view/BuddyMenu.py
index 227f789..a31f623 100644
--- a/shell/view/BuddyMenu.py
+++ b/shell/view/BuddyMenu.py
@@ -22,6 +22,7 @@ import hippo
from sugar.graphics.palette import Palette
from sugar.graphics.menuitem import MenuItem
+from sugar.graphics.icon import Icon
from sugar.presence import presenceservice
class BuddyMenu(Palette):
@@ -89,20 +90,33 @@ class BuddyMenu(Palette):
self.menu.append(menu_item)
menu_item.show()
- self._invite_menu = MenuItem(_('Invite'))
+ self._invite_menu = MenuItem('')
self._invite_menu.connect('activate', self._invite_friend_cb)
self.menu.append(self._invite_menu)
- self._invite_menu.show()
-
+
home_model = shell_model.get_home()
home_model.connect('active-activity-changed',
self._cur_activity_changed_cb)
+ activity = home_model.get_active_activity()
+ self._update_invite_menu(activity)
+
+ def _update_invite_menu(self, activity):
+ if activity is None:
+ self._invite_menu.hide()
+ else:
+ title = activity.get_title()
+ label = self._invite_menu.get_children()[0]
+ label.set_text(_('Invite to %s') % title)
+
+ icon = Icon(file=activity.get_icon_path())
+ icon.props.xo_color = activity.get_icon_color()
+ self._invite_menu.set_image(icon)
+ icon.show()
- def _cur_activity_changed_cb(self, home_model, activity_model):
- if activity_model is not None:
self._invite_menu.show()
- else:
- self._invite_menu.hide()
+
+ def _cur_activity_changed_cb(self, home_model, activity_model):
+ self._update_invite_menu(activity_model)
def _buddy_icon_changed_cb(self, buddy):
pass