Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-07-29 13:43:46 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2011-07-30 01:18:23 (GMT)
commitca73bb3e0ae508541c43bcf314515f45fa9f990a (patch)
tree005f6482d0c1b0f64bdf4625b7b77eb7fb29e597
parent079a25a9e3ef1070a9bf901053b8dd6367abdb02 (diff)
add support for new toolbars
-rw-r--r--SynthLab/SynthLabMain.py53
-rw-r--r--TamTamSynthLab.py51
2 files changed, 86 insertions, 18 deletions
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 = '<Ctrl>q'
+ self.toolbox.toolbar.insert(stop_button, -1)
+ stop_button.show()