<div dir="ltr"><div>Hi all,</div><div>Do we rely anywhere on having nil fractions?</div><div>Otherwise, just provide #initialize and set all inst var to zero.<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 6 janv. 2020 à 14:01, Thiede, Christoph <<a href="mailto:Christoph.Thiede@student.hpi.uni-potsdam.de">Christoph.Thiede@student.hpi.uni-potsdam.de</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div id="gmail-m_-5576138783646853197divtagdefaultwrapper" dir="ltr">
<div id="gmail-m_-5576138783646853197divtagdefaultwrapper" dir="ltr" style="color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:12pt">
<p>Hi Marcel, <span style="font-size:12pt">Welcome back & happy new year! :-)</span></p>
<p><br>
</p>
<p>> <span style="font-size:12pt">IMO, it should be considered a bug that there are LayoutFrame instances with "nil" fractions.</span></p>
<div><br>
</div>
<div>Good point. There are many users of LayoutFrame that do not use any constructor of the class. For example, see SystemWindow <span>closeBoxFrame.</span></div>
<div><span>Now we could either define 2**8 constructors for all of them or, what I would find more simple, do what you proposed in 
<div>
<div><span title="">[squeak-dev] The Trunk: Graphics-mt.406.mcz</span></div>
<div></div>
</div>
<div>
<div>
<div>
<div>
<div>
<div></div>
<div style="width:1553.36px">
<div>
<div>
<div></div>
<div>
<div>
<div><span></span></div>
</div>
<div>
<div>
<div style="height:30px"><button type="button" title="Bearbeitung fortsetzen">
<span></span>
</button></div>
 
<div style="height:30px"><button type="button" title="Verwerfen">
<span></span>
</button></div>
</div>
<div>
<div><span>[Entwurf]</span></div>
<div><span>Diese Nachricht wurde nicht gesendet.</span>Gespeichert am: Heute, 13:41 Uhr</div>
</div>
</div>
<div></div>
</div>
</div>
<div>
<div></div>
<div></div>
</div>
</div>
</div>
<div>
<div></div>
<div>
<div></div>
</div>
<div></div>
<div></div>
<div>
<div id="gmail-m_-5576138783646853197Item.MessagePartBody">
<div id="gmail-m_-5576138783646853197Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr" id="gmail-m_-5576138783646853197divtagdefaultwrapper"><font style="font-family:Calibri,Helvetica,sans-serif,serif,EmojiFont" size="3" color="black"><span dir="ltr" id="gmail-m_-5576138783646853197divtagdefaultwrapper" style="font-size:12pt"></span></font></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</span></div>
<div><span><br>
</span></div>
<div><span>
<div style="font-family:Calibri,Helvetica,sans-serif,serif,EmojiFont;font-size:16px;margin-top:0px;margin-bottom:0px">
> <span style="font-size:12pt">we might want to change all "getters" into lazy initializers? #leftFraction, #rightFraction, ... or at least return "0" on "ifNil"?</span><font size="3"><span style="font-size:12pt"></span><span style="font-size:12pt">
<div><br>
</div>
</span></font></div>
<div><span style="font-size:12pt">I would prefer the second variant, just for backward compatibility.</span><br>
</div>
<div><span style="font-size:12pt"><br>
</span></div>
<div><span style="font-size:12pt">And should we maybe initialize the offsets in #<span>leftFraction: etc. if they are zero?</span></span></div>
<div><span style="font-size:12pt"><span><br>
</span></span></div>
<div><span style="font-size:12pt"><span>
<div>leftFraction: aNumber</div>
<div><span style="white-space:pre-wrap"></span>    ^ self leftFraction: aNumber offset: self leftOffset</div>
<div><br>
</div>
<div>leftOffset</div>
<div><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px;white-space:pre-wrap"></span><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px"> 
   ^ leftOffset ifNil: [0]</span><br>
</div>
</span></span></div>
<div><span style="font-size:12pt"><br>
</span></div>
<div><span style="font-size:12pt">Best,</span></div>
<div><span style="font-size:12pt">Christoph</span></div>
</span></div>
<div><span><br>
</span></div>
<p></p>
<div id="gmail-m_-5576138783646853197Signature">
<div id="gmail-m_-5576138783646853197divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="divtagdefaultwrapper">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:12pt;display:inline-block;width:98%">
<div id="gmail-m_-5576138783646853197divRplyFwdMsg" dir="ltr" style="color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:12pt">
<font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 6. Januar 2020 13:28:02<br>
<b>An:</b> John Pfersich via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Inbox: Graphics-jr.425.mcz</font>
<div> </div>
</div>
<div>
<div id="gmail-m_-5576138783646853197__MailbirdStyleContent"><font face="Arial"><span style="font-size:10pt">> </span></font><span style="color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif;font-size:16px">What is the advantage of nil fractions compared to zero
 fractions?</span>
<div style="color:rgb(0,0,0);font-family:Arial;font-size:10pt"><span style="font-family:Calibri,Helvetica,sans-serif;font-size:16px"><br>
</span></div>
<div style="color:rgb(0,0,0);font-family:Arial;font-size:10pt"><span style="font-family:Calibri,Helvetica,sans-serif;font-size:16px">No advantages, I think. Just additional ifNil-checks somewhere else. IMO, it should be considered a bug that there
 are LayoutFrame instances with "nil" fractions.</span></div>
<div style="color:rgb(0,0,0);font-family:Arial;font-size:10pt"><span style="font-family:Calibri,Helvetica,sans-serif;font-size:16px"><br>
</span></div>
<div style="color:rgb(0,0,0);font-family:Arial;font-size:10pt"><span style="font-family:Calibri,Helvetica,sans-serif;font-size:16px">Best,</span></div>
<div style="color:rgb(0,0,0);font-family:Arial;font-size:10pt"><span style="font-family:Calibri,Helvetica,sans-serif;font-size:16px">Marcel</span></div>
<div style="color:rgb(0,0,0);font-family:Arial;font-size:10pt">
</div>
<blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-top:20px;margin-left:0px;padding-left:10px;min-width:500px">
<p style="color:rgb(170,170,170);font-family:Arial;font-size:10pt;margin-top:10px">
Am 30.12.2019 14:15:28 schrieb Thiede, Christoph <<a href="mailto:christoph.thiede@student.hpi.uni-potsdam.de" target="_blank">christoph.thiede@student.hpi.uni-potsdam.de</a>>:</p>
<div>
<div dir="ltr" style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:10pt">
<div id="gmail-m_-5576138783646853197x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<p>Ah yes, we had also talked about this in <a href="http://forum.world.st/LayoutFrame-printOn-tp5104021.html" target="_blank">
[squeak-dev] <span style="font-size:12pt">LayoutFrame>>#printOn:</span></a><span style="font-size:12pt">.</span></p>
<p><span style="font-size:12pt"><br>
</span></p>
<p><span style="font-size:12pt">Maybe we should define whether fractions are okay to be nil here. What is the advantage of nil fractions compared to zero fractions?</span></p>
<div id="gmail-m_-5576138783646853197x_Signature">
<div id="gmail-m_-5576138783646853197x_divtagdefaultwrapper" dir="ltr" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols">
<div name="x_divtagdefaultwrapper">
<div>
<div id="gmail-m_-5576138783646853197x_Item.MessagePartBody">
<div id="gmail-m_-5576138783646853197x_Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="gmail-m_-5576138783646853197x_divtagdefaultwrapper"><span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="gmail-m_-5576138783646853197x_Signature">
<div style="margin:0px"><span></span></div>
</div>
</span></div>
</div>
</div>
</div>
</div>
<div><span style="font-size:10pt;color:rgb(128,128,128)"></span></div>
</div>
</div>
</div>
</div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-5576138783646853197x_divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif;color:rgb(0,0,0)"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>> im Auftrag von <a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a> <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>><br>
<b>Gesendet:</b> Montag, 30. Dezember 2019 03:11:52<br>
<b>An:</b> <a href="mailto:squeak-dev@lists.squeakfoundation.org" target="_blank">squeak-dev@lists.squeakfoundation.org</a><br>
<b>Betreff:</b> [squeak-dev] The Inbox: Graphics-jr.425.mcz</span>
<div> </div>
</div>
</div>
<div><font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">A new version of Graphics was added to project The Inbox:</span></font><br>
<a href="http://source.squeak.org/inbox/Graphics-jr.425.mcz" style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:10pt" target="_blank">http://source.squeak.org/inbox/Graphics-jr.425.mcz</a><br>
<br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">==================== Summary ====================</span></font><br>
<br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">Name: Graphics-jr.425</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">Author: jr</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">Time: 30 December 2019, 3:11:45.845402 am</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">UUID: 465fa95d-6a50-a84d-8b73-7e90a2b9d2b5</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">Ancestors: Graphics-pre.424</span></font><br>
<br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">Fix message not understood when the right or bottom fraction of a LayoutFrame is nil.</span></font><br>
<br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">=============== Diff against Graphics-pre.424 ===============</span></font><br>
<br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">Item was changed:</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">  ----- Method: LayoutFrame>>printOn: (in category 'printing') -----</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">  printOn: aStream</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">  </span>
</font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">         super printOn: aStream.</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">        
</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">         aStream nextPutAll: '( '.</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">        
</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">         { {'l'. self leftFraction. self leftOffset}. {'t'. self topFraction. self topOffset}. {'r'. self rightFraction. self rightOffset}. {'b'. self bottomFraction. self bottomOffset}
 } do: [:spec |</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                 aStream nextPutAll: spec first; space.</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                
</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">+                (spec second ifNil: [0]) printOn: aStream maxDecimalPlaces: 2.</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">-                spec second printOn: aStream maxDecimalPlaces: 2.</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                
</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                 aStream nextPutAll: ((spec third ifNil: [0]) >= 0 ifTrue: ['+'] ifFalse: ['-']).</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                 (spec third ifNil: [0]) abs printOn: aStream maxDecimalPlaces: 0]</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                         separatedBy: [aStream space].</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">                        
</span></font><br>
<font face="Arial, Helvetica, sans-serif"><span style="font-size:10pt">         aStream nextPutAll: ' )'.!</span></font><br>
<br>
<br>
</div>
<div style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:10pt">
<br>
</div>
<div style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:10pt">
<br>
</div>
<div style="color:rgb(0,0,0);font-family:Arial,Helvetica,sans-serif;font-size:10pt">
<div><br>
</div>
<div>
<div id="gmail-m_-5576138783646853197divtagdefaultwrapper" dir="ltr" style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:12pt">
<div id="gmail-m_-5576138783646853197Signature">
<div id="gmail-m_-5576138783646853197divtagdefaultwrapper" dir="ltr" style="font-size:12pt">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif;margin:0px">
<div>
<div id="gmail-m_-5576138783646853197Item.MessagePartBody">
<div id="gmail-m_-5576138783646853197Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="gmail-m_-5576138783646853197divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="gmail-m_-5576138783646853197Signature">
<div style="margin:0px"><font style="font-family:Calibri,Arial,Helvetica,sans-serif,serif,EmojiFont"></font></div>
</div>
</font></div>
</div>
</div>
</div>
</div>
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px;display:inline-block;width:1481.14px">
<span style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px"></span>
<div id="gmail-m_-5576138783646853197divRplyFwdMsg" dir="ltr" style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">
<font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>Von:</b> Squeak-dev <<a href="mailto:squeak-dev-bounces@lists.squeakfoundation.org" target="_blank">squeak-dev-bounces@lists.squeakfoundation.org</a>> im Auftrag von Taeumel, Marcel<br>
<b>Gesendet:</b> Montag, 6. Januar 2020 13:32:44<br>
<b>An:</b> John Pfersich via Squeak-dev<br>
<b>Betreff:</b> Re: [squeak-dev] The Trunk: Graphics-mt.406.mcz</font>
<div> </div>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif,EmojiFont,"Apple Color Emoji","Segoe UI Emoji",NotoColorEmoji,"Segoe UI Symbol","Android Emoji",EmojiSymbols;font-size:16px">
<div id="gmail-m_-5576138783646853197__MailbirdStyleContent" style="font-size:10pt;font-family:Arial">Hmm... we might want to change all "getters" into lazy initializers? #leftFraction, #rightFraction, ... or at least return "0" on "ifNil"?
<div><br>
</div>
<div>Best,</div>
<div>Marcel</div>
<div></div>
<blockquote type="cite" style="border-left-style:solid;border-width:1px;margin-top:20px;margin-left:0px;padding-left:10px">
<p style="margin-top:10px;color:rgb(170,170,170)">Am 30.12.2019 00:11:53 schrieb Jakob Reschke <<a href="mailto:forums.jakob@resfarm.de" target="_blank">forums.jakob@resfarm.de</a>>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div dir="ltr">For some reason I encounter LayoutFrames with nil in the right and bottom variables... of course, these don't understand printOn:maxDecimalPlaces:.</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">Am Do., 17. Jan. 2019 um 11:19 Uhr schrieb <<a href="mailto:commits@source.squeak.org" target="_blank">commits@source.squeak.org</a>>:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Marcel Taeumel uploaded a new version of Graphics to project The Trunk:<br>
<a href="http://source.squeak.org/trunk/Graphics-mt.406.mcz" rel="noreferrer" target="_blank">http://source.squeak.org/trunk/Graphics-mt.406.mcz</a><br>
<br>
==================== Summary ====================<br>
<br>
Name: Graphics-mt.406<br>
Author: mt<br>
Time: 17 January 2019, 11:18:39.003727 am<br>
UUID: 027d00a7-113d-4b9f-aaec-79e3373339c1<br>
Ancestors: Graphics-mt.405<br>
<br>
Adds an informative string representation for LayoutFrame to support layout design and debugging.<br>
<br>
=============== Diff against Graphics-mt.405 ===============<br>
<br>
Item was added:<br>
+ ----- Method: LayoutFrame>>printOn: (in category 'printing') -----<br>
+ printOn: aStream<br>
+ <br>
+       super printOn: aStream.<br>
+       <br>
+       aStream nextPutAll: '( '.<br>
+       <br>
+       { {'l'. self leftFraction. self leftOffset}. {'t'. self topFraction. self topOffset}. {'r'. self rightFraction. self rightOffset}. {'b'. self bottomFraction. self bottomOffset} } do: [:spec |<br>
+               aStream nextPutAll: spec first; space.<br>
+               <br>
+               spec second printOn: aStream maxDecimalPlaces: 2.<br>
+               <br>
+               aStream nextPutAll: ((spec third ifNil: [0]) >= 0 ifTrue: ['+'] ifFalse: ['-']).<br>
+               (spec third ifNil: [0]) abs printOn: aStream maxDecimalPlaces: 0]<br>
+                       separatedBy: [aStream space].<br>
+                       <br>
+       aStream nextPutAll: ' )'.!<br>
<br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</div>
</div>
<br>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>

<br>
</blockquote></div>