diff options
author | Aleksey Lim <alsroot@member.fsf.org> | 2009-07-28 11:50:36 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@member.fsf.org> | 2009-07-28 11:50:36 (GMT) |
commit | 095c732c9af0e756e1c2f1a69978b315c6961339 (patch) | |
tree | 5412e1444afd43eec730022739b3371ed09213c1 /src/sugar/activity/activity.py | |
parent | d4cbd4150eef8f5e7be1866cb8c158c0621a7a0c (diff) |
Add activity.share_button
Diffstat (limited to 'src/sugar/activity/activity.py')
-rw-r--r-- | src/sugar/activity/activity.py | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/src/sugar/activity/activity.py b/src/sugar/activity/activity.py index 692b537..72691b1 100644 --- a/src/sugar/activity/activity.py +++ b/src/sugar/activity/activity.py @@ -61,7 +61,7 @@ import dbus import dbus.service import cjson -from sugar import util +from sugar import util from sugar.presence import presenceservice from sugar.activity.activityservice import ActivityService from sugar.activity.namingalert import NamingAlert @@ -74,6 +74,7 @@ from sugar.graphics.alert import Alert from sugar.graphics.icon import Icon from sugar.graphics.xocolor import XoColor from sugar.graphics.toolbar import Toolbar, ToolbarButton +from sugar.graphics.radiopalette import RadioPalette, RadioMenuButton from sugar.datastore import datastore from sugar.session import XSMPClient from sugar import wm @@ -1098,3 +1099,42 @@ def paste_button(**kwargs): paste.set_tooltip(_('Paste')) paste.show() return paste + +def share_button(activity, **kwargs): + quiet_trigger = [] + + def neighborhood_cb(): + if quiet_trigger: + return + activity.share() + + palette = RadioPalette() + private = palette.append( + icon_name='zoom-home', + tooltip=_('Private')) + neighborhood = palette.append( + icon_name='zoom-neighborhood', + tooltip=_('My Neighborhood'), + toggled_cb=neighborhood_cb) + + def update_share(): + quiet_trigger.append(True) + + logging.error(private.props.sensitive) + + if activity.get_shared(): + private.props.sensitive = False + neighborhood.props.sensitive = False + neighborhood.props.active = True + logging.error(private.props.sensitive) + else: + private.props.sensitive = True + neighborhood.props.sensitive = True + private.props.active = True + + quiet_trigger.pop() + + activity.connect('shared', lambda activity: update_share()) + activity.connect('joined', lambda activity: update_share()) + + return RadioMenuButton(palette=palette) |