From ca73bb3e0ae508541c43bcf314515f45fa9f990a Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Fri, 29 Jul 2011 13:43:46 +0000 Subject: add support for new toolbars --- diff --git a/SynthLab/SynthLabMain.py b/SynthLab/SynthLabMain.py index 85e453a..1b75fcf 100644 --- a/SynthLab/SynthLabMain.py +++ b/SynthLab/SynthLabMain.py @@ -21,7 +21,8 @@ from common.Util.ThemeWidgets import * from common.Util.CSoundClient import new_csound_client from SynthLab.SynthObjectsParameters import SynthObjectsParameters from SynthLab.SynthLabConstants import SynthLabConstants -from SynthLab.SynthLabToolbars import mainToolbar +from SynthLab.SynthLabToolbars import mainToolbar, main_toolbar_common +from SynthLab.SynthLabToolbars import recordToolbar from SynthLab.SynthLabToolbars import presetToolbar from common.Util.Trackpad import Trackpad from sugar.datastore import datastore @@ -71,14 +72,44 @@ class SynthLabMain(gtk.EventBox): self.journalCalled = True #Toolbars - self.activity.activity_toolbar.keep.show() - self._mainToolbar = mainToolbar(self.activity.toolbox, self) - self._presetToolbar = presetToolbar(self.activity.toolbox, self) - self.activity.toolbox.add_toolbar(_('Main'), self._mainToolbar) - self.activity.toolbox.add_toolbar(_('Presets'), self._presetToolbar) - self.activity.toolbox.set_current_toolbar(1) - self._mainToolbar.show() - self._presetToolbar.show() + if self.activity.have_toolbox: + from sugar.graphics.toolbarbox import ToolbarButton + + self.durationSliderAdj = main_toolbar_common( + self.activity.toolbox.toolbar, self) + + if Config.FEATURES_LAB: # Fixme: or Config.FEATURES_OGG: + self._recordToolbar = recordToolbar(self.activity.toolbox, self) + record_toolbar_button = ToolbarButton(label=_('Record'), + page=self._recordToolbar, + # Fixme: need an icon + icon_name='microphone') + self._recordToolbar.show() + record_toolbar_button.show() + self.activity.toolbox.toolbar.insert(record_toolbar_button, -1) + + self._presetToolbar = presetToolbar(self.activity.toolbox, self) + preset_toolbar_button = ToolbarButton(label=_('Presets'), + page=self._presetToolbar, + icon_name='text-x-generic') + self._presetToolbar.show() + preset_toolbar_button.show() + self.activity.toolbox.toolbar.insert(preset_toolbar_button, -1) + self.activity.add_stop_button() + else: + self.activity.activity_toolbar.keep.show() + self._mainToolbar = mainToolbar(self.activity.toolbox, self) + self.durationSliderAdj = self._mainToolbar.durationSliderAdj + self.activity.toolbox.add_toolbar(_('Main'), self._mainToolbar) + if Config.FEATURES_LAB: # Fixme: or Config.FEATURES_OGG: + self._recordToolbar = recordToolbar(self.activity.toolbox, self) + self.activity.toolbox.add_toolbar(_('Record'), + self._recordToolbar) + self._presetToolbar = presetToolbar(self.activity.toolbox, self) + self.activity.toolbox.add_toolbar(_('Presets'), self._presetToolbar) + self.activity.toolbox.set_current_toolbar(1) + self._mainToolbar.show() + self._presetToolbar.show() loopPointsTable = [] self.sample_names = [name for i in range( len( self.instrumentDB.instNamed ) ) for name in self.instrumentDB.instNamed.keys() if self.instrumentDB.instNamed[ name ].instrumentId == i ] @@ -605,7 +636,7 @@ class SynthLabMain(gtk.EventBox): for i in range(self.objectCount): self.updateBounds( i ) self.duration = 2 - self._mainToolbar.durationSliderAdj.set_value(self.duration) + self.durationSliderAdj.set_value(self.duration) self.connections = [] self.synthObjectsParameters.__init__() self.writeTables( self.synthObjectsParameters.types, self.synthObjectsParameters.controlsParameters, self.synthObjectsParameters.sourcesParameters, self.synthObjectsParameters.fxsParameters ) @@ -1515,7 +1546,7 @@ class SynthLabMain(gtk.EventBox): self.connections = state['connections'] #self.tempVerifyConnectionFormat() self.duration = state['duration'] - self._mainToolbar.durationSliderAdj.set_value(self.duration) + self.durationSliderAdj.set_value(self.duration) self.initializeConnections() self.controlToSrcConnections() diff --git a/TamTamSynthLab.py b/TamTamSynthLab.py index ab5cbac..287ad35 100644 --- a/TamTamSynthLab.py +++ b/TamTamSynthLab.py @@ -42,6 +42,15 @@ from common.Util.Trackpad import Trackpad from gettext import gettext as _ import commands from sugar.activity import activity +try: + from sugar.graphics.toolbarbox import ToolbarBox, ToolbarButton + HAVE_TOOLBOX = True +except ImportError: + HAVE_TOOLBOX = False + +if HAVE_TOOLBOX: + from sugar.activity.widgets import ActivityToolbarButton + from sugar.activity.widgets import StopButton class TamTamSynthLab(activity.Activity): @@ -62,14 +71,29 @@ class TamTamSynthLab(activity.Activity): self.connect('destroy', self.onDestroy) #load the sugar toolbar - toolbox = activity.ActivityToolbox(self) - self.set_toolbox(toolbox) - - self.activity_toolbar = toolbox.get_activity_toolbar() - self.activity_toolbar.share.hide() - self.activity_toolbar.keep.hide() + self.have_toolbox = HAVE_TOOLBOX + if HAVE_TOOLBOX: + # no sharing + self.max_participants = 1 + + self.toolbox = ToolbarBox() + activity_button = ActivityToolbarButton(self) + self.toolbox.toolbar.insert(activity_button, 0) + activity_button.show() + separator = gtk.SeparatorToolItem() + separator.props.draw = True + separator.set_expand(False) + self.toolbox.toolbar.insert(separator, -1) + separator.show() + else: + self.toolbox = activity.ActivityToolbox(self) + self.set_toolbox(self.toolbox) + # no sharing + self.activity_toolbar = self.toolbox.get_activity_toolbar() + self.activity_toolbar.share.hide() + self.activity_toolbar.keep.hide() - toolbox.show() + self.toolbox.show() self.trackpad.setContext('synthLab') self.synthLab = SynthLabMain(self) @@ -145,3 +169,16 @@ class TamTamSynthLab(activity.Activity): def write_file(self, file_path): self.synthLab.handleJournalSave(file_path) + + def add_stop_button(self): + ''' Add a stop button if using the new toolbars ''' + if self.have_toolbox: + separator = gtk.SeparatorToolItem() + separator.props.draw = False + separator.set_expand(True) + self.toolbox.toolbar.insert(separator, -1) + separator.show() + stop_button = StopButton(self) + stop_button.props.accelerator = 'q' + self.toolbox.toolbar.insert(stop_button, -1) + stop_button.show() -- cgit v0.9.1