Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Edit
diff options
context:
space:
mode:
authorWalter Bender <walter.bender@gmail.com>2011-08-08 11:45:25 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2011-08-08 21:11:05 (GMT)
commitac062810942b190e6b12807c2d3ec6e0f487558f (patch)
tree03566a6e1b163dca5f439ca8adc4cb34215dfd60 /Edit
parent2198b7c76988b9f8688e93b74e66486613bbda5f (diff)
refactoring of toolbar layout so that common tools are on the main toolbar
I did another refactoring of the TamTamEdit toolbars this weekend. I like the new organization from a user perspective: the frequently used tools -- playback and edit -- are on the main toolbar; secondary toolbars contain record, generate, and properties. See http://wiki.sugarlabs.org/go/Talk:Design_Team/Toolbar_Catalog#Proposed_toolbars_for_TamTamEdit
Diffstat (limited to 'Edit')
-rw-r--r--Edit/EditToolbars.py85
-rw-r--r--Edit/MainWindow.py39
2 files changed, 71 insertions, 53 deletions
diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py
index 1d625af..625ad85 100644
--- a/Edit/EditToolbars.py
+++ b/Edit/EditToolbars.py
@@ -90,6 +90,13 @@ def common_buttons(toolbar, edit):
toolbar.insert(toolbar.paintButton, -1)
toolbar.paintButton.show()
+ # Duplicate button
+ toolbar.duplicateButton = ToggleToolButton('duplicate')
+ toolbar.duplicateButton.connect('toggled', edit.handleDuplicate)
+ toolbar.insert(toolbar.duplicateButton, -1)
+ toolbar.duplicateButton.show()
+ toolbar.duplicateButton.set_tooltip(_('Duplicate'))
+
class mainToolbar(gtk.Toolbar):
def __init__(self, edit):
@@ -102,8 +109,32 @@ class mainToolbar(gtk.Toolbar):
common_buttons(self, self.edit)
-class toolsToolbar(gtk.Toolbar):
- def __init__(self, edit, add_common_buttons=True):
+class generateToolbar(gtk.Toolbar):
+ def __init__(self, edit):
+ gtk.Toolbar.__init__(self)
+
+ self.edit = edit
+
+ self.tooltips = gtk.Tooltips()
+
+ # BigGeneration button
+ self.bigGenerationButton = ToolButton('diceB')
+ self.bigGenerationButton.connect('clicked', self.edit.createNewTune)
+ self.insert(self.bigGenerationButton, -1)
+ self.bigGenerationButton.show()
+ self.bigGenerationButton.set_tooltip(_('Generate Tune'))
+
+ # Generation button
+ self._generationPalette = generationPalette(_('Generation'), self.edit)
+ self.generationButton = ToggleToolButton('dice')
+ #self.generationButton.connect(None)
+ self.generationButton.set_palette(self._generationPalette)
+ self.insert(self.generationButton, -1)
+ self.generationButton.show()
+
+
+class recordToolbar(gtk.Toolbar):
+ def __init__(self, edit):
gtk.Toolbar.__init__(self)
self.edit = edit
@@ -126,18 +157,13 @@ class toolsToolbar(gtk.Toolbar):
self.recordOggButton.show()
self.recordOggButton.set_tooltip(_('Record to ogg'))
- self.separator = gtk.SeparatorToolItem()
- self.separator.set_expand(False)
- self.separator.set_draw(True)
- self.insert(self.separator,-1)
- self.separator.show()
+class toolsToolbar(gtk.Toolbar):
+ def __init__(self, edit):
+ gtk.Toolbar.__init__(self)
- # Duplicate button
- self.duplicateButton = ToggleToolButton('duplicate')
- self.duplicateButton.connect('toggled', self.handleDuplicate)
- self.insert(self.duplicateButton, -1)
- self.duplicateButton.show()
- self.duplicateButton.set_tooltip(_('Duplicate'))
+ self.edit = edit
+
+ self.tooltips = gtk.Tooltips()
# Volume / Tempo button
self._volumeTempoPalette = volumeTempoPalette(_('Volume / Tempo'), self.edit)
@@ -146,44 +172,13 @@ class toolsToolbar(gtk.Toolbar):
self.insert(self.volumeTempoButton, -1)
self.volumeTempoButton.show()
- self.separator = gtk.SeparatorToolItem()
- self.separator.set_expand(False)
- self.separator.set_draw(True)
- self.insert(self.separator,-1)
- self.separator.show()
-
- # BigGeneration button
- self.bigGenerationButton = ToolButton('diceB')
- self.bigGenerationButton.connect('clicked', self.edit.createNewTune)
- self.insert(self.bigGenerationButton, -1)
- self.bigGenerationButton.show()
- self.bigGenerationButton.set_tooltip(_('Generate Tune'))
-
- # Generation button
- self._generationPalette = generationPalette(_('Generation'), self.edit)
- self.generationButton = ToggleToolButton('dice')
- #self.generationButton.connect(None)
- self.generationButton.set_palette(self._generationPalette)
- self.insert(self.generationButton, -1)
- self.generationButton.show()
-
# Properties button
self._propertiesPalette = propertiesPalette(_('Properties'), self.edit)
- self.propsButton = ToggleToolButton('props')
+ self.propsButton = ToggleToolButton('preferences-system')
self.propsButton.set_palette(self._propertiesPalette)
self.insert(self.propsButton, -1)
self.propsButton.show()
- def handleDuplicate(self, widget):
- if widget.get_active():
- if self.edit.getContext() == 0: # Page
- self.edit.pageDuplicate()
- elif self.edit.getContext() == 1: # Track
- self.edit.trackDuplicateWidget(widget)
- elif self.edit.getContext() == 2: # Note
- self.edit.noteDuplicateWidget(widget)
- widget.set_active(False)
-
class pointerPalette(Palette):
def __init__(self, label, edit):
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index 27538ba..a5a9daf 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -15,6 +15,8 @@ from common.Util.CSoundClient import new_csound_client
from common.Util.CSoundNote import CSoundNote
from EditToolbars import common_buttons
from EditToolbars import mainToolbar
+from EditToolbars import recordToolbar
+from EditToolbars import generateToolbar
from EditToolbars import toolsToolbar
from gettext import gettext as _
from subprocess import Popen
@@ -388,11 +390,6 @@ class MainWindow(gtk.EventBox):
if Config.HAVE_TOOLBOX:
from sugar.graphics.toolbarbox import ToolbarButton
- separator = gtk.SeparatorToolItem()
- separator.props.draw = True
- separator.set_expand(False)
- self.activity.toolbox.toolbar.insert(separator, -1)
-
common_buttons(self.activity.toolbox.toolbar, self)
self._activity_toolbar = self.activity.toolbox.toolbar
self._play_button = self.activity.toolbox.toolbar.playButton
@@ -403,6 +400,23 @@ class MainWindow(gtk.EventBox):
separator.set_expand(False)
self.activity.toolbox.toolbar.insert(separator, -1)
+ self._generateToolbar = generateToolbar(self)
+ self._generateToolbar.show()
+ generate_toolbar_button = ToolbarButton(label=_('Generate'),
+ page=self._generateToolbar,
+ icon_name='diceB')
+ generate_toolbar_button.show()
+ self.activity.toolbox.toolbar.insert(generate_toolbar_button, -1)
+
+ self._recordToolbar = recordToolbar(self)
+ self._recordToolbar.show()
+ record_toolbar_button = ToolbarButton(label=_('Record'),
+ page=self._recordToolbar,
+ icon_name='media-record')
+ record_toolbar_button.show()
+ self.activity.toolbox.toolbar.insert(record_toolbar_button, -1)
+ self._record_button = self._recordToolbar.recordButton
+
self._toolsToolbar = toolsToolbar(self)
self._toolsToolbar.show()
tools_toolbar_button = ToolbarButton(label=_('Tools'),
@@ -410,7 +424,6 @@ class MainWindow(gtk.EventBox):
icon_name='preferences-system')
tools_toolbar_button.show()
self.activity.toolbox.toolbar.insert(tools_toolbar_button, -1)
- self._record_button = self._toolsToolbar.recordButton
separator = gtk.SeparatorToolItem()
separator.props.draw = False
@@ -1549,6 +1562,16 @@ class MainWindow(gtk.EventBox):
#-----------------------------------
# callback functions
#-----------------------------------
+ def handleDuplicate(self, widget):
+ if widget.get_active():
+ if self.getContext() == 0: # Page
+ self.pageDuplicate()
+ elif self.getContext() == 1: # Track
+ self.trackDuplicateWidget(widget)
+ elif self.getContext() == 2: # Note
+ self.noteDuplicateWidget(widget)
+ widget.set_active(False)
+
def handleKeyboardShortcuts(self,event):
keyval = event.keyval
@@ -1858,9 +1881,9 @@ class MainWindow(gtk.EventBox):
self.context = context
if self.context == CONTEXT.NOTE:
- self._toolsToolbar.generationButton.set_sensitive(False)
+ self._generateToolbar.generationButton.set_sensitive(False)
else:
- self._toolsToolbar.generationButton.set_sensitive(True)
+ self._generateToolbar.generationButton.set_sensitive(True)
def getContext(self):
return self.context