From 470eb6ae2d64d25744d78116fc8865ea00f3c0ad Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Wed, 03 Jun 2009 22:38:31 +0000 Subject: Tamtam Mini control bars get really small #924 #285 --- diff --git a/TamTamMini.activity/Mini/miniTamTamMain.py b/TamTamMini.activity/Mini/miniTamTamMain.py index 6927658..bc0ea37 100644 --- a/TamTamMini.activity/Mini/miniTamTamMain.py +++ b/TamTamMini.activity/Mini/miniTamTamMain.py @@ -8,9 +8,12 @@ import time import xdrlib import commands +import sugar.graphics.style as style + from types import * from math import sqrt from common.Util.NoteDB import PARAMETER +from common.port.scrolledbox import VScrolledBox import common.Util.Network as Net @@ -25,6 +28,7 @@ from common.Util.NoteDB import Note from common.Util.CSoundClient import new_csound_client from common.Util.LoopSettings import LoopSettings from common.Util import InstrumentDB +from common.Util.Instruments import DRUMCOUNT, DRUMTIPS from Fillin import Fillin from KeyboardStandAlone import KeyboardStandAlone @@ -164,8 +168,6 @@ class miniTamTamMain(gtk.EventBox): slidersBox = RoundVBox(fillcolor = Config.PANEL_COLOR, bordercolor = Config.PANEL_BCK_COLOR, radius = Config.PANEL_RADIUS) slidersBox.set_border_width(Config.PANEL_SPACING) - geneButtonBox = RoundHBox(fillcolor = Config.PANEL_COLOR, bordercolor = Config.PANEL_BCK_COLOR, radius = Config.PANEL_RADIUS) - geneButtonBox.set_border_width(Config.PANEL_SPACING) geneSliderBox = gtk.VBox() self.geneSliderBoxImgTop = gtk.Image() @@ -231,7 +233,11 @@ class miniTamTamMain(gtk.EventBox): slidersBoxSub.pack_start(volumeSliderBox) slidersBox.pack_start(slidersBoxSub) - generateBtnSub = gtk.HBox() + generateBtnSub = RoundHBox( + fillcolor=Config.PANEL_COLOR, + bordercolor=Config.PANEL_BCK_COLOR, + radius=Config.PANEL_RADIUS) + generateBtnSub.set_border_width(Config.PANEL_SPACING) #playImg = gtk.Image() #playImg.set_from_icon_name('media-playback-start', gtk.ICON_SIZE_LARGE_TOOLBAR) @@ -247,47 +253,51 @@ class miniTamTamMain(gtk.EventBox): generateBtnSub.pack_start(generateBtn) self.tooltips.set_tip(generateBtn,Tooltips.GEN) - #Generation Button Box - geneVBox = gtk.VBox() - geneTopBox = gtk.HBox() - geneMidBox = gtk.HBox() - geneLowBox = gtk.HBox() - - generationDrumBtn1 = ImageRadioButton(group = None , mainImg_path = Config.IMAGE_ROOT + 'drum1kit.png' , altImg_path = Config.IMAGE_ROOT + 'drum1kitselgen.png') - generationDrumBtn1.connect('clicked' , self.handleGenerationDrumBtn , 'drum1kit') - geneTopBox.pack_start(generationDrumBtn1) - generationDrumBtn2 = ImageRadioButton(group = generationDrumBtn1 , mainImg_path = Config.IMAGE_ROOT + 'drum2kit.png' , altImg_path = Config.IMAGE_ROOT + 'drum2kitselgen.png') - generationDrumBtn2.connect('clicked' , self.handleGenerationDrumBtn , 'drum2kit') - geneTopBox.pack_start(generationDrumBtn2) - generationDrumBtn3 = ImageRadioButton(group = generationDrumBtn1 , mainImg_path = Config.IMAGE_ROOT + 'drum3kit.png' , altImg_path = Config.IMAGE_ROOT + 'drum3kitselgen.png') - generationDrumBtn3.connect('clicked' , self.handleGenerationDrumBtn , 'drum3kit') - generationDrumBtn4 = ImageRadioButton(group = generationDrumBtn1 , mainImg_path = Config.IMAGE_ROOT + 'drum4kit.png' , altImg_path = Config.IMAGE_ROOT + 'drum4kitselgen.png') - generationDrumBtn4.connect('clicked' , self.handleGenerationDrumBtn , 'drum4kit') - geneLowBox.pack_start(generationDrumBtn3, True) - geneLowBox.pack_start(generationDrumBtn4, True) - generationDrumBtn5 = ImageRadioButton(group = generationDrumBtn1 , mainImg_path = Config.IMAGE_ROOT + 'drum5kit.png' , altImg_path = Config.IMAGE_ROOT + 'drum5kitselgen.png') - generationDrumBtn5.connect('clicked' , self.handleGenerationDrumBtn , 'drum5kit') - geneMidBox.pack_start(generationDrumBtn5, True) - generationDrumBtn6 = ImageRadioButton(group = generationDrumBtn1 , mainImg_path = Config.IMAGE_ROOT + 'drum6kit.png' , altImg_path = Config.IMAGE_ROOT + 'drum6kitselgen.png') - generationDrumBtn6.connect('clicked' , self.handleGenerationDrumBtn , 'drum6kit') - geneMidBox.pack_start(generationDrumBtn6, True) - geneVBox.pack_start(generateBtnSub, True) - geneVBox.pack_start(geneTopBox, True) - geneVBox.pack_start(geneMidBox, True) - geneVBox.pack_start(geneLowBox, True) - geneButtonBox.pack_start(geneVBox,True) - self.tooltips.set_tip(generationDrumBtn1,Tooltips.JAZZ) - self.tooltips.set_tip(generationDrumBtn2,Tooltips.ARAB) - self.tooltips.set_tip(generationDrumBtn3,Tooltips.AFRI) - self.tooltips.set_tip(generationDrumBtn4,Tooltips.ELEC) - self.tooltips.set_tip(generationDrumBtn5,Tooltips.BRES) - - self.rightBox.pack_start(slidersBox, True) - self.rightBox.pack_start(geneButtonBox, False) - - drum_size = generationDrumBtn1.get_size_request() - geneButtonBox.set_size_request(-1, drum_size[1]*3 + - max(generateBtn.get_size_request()[1], self.playButton.get_size_request()[1])) + # drums + + drum_box = RoundVBox( + fillcolor=Config.PANEL_COLOR, + bordercolor=Config.PANEL_BCK_COLOR, + radius=Config.PANEL_RADIUS) + drum_box.set_border_width(Config.PANEL_SPACING) + + drum_scroll = VScrolledBox(scroll_policy=gtk.POLICY_NEVER) + drum_scroll.set_viewport(drum_box) + drum_scroll.modify_bg(gtk.STATE_NORMAL, + style.Color(Config.PANEL_BCK_COLOR).get_gdk_color()) + drum_i = 0 + drum_group = None + + for row in range(DRUMCOUNT/2 + DRUMCOUNT%2): + row_box = gtk.HBox() + drum_box.pack_start(row_box, False) + + for col in range(2): + if drum_i >= DRUMCOUNT: + break + + drum = ImageRadioButton( + group=drum_group, + mainImg_path=Config.IMAGE_ROOT + \ + ('drum%dkit.png' % (drum_i+1)), + altImg_path=Config.IMAGE_ROOT + \ + ('drum%dkitselgen.png' % (drum_i+1))) + drum.connect('clicked', self.handleGenerationDrumBtn, + 'drum%dkit' % (drum_i+1)) + row_box.pack_start(drum) + + self.tooltips.set_tip(drum, DRUMTIPS[drum_i]) + + if not drum_group: + drum_group = drum + drum_i += 1 + + self.rightBox.pack_start(slidersBox, False) + self.rightBox.pack_start(generateBtnSub, False) + self.rightBox.pack_start(drum_scroll) + + drum_size = drum_group.get_size_request() + slidersBox.set_size_request(-1, drum_size[1]*2) self.rightBox.set_size_request(drum_size[0]*2, -1) def loopSettingsChannel(self, channel, value): diff --git a/common/Tooltips.py b/common/Tooltips.py index e59e88d..42511c2 100644 --- a/common/Tooltips.py +++ b/common/Tooltips.py @@ -118,11 +118,6 @@ class Tooltips: COMPL = _('Complexity of beat') BEAT = _('Beats per bar') TEMPO = _('Tempo') - JAZZ = _('Jazz / Rock Kit') - AFRI = _('African Kit') - ARAB = _('Arabic Kit') - BRES = _('South American Kit') - ELEC = _('Electronic Kit') RECMIC = _('Record with the microphone') RECLAB = _('Open SynthLab to create noise') MT_RECORDBUTTONS = [_('Record mic into slot 1'), _('Record mic into slot 2'), _('Record mic into slot 3'), _('Record mic into slot 4')] diff --git a/common/Util/Instruments.py b/common/Util/Instruments.py index 1bbf8b5..83def45 100644 --- a/common/Util/Instruments.py +++ b/common/Util/Instruments.py @@ -1,4 +1,6 @@ import os +from gettext import gettext as _ + import common.Config as Config import common.Util.InstrumentDB as InstrumentDB from sugar.activity.activity import get_bundle_name @@ -295,3 +297,13 @@ _addInstrument( "drum3kit", 0, 0, "percussions", 0, 0, 0, 1, DRUM3KIT ) _addInstrument( "drum4kit", 0, 0, "percussions", 0, 0, 0, 1, DRUM4KIT ) _addInstrument( "drum5kit", 0, 0, "percussions", 0, 0, 0, 1, DRUM5KIT ) _addInstrument( "drum6kit", 0, 0, "percussions", 0, 0, 0, 1, DRUM6KIT ) + +DRUMTIPS = [ + _('Jazz / Rock Kit'), + _('African Kit'), + _('Arabic Kit'), + _('South American Kit'), + _('Electronic Kit'), + _('Nepali') ] + +DRUMCOUNT = 6 diff --git a/common/port/scrolledbox.py b/common/port/scrolledbox.py index 0ed8e36..db38b51 100644 --- a/common/port/scrolledbox.py +++ b/common/port/scrolledbox.py @@ -40,6 +40,7 @@ class ScrolledBox(gtk.EventBox): self._aviewport = None self._aviewport_sig = None self._arrows_policy = arrows_policy + self._scroll_policy = scroll_policy self._left = None self._right = None @@ -56,7 +57,8 @@ class ScrolledBox(gtk.EventBox): self._left = ScrollButton('go-left') else: self._left = ScrollButton('go-up') - self._left.connect('clicked', self._scroll_cb, 'left') + self._left.connect('clicked', self._scroll_cb, + gtk.gdk.SCROLL_LEFT) box.pack_start(self._left, False, False, 0) self._scrolled = gtk.ScrolledWindow() @@ -79,7 +81,8 @@ class ScrolledBox(gtk.EventBox): self._right = ScrollButton('go-right') else: self._right = ScrollButton('go-down') - self._right.connect('clicked', self._scroll_cb, 'right') + self._right.connect('clicked', self._scroll_cb, + gtk.gdk.SCROLL_RIGHT) box.pack_start(self._right, False, False, 0) def modify_fg(self, state, bg): @@ -144,10 +147,14 @@ class ScrolledBox(gtk.EventBox): event.direction = gtk.gdk.SCROLL_UP if event.direction == gtk.gdk.SCROLL_RIGHT: event.direction = gtk.gdk.SCROLL_DOWN + + if self._scroll_policy == gtk.POLICY_NEVER: + self._scroll_cb(None, event.direction) + return False - def _scroll_cb(self, widget, data): - if data == 'left': + def _scroll_cb(self, widget, direction): + if direction in (gtk.gdk.SCROLL_LEFT, gtk.gdk.SCROLL_UP): val = max(self._adj.get_property('lower'), self._adj.get_value() - self._adj.get_property('page_increment')) else: -- cgit v0.9.1