Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Speak.activity/port/activity.py
diff options
context:
space:
mode:
Diffstat (limited to 'Speak.activity/port/activity.py')
-rw-r--r--Speak.activity/port/activity.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/Speak.activity/port/activity.py b/Speak.activity/port/activity.py
index 86823a2..0392fef 100644
--- a/Speak.activity/port/activity.py
+++ b/Speak.activity/port/activity.py
@@ -22,6 +22,7 @@ import gobject
import sugar.activity.activity as toolkit
from sugar.presence.sugartubeconn import SugarTubeConnection
from sugar.graphics.alert import ConfirmationAlert, NotifyAlert
+from sugar.activity import activity
_NEW_INSTANCE = 0
_NEW_INSTANCE = 1
@@ -70,6 +71,10 @@ class Activity(toolkit.Activity):
"""
raise NotImplementedError
+ def on_save_instance(self, cb, *args):
+ """ Register callback which will be invoked before save_instance """
+ self.__on_save_instance.append((cb, args))
+
def share_instance(self, connection, is_initiator):
"""
Activity was shared/joined.
@@ -144,6 +149,7 @@ class Activity(toolkit.Activity):
self.__resume_filename = None
self.__postponed_share = []
+ self.__on_save_instance = []
self._cursor = None
self.set_cursor(gtk.gdk.LEFT_PTR)
@@ -180,6 +186,8 @@ class Activity(toolkit.Activity):
def write_file(self, filepath):
"""Subclass should not override this method"""
+ for cb, args in self.__on_save_instance:
+ cb(*args)
self.save_instance(filepath)
def __map_canvasactivity_cb(self, widget):
@@ -296,3 +304,14 @@ class SharedActivity(Activity):
group_iface=self._text_chan[telepathy.CHANNEL_INTERFACE_GROUP])
self._share(tube_conn, self.__initiator)
+
+class ActivityToolbox(activity.ActivityToolbox):
+ def __init__(self, activity_object):
+ activity.ActivityToolbox.__init__(self, activity_object)
+
+ def get_bars(self):
+ nb = self._notebook
+ return [nb.get_nth_page(i).get_child().get_child() \
+ for i in range(nb.get_n_pages())]
+
+ bars = property(get_bars)