<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from text --><style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<meta content="text/html; charset=UTF-8">
<style type="text/css" style="">
<!--
p
        {margin-top:0;
        margin-bottom:0}
-->
</style>
<div dir="ltr">
<div id="x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt; color:#000000; font-family:Calibri,Helvetica,sans-serif">
<p>Before:</p>
<p><img size="17678" id="x_img441569" tabindex="0" style="max-width:99.9%" src="cid:a4f34f97-1a46-43ff-8687-1b36fd32d02e"><br>
</p>
<p><br>
</p>
<p>After:</p>
<p><img size="20888" id="x_img299927" tabindex="0" style="max-width:99.9%" src="cid:02fe2c61-e9a9-43b9-b980-99c44eafd1d8"></p>
<p><br>
</p>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> im Auftrag von commits@source.squeak.org <commits@source.squeak.org><br>
<b>Gesendet:</b> Dienstag, 23. August 2022 12:56:25<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org<br>
<b>Betreff:</b> [squeak-dev] The Inbox: MorphicExtras-ct.325.mcz</font>
<div> </div>
</div>
</div>
<font size="2"><span style="font-size:10pt;">
<div class="PlainText">A new version of MorphicExtras was added to project The Inbox:<br>
<a href="http://source.squeak.org/inbox/MorphicExtras-ct.325.mcz">http://source.squeak.org/inbox/MorphicExtras-ct.325.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: MorphicExtras-ct.325<br>
Author: ct<br>
Time: 23 August 2022, 12:56:21.917308 pm<br>
UUID: 9dbee01e-1b9f-f24b-93a1-16d02f845373<br>
Ancestors: MorphicExtras-eem.322<br>
<br>
Fixes high-dpi support in RecordingControlsMorph. Removes unused #addRecordLevelSlider. Improves color of record level slider.<br>
<br>
Supersedes incomplete MorphicExtras-ct.324.<br>
<br>
=============== Diff against MorphicExtras-eem.322 ===============<br>
<br>
Item was changed:<br>
  ----- Method: RecordingControlsMorph>>addButtonRows (in category 'initialization') -----<br>
  addButtonRows<br>
  <br>
         | r fullWidth |<br>
         r := AlignmentMorph newRow vResizing: #shrinkWrap.<br>
