Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/Edit/EditToolbars.py
diff options
context:
space:
mode:
authorOli <olivier.belanger@umontreal.ca>2007-08-21 04:29:06 (GMT)
committer Oli <olivier.belanger@umontreal.ca>2007-08-21 04:29:06 (GMT)
commit590fa7931ed2995a35ce54cc73b535828c00b167 (patch)
tree6ef6a684efe077844ba3bd3e62b5f0f5dd4f11e0 /Edit/EditToolbars.py
parent6e89806275673d7785aab0e0a44355eee678aea2 (diff)
pointer, draw and paint now working
Diffstat (limited to 'Edit/EditToolbars.py')
-rw-r--r--Edit/EditToolbars.py109
1 files changed, 63 insertions, 46 deletions
diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py
index 24b0ab2..3b98449 100644
--- a/Edit/EditToolbars.py
+++ b/Edit/EditToolbars.py
@@ -89,7 +89,7 @@ class mainToolbar(gtk.Toolbar):
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('edit-brush', group = self.pointerButton)
@@ -97,7 +97,7 @@ class mainToolbar(gtk.Toolbar):
self.paintButton.connect('toggled', self.edit.handleToolClick, 'paint')
self.insert(self.paintButton, -1)
self.paintButton.show()
-
+
_insertSeparator(4)
#Duplicate button
@@ -179,13 +179,14 @@ class pointerPalette(Palette):
self.edit = edit
self.pointerBox = gtk.VBox()
-
+
self.snapGridHBox = gtk.HBox()
self.snapGridImage = gtk.Image()
self.snapGridImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/grid.svg')
self.snapGridBox = BigComboBox()
self.snapGridBox.connect('changed', self.handleSnapGrid)
- durs = [_('3'), _('6'), _('12'), _('24'), _('48')]
+ self.gridDurs = [1, 2, 3, 4, 6, 12, 24]
+ durs = [_('1/12'), _('1/6'), _('1/4'), _('1/3'), _('1/2'), _('1'), _('2') ]
for dur in durs:
self.snapGridBox.append_item(durs.index(dur),dur)
self.snapGridBox.set_active(0)
@@ -196,15 +197,15 @@ class pointerPalette(Palette):
self.pointerBox.show_all()
self.set_content(self.pointerBox)
-
- def handleNoteDur(self, widget):
+
pass
#self.noteDur = widget.props.value
-
+
def handleSnapGrid(self, widget):
- pass
- #self.edit.trackInterface.setGrid(int(widget.props.value))
-
+ data = widget.props.value
+ grid = int(self.gridDurs[data])
+ self.edit.trackInterface.setPointerGrid(grid)
+
class drawPalette(Palette):
def __init__(self, label, edit):
Palette.__init__(self, label)
@@ -212,13 +213,14 @@ class drawPalette(Palette):
self.edit = edit
self.drawBox = gtk.VBox()
-
+
self.snapGridHBox = gtk.HBox()
self.snapGridImage = gtk.Image()
self.snapGridImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/grid.svg')
self.snapGridBox = BigComboBox()
self.snapGridBox.connect('changed', self.handleSnapGrid)
- durs = [_('3'), _('6'), _('12'), _('24'), _('48')]
+ self.gridDurs = [1, 2, 3, 4, 6, 12, 24]
+ durs = [_('1/12'), _('1/6'), _('1/4'), _('1/3'), _('1/2'), _('1'), _('2') ]
for dur in durs:
self.snapGridBox.append_item(durs.index(dur),dur)
self.snapGridBox.set_active(0)
@@ -229,15 +231,15 @@ class drawPalette(Palette):
self.drawBox.show_all()
self.set_content(self.drawBox)
-
- def handleNoteDur(self, widget):
+
pass
#self.noteDur = widget.props.value
-
+
def handleSnapGrid(self, widget):
- pass
- #self.edit.trackInterface.setGrid(int(widget.props.value))
-
+ data = widget.props.value
+ grid = int(self.gridDurs[data])
+ self.edit.trackInterface.setDrawGrid(grid)
+
class paintPalette(Palette):
def __init__(self, label, edit):
Palette.__init__(self, label)
@@ -251,22 +253,24 @@ class paintPalette(Palette):
self.noteDurImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/notedur.svg')
self.noteDurBox = BigComboBox()
self.noteDurBox.connect('changed', self.handleNoteDur)
- durs = [_('1/2'), _('1/4'), _('1/8'), _('1/16'), _('1/32')]
- for dur in durs:
- self.noteDurBox.append_item(durs.index(dur),dur)
- self.noteDurBox.set_active(0)
+ self.noteDurs = [1, 2, 3, 4, 6, 12, 24]
+ self.durs = [_('1/12'), _('1/6'), _('1/4'), _('1/3'), _('1/2'), _('1'), _('2') ]
+ for dur in self.durs:
+ self.noteDurBox.append_item(self.durs.index(dur),dur)
+ self.noteDurBox.set_active(2)
self.noteDurHBox.pack_start(self.noteDurImage, False, False, padding = 5)
self.noteDurHBox.pack_start(self.noteDurBox, False, False, padding = 5)
-
+
self.snapGridHBox = gtk.HBox()
self.snapGridImage = gtk.Image()
self.snapGridImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/grid.svg')
self.snapGridBox = BigComboBox()
self.snapGridBox.connect('changed', self.handleSnapGrid)
- durs = [_('3'), _('6'), _('12'), _('24'), _('48')]
+ self.gridDurs = [1, 2, 3, 4, 6, 12, 24]
+ durs = [_('1/12'), _('1/6'), _('1/4'), _('1/3'), _('1/2'), _('1'), _('2')]
for dur in durs:
self.snapGridBox.append_item(durs.index(dur),dur)
- self.snapGridBox.set_active(0)
+ self.snapGridBox.set_active(2)
self.snapGridHBox.pack_start(self.snapGridImage, False, False, padding = 5)
self.snapGridHBox.pack_start(self.snapGridBox, False, False, padding = 5)
@@ -275,15 +279,28 @@ class paintPalette(Palette):
self.paintBox.show_all()
self.set_content(self.paintBox)
-
+
+ def resizeNoteDur(self):
+ oldActive = self.noteDurBox.get_active()
+ len = self.snapGridBox.get_active()
+ self.noteDurBox.remove_all()
+ for dur in self.durs[0:len+1]:
+ self.noteDurBox.append_item(self.durs.index(dur), dur)
+ if oldActive <= len:
+ self.noteDurBox.set_active(oldActive)
+ else:
+ self.noteDurBox.set_active(len)
+
def handleNoteDur(self, widget):
- pass
- #self.noteDur = widget.props.value
-
+ data = widget.props.value
+ noteDur = int(self.noteDurs[data])
+ self.edit.trackInterface.setPaintNoteDur(noteDur)
+
def handleSnapGrid(self, widget):
- pass
- #data = processinsomeway(widget.props.value)
- #self.edit.trackInterface.setGrid(data)
+ data = widget.props.value
+ grid = int(self.gridDurs[data])
+ self.edit.trackInterface.setPaintGrid(grid)
+ self.resizeNoteDur()
class volumeTempoPalette(Palette):
def __init__(self, label, edit):
@@ -461,9 +478,9 @@ class generationPalette(Palette):
shift = 0
self.sampleNoteMask = gtk.gdk.bitmap_create_from_data( None, bitmap, pix.get_width(), pix.get_height() )
self.sampleNoteMask.endOffset = pix.get_width()-3
-
+
colormap = self.previewDA.get_colormap()
- self.colors = { "Beat_Line": colormap.alloc_color( "#959595", True, True ),
+ self.colors = { "Beat_Line": colormap.alloc_color( "#959595", True, True ),
"Note_Border": colormap.alloc_color( Config.BG_COLOR, True, True ),
"Note_Fill": colormap.alloc_color( Config.FG_COLOR, True, True ) }
@@ -530,7 +547,7 @@ class generationPalette(Palette):
############ generate a preview melody ##############
def previewGeneratorTemp(self, widget, parameters):
self.previewGenerator(parameters)
-
+
def previewGenerator(self, parameters):
makeRythm = GenerationRythm()
makePitch = GenerationPitch(parameters.pattern)
@@ -575,33 +592,33 @@ class generationPalette(Palette):
elif len( onsetList ) == 1:
durationSequence.append( ( barLength - onsetList[0] ) * Utils.prob2( table_duration ))
return durationSequence
-
+
def parametersChanged( self ):
if not self.drawingPreview:
self.drawPreview()
else:
self.parametersDirty = True
-
+
def drawPreview( self, force = False ):
if self.drawingPreview and not force:
return # should never happen
-
+
notes, beats = self.previewGenerator( self.getGenerationParameters() )
self.parametersDirty = False
- if force:
+ if force:
if self.drawingPreview:
self.predrawIdleAbort = True
self._idleDraw( notes, beats, True, True )
- else:
+ else:
self.drawingPreview = True
gobject.idle_add( self._idleDraw, notes, beats, True, False )
-
+
def _idleDraw( self, notes, beats, fresh, force ):
if self.predrawIdleAbort and not force:
self.predrawIdleAbort = False
return False
-
+
pixmap = self.predrawBuffer[self.predrawTarget]
if fresh:
@@ -621,7 +638,7 @@ class generationPalette(Palette):
if force: N = len(notes)
else: N = min( 3, len( notes ) ) # adjust this value to get a reasonable response
-
+
self.gc.set_clip_mask( self.sampleNoteMask )
for i in range( N ): # draw N notes
note = notes.pop()
@@ -673,14 +690,14 @@ class generationPalette(Palette):
self.drawPreview( True )
- def handlePreviewExpose( self, widget, event ):
+ def handlePreviewExpose( self, widget, event ):
widget.window.draw_drawable( self.gc, self.predrawBuffer[not self.predrawTarget], event.area.x, event.area.y, event.area.x, event.area.y, event.area.width, event.area.height )
def ticksToPixels( self, beats, ticks ):
return int(round( ticks * self.pixelsPerTick[beats] ))
def pitchToPixels( self, pitch ):
return int(round( ( Config.MAXIMUM_PITCH - pitch ) * self.pixelsPerPitch ))
-
+
class propertiesPalette(Palette):
def __init__(self, label, edit):
@@ -724,7 +741,7 @@ class propertiesPalette(Palette):
self.pageColorComboBox.connect('changed', self.handleColor)
self.pageColorBox.pack_start(self.pageColorLabel, False, False, padding = 5)
self.pageColorBox.pack_end(self.pageColorComboBox, False, False, padding = 55)
-
+
self.pageSeparator = gtk.HSeparator()
self.pageSeparator.set_size_request(20, -1)