Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Edit/EditToolbars.py261
-rw-r--r--Edit/MainWindow.py105
2 files changed, 173 insertions, 193 deletions
diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py
index e2cf5ad..1d625af 100644
--- a/Edit/EditToolbars.py
+++ b/Edit/EditToolbars.py
@@ -28,50 +28,92 @@ from random import *
Tooltips = Config.Tooltips()
+def common_buttons(toolbar, edit):
+ ''' Buttons on main toolbar (or multiple toolbars in old-style Sugar '''
+ # Play button
+ toolbar.playButton = ToggleToolButton('media-playback-start')
+ toolbar.playButtonHandler = toolbar.playButton.connect(
+ 'toggled', edit.handlePlayPause_cb)
+ toolbar.insert(toolbar.playButton, -1)
+ toolbar.playButton.show()
+ toolbar.playButton.set_tooltip(_('Play / Pause'))
+
+ # Stop button
+ toolbar.stopButton = ToolButton('media-playback-stop')
+ toolbar.stopButton.connect('clicked', edit.handleStop_cb)
+ toolbar.insert(toolbar.stopButton, -1)
+ toolbar.stopButton.show()
+ toolbar.stopButton.set_tooltip(_('Stop'))
+
+ # Play button Image
+ toolbar.playButtonImg = gtk.Image()
+ toolbar.playButtonImg.set_from_icon_name(
+ 'media-playback-start', gtk.ICON_SIZE_LARGE_TOOLBAR)
+ toolbar.playButtonImg.show()
+
+ # Pause button Image
+ toolbar.pauseButtonImg = gtk.Image()
+ toolbar.pauseButtonImg.set_from_icon_name(
+ 'media-playback-pause', gtk.ICON_SIZE_LARGE_TOOLBAR)
+ toolbar.pauseButtonImg.show()
+
+ toolbar.separator = gtk.SeparatorToolItem()
+ toolbar.separator.set_expand(False)
+ toolbar.separator.set_draw(True)
+ toolbar.insert(toolbar.separator,-1)
+ toolbar.separator.show()
+
+ # Pointer button
+ toolbar._pointerPalette = pointerPalette(_('Select tool'), edit)
+ toolbar.pointerButton = RadioToolButton(group = None)
+ toolbar.pointerButton.set_named_icon('edit-pointer')
+ toolbar.pointerButton.set_palette(toolbar._pointerPalette)
+ toolbar.pointerButton.connect('toggled', edit.handleToolClick, 'default')
+ toolbar.insert(toolbar.pointerButton, -1)
+ toolbar.pointerButton.show()
+
+ # Draw button
+ toolbar._drawPalette = drawPalette(_('Draw Tool'), edit)
+ toolbar.drawButton = RadioToolButton(group = toolbar.pointerButton)
+ toolbar.drawButton.set_named_icon('edit-pencil')
+ toolbar.drawButton.set_palette(toolbar._drawPalette)
+ toolbar.drawButton.connect('toggled', edit.handleToolClick, 'draw')
+ toolbar.insert(toolbar.drawButton, -1)
+ toolbar.drawButton.show()
+
+ # Paint button
+ toolbar._paintPalette = paintPalette(_('Paint Tool'), edit)
+ toolbar.paintButton = RadioToolButton(group = toolbar.pointerButton)
+ toolbar.paintButton.set_named_icon('edit-brush')
+ toolbar.paintButton.set_palette(toolbar._paintPalette)
+ toolbar.paintButton.connect('toggled', edit.handleToolClick, 'paint')
+ toolbar.insert(toolbar.paintButton, -1)
+ toolbar.paintButton.show()
+
class mainToolbar(gtk.Toolbar):
def __init__(self, edit):
gtk.Toolbar.__init__(self)
- def _insertSeparator(x = 1):
- for i in range(x):
- self.separator = gtk.SeparatorToolItem()
- self.separator.set_expand(True)
- self.separator.set_draw(True)
- self.insert(self.separator,-1)
- self.separator.show()
-
self.edit = edit
self.tooltips = gtk.Tooltips()
- # Play button
- self.playButton = ToggleToolButton('media-playback-start')
- self.playButtonHandler = self.playButton.connect('toggled', self.handlePlayPause)
- self.insert(self.playButton, -1)
- self.playButton.show()
- self.playButton.set_tooltip(_('Play / Pause'))
-
- # Stop button
- self.stopButton = ToolButton('media-playback-stop')
- self.stopButton.connect('clicked', self.handleStop)
- self.insert(self.stopButton, -1)
- self.stopButton.show()
- self.stopButton.set_tooltip(_('Stop'))
-
- # Play button Image
- self.playButtonImg = gtk.Image()
- self.playButtonImg.set_from_icon_name('media-playback-start', gtk.ICON_SIZE_LARGE_TOOLBAR)
- self.playButtonImg.show()
-
- # Pause button Image
- self.pauseButtonImg = gtk.Image()
- self.pauseButtonImg.set_from_icon_name('media-playback-pause', gtk.ICON_SIZE_LARGE_TOOLBAR)
- self.pauseButtonImg.show()
+ common_buttons(self, self.edit)
+
+
+class toolsToolbar(gtk.Toolbar):
+ def __init__(self, edit, add_common_buttons=True):
+ gtk.Toolbar.__init__(self)
+
+ self.edit = edit
+
+ self.tooltips = gtk.Tooltips()
# Record button
self.recordButton = ToggleToolButton('recordK')
- self.recordButton.connect('clicked', self.edit.handleKeyboardRecordButton)
+ self.recordButton.connect(
+ 'clicked', edit.handleKeyboardRecordButton)
self.insert(self.recordButton, -1)
self.recordButton.show()
self.recordButton.set_tooltip(_('Record keyboard'))
@@ -79,41 +121,16 @@ class mainToolbar(gtk.Toolbar):
if Config.FEATURES_OGG:
#RecordOgg button
self.recordOggButton = ToggleToolButton('recordO')
- self.recordOggButton.connect('clicked', self.handleRecord)
+ self.recordOggButton.connect('clicked', edit.handleRecord_cb)
self.insert(self.recordOggButton, -1)
self.recordOggButton.show()
self.recordOggButton.set_tooltip(_('Record to ogg'))
- _insertSeparator(1)
-
- # Pointer button
- self._pointerPalette = pointerPalette(_('Select tool'), self.edit)
- self.pointerButton = RadioToolButton(group = None)
- self.pointerButton.set_named_icon('edit-pointer')
- self.pointerButton.set_palette(self._pointerPalette)
- self.pointerButton.connect('toggled', self.edit.handleToolClick, 'default')
- self.insert(self.pointerButton, -1)
- self.pointerButton.show()
-
- # Draw button
- self._drawPalette = drawPalette(_('Draw Tool'), self.edit)
- self.drawButton = RadioToolButton(group = self.pointerButton)
- self.drawButton.set_named_icon('edit-pencil')
- self.drawButton.set_palette(self._drawPalette)
- self.drawButton.connect('toggled', self.edit.handleToolClick, 'draw')
- self.insert(self.drawButton, -1)
- self.drawButton.show()
-
- # Paint button
- self._paintPalette = paintPalette(_('Paint Tool'), self.edit)
- self.paintButton = RadioToolButton(group = self.pointerButton)
- self.paintButton.set_named_icon('edit-brush')
- self.paintButton.set_palette(self._paintPalette)
- self.paintButton.connect('toggled', self.edit.handleToolClick, 'paint')
- self.insert(self.paintButton, -1)
- self.paintButton.show()
-
- _insertSeparator(1)
+ self.separator = gtk.SeparatorToolItem()
+ self.separator.set_expand(False)
+ self.separator.set_draw(True)
+ self.insert(self.separator,-1)
+ self.separator.show()
# Duplicate button
self.duplicateButton = ToggleToolButton('duplicate')
@@ -129,90 +146,11 @@ class mainToolbar(gtk.Toolbar):
self.insert(self.volumeTempoButton, -1)
self.volumeTempoButton.show()
- def handleRecord(self, widget, data = None):
- if widget.get_active():
- self.playButton.set_active(False)
- self.edit.handleAudioRecord(widget, data)
- if widget.get_active():
- gobject.timeout_add( 500, self._startAudioRecord )
-
- def _startAudioRecord( self ):
- self.playButton.set_active(True)
- return False
-
- def handlePlayPause(self, widget, data = None):
- if widget.get_active():
- self.edit.handlePlay(widget)
- self.edit._generateToolbar.handler_block(self.edit._generateToolbar.playButtonHandler)
- self.edit._generateToolbar.playButton.set_active(True)
- self.edit._generateToolbar.handler_unblock(self.edit._generateToolbar.playButtonHandler)
- widget.set_icon_widget(self.pauseButtonImg)
- self.edit._generateToolbar.playButton.set_icon_widget(self.edit._generateToolbar.pauseButtonImg)
- else:
- self.edit.handleStop(widget, False)
- self.edit._generateToolbar.handler_block(self.edit._generateToolbar.playButtonHandler)
- self.edit._generateToolbar.playButton.set_active(False)
- self.edit._generateToolbar.handler_unblock(self.edit._generateToolbar.playButtonHandler)
- widget.set_icon_widget(self.playButtonImg)
- self.edit._generateToolbar.playButton.set_icon_widget(self.edit._generateToolbar.playButtonImg)
-
- def handleStop(self, widget, data = None):
- self.playButton.set_active(False)
- self.edit.handleStop(widget, True)
- if self.recordButton.get_active():
- self.recordButton.set_active(False)
-
- 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 generateToolbar(gtk.Toolbar):
- def __init__(self, edit):
- gtk.Toolbar.__init__(self)
-
- def _insertSeparator(x = 1):
- for i in range(x):
- self.separator = gtk.SeparatorToolItem()
- self.separator.set_expand(True)
- self.separator.set_draw(False)
- self.insert(self.separator,-1)
- self.separator.show()
-
- self.edit = edit
-
- self.tooltips = gtk.Tooltips()
-
- # Play button
- self.playButton = ToggleToolButton('media-playback-start')
- self.playButtonHandler = self.playButton.connect('toggled', self.handlePlayPause)
- self.insert(self.playButton, -1)
- self.playButton.show()
- self.playButton.set_tooltip(_('Play / Pause'))
-
- # Stop button
- self.stopButton = ToolButton('media-playback-stop')
- self.stopButton.connect('clicked', self.handleStop)
- self.insert(self.stopButton, -1)
- self.stopButton.show()
- self.stopButton.set_tooltip(_('Stop'))
-
- # Play button Image
- self.playButtonImg = gtk.Image()
- self.playButtonImg.set_from_icon_name('media-playback-start', gtk.ICON_SIZE_LARGE_TOOLBAR)
- self.playButtonImg.show()
-
- # Pause button Image
- self.pauseButtonImg = gtk.Image()
- self.pauseButtonImg.set_from_icon_name('media-playback-pause', gtk.ICON_SIZE_LARGE_TOOLBAR)
- self.pauseButtonImg.show()
-
- _insertSeparator(1)
+ 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')
@@ -236,27 +174,16 @@ class generateToolbar(gtk.Toolbar):
self.insert(self.propsButton, -1)
self.propsButton.show()
- def handlePlayPause(self, widget, data = None):
+ def handleDuplicate(self, widget):
if widget.get_active():
- self.edit.handlePlay(widget)
- self.edit._mainToolbar.handler_block(self.edit._mainToolbar.playButtonHandler)
- self.edit._mainToolbar.playButton.set_active(True)
- self.edit._mainToolbar.handler_unblock(self.edit._mainToolbar.playButtonHandler)
- widget.set_icon_widget(self.pauseButtonImg)
- self.edit._mainToolbar.playButton.set_icon_widget(self.edit._mainToolbar.pauseButtonImg)
- else:
- self.edit.handleStop(widget, False)
- self.edit._mainToolbar.handler_block(self.edit._mainToolbar.playButtonHandler)
- self.edit._mainToolbar.playButton.set_active(False)
- self.edit._mainToolbar.handler_unblock(self.edit._mainToolbar.playButtonHandler)
- widget.set_icon_widget(self.playButtonImg)
- self.edit._mainToolbar.playButton.set_icon_widget(self.edit._mainToolbar.playButtonImg)
-
- def handleStop(self, widget, data = None):
- self.edit.handleStop(widget, True)
- self.playButton.set_active(False)
- if self.edit._mainToolbar.recordButton.get_active():
- self.edit._mainToolbar.recordButton.set_active(False)
+ 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 98852db..27538ba 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -13,8 +13,9 @@ from common.Util.NoteDB import PARAMETER
from common.Util import ControlStream
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 generateToolbar
+from EditToolbars import toolsToolbar
from gettext import gettext as _
from subprocess import Popen
from sugar.graphics.palette import Palette, Invoker
@@ -387,32 +388,47 @@ class MainWindow(gtk.EventBox):
if Config.HAVE_TOOLBOX:
from sugar.graphics.toolbarbox import ToolbarButton
- self._mainToolbar = mainToolbar(self)
- self._mainToolbar.show()
- main_toolbar_button = ToolbarButton(label=_('Compose'),
- page=self._mainToolbar,
- icon_name='edit-brush')
- main_toolbar_button.show()
- self.activity.toolbox.toolbar.insert(main_toolbar_button, -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)
-
- main_toolbar_button.set_expanded(True)
+ 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
+ self._stop_button = self.activity.toolbox.toolbar.stopButton
+
+ separator = gtk.SeparatorToolItem()
+ separator.props.draw = True
+ separator.set_expand(False)
+ self.activity.toolbox.toolbar.insert(separator, -1)
+
+ self._toolsToolbar = toolsToolbar(self)
+ self._toolsToolbar.show()
+ tools_toolbar_button = ToolbarButton(label=_('Tools'),
+ page=self._toolsToolbar,
+ 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
+ separator.set_expand(True)
+ self.activity.toolbox.toolbar.insert(separator, -1)
else:
self._mainToolbar = mainToolbar(self)
self._mainToolbar.show()
self.activity.toolbox.add_toolbar(_('Compose'), self._mainToolbar)
+ self._activity_toolbar = self._mainToolbar
+ self._play_button = self._mainToolbar.playButton
+ self._stop_button = self._mainToolbar.stopButton
- self._generateToolbar = generateToolbar(self)
- self._generateToolbar.show()
- self.activity.toolbox.add_toolbar(_('Generate'),
- self._generateToolbar)
+ self._toolsToolbar = toolsToolbar(self)
+ self._toolsToolbar.show()
+ self.activity.toolbox.add_toolbar(_('Tools'),
+ self._toolsToolbar)
+ self._record_button = self._toolsToolbar.recordButton
self.activity.toolbox.set_current_toolbar(1)
@@ -639,6 +655,45 @@ class MainWindow(gtk.EventBox):
self.playing = True
+ def handlePlayPause_cb(self, widget, data=None):
+ if widget.get_active():
+ self.handlePlay(widget)
+ self._activity_toolbar.handler_block(
+ self._activity_toolbar.playButtonHandler)
+ self._play_button.set_active(True)
+ self._activity_toolbar.handler_unblock(
+ self._activity_toolbar.playButtonHandler)
+ widget.set_icon_widget(self._activity_toolbar.pauseButtonImg)
+ self._play_button.set_icon_widget(
+ self._activity_toolbar.pauseButtonImg)
+ else:
+ self.handleStop(widget, False)
+ self._activity_toolbar.handler_block(
+ self._activity_toolbar.playButtonHandler)
+ self._play_button.set_active(False)
+ self._activity_toolbar.handler_unblock(
+ self._activity_toolbar.playButtonHandler)
+ widget.set_icon_widget(self._activity_toolbar.playButtonImg)
+ self._play_button.set_icon_widget(
+ self._activity_toolbar.playButtonImg)
+
+ def handleStop_cb(self, widget, data=None):
+ self._play_button.set_active(False)
+ self.handleStop(widget, True)
+ if self._record_button.get_active():
+ self._record_button.set_active(False)
+
+ def handleRecord_cb(self, widget, data=None):
+ if widget.get_active():
+ self._play_button.set_active(False)
+ self.handleAudioRecord(widget, data)
+ if widget.get_active():
+ gobject.timeout_add(500, self._startAudioRecord)
+
+ def _startAudioRecord(self):
+ self._play_button.set_active(True)
+ return False
+
def _playPages(self, pages, startPage, startTick):
self.pages_playing = pages[:]
@@ -1803,9 +1858,9 @@ class MainWindow(gtk.EventBox):
self.context = context
if self.context == CONTEXT.NOTE:
- self._generateToolbar.generationButton.set_sensitive(False)
+ self._toolsToolbar.generationButton.set_sensitive(False)
else:
- self._generateToolbar.generationButton.set_sensitive(True)
+ self._toolsToolbar.generationButton.set_sensitive(True)
def getContext(self):
return self.context
@@ -2243,7 +2298,6 @@ class drumPalette(Popup):
self.volumeBox = gtk.HBox()
self.instrumentMainBox = gtk.HBox()
-
self.muteButton = gtk.CheckButton()
self.muteButton.connect("toggled",self.edit.handlemuteButton, self.trackID)
self.muteButton.connect("button-press-event",self.edit.handlemuteButtonRightClick, self.trackID)
@@ -2283,7 +2337,6 @@ class drumPalette(Popup):
self.edit.playInstrumentNote(drum)
self.popdown(True)
-
def setDrum(self, Drum):
self.skip = True
self.drumBox.set_active(self.drums.index(Drum))