[squeak-dev] The Trunk: MorphicExtras-ct.323.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Aug 25 12:03:55 UTC 2022
Christoph Thiede uploaded a new version of MorphicExtras to project The Trunk:
http://source.squeak.org/trunk/MorphicExtras-ct.323.mcz
==================== Summary ====================
Name: MorphicExtras-ct.323
Author: ct
Time: 23 August 2022, 12:09:37.941308 pm
UUID: ab99afa5-a3f1-d94f-a74e-c525589f0ec0
Ancestors: MorphicExtras-eem.322
Adds high-dpi support for ScorePlayerMorph.
Implementation detail: Explicitly specify orientation of sliders to avoid auto-orientation as vertical during first layout run.
=============== Diff against MorphicExtras-eem.322 ===============
Item was changed:
----- Method: ScorePlayerMorph>>defaultBorderWidth (in category 'initialization') -----
defaultBorderWidth
"answer the default border width for the receiver"
+ ^ 2 px!
- ^ 2!
Item was changed:
----- Method: ScorePlayerMorph>>initialize (in category 'initialization') -----
initialize
"initialize the state of the receiver"
super initialize.
""
self listDirection: #topToBottom;
wrapCentering: #center;
cellPositioning: #topCenter;
hResizing: #shrinkWrap;
vResizing: #shrinkWrap;
layoutInset: 3;
onScorePlayer: ScorePlayer new initialize;
+ extent: 20 px @ 20 px.!
- extent: 20 @ 20 !
Item was changed:
----- Method: ScorePlayerMorph>>makeControls (in category 'layout') -----
makeControls
| bb r reverbSwitch repeatSwitch |
r := AlignmentMorph newRow.
r color: color; borderWidth: 0; layoutInset: 0.
+ r hResizing: #shrinkWrap; vResizing: #shrinkWrap; extent: 5 px @ 5 px.
- r hResizing: #shrinkWrap; vResizing: #shrinkWrap; extent: 5 at 5.
bb := SimpleButtonMorph new target: self; borderColor: #raised;
+ borderWidth: 2 px; color: color.
- borderWidth: 2; color: color.
r addMorphBack: (bb label: 'Menu' translated; actWhen: #buttonDown;
actionSelector: #invokeMenu).
bb := SimpleButtonMorph new target: self; borderColor: #raised;
+ borderWidth: 2 px; color: color.
- borderWidth: 2; color: color.
r addMorphBack: (bb label: 'Piano Roll' translated; actionSelector: #makePianoRoll).
bb := SimpleButtonMorph new target: self; borderColor: #raised;
+ borderWidth: 2 px; color: color.
- borderWidth: 2; color: color.
r addMorphBack: (bb label: 'Rewind' translated; actionSelector: #rewind).
bb := SimpleButtonMorph new target: scorePlayer; borderColor: #raised;
+ borderWidth: 2 px; color: color.
- borderWidth: 2; color: color.
r addMorphBack: (bb label: 'Play' translated; actionSelector: #resumePlaying).
bb := SimpleButtonMorph new target: scorePlayer; borderColor: #raised;
+ borderWidth: 2 px; color: color.
- borderWidth: 2; color: color.
r addMorphBack: (bb label: 'Pause' translated; actionSelector: #pause).
reverbSwitch := SimpleSwitchMorph new
offColor: color;
onColor: (Color r: 1.0 g: 0.6 b: 0.6);
+ borderWidth: 2 px;
- borderWidth: 2;
label: 'Reverb Disable' translated;
actionSelector: #disableReverb:;
target: scorePlayer;
setSwitchState: SoundPlayer isReverbOn not.
r addMorphBack: reverbSwitch.
scorePlayer ifNotNil:
[repeatSwitch := SimpleSwitchMorph new
offColor: color;
onColor: (Color r: 1.0 g: 0.6 b: 0.6);
+ borderWidth: 2 px;
- borderWidth: 2;
label: 'Repeat' translated;
actionSelector: #repeat:;
target: scorePlayer;
setSwitchState: scorePlayer repeat.
r addMorphBack: repeatSwitch].
+ ^ r!
- ^ r
- !
Item was changed:
----- Method: ScorePlayerMorph>>onScorePlayer:title: (in category 'initialization') -----
onScorePlayer: aScorePlayer title: scoreName
| divider col r |
scorePlayer := aScorePlayer.
scorePlayer ifNotNil:
[scorePlayer reset.
instrumentSelector := Array new: scorePlayer score tracks size].
self removeAllMorphs.
self addMorphBack: self makeControls.
scorePlayer ifNil: [^ self].
r := self makeRow
hResizing: #spaceFill;
vResizing: #shrinkWrap.
r addMorphBack: self rateControl;
+ addMorphBack: (Morph newBounds: (0 @ 0 extent: 20 px @ 0) color: Color transparent);
- addMorphBack: (Morph newBounds: (0 at 0 extent: 20 at 0) color: Color transparent);
addMorphBack: self volumeControl.
self addMorphBack: r.
self addMorphBack: self scrollControl.
+
-
col := AlignmentMorph newColumn color: color; layoutInset: 0.
self addMorphBack: col.
1 to: scorePlayer trackCount do: [:trackIndex |
divider := AlignmentMorph new
+ extent: 10 px @ 1 px;
- extent: 10 at 1;
layoutInset: 0;
+ borderStyle: (BorderStyle raised width: 1 px);
- borderStyle: (BorderStyle raised width: 1);
color: color;
hResizing: #spaceFill;
vResizing: #rigid.
col addMorphBack: divider.
col addMorphBack: (self trackControlsFor: trackIndex)].
LastMIDIPort ifNotNil: [
"use the most recently set MIDI port"
+ scorePlayer openMIDIPort: LastMIDIPort].!
- scorePlayer openMIDIPort: LastMIDIPort].
- !
Item was changed:
----- Method: ScorePlayerMorph>>panAndVolControlsFor: (in category 'layout') -----
panAndVolControlsFor: trackIndex
| volSlider panSlider c r middleLine pianoRollColor |
pianoRollColor := (Color wheel: scorePlayer score tracks size) at: trackIndex.
volSlider := SimpleSliderMorph new
color: color;
sliderColor: pianoRollColor;
+ extent: 101 px @ 6 px;
- extent: 101 at 6;
target: scorePlayer;
arguments: (Array with: trackIndex);
actionSelector: #volumeForTrack:put:;
+ orientation: #horizontal;
minVal: 0.0;
maxVal: 1.0;
adjustToValue: (scorePlayer volumeForTrack: trackIndex).
panSlider := SimpleSliderMorph new
color: color;
sliderColor: pianoRollColor;
+ extent: 101 px @ 6 px;
- extent: 101 at 6;
target: scorePlayer;
arguments: (Array with: trackIndex);
actionSelector: #panForTrack:put:;
+ orientation: #horizontal;
minVal: 0.0;
maxVal: 1.0;
adjustToValue: (scorePlayer panForTrack: trackIndex).
c := AlignmentMorph newColumn
color: color;
layoutInset: 0;
wrapCentering: #center; cellPositioning: #topCenter;
hResizing: #spaceFill;
vResizing: #shrinkWrap.
middleLine := Morph new "center indicator for pan slider"
color: (Color r: 0.4 g: 0.4 b: 0.4);
+ extent: 1 px @ (panSlider height - 4 px);
+ position: panSlider center x @ (panSlider top + 2 px).
- extent: 1@(panSlider height - 4);
- position: panSlider center x@(panSlider top + 2).
panSlider addMorphBack: middleLine.
r := self makeRow.
r addMorphBack: (StringMorph contents: '0').
r addMorphBack: volSlider.
r addMorphBack: (StringMorph contents: '10').
c addMorphBack: r.
r := self makeRow.
r addMorphBack: (StringMorph contents: 'L' translated).
r addMorphBack: panSlider.
r addMorphBack: (StringMorph contents: 'R' translated).
c addMorphBack: r.
+ ^ c!
- ^ c
- !
Item was changed:
----- Method: ScorePlayerMorph>>rateControl (in category 'layout') -----
rateControl
| rateSlider middleLine r |
rateSlider := SimpleSliderMorph new
color: color;
sliderColor: Color gray;
+ extent: 180 px @ 12 px;
- extent: 180 at 12;
target: self;
actionSelector: #setLogRate:;
+ orientation: #horizontal;
minVal: -1.0;
maxVal: 1.0;
adjustToValue: 0.0.
middleLine := Morph new "center indicator for pan slider"
color: (Color r: 0.4 g: 0.4 b: 0.4);
+ extent: 1 px @ (rateSlider height - 4 px);
+ position: rateSlider center x @ (rateSlider top + 2 px).
- extent: 1@(rateSlider height - 4);
- position: rateSlider center x@(rateSlider top + 2).
rateSlider addMorphBack: middleLine.
r := self makeRow
hResizing: #spaceFill;
vResizing: #rigid;
+ height: 24 px.
- height: 24.
r addMorphBack: (StringMorph contents: 'slow ' translated).
r addMorphBack: rateSlider.
r addMorphBack: (StringMorph contents: ' fast' translated).
+ ^ r!
- ^ r
- !
Item was changed:
----- Method: ScorePlayerMorph>>scrollControl (in category 'layout') -----
scrollControl
| r |
scrollSlider := SimpleSliderMorph new
color: color;
sliderColor: Color gray;
+ extent: 360 px @ 12 px;
- extent: 360 at 12;
target: scorePlayer;
+ orientation: #horizontal;
actionSelector: #positionInScore:;
adjustToValue: scorePlayer positionInScore.
r := self makeRow
hResizing: #spaceFill;
vResizing: #rigid;
+ height: 24 px.
- height: 24.
r addMorphBack: (StringMorph contents: 'start ' translated).
r addMorphBack: scrollSlider.
r addMorphBack: (StringMorph contents: ' end' translated).
+ ^ r!
- ^ r
- !
Item was changed:
----- Method: ScorePlayerMorph>>trackControlsFor: (in category 'layout') -----
trackControlsFor: trackIndex
| r |
r := self makeRow
hResizing: #spaceFill;
vResizing: #shrinkWrap.
r addMorphBack: (self trackNumAndMuteButtonFor: trackIndex).
+ r addMorphBack: (Morph new extent: 10 px @ 5 px; color: color). "spacer"
- r addMorphBack: (Morph new extent: 10 at 5; color: color). "spacer"
r addMorphBack: (self panAndVolControlsFor: trackIndex).
+ ^ r!
- ^ r
- !
Item was changed:
----- Method: ScorePlayerMorph>>trackNumAndMuteButtonFor: (in category 'layout') -----
trackNumAndMuteButtonFor: trackIndex
| muteButton instSelector pianoRollColor r |
muteButton := SimpleSwitchMorph new
onColor: (Color r: 1.0 g: 0.6 b: 0.6);
offColor: color;
color: color;
label: 'Mute' translated;
target: scorePlayer;
actionSelector: #mutedForTrack:put:;
arguments: (Array with: trackIndex).
instSelector := PopUpChoiceMorph new
+ extent: 95 px @ 14 px;
- extent: 95 at 14;
contentsClipped: 'oboe1';
target: self;
actionSelector: #atTrack:from:selectInstrument:;
getItemsSelector: #instrumentChoicesForTrack:;
getItemsArgs: (Array with: trackIndex).
instSelector arguments:
(Array with: trackIndex with: instSelector).
instrumentSelector at: trackIndex put: instSelector.
"select track color using same color list as PianoRollScoreMorph"
+ pianoRollColor := (Color wheel: scorePlayer score tracks size) at: trackIndex.
- pianoRollColor := (Color wheel: scorePlayer score tracks size) at: trackIndex.
r := self makeRow
hResizing: #spaceFill;
vResizing: #spaceFill;
+ extent: 70 px @ 10 px.
- extent: 70 at 10.
r addMorphBack:
((StringMorph
contents: trackIndex printString
+ font: (TextStyle defaultFont asPointSize: TextStyle defaultFont pointSize * 1.57)) color: pianoRollColor).
- font: (TextStyle default fontOfSize: 24)) color: pianoRollColor).
trackIndex < 10
+ ifTrue: [r addMorphBack: (Morph new color: color; extent: 19 px @ 8 px)] "spacer"
+ ifFalse: [r addMorphBack: (Morph new color: color; extent: 8 px @ 8 px)]. "spacer"
- ifTrue: [r addMorphBack: (Morph new color: color; extent: 19 at 8)] "spacer"
- ifFalse: [r addMorphBack: (Morph new color: color; extent: 8 at 8)]. "spacer"
r addMorphBack:
(StringMorph new
+ extent: 80 px @ 14 px;
- extent: 80 at 14;
contentsClipped: (scorePlayer infoForTrack: trackIndex)).
+ r addMorphBack: (Morph new color: color; extent: 8 px @ 8 px). "spacer"
- r addMorphBack: (Morph new color: color; extent: 8 at 8). "spacer"
r addMorphBack: instSelector.
r addMorphBack: (AlignmentMorph newRow color: color). "spacer"
r addMorphBack: muteButton.
+ ^ r!
- ^ r
- !
Item was changed:
----- Method: ScorePlayerMorph>>volumeControl (in category 'layout') -----
volumeControl
| volumeSlider r |
volumeSlider := SimpleSliderMorph new
color: color;
sliderColor: Color gray;
+ extent: 80 px @ 12 px;
- extent: 80 at 12;
target: scorePlayer;
+ orientation: #horizontal;
actionSelector: #overallVolume:;
adjustToValue: scorePlayer overallVolume.
r := self makeRow
hResizing: #spaceFill;
vResizing: #rigid;
+ height: 24 px.
- height: 24.
r addMorphBack: (StringMorph contents: 'soft ' translated).
r addMorphBack: volumeSlider.
r addMorphBack: (StringMorph contents: ' loud' translated).
+ ^ r!
- ^ r
- !
More information about the Squeak-dev
mailing list
|