+        <br>
- <br>
- <br>
         r addMorphBack: (self buttonName: 'Morph' translated action: #makeSoundMorph).<br>
+        r addMorphBack: (Morph new extent: 4 px @ 1 px; color: Color transparent).<br>
-        r addMorphBack: (Morph new extent: 4@1; color: Color transparent).<br>
         r addMorphBack: (self buttonName: 'Tile' translated action: #makeTile).<br>
+        r addMorphBack: (Morph new extent: 4 px @ 1 px; color: Color transparent).<br>
-        r addMorphBack: (Morph new extent: 4@1; color: Color transparent).<br>
         r addMorphBack: (self buttonName: 'Trim' translated action: #trim).<br>
+        r addMorphBack: (Morph new extent: 4 px @ 1 px; color: Color transparent).<br>
-        r addMorphBack: (Morph new extent: 4@1; color: Color transparent).<br>
         r addMorphBack: (self buttonName: 'Show' translated action: #showEditor).<br>
         self addMorphBack: r.<br>
         r layoutChanged.<br>
         fullWidth := r fullBounds width.<br>
+        <br>
- <br>
         r := AlignmentMorph newRow vResizing: #shrinkWrap.<br>
         r addMorphBack: (self buttonName: 'Record' translated action: #record).<br>
+        r addMorphBack: (Morph new extent: 4 px @ 1 px; color: Color transparent).<br>
-        r addMorphBack: (Morph new extent: 4@1; color: Color transparent).<br>
         r addMorphBack: (self buttonName: 'Stop' translated action: #stop).<br>
+        r addMorphBack: (Morph new extent: 4 px @ 1 px; color: Color transparent).<br>
-        r addMorphBack: (Morph new extent: 4@1; color: Color transparent).<br>
         r addMorphBack: (self buttonName: 'Play' translated action: #playback).<br>
+        r addMorphBack: (Morph new extent: 4 px @ 1 px; color: Color transparent).<br>
-        r addMorphBack: (Morph new extent: 4@1; color: Color transparent).<br>
         r addMorphBack: (self buttonName: 'Codec' translated action: #chooseCodec).<br>
         r addMorphBack: self makeStatusLight.<br>
         self addMorphBack: r.<br>
         Smalltalk at: #OggSpeexCodec ifPresent: [:c |<br>
                 self changeCodec: c name: 'Speex'].<br>
         r layoutChanged.<br>
         fullWidth := fullWidth max: r fullBounds width.<br>
+        ^ fullWidth @ r fullBounds height!<br>
-        ^ fullWidth@(r fullBounds height).<br>
- !<br>
<br>
Item was removed:<br>
- ----- Method: RecordingControlsMorph>>addRecordLevelSlider (in category 'other') -----<br>
- addRecordLevelSlider<br>
- <br>
-        | levelSlider r |<br>
-        levelSlider := SimpleSliderMorph new<br>
-                color: color;<br>
-                extent: 100@2;<br>
-                target: recorder;<br>
-                actionSelector: #recordLevel:;<br>
-                adjustToValue: recorder recordLevel.<br>
-        r := AlignmentMorph newRow<br>
-                color: color;<br>
-                layoutInset: 0;<br>
-                wrapCentering: #center; cellPositioning: #leftCenter;<br>
-                hResizing: #shrinkWrap;<br>
-                vResizing: #rigid;<br>
-                height: 24.<br>
-        r addMorphBack: (StringMorph contents: '0 ').<br>
-        r addMorphBack: levelSlider.<br>
-        r addMorphBack: (StringMorph contents: ' 10').<br>
-        self addMorphBack: r.<br>
- !<br>
<br>
Item was changed:<br>
  ----- Method: RecordingControlsMorph>>addRecordLevelSliderIn: (in category 'other') -----<br>
  addRecordLevelSliderIn: aPoint<br>
  <br>
         | levelSlider r |<br>
+        (levelSlider := SimpleSliderMorph new)<br>
-        levelSlider := SimpleSliderMorph new<br>
                 color: color darker;<br>
+                sliderColor: Color gray;<br>
+                extent: (aPoint x * 0.75) asInteger @ (aPoint y * 0.6) asInteger;<br>
+                minimumExtent: levelSlider extent;<br>
-                extent: (aPoint x * 0.75) asInteger@(aPoint y*0.6) asInteger;<br>
                 target: recorder;<br>
                 actionSelector: #recordLevel:;<br>
+                orientation: #horizontal;<br>
                 adjustToValue: recorder recordLevel.<br>
         r := AlignmentMorph newRow<br>
                 color: color;<br>
                 layoutInset: 0;<br>
                 wrapCentering: #center; cellPositioning: #leftCenter;<br>
                 hResizing: #shrinkWrap;<br>
                 vResizing: #rigid;<br>
+                height: aPoint y + 2 px.<br>
+        r addMorphBack: (StringMorph contents: '0 ' font: TextStyle defaultFont).<br>
-                height: aPoint y + 2.<br>
-        r addMorphBack: (StringMorph contents: '0 ' font: Preferences standardButtonFont).<br>
         r addMorphBack: levelSlider.<br>
+        r addMorphBack: (StringMorph contents: ' 10' font: TextStyle defaultFont).<br>
+        self addMorphBack: r.!<br>
-        r addMorphBack: (StringMorph contents: ' 10' font: Preferences standardButtonFont).<br>
-        self addMorphBack: r.<br>
- !<br>
<br>
Item was changed:<br>
  ----- Method: RecordingControlsMorph>>buttonName:action: (in category 'other') -----<br>
  buttonName: aString action: aSymbol<br>
  <br>
         ^ SimpleButtonMorph new<br>
                 target: self;<br>
+                label: aString;<br>
-                label: aString font: Preferences standardButtonFont;<br>
                 actionSelector: aSymbol<br>
  !<br>
<br>
Item was changed:<br>
  ----- Method: RecordingControlsMorph>>initialize (in category 'initialization') -----<br>
  initialize<br>
  <br>
         | r full |<br>
         super initialize.<br>
         self hResizing: #shrinkWrap; vResizing: #shrinkWrap.<br>
+        self borderWidth: 2 px.<br>
-        self borderWidth: 2.<br>
         self listDirection: #topToBottom.<br>
         recorder := SoundRecorder new.<br>
         full := self addButtonRows.<br>
         self addRecordLevelSliderIn: full.<br>
  <br>
         r := AlignmentMorph newRow vResizing: #shrinkWrap.<br>
         r addMorphBack: (self makeRecordMeterIn: full).<br>
         self addMorphBack: r.<br>
+        self extent: 10 @ 10.  "make minimum size"!<br>
-        self extent: 10@10.  "make minimum size"<br>
- !<br>
<br>
Item was changed:<br>
  ----- Method: RecordingControlsMorph>>makeRecordMeterIn: (in category 'other') -----<br>
  makeRecordMeterIn: aPoint<br>
  <br>
         | outerBox h |<br>
         h := (aPoint y * 0.6) asInteger.<br>
+        outerBox := Morph new extent: aPoint x asInteger @ h; color: Color gray.<br>
+        recordMeter := Morph new extent: 1 px @ h; color: Color yellow.<br>
+        recordMeter position: outerBox topLeft + (1 px @ 1 px).<br>
-        outerBox := Morph new extent: (aPoint x) asInteger@h; color: Color gray.<br>
-        recordMeter := Morph new extent: 1@h; color: Color yellow.<br>
-        recordMeter position: outerBox topLeft + (1@1).<br>
         outerBox addMorph: recordMeter.<br>
+        ^ outerBox!<br>
-        ^ outerBox<br>
- !<br>
<br>
<br>
</div>
</span></font>
</body>
</html>