diff options
author | Oli <olivier.belanger@umontreal.ca> | 2007-07-18 03:44:09 (GMT) |
---|---|---|
committer | Oli <olivier.belanger@umontreal.ca> | 2007-07-18 03:44:09 (GMT) |
commit | bdd421db597205435873d44a4a20c14715a35ab8 (patch) | |
tree | 3626b714b3a4a91e43c2fddd52691e2a7e90787e | |
parent | d328b61ca6d750984d1a396c53c2b4fa9233d82f (diff) |
loopSettings popup
-rw-r--r-- | Edit/Properties.py | 4 | ||||
-rw-r--r-- | Util/LoopSettings.py | 104 | ||||
-rw-r--r-- | miniTamTam/miniTamTamMain.py | 29 |
3 files changed, 119 insertions, 18 deletions
diff --git a/Edit/Properties.py b/Edit/Properties.py index be47286..7e098aa 100644 --- a/Edit/Properties.py +++ b/Edit/Properties.py @@ -12,11 +12,11 @@ import Config Tooltips = Config.Tooltips() class Properties( gtk.VBox ): - def __init__( self, noteDB, doneHandler, popup ): + def __init__( self, noteDB, popup ): gtk.VBox.__init__( self ) self.tooltips = gtk.Tooltips() self.noteDB = noteDB - self.doneHandler = doneHandler + #self.doneHandler = doneHandler self.popup = popup self.popup.resize( 545, 378 ) diff --git a/Util/LoopSettings.py b/Util/LoopSettings.py index 3e95af9..acbdecf 100644 --- a/Util/LoopSettings.py +++ b/Util/LoopSettings.py @@ -6,36 +6,112 @@ import Config Tooltips = Config.Tooltips() class LoopSettings( gtk.VBox ): - def __init__( self, doneHandler, popup ): + def __init__( self, popup ): gtk.VBox.__init__( self ) self.tooltips = gtk.Tooltips() - self.doneHandler = doneHandler self.popup = popup - self.popup.resize( 545, 378 ) - self.settingsBox = RoundHBox(fillcolor=Config.INST_BCK_COLOR, bordercolor=Config.PANEL_BCK_COLOR) - self.settingsBox.set_radius(10) + self.settingsBox = gtk.HBox() self.pack_start(self.settingsBox) self.fixed = gtk.Fixed() self.settingsBox.pack_start(self.fixed) + self.mainBox = gtk.VBox() + self.controlsBox = gtk.HBox() - startBox = RoundVBox(fillcolor=Config.PANEL_COLOR, bordercolor=Config.INST_BCK_COLOR) - startBox.set_border_width(3) - startBox.set_radius(10) - self.startAdjust = gtk.Adjustment( 0.5, 0, 1, .1, .1, 0) + self.GUI = {} + + nameBox = gtk.VBox() + self.nameEntry = gtk.Entry() + self.nameEntry.set_text("name_of_the_sound") + nameBox.pack_start(self.nameEntry) + self.mainBox.pack_start(nameBox, False, False, 5) + + loopedBox = gtk.HBox() + loopedLabel = gtk.Label("Looped sound: ") + loopedBox.pack_start(loopedLabel) + loopedToggle = ImageToggleButton(Config.IMAGE_ROOT+"checkOff.svg",Config.IMAGE_ROOT+"checkOn.svg") + loopedBox.pack_start(loopedToggle) + self.mainBox.pack_start(loopedBox, False, False, 5) + + categoryBox = gtk.HBox() + categoryMenu = gtk.MenuBar() + menu = gtk.Menu() + for cat in Config.CATEGORIES: + if cat != 'all': + entry = gtk.MenuItem(cat) + menu.append(entry) + entry.connect("activate", self.handleCategory, cat) + entry.show() + #categoryBox.pack_start(categoryMenu) + self.categoryButton = gtk.Button("Category") + self.categoryButton.connect_object("event", self.categoryBtnPress, menu) + categoryBox.pack_end(self.categoryButton) + self.mainBox.pack_start(categoryBox, False, False, 5) + + startBox = gtk.VBox() + self.startAdjust = gtk.Adjustment( 0.01, 0, 0.5, .01, .01, 0) self.GUI['startSlider'] = ImageVScale( Config.TAM_TAM_ROOT + "/Resources/Images/sliderEditVolume.png", self.startAdjust, 7 ) self.startAdjust.connect("value-changed", self.handleStart) - self.GUI['startSlider'].set_snap( 0.1 ) self.GUI['startSlider'].set_inverted(True) self.GUI['startSlider'].set_size_request(50, 200) - self.handleStart( self.startAdjust ) + self.startEntry = gtk.Entry() + self.startEntry.set_width_chars(4) + self.handleStart( self.startAdjust ) startBox.pack_start(self.GUI['startSlider'], True, True, 5) - self.controlsBox.pack_start(startBox) + startBox.pack_start(self.startEntry, True, True, 5) + self.controlsBox.pack_start(startBox) + + endBox = gtk.VBox() + self.endAdjust = gtk.Adjustment( 0.9, 0, 1, .01, .01, 0) + self.GUI['endSlider'] = ImageVScale( Config.TAM_TAM_ROOT + "/Resources/Images/sliderEditVolume.png", self.endAdjust, 7 ) + self.endAdjust.connect("value-changed", self.handleEnd) + self.GUI['endSlider'].set_inverted(True) + self.GUI['endSlider'].set_size_request(50, 200) + self.endEntry = gtk.Entry() + self.endEntry.set_width_chars(4) + self.handleEnd( self.endAdjust ) + endBox.pack_start(self.GUI['endSlider'], True, True, 5) + endBox.pack_start(self.endEntry, True, True, 5) + self.controlsBox.pack_start(endBox) - self.fixed.put( self.controlsBox, 0, 0 ) + durBox = gtk.VBox() + self.durAdjust = gtk.Adjustment( 0.01, 0, 0.2, .01, .01, 0) + self.GUI['durSlider'] = ImageVScale( Config.TAM_TAM_ROOT + "/Resources/Images/sliderEditVolume.png", self.durAdjust, 7 ) + self.durAdjust.connect("value-changed", self.handleDur) + self.GUI['durSlider'].set_inverted(True) + self.GUI['durSlider'].set_size_request(50, 200) + self.durEntry = gtk.Entry() + self.durEntry.set_width_chars(4) + self.handleDur( self.durAdjust ) + durBox.pack_start(self.GUI['durSlider'], True, True, 5) + durBox.pack_start(self.durEntry, True, True, 5) + self.controlsBox.pack_start(durBox) + + #self.mainBox.pack_start(nameBox) + self.mainBox.pack_start(self.controlsBox, False, False, 5) + self.fixed.put( self.mainBox, 0, 0 ) self.show_all() - + + def categoryBtnPress(self, widget, event): + if event.type == gtk.gdk.BUTTON_PRESS: + widget.popup(None, None, None, event.button, event.time) + return True + return False + + def handleCategory(self, widget, category): + self.category = category + self.categoryButton.set_label(self.category) + + + def handleStart(self, widget, data=None): + self.startEntry.set_text(str(self.startAdjust.value)) + + def handleEnd(self, widget, data=None): + self.endEntry.set_text(str(self.endAdjust.value)) + + def handleDur(self, widget, data=None): + self.durEntry.set_text(str(self.durAdjust.value))
\ No newline at end of file diff --git a/miniTamTam/miniTamTamMain.py b/miniTamTam/miniTamTamMain.py index 15078e5..97abe45 100644 --- a/miniTamTam/miniTamTamMain.py +++ b/miniTamTam/miniTamTamMain.py @@ -24,6 +24,7 @@ from Util.CSoundNote import CSoundNote from Util import NoteDB from Util.NoteDB import Note from Util.CSoundClient import new_csound_client +from Util.LoopSettings import LoopSettings from Fillin import Fillin from KeyboardStandAlone import KeyboardStandAlone @@ -90,6 +91,14 @@ class miniTamTamMain(SubActivity): self.enableKeyboard() self.setInstrument(self.instrument) + self.loopSettingsPopup = gtk.Window(gtk.WINDOW_POPUP) + self.loopSettingsPopup.set_modal(True) + self.loopSettingsPopup.add_events( gtk.gdk.BUTTON_PRESS_MASK ) + self.loopSettingsPopup.connect("button-release-event", lambda w,e:self.doneLoopSettingsPopup() ) + self.loopSettings = LoopSettings( self.loopSettingsPopup ) + self.loopSettingsPopup.add( self.loopSettings ) + + self.drawInstrumentButtons() self.drawSliders() self.drawGeneration() @@ -270,9 +279,14 @@ class miniTamTamMain(SubActivity): slidersBoxSub.pack_start(volumeSliderBox) slidersBox.pack_start(slidersBoxSub) + generateBtnSub = gtk.HBox() generateBtn = ImageButton(Config.IMAGE_ROOT + 'dice.png', clickImg_path = Config.IMAGE_ROOT + 'diceblur.png') generateBtn.connect('button-press-event', self.handleGenerateBtn) - slidersBox.pack_start(generateBtn) + self.loopSettingsBtn = ImageToggleButton(Config.IMAGE_ROOT + 'dice.png', Config.IMAGE_ROOT + 'diceblur.png') + self.loopSettingsBtn.connect('toggled', self.handleLoopSettingsBtn) + generateBtnSub.pack_start(self.loopSettingsBtn) + generateBtnSub.pack_start(generateBtn) + slidersBox.pack_start(generateBtnSub) self.tooltips.set_tip(generateBtn,Tooltips.GEN) #Generation Button Box @@ -308,7 +322,18 @@ class miniTamTamMain(SubActivity): self.rightBox.pack_start(slidersBox, True) self.rightBox.pack_start(geneButtonBox, True) - + + def doneLoopSettingsPopup(self): + if self.loopSettingsBtn.get_active(): + self.loopSettingsBtn.set_active(False) + + def handleLoopSettingsBtn(self, widget, data=None): + if widget.get_active(): + self.loopSettingsPopup.show() + self.loopSettingsPopup.move( 600, 400 ) + else: + self.loopSettingsPopup.hide() + def drawInstrumentButtons(self): self.instrumentPanelBox = gtk.HBox() # InstrumentPanel(elf.setInstrument,self.playInstrumentNote, False, self.micRec, self.synthRec) |