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) |