diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2012-06-06 18:00:10 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2012-06-06 18:00:10 (GMT) |
commit | 099ce81a80c3aff188dfff5042573c9786a0e033 (patch) | |
tree | 19a17d6360e4235badff97d2bd469988ee958fda /SynthLab | |
parent | 89f84e1cebbc9b6dcf7fa9ce1f21553367c44bb5 (diff) |
Use down scaled images if one of screen dimensions is 800 or less
Diffstat (limited to 'SynthLab')
-rw-r--r-- | SynthLab/SynthLabConstants.py | 89 | ||||
-rw-r--r-- | SynthLab/SynthLabMain.py | 43 |
2 files changed, 102 insertions, 30 deletions
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 ) |