Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/sugar/activity/activity.py
diff options
context:
space:
mode:
authorAleksey 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)
commit095c732c9af0e756e1c2f1a69978b315c6961339 (patch)
tree5412e1444afd43eec730022739b3371ed09213c1 /src/sugar/activity/activity.py
parentd4cbd4150eef8f5e7be1866cb8c158c0621a7a0c (diff)
Add activity.share_button
Diffstat (limited to 'src/sugar/activity/activity.py')
-rw-r--r--src/sugar/activity/activity.py42
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)