Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel 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)
commit5540725660e41b90024137e712bb9748cdc937a4 (patch)
treebd56a89a2d3b1c42a9b4856a4d98c6a70260e195
parent40852091087ca2a263297a9988ce1ed69cc42df4 (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.py29
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,