Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2009-06-03 22:38:31 (GMT)
committer Aleksey Lim <alsroot@member.fsf.org>2009-06-03 22:38:31 (GMT)
commit470eb6ae2d64d25744d78116fc8865ea00f3c0ad (patch)
tree21bcf1e50b44555a739c3405ed2847411490714c
parentf9e90e8225b828975350f1d528234b1df6b1238e (diff)
Tamtam Mini control bars get really small #924 #285
-rw-r--r--TamTamMini.activity/Mini/miniTamTamMain.py98
-rw-r--r--common/Tooltips.py5
-rw-r--r--common/Util/Instruments.py12
-rw-r--r--common/port/scrolledbox.py15
4 files changed, 77 insertions, 53 deletions
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: