Changes

Line 51: Line 51:     
[[Category:Activity Team]]
 
[[Category:Activity Team]]
 +
 +
=== Sugar toolbar version ===
 +
 +
Sugar toolbars changed in Sucrose v0.86. You can detect which version you are running by checking for an ImportError:
 +
 +
try: # 0.86 toolbar widgets
 +
    from sugar.bundle.activitybundle import ActivityBundle
 +
    from sugar.activity.widgets import ActivityToolbarButton
 +
    from sugar.activity.widgets import StopButton
 +
    from sugar.graphics.toolbarbox import ToolbarBox
 +
    from sugar.graphics.toolbarbox import ToolbarButton
 +
    _new_sugar_system = True
 +
except ImportError:
 +
    _new_sugar_system = False
 +
 +
Use the flag to determine whether to create old-style or new toolbars:
 +
 +
if _new_sugar_system:
 +
    # Use 0.86+ toolbar design
 +
    toolbar_box = ToolbarBox()
 +
    ...
 +
else:
 +
    # Use pre-0.86 toolbar design
 +
    self.toolbox = activity.ActivityToolbox(self)
 +
    ...
 +
 +
You can share callbacks between versions, but take care to make sure you are using the proper context:
 +
# 0.86+
 +
fullscreen_button.connect('clicked', self._do_fullscreen_cb)
 +
or
 +
# pre-0.86
 +
self.viewToolbar = ViewToolbar(self)
 +
 +
class ViewToolbar(gtk.Toolbar):
 +
    def __init__(self, pc):
 +
        self.activity = pc
 +
 +
        self.activity.fullscreen_button.connect('clicked', self.activity._do_fullscreen_cb)