Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@sugarlabs.org>2012-06-06 18:00:10 (GMT)
committer Aleksey Lim <alsroot@sugarlabs.org>2012-06-06 18:00:10 (GMT)
commit099ce81a80c3aff188dfff5042573c9786a0e033 (patch)
tree19a17d6360e4235badff97d2bd469988ee958fda
parent89f84e1cebbc9b6dcf7fa9ce1f21553367c44bb5 (diff)
Use down scaled images if one of screen dimensions is 800 or less
-rw-r--r--Edit/MainWindow.py25
-rw-r--r--Edit/TuneInterface.py3
-rw-r--r--Jam/Block.py21
-rw-r--r--Jam/JamMain.py3
-rw-r--r--Mini/InstrumentPanel.py33
-rw-r--r--Mini/miniTamTamMain.py14
-rw-r--r--SynthLab/SynthLabConstants.py89
-rw-r--r--SynthLab/SynthLabMain.py43
-rw-r--r--common/Config.py50
-rw-r--r--common/Util/Instruments.py1
10 files changed, 181 insertions, 101 deletions
diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py
index a9c04bf..8cb015f 100644
--- a/Edit/MainWindow.py
+++ b/Edit/MainWindow.py
@@ -44,9 +44,14 @@ from Edit.TuneInterface import TuneInterface, TuneInterfaceParasite
from common.Generation.Generator import generator1, GenerationParameters
+
Tooltips = Config.Tooltips()
KEY_MAP_PIANO = Config.KEY_MAP_PIANO
+TRACK_SIZE = Config.scale(132)
+DRUM_TRACK_SIZE = Config.scale(165)
+
+
#-----------------------------------
# The main TamTam window
#-----------------------------------
@@ -156,7 +161,7 @@ class MainWindow(gtk.EventBox):
self.GUI["2page"].pack_start( self.GUI["2instrumentPanel"], True )
# + + instrument 1 box
self.GUI["2instrument1Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR )
- self.GUI["2instrument1Box"].set_size_request( -1, 132 )
+ self.GUI["2instrument1Box"].set_size_request(-1, TRACK_SIZE)
self.GUI["2instrument1volBox"] = gtk.VBox()
#self.GUI["2instrument1volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][1], 0, 100, 1, 1, 0 )
#self.GUI["2instrument1volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 0 )
@@ -180,7 +185,7 @@ class MainWindow(gtk.EventBox):
self.GUI["2instrumentPanel"].pack_start( self.GUI["2instrument1Box"] )
# + + instrument 2 box
self.GUI["2instrument2Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR )
- self.GUI["2instrument2Box"].set_size_request( -1, 132 )
+ self.GUI["2instrument2Box"].set_size_request(-1, TRACK_SIZE)
self.GUI["2instrument2volBox"] = gtk.VBox()
#self.GUI["2instrument2volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][1], 0, 100, 1, 1, 0 )
#self.GUI["2instrument2volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 1 )
@@ -204,7 +209,7 @@ class MainWindow(gtk.EventBox):
self.GUI["2instrumentPanel"].pack_start( self.GUI["2instrument2Box"] )
# + + instrument 3 box
self.GUI["2instrument3Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR )
- self.GUI["2instrument3Box"].set_size_request( -1, 132 )
+ self.GUI["2instrument3Box"].set_size_request(-1, TRACK_SIZE)
self.GUI["2instrument3volBox"] = gtk.VBox()
#self.GUI["2instrument3volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][2], 0, 100, 1, 1, 0 )
#self.GUI["2instrument3volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 2 )
@@ -228,7 +233,7 @@ class MainWindow(gtk.EventBox):
self.GUI["2instrumentPanel"].pack_start( self.GUI["2instrument3Box"] )
# + + instrument 4 box
self.GUI["2instrument4Box"] = formatRoundBox( RoundHBox(), Config.BG_COLOR )
- self.GUI["2instrument4Box"].set_size_request( -1, 132 )
+ self.GUI["2instrument4Box"].set_size_request(-1, TRACK_SIZE)
self.GUI["2instrument4volBox"] = gtk.VBox()
#self.GUI["2instrument4volumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][3], 0, 100, 1, 1, 0 )
#self.GUI["2instrument4volumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 3 )
@@ -252,7 +257,7 @@ class MainWindow(gtk.EventBox):
self.GUI["2instrumentPanel"].pack_start( self.GUI["2instrument4Box"] )
# + + drum box
self.GUI["2drumBox"] = formatRoundBox( RoundHBox(), Config.BG_COLOR )
- self.GUI["2drumBox"].set_size_request( -1, 165 )
+ self.GUI["2drumBox"].set_size_request(-1, DRUM_TRACK_SIZE)
self.GUI["2drumVolBox"] = gtk.VBox()
self.GUI["2drumvolumeAdjustment"] = gtk.Adjustment( self._data["track_volume"][4], 0, 100, 1, 1, 0 )
self.GUI["2drumvolumeAdjustment"].connect( "value_changed", self.onTrackVolumeChanged, 4 )
@@ -279,10 +284,11 @@ class MainWindow(gtk.EventBox):
self.GUI["2instrumentPanel"].pack_start( self.GUI["2drumBox"] )
self.GUI["2page"].pack_start( self.GUI["2instrumentPanel"], True )
# + track interface
- tracks_width = gtk.gdk.screen_width() - 140
- self.trackInterface = TrackInterface( self.noteDB, self, self.getScale, tracks_width )
+ tracks_width = gtk.gdk.screen_width() - TRACK_SIZE * 1.25
+ self.trackInterface = TrackInterface( self.noteDB, self,
+ self.getScale, tracks_width)
self.noteDB.addListener( self.trackInterface, TrackInterfaceParasite, True )
- self.trackInterface.set_size_request( tracks_width, -1 )
+ self.trackInterface.set_size_request(tracks_width, -1)
self.GUI["2page"].pack_start( self.trackInterface, False )
#------------------------------------------------------------------------
@@ -293,7 +299,8 @@ class MainWindow(gtk.EventBox):
self.noteDB.addListener( self.tuneInterface, TuneInterfaceParasite, True )
self.GUI["2tuneScrolledWindow"].set_viewport( self.tuneInterface )
self.tuneInterface.get_parent().set_shadow_type( gtk.SHADOW_NONE )
- self.GUI["2tuneScrolledWindow"].set_size_request(-1, 100)
+ self.GUI["2tuneScrolledWindow"].set_size_request(-1,
+ Config.PAGE_THUMBNAIL_HEIGHT + style.DEFAULT_PADDING * 2)
self.GUI["2tuneScrolledWindow"].modify_bg(gtk.STATE_NORMAL,
style.Color(Config.TOOLBAR_BCK_COLOR).get_gdk_color())
self.GUI["2main"].pack_start( self.GUI["2tuneScrolledWindow"], False, True )
diff --git a/Edit/TuneInterface.py b/Edit/TuneInterface.py
index 4702a6d..2090855 100644
--- a/Edit/TuneInterface.py
+++ b/Edit/TuneInterface.py
@@ -156,6 +156,9 @@ class TuneInterface( gtk.EventBox ):
self.pixelsPerPitchDrum = float(self.trackRect[self.drumIndex][3]-1)/(Config.MAXIMUM_PITCH_DRUM - Config.MINIMUM_PITCH_DRUM )
self.pixelsPerTick = [0] + [ float(self.trackRect[0][2]-4)/(i*Config.TICKS_PER_BEAT) for i in range(1,Config.MAXIMUM_BEATS+1) ]
+ import logging
+ logging.error('> %r %r %r', self.pixelsPerPitch, self.pixelsPerPitchDrum, self.pixelsPerTick)
+
self.alloced = False
self.width = self.baseWidth = self.height = -1
self.waitingForAlloc = True
diff --git a/Jam/Block.py b/Jam/Block.py
index e6a7bf4..14cd8c0 100644
--- a/Jam/Block.py
+++ b/Jam/Block.py
@@ -7,6 +7,7 @@ import random
import common.Util.InstrumentDB as InstrumentDB
import common.Config as Config
+from common.Config import scale
from common.Util.NoteDB import PARAMETER
@@ -16,15 +17,15 @@ from common.Util.NoteDB import PARAMETER
class Block:
- WIDTH = 100
- HEIGHT = 100
+ WIDTH = scale(100)
+ HEIGHT = scale(100)
- SNAP = 15
+ SNAP = scale(15)
- PAD = 4
+ PAD = scale(4)
- KEYSIZE = 26
- KEYMASK_START = 309
+ KEYSIZE = scale(26)
+ KEYMASK_START = scale(309)
def __init__( self, owner, data ):
self.owner = owner
@@ -359,7 +360,7 @@ class Instrument(Block):
class Drum(Block):
- MASK_START = 100
+ MASK_START = scale(100)
KEYRECT = [ Block.PAD - 1, Block.HEIGHT + 1 - Block.PAD - Block.KEYSIZE, Block.KEYSIZE, Block.KEYSIZE ]
KEYRECT += [ KEYRECT[0]+KEYRECT[2], KEYRECT[1]+KEYRECT[3] ]
@@ -525,15 +526,15 @@ class Drum(Block):
class Loop(Block):
- HEAD = 13
- BEAT = 23
+ HEAD = scale(13)
+ BEAT = scale(23)
TAIL = BEAT + Block.PAD
WIDTH = [ HEAD + BEAT*(n-1) + TAIL for n in range(Config.MAXIMUM_BEATS+1) ]
BEAT_MUL3 = BEAT*3
- MASK_START = 200
+ MASK_START = scale(200)
MASK_BEAT = MASK_START + HEAD
MASK_TAIL = MASK_START + HEAD + BEAT*3
diff --git a/Jam/JamMain.py b/Jam/JamMain.py
index 662ebcf..beee980 100644
--- a/Jam/JamMain.py
+++ b/Jam/JamMain.py
@@ -11,6 +11,7 @@ import random
import common.Util.Instruments
import common.Config as Config
+from common.Config import scale
from common.Config import imagefile
from gettext import gettext as _
import sugar.graphics.style as style
@@ -332,7 +333,7 @@ class JamMain(gtk.EventBox):
self.colors["Picker_Bg_Inactive"])
self.GUI["notebook"].props.tab_vborder = style.TOOLBOX_TAB_VBORDER
self.GUI["notebook"].props.tab_hborder = style.TOOLBOX_TAB_HBORDER
- self.GUI["notebook"].set_size_request(-1, 160)
+ self.GUI["notebook"].set_size_request(-1, scale(160))
self.GUI["notebook"].connect("switch-page", self.setPicker)
self.GUI["mainVBox"].pack_start(self.GUI["notebook"], False, False)
self.pickers = {}
diff --git a/Mini/InstrumentPanel.py b/Mini/InstrumentPanel.py
index 1568a61..a9e8d4f 100644
--- a/Mini/InstrumentPanel.py
+++ b/Mini/InstrumentPanel.py
@@ -11,9 +11,12 @@ from common.port.scrolledbox import HScrolledBox
import sugar.graphics.style as style
import logging
-InstrumentSize = 116
+
+INSTRUMENT_SIZE = Config.scale(114)
+
Tooltips = Config.Tooltips
+
class InstrumentPanel( gtk.EventBox ):
def __init__(self,setInstrument=None):
gtk.EventBox.__init__(self)
@@ -40,7 +43,7 @@ class InstrumentPanel( gtk.EventBox ):
self.micRec = micRec
if width != -1:
- rowLen = width / InstrumentSize
+ rowLen = width / INSTRUMENT_SIZE
if self.rowLen == rowLen:
return
@@ -247,21 +250,19 @@ class InstrumentPanel( gtk.EventBox ):
return True
def loadInstrumentViewport( self ):
- self.instrumentBox= RoundHBox(fillcolor= Config.INSTRUMENT_GRID_COLOR, bordercolor= Config.PANEL_BCK_COLOR, radius= Config.PANEL_RADIUS)
+ self.instBox = gtk.Alignment(0.5, 0, 0, 1)
- self.tableEventBox= gtk.EventBox()
- color= gtk.gdk.color_parse(Config.INSTRUMENT_GRID_COLOR)
- self.tableEventBox.modify_bg(gtk.STATE_NORMAL, color)
+ box = gtk.EventBox()
+ color = gtk.gdk.color_parse(Config.INSTRUMENT_GRID_COLOR)
+ box.modify_bg(gtk.STATE_NORMAL, color)
+ box.add(self.instBox)
- scrollwin= gtk.ScrolledWindow()
+ scrollwin = gtk.ScrolledWindow()
scrollwin.set_policy(gtk.POLICY_NEVER,gtk.POLICY_AUTOMATIC)
- scrollwin.add_with_viewport(self.tableEventBox)
- alignment= gtk.Alignment(1, 0, 0, 1)
- alignment.add(scrollwin)
+ scrollwin.add_with_viewport(box)
+ box.get_parent().set_shadow_type(gtk.SHADOW_NONE)
+ self.mainVBox.pack_end(scrollwin)
- self.tableEventBox.get_parent().set_shadow_type( gtk.SHADOW_NONE )
- self.instrumentBox.pack_start(alignment, True, True, 0)
- self.mainVBox.pack_end(self.instrumentBox)
self.show_all()
def prepareInstrumentTable(self,category = 'all'):
@@ -274,13 +275,13 @@ class InstrumentPanel( gtk.EventBox ):
if self.instTable != None:
for child in self.instTable.get_children()[:]:
self.instTable.remove(child)
- self.tableEventBox.remove(self.instTable)
+ self.instBox.remove(self.instTable)
self.instTable.destroy()
instrumentNum = len(self.instrumentList[category])
instruments = self.instrumentList[category]
- cols = 8
+ cols = self.rowLen
if instrumentNum < cols:
cols = instrumentNum
rows = (instrumentNum // cols)
@@ -300,7 +301,7 @@ class InstrumentPanel( gtk.EventBox ):
if self.instDic.has_key(inst):
self.instTable.attach(self.instDic[inst], col, col+1, row, row+1, gtk.SHRINK, gtk.SHRINK, 0, 0)
- self.tableEventBox.add(self.instTable)
+ self.instBox.add(self.instTable)
self.instTable.show_all()
def selectFirstCat(self):
diff --git a/Mini/miniTamTamMain.py b/Mini/miniTamTamMain.py
index 0b630e1..1a2211b 100644
--- a/Mini/miniTamTamMain.py
+++ b/Mini/miniTamTamMain.py
@@ -91,18 +91,12 @@ class miniTamTamMain(gtk.EventBox):
self.loop.beat = self.beat
self.tooltips = gtk.Tooltips()
- self.masterVBox = gtk.VBox()
self.mainWindowBox = gtk.HBox()
self.leftBox = gtk.VBox()
self.rightBox = gtk.VBox()
self.mainWindowBox.pack_start(self.rightBox, False, True)
self.mainWindowBox.pack_start(self.leftBox, True, True)
- self.masterVBox.pack_start(self.mainWindowBox)
-
- scroll= gtk.ScrolledWindow()
- scroll.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- scroll.add_with_viewport (self.masterVBox)
- self.add(scroll)
+ self.add(self.mainWindowBox)
self.enableKeyboard()
self.setInstrument(self.instrument)
@@ -211,7 +205,6 @@ class miniTamTamMain(gtk.EventBox):
self.geneSlider = ImageVScale('sliderbutbleu.png',
self.geneAdjustment, 5)
self.geneSlider.set_inverted(False)
- self.geneSlider.set_size_request(15,-1)
self.geneAdjustment.connect("value_changed" , self.handleGenerationSlider)
self.geneSlider.connect("button-release-event", self.handleGenerationSliderRelease)
geneSliderBox.pack_start(self.geneSliderBoxImgTop, False, padding=10)
@@ -226,7 +219,6 @@ class miniTamTamMain(gtk.EventBox):
self.beatSlider = ImageVScale('sliderbutjaune.png',
self.beatAdjustment, 5, snap=1)
self.beatSlider.set_inverted(True)
- self.beatSlider.set_size_request(15,-1)
self.beatAdjustment.connect("value_changed" , self.handleBeatSlider)
self.beatSlider.connect("button-release-event", self.handleBeatSliderRelease)
beatSliderBox.pack_start(self.beatSliderBoxImgTop, False, padding=10)
@@ -242,7 +234,6 @@ class miniTamTamMain(gtk.EventBox):
self.tempoAdjustment = gtk.Adjustment(value=self.tempo, lower=Config.PLAYER_TEMPO_LOWER, upper=Config.PLAYER_TEMPO_UPPER, step_incr=1, page_incr=1, page_size=1)
tempoSlider = ImageVScale('sliderbutvert.png', self.tempoAdjustment, 5)
tempoSlider.set_inverted(True)
- tempoSlider.set_size_request(15,-1)
self.tempoAdjustmentHandler = self.tempoAdjustment.connect("value_changed" , self.handleTempoSliderChange)
tempoSlider.connect("button-press-event", self.handleTempoSliderPress)
tempoSlider.connect("button-release-event", self.handleTempoSliderRelease)
@@ -257,7 +248,6 @@ class miniTamTamMain(gtk.EventBox):
volumeSlider = ImageVScale('sliderbutbleu.png',
self.volumeAdjustment, 5)
volumeSlider.set_inverted(True)
- volumeSlider.set_size_request(15,-1)
self.volumeAdjustment.connect("value_changed" , self.handleVolumeSlider)
#volumeSlider.connect("button-release-event", self.handleVolumeSliderRelease)
volumeSliderBox.pack_start(self.volumeSliderBoxImgTop, False, padding=10)
@@ -298,7 +288,6 @@ class miniTamTamMain(gtk.EventBox):
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)
@@ -337,6 +326,7 @@ class miniTamTamMain(gtk.EventBox):
drum_size = drum_group.get_size_request()
slidersBox.set_size_request(-1, drum_size[1] * 2.3)
+ self.rightBox.set_size_request(drum_size[0] * 2.05, -1)
def loopSettingsChannel(self, channel, value):
self.csnd.setChannel(channel, value)
diff --git a/SynthLab/SynthLabConstants.py b/SynthLab/SynthLabConstants.py
index db988bb..6f1e32e 100644
--- a/SynthLab/SynthLabConstants.py
+++ b/SynthLab/SynthLabConstants.py
@@ -1,5 +1,6 @@
from gettext import gettext as _
import common.Config as Config
+from common.Config import scale
Tooltips = Config.Tooltips()
@@ -7,28 +8,78 @@ Tooltips = Config.Tooltips()
class SynthLabConstants:
- PIC_SIZE = 80
+ PIC_SIZE = scale(80)
HALF_SIZE = PIC_SIZE // 2
PIC_SIZE_HIGHLIGHT = PIC_SIZE + 4
+ HALF_SIZE_HIGHLIGHT = PIC_SIZE + 2
GT_CONTROL_OUTPUT = 0
GT_CONTROL_INPUT = 1
GT_SOUND_OUTPUT = 2
GT_SOUND_INPUT = 3
+
# GATE_POINT[objecttype][gatetype][gatenum] = (x,y)
# relative to object center
- GATE_POINT = [ [ [ (-1,33) ] ],
- [ [], [ (-24,-34),(-9,-34),(8,-34),(24,-34) ], [ (-1,33) ] ],
- [ [], [ (31,-20),(31,-6),(31,6),(31,19) ], [ (-3,33) ], [ (-3,-34) ] ],
- [ [], [], [], [ (2,-35) ] ] ]
- # GATE_MAP[objecttype][gatetype][gatenum] = [ sx, sy, ex, ey, (wireX,wireY) ]
+ GATE_POINT = [
+ [
+ [(scale(-1), scale(33))],
+ ],
+ [
+ [],
+ [(scale(-24), scale(-34)), (scale(-9), scale(-34)),
+ (scale(8), scale(-34)), (scale(24), scale(-34))],
+ [(scale(-1), scale(33))],
+ ],
+ [
+ [],
+ [(scale(31), scale(-20)), (scale(31), scale(-6)),
+ (scale(31), scale(6)), (scale(31), scale(19))],
+ [(scale(-3), scale(33))],
+ [(scale(-3), scale(-34))],
+ ],
+ [
+ [],
+ [],
+ [],
+ [(scale(2), scale(-35))],
+ ],
+ ]
+
+ # GATE_MAP[objecttype][gatetype][gatenum] = [sx, sy, ex, ey, (wireX,wireY)]
# gate locations relative to object center
- GATE_MAP = [ [ [ [-7,26,4,39] ] ],
- [ [], [[-30,-40,-19,-28], [-15,-40,-3,-28], [3,-40,14,-28], [19,-40,28,-28]], [[-6,28,5,40]] ],
- [ [], [[25,-25,37,-14], [25,-12,37,-1], [25,1,37,12], [25,13,37,25]], [[-8,27,3,40]], [[-8,-40,3,-27]] ],
- [ [], [], [], [[-4,-40,7,-29]] ] ]
+ GATE_MAP = [
+ [
+ [[scale(-7), scale(26), scale(4), scale(39)]],
+ ],
+ [
+ [],
+ [[scale(-30), scale(-40), scale(-19), scale(-28)],
+ [scale(-15), scale(-40), scale(-3), scale(-28)],
+ [scale(3), scale(-40), scale(14), scale(-28)],
+ [scale(19), scale(-40), scale(28), scale(-28)],
+ ],
+ [[scale(-6), scale(28), scale(5), scale(40)]],
+ ],
+ [
+ [],
+ [[scale(25), scale(-25), scale(37), scale(-14)],
+ [scale(25), scale(-12), scale(37), scale(-1)],
+ [scale(25), scale(1), scale(37), scale(12)],
+ [scale(25), scale(13), scale(37), scale(25)],
+ ],
+ [[scale(-8), scale(27), scale(3), scale(40)]],
+ [[scale(-8), scale(-40), scale(3), scale(-27)]],
+ ],
+ [
+ [],
+ [],
+ [],
+ [[scale(-4), scale(-40), scale(7), scale(-29)]],
+ ],
+ ]
+
# insert wire locations into map
- GATE_OFFSET = 15
+ GATE_OFFSET = scale(15)
for oT in GATE_MAP:
for gT in oT:
for m in gT:
@@ -41,12 +92,16 @@ class SynthLabConstants:
elif y > HALF_SIZE-GATE_OFFSET: y = m[3]
m.append( ( x, y ) )
- OBJ_Y_LOC = 710
- INIT_LOCATIONS = [ [450,OBJ_Y_LOC], [450,OBJ_Y_LOC], [450,OBJ_Y_LOC],
- [450, OBJ_Y_LOC], [225,OBJ_Y_LOC], [225,OBJ_Y_LOC],
- [225,OBJ_Y_LOC], [225, OBJ_Y_LOC], [675,OBJ_Y_LOC],
- [675,OBJ_Y_LOC], [675,OBJ_Y_LOC], [675, OBJ_Y_LOC],
- [450, 625]]
+ OBJ_Y_LOC = scale(710)
+ INIT_LOCATIONS = [
+ [scale(450), OBJ_Y_LOC], [scale(450), OBJ_Y_LOC],
+ [scale(450), OBJ_Y_LOC], [scale(450), OBJ_Y_LOC],
+ [scale(225), OBJ_Y_LOC], [scale(225), OBJ_Y_LOC],
+ [scale(225), OBJ_Y_LOC], [scale(225), OBJ_Y_LOC],
+ [scale(675), OBJ_Y_LOC], [scale(675) ,OBJ_Y_LOC],
+ [scale(675), OBJ_Y_LOC], [scale(675), OBJ_Y_LOC],
+ [scale(450), scale(625)],
+ ]
FLOAT1 = [.1, 1]
FLOAT = [.01, 2]
diff --git a/SynthLab/SynthLabMain.py b/SynthLab/SynthLabMain.py
index e55d8c7..5d4d419 100644
--- a/SynthLab/SynthLabMain.py
+++ b/SynthLab/SynthLabMain.py
@@ -17,6 +17,7 @@ from common.Util.ThemeWidgets import BigComboBox
import common.Util.Instruments
import common.Util.InstrumentDB as InstrumentDB
import common.Config as Config
+from common.Config import imagefile
from common.Util.ThemeWidgets import *
from common.Util.CSoundClient import new_csound_client
from SynthLab.SynthObjectsParameters import SynthObjectsParameters
@@ -32,6 +33,8 @@ from common.Util import OS
as_window = False
SPEAKER = 12 # and last instrument
+SLIDER_HEIGHT = Config.scale(240)
+
class SynthLabMain(gtk.EventBox):
def __init__( self, activity ):
@@ -164,7 +167,8 @@ class SynthLabMain(gtk.EventBox):
menuBox = gtk.HBox()
self.objComboBox = BigComboBox()
- self.objComboBox.append_item(0, 'Envelope', Config.TAM_TAM_ROOT + '/icons/sl-adsr-menu.svg')
+ self.objComboBox.append_item(0, 'Envelope',
+ imagefile('sl-adsr-menu.png'))
self.objComboBox.set_active(0)
self.objComboBox.connect('changed', self.changeObject)
comboMenu = ToolComboBox(self.objComboBox)
@@ -206,7 +210,6 @@ class SynthLabMain(gtk.EventBox):
slider4Init = parametersTable[tablePos+3]
sliderTextColor = gtk.gdk.color_parse(Config.WHITE_COLOR)
- sliderHeight = 240
self.p1Adjust = gtk.Adjustment(slider1Init, slider1Min, slider1Max, slider1Step, slider1Step, 0)
self.p1Adjust.connect("value-changed", self.sendTables, 1)
@@ -216,7 +219,7 @@ class SynthLabMain(gtk.EventBox):
self.slider1.connect("enter-notify-event", self.handleSliderEnter, 1)
self.slider1.set_digits(slider1Snap)
self.slider1.set_inverted(True)
- self.slider1.set_size_request(-1, sliderHeight)
+ self.slider1.set_size_request(-1, SLIDER_HEIGHT)
self.slider1.modify_fg(gtk.STATE_NORMAL, sliderTextColor)
slidersBox.pack_start(self.slider1, True, True)
@@ -228,7 +231,7 @@ class SynthLabMain(gtk.EventBox):
self.slider2.connect("enter-notify-event", self.handleSliderEnter, 2)
self.slider2.set_digits(slider2Snap)
self.slider2.set_inverted(True)
- self.slider2.set_size_request(-1, sliderHeight)
+ self.slider2.set_size_request(-1, SLIDER_HEIGHT)
self.slider2.modify_fg(gtk.STATE_NORMAL, sliderTextColor)
slidersBox.pack_start(self.slider2, True, True)
@@ -240,7 +243,7 @@ class SynthLabMain(gtk.EventBox):
self.slider3.connect("enter-notify-event", self.handleSliderEnter, 3)
self.slider3.set_digits(slider3Snap)
self.slider3.set_inverted(True)
- self.slider3.set_size_request(-1, sliderHeight)
+ self.slider3.set_size_request(-1, SLIDER_HEIGHT)
self.slider3.modify_fg(gtk.STATE_NORMAL, sliderTextColor)
slidersBox.pack_start(self.slider3, True, True)
@@ -252,7 +255,7 @@ class SynthLabMain(gtk.EventBox):
self.slider4.connect("enter-notify-event", self.handleSliderEnter, 4)
self.slider4.set_digits(2)
self.slider4.set_inverted(True)
- self.slider4.set_size_request(-1, sliderHeight)
+ self.slider4.set_size_request(-1, SLIDER_HEIGHT)
self.slider4.modify_fg(gtk.STATE_NORMAL, sliderTextColor)
slidersBox.pack_start(self.slider4, True, True)
@@ -356,12 +359,17 @@ class SynthLabMain(gtk.EventBox):
def select(self, i):
self.sliderGate = False
- self.invalidate_rect( self.bounds[i][0], self.bounds[i][1]-2, SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE_HIGHLIGHT )
+ self.invalidate_rect(self.bounds[i][0], self.bounds[i][1]-2,
+ SynthLabConstants.PIC_SIZE,
+ SynthLabConstants.PIC_SIZE_HIGHLIGHT)
if i == self.instanceID:
return
self.new = False
- self.invalidate_rect( self.bounds[self.instanceID][0], self.bounds[self.instanceID][1]-2, SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE_HIGHLIGHT )
+ self.invalidate_rect(self.bounds[self.instanceID][0],
+ self.bounds[self.instanceID][1] - 2,
+ SynthLabConstants.PIC_SIZE,
+ SynthLabConstants.PIC_SIZE_HIGHLIGHT)
self.instanceID = i
self.objComboBox.set_active(-1)
@@ -369,7 +377,10 @@ class SynthLabMain(gtk.EventBox):
self.objectType = self.instanceID / 4
self.objComboBox.remove_all()
for i in range(len(SynthLabConstants.CHOOSE_TYPE[self.objectType])):
- self.objComboBox.append_item(i, SynthLabConstants.SYNTHTYPES[self.objectType][i], Config.TAM_TAM_ROOT + '/icons/sl-' + SynthLabConstants.CHOOSE_TYPE[self.objectType][i] + '-menu.svg')
+ name = SynthLabConstants.SYNTHTYPES[self.objectType][i]
+ image_name = SynthLabConstants.CHOOSE_TYPE[self.objectType][i]
+ self.objComboBox.append_item(i, name,
+ imagefile('sl-%s-menu.png' % image_name))
if self.instanceID != SPEAKER:
self.choosenType = self.synthObjectsParameters.types[self.instanceID]
@@ -1095,7 +1106,9 @@ class SynthLabMain(gtk.EventBox):
self.gc.set_clip_origin( self.bounds[i][0]-SynthLabConstants.PIC_SIZE*type, self.bounds[i][1] )
buf.draw_drawable( self.gc, self.pixmap[type][types[i]], 0, 0, self.bounds[i][0], self.bounds[i][1], SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE )
# draw selectionHighlight
- self.gc.set_clip_origin( self.bounds[i][0]-SynthLabConstants.PIC_SIZE*type, self.bounds[i][1]-82 )
+ self.gc.set_clip_origin(
+ self.bounds[i][0] - SynthLabConstants.PIC_SIZE * type,
+ self.bounds[i][1] - SynthLabConstants.HALF_SIZE_HIGHLIGHT)
self.gc.foreground = self.highlightColor
buf.draw_rectangle( self.gc, True, self.bounds[i][0], self.bounds[i][1]-2, SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE_HIGHLIGHT )
self.gc.foreground = self.lineColor
@@ -1136,7 +1149,11 @@ class SynthLabMain(gtk.EventBox):
if self.instanceID == self.dragObject:
# draw selectionHighlight
- self.gc.set_clip_origin( self.bounds[self.dragObject][0]-SynthLabConstants.PIC_SIZE*type, self.bounds[self.dragObject][1]-82 )
+ self.gc.set_clip_origin(
+ self.bounds[self.dragObject][0] - \
+ SynthLabConstants.PIC_SIZE * type,
+ self.bounds[self.dragObject][1] - \
+ SynthLabConstants.HALF_SIZE_HIGHLIGHT)
self.gc.foreground = self.highlightColor
widget.window.draw_rectangle( self.gc, True, self.bounds[self.dragObject][0], self.bounds[self.dragObject][1]-2, SynthLabConstants.PIC_SIZE, SynthLabConstants.PIC_SIZE_HIGHLIGHT )
@@ -1384,8 +1401,8 @@ class SynthLabMain(gtk.EventBox):
gc.foreground = self.bgColor
self.pixmap = [ [], [], [], [] ]
- def loadImg( type, img ):
- pix = gtk.gdk.pixbuf_new_from_file(Config.TAM_TAM_ROOT + '/icons/sl-' + img + '.svg')
+ def loadImg(type, img):
+ pix = gtk.gdk.pixbuf_new_from_file(imagefile('sl-%s.png' % img))
map = gtk.gdk.Pixmap( win, pix.get_width(), pix.get_height() )
map.draw_rectangle( gc, True, 0, 0, pix.get_width(), pix.get_height() )
map.draw_pixbuf( gc, pix, 0, 0, 0, 0, pix.get_width(), pix.get_height(), gtk.gdk.RGB_DITHER_NONE )
diff --git a/common/Config.py b/common/Config.py
index 75bd43d..4e32e89 100644
--- a/common/Config.py
+++ b/common/Config.py
@@ -104,21 +104,29 @@ CSOUND_STOP_RECORD_PERF = 'i5401 4 1 "%s"'
## GUI CONSTANTS
#################
+if max(gtk.gdk.screen_width(), gtk.gdk.screen_height()) <= 800:
+ # Images created using `convert $i -resize 73%` command
+ IMAGE_ROOT_SCALED = join(IMAGE_ROOT, '73', '')
+ scale = lambda x: int(x * .73)
+else:
+ IMAGE_ROOT_SCALED = IMAGE_ROOT
+ scale = lambda x: x
+
LANGUAGE = 'En'
MAIN_WINDOW_PADDING = 5
BG_COLOR = '#404040'
FG_COLOR = '#818286'
-NOTE_HEIGHT = 9 # pixels
-NOTE_IMAGE_PADDING = 6
+NOTE_HEIGHT = scale(9) # pixels
+NOTE_IMAGE_PADDING = scale(6)
NOTE_IMAGE_PADDING_MUL2 = NOTE_IMAGE_PADDING * 2
-NOTE_IMAGE_TAIL = 1059
-NOTE_IMAGE_ENDLENGTH = 12
-HIT_HEIGHT = 13 # pixels
-HIT_IMAGE_PADDING = 6
+NOTE_IMAGE_TAIL = scale(1059)
+NOTE_IMAGE_ENDLENGTH = scale(12)
+HIT_HEIGHT = scale(13) # pixels
+HIT_IMAGE_PADDING = scale(6)
HIT_IMAGE_PADDING_MUL2 = HIT_IMAGE_PADDING * 2
-TRACK_SPACING = 4
+TRACK_SPACING = scale(4)
TRACK_SPACING_DIV2 = TRACK_SPACING//2
TRACK_COLORS = [("#00290B", "#00E847"), \
("#3F0200", "#E72500"), \
@@ -140,18 +148,20 @@ MARQUEE_SIZE = 2
PAGE_BORDER_SIZE = 2
PAGE_SELECTED_BORDER_SIZE = 5
-PAGE_WIDTH = 100
-PAGE_HEIGHT = 25
+PAGE_WIDTH = scale(100)
+PAGE_HEIGHT = scale(25)
-PAGE_THUMBNAIL_WIDTH = 92
+PAGE_THUMBNAIL_WIDTH = scale(92)
PAGE_THUMBNAIL_WIDTH_DIV2 = PAGE_THUMBNAIL_WIDTH / 2
-PAGE_THUMBNAIL_HEIGHT = 65
-
-THUMBNAIL_TRACK_RECT = [(2, 4, 83, 10), \
- (2, 14, 83, 10), \
- (2, 24, 83, 10), \
- (2, 34, 83, 10), \
- (2, 44, 83, 13)]
+PAGE_THUMBNAIL_HEIGHT = scale(65)
+
+THUMBNAIL_TRACK_RECT = [
+ (scale(2), scale(4), scale(83), scale(10)),
+ (scale(2), scale(14), scale(83), scale(10)),
+ (scale(2), scale(24), scale(83), scale(10)),
+ (scale(2), scale(34), scale(83), scale(10)),
+ (scale(2), scale(44), scale(83), scale(13)),
+ ]
THUMBNAIL_DRAG_COLOR = "#000000"
THUMBNAIL_TRACK_COLOR = "#FF0000"
THUMBNAIL_SELECTED_COLOR = "#2266FF"
@@ -325,12 +335,8 @@ KEY_MAP_NOTPIANO = {24: 24, # Q
KEY_MAP = KEY_MAP_PIANO
-if max(gtk.gdk.screen_width(), gtk.gdk.screen_height()) <= 800:
- # Images created using `convert $i -resize 73%` command
- IMAGE_ROOT = join(IMAGE_ROOT, '73', '')
-
def imagefile(filename):
if filename and not filename.startswith(os.sep):
- filename = IMAGE_ROOT + filename
+ filename = IMAGE_ROOT_SCALED + filename
return filename
diff --git a/common/Util/Instruments.py b/common/Util/Instruments.py
index 3fc2ecb..1386b25 100644
--- a/common/Util/Instruments.py
+++ b/common/Util/Instruments.py
@@ -4,7 +4,6 @@ from gettext import gettext as _
import common.Config as Config
from common.Config import imagefile
import common.Util.InstrumentDB as InstrumentDB
-from sugar.activity.activity import get_bundle_name
LOW = Config.LOW
MID = Config.MID