[squeak-dev] The Inbox: MorphicExtras-ct.323.mcz

Thiede, Christoph Christoph.Thiede at student.hpi.uni-potsdam.de
Tue Aug 23 10:10:34 UTC 2022


Before:

[cid:43fe5079-42ab-4060-92e7-48b665018c13]


After:

[cid:b4e80403-239c-4edc-ac0a-84412171819a]

________________________________
Von: Squeak-dev <squeak-dev-bounces at lists.squeakfoundation.org> im Auftrag von commits at source.squeak.org <commits at source.squeak.org>
Gesendet: Dienstag, 23. August 2022 12:09:41
An: squeak-dev at lists.squeakfoundation.org
Betreff: [squeak-dev] The Inbox: MorphicExtras-ct.323.mcz

A new version of MorphicExtras was added to project The Inbox:
http://source.squeak.org/inbox/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
- !


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220823/c7c52325/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImage.png
Type: image/png
Size: 60550 bytes
Desc: pastedImage.png
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220823/c7c52325/attachment-0002.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pastedImage.png
Type: image/png
Size: 88935 bytes
Desc: pastedImage.png
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20220823/c7c52325/attachment-0003.png>


More information about the Squeak-dev mailing list