From 099ce81a80c3aff188dfff5042573c9786a0e033 Mon Sep 17 00:00:00 2001 From: Aleksey Lim Date: Wed, 06 Jun 2012 18:00:10 +0000 Subject: Use down scaled images if one of screen dimensions is 800 or less --- 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 -- cgit v0.9.1