diff options
author | Simon Schampijer <simon@schampijer.de> | 2007-11-09 15:51:43 (GMT) |
---|---|---|
committer | Simon Schampijer <simon@schampijer.de> | 2007-11-09 15:51:43 (GMT) |
commit | 9fa94bbe267e83898ab55ac2e4bdeaafe5a5aacc (patch) | |
tree | 646b4ca5628265078a1f39dad3badf820fc7c5c1 /shell | |
parent | 670722bc497b1ba90d4300bfc2a48424334d29b8 (diff) |
Display meshbox invite palette menu with colored activity icon #4624
Diffstat (limited to 'shell')
-rw-r--r-- | shell/view/BuddyMenu.py | 28 |
1 files changed, 21 insertions, 7 deletions
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 |