diff options
author | Manuel Quiñones <manuq@laptop.org> | 2012-12-11 14:37:47 (GMT) |
---|---|---|
committer | Manuel Quiñones <manuq@laptop.org> | 2012-12-15 15:50:51 (GMT) |
commit | 5540725660e41b90024137e712bb9748cdc937a4 (patch) | |
tree | bd56a89a2d3b1c42a9b4856a4d98c6a70260e195 | |
parent | 40852091087ca2a263297a9988ce1ed69cc42df4 (diff) |
ActivityIcon in neighborhood: port to custom Palette - SL #4283
As per other icons in the same view, use custom Palette which has a
toggle_palette property in the invoker that makes the popup/popdown
occur on left click or tap.
See commit a390ed68 for reference.
Signed-off-by: Manuel Quiñones <manuq@laptop.org>
Acked-by: Simon Schampijer <simon@laptop.org>
-rw-r--r-- | src/jarabe/desktop/meshbox.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/src/jarabe/desktop/meshbox.py b/src/jarabe/desktop/meshbox.py index b79dd02..bc5dbde 100644 --- a/src/jarabe/desktop/meshbox.py +++ b/src/jarabe/desktop/meshbox.py @@ -30,7 +30,8 @@ from sugar3.graphics.icon import Icon from sugar3.graphics.icon import CanvasIcon from sugar3.graphics import style from sugar3.graphics.palette import Palette -from sugar3.graphics.menuitem import MenuItem +from sugar3.graphics.palettemenu import PaletteMenuBox +from sugar3.graphics.palettemenu import PaletteMenuItem from jarabe.model import neighborhood from jarabe.model.buddy import get_owner_instance @@ -57,9 +58,9 @@ class _ActivityIcon(CanvasIcon): size=style.STANDARD_ICON_SIZE): CanvasIcon.__init__(self, file_name=file_name, xo_color=xo_color, pixel_size=size) + self._model = model - self.connect('button-release-event', - self.__button_release_event_cb) + self.palette_invoker.props.toggle_palette = True def create_palette(self): primary_text = GLib.markup_escape_text(self._model.bundle.get_name()) @@ -75,23 +76,27 @@ class _ActivityIcon(CanvasIcon): private = self._model.props.private joined = get_owner_instance() in self._model.props.buddies + menu_box = PaletteMenuBox() + if joined: - item = MenuItem(_('Resume'), 'activity-start') + item = PaletteMenuItem(_('Resume')) + icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='activity-start') + item.set_image(icon) item.connect('activate', self.__palette_item_clicked_cb) - item.show() - palette.menu.append(item) + menu_box.append_item(item) elif not private: - item = MenuItem(_('Join'), 'activity-start') + item = PaletteMenuItem(_('Join')) + icon = Icon(icon_size=Gtk.IconSize.MENU, icon_name='activity-start') + item.set_image(icon) item.connect('activate', self.__palette_item_clicked_cb) - item.show() - palette.menu.append(item) + menu_box.append_item(item) + + palette.set_content(menu_box) + menu_box.show_all() self.connect_to_palette_pop_events(palette) return palette - def __button_release_event_cb(self, widget, event): - self.props.palette.popup(immediate=True, state=Palette.SECONDARY) - def __palette_item_clicked_cb(self, item): bundle = self._model.get_bundle() misc.launch(bundle, activity_id=self._model.activity_id, |