<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" dir="ltr" style="">
<div id="divtagdefaultwrapper" 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 class="_rp_l">
<div class="ms-font-color-neutralPrimary ms-font-xl ms-fwt-r _rp_m"><span class="rpHighlightAllClass rpHighlightSubjectClass" title="">[squeak-dev] The Trunk: Graphics-mt.406.mcz</span></div>
<div class="_rp_S"></div>
</div>
<div tabindex="-1">
<div tabindex="-1">
<div tabindex="0">
<div class="_rp_f5" tabindex="-1">
<div tabindex="-1" class="_rp_R4 ms-border-color-neutralLight ShowConsesusSchedulingLink noPrint ShowReferenceAttachmentsLinks">
<div></div>
<div class="_rp_S4" style="width:1553.36px">
<div class="_rp_o1">
<div class="_rp_q2 disableTextSelection _rp_y2">
<div class="_rp_I2"></div>
<div class="_rp_w2">
<div>
<div class="_rp_52"><span class="_rp_h2 owaimg ms-Icon--person ms-icon-font-size-50 ms-icon-modifier-doughboy ms-bgc-nt ms-fcl-w-b ms-icon-modifier-personDoughboy"></span></div>
</div>
<div class="_rp_62">
<div class="_rp_p1" tabindex="-1">
<div class="_rp_y1 _rp_A2 ms-bgc-tl-h ms-bgc-tlra" style="height:30px"><button type="button" class="ms-font-xs _rp_D2 o365button ms-fcl-ns" title="Bearbeitung fortsetzen">
<span class="_rp_N1 owaimg _rp_J1 ms-Icon--pencil ms-fcl-ns-b ms-icon-font-size-16"></span>
</button></div>
 
<div class="_rp_y1 ms-bgc-tl-h ms-bgc-tlra" style="height:30px"><button type="button" class="ms-font-xs _rp_D2 o365button ms-fcl-ns" title="Verwerfen">
<span class="_rp_M1 owaimg _rp_J1 ms-Icon--trash ms-fcl-ns-b ms-icon-font-size-16"></span>
</button></div>
</div>
<div>
<div class="_rp_f2 _rp_g2 ms-fwt-r owa-color-neutral-orange"><span class="ms-font-l owa-color-neutral-orange ms-fwt-r">[Entwurf]</span></div>
<div class="_rp_e2 ms-font-s ms-fwt-sl ms-fcl-ns"><span class="owa-color-neutral-orange _rp_E2 ms-font-s ms-fwt-sl">Diese Nachricht wurde nicht gesendet.</span>Gespeichert am: Heute, 13:41 Uhr</div>
</div>
</div>
<div class="_rp_32"></div>
</div>
</div>
<div class="_rp_x2">
<div class="_rp_32"></div>
<div></div>
</div>
</div>
</div>
<div class="_rp_45 _rp_35">
<div></div>
<div>
<div></div>
</div>
<div></div>
<div></div>
<div>
<div class="_rp_T4" id="Item.MessagePartBody">
<div class="_rp_U4 ms-font-weight-regular ms-font-color-neutralDark rpHighlightAllClass rpHighlightBodyClass" id="Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr" id="divtagdefaultwrapper"><font size="3" color="black" style="font-family:Calibri,Helvetica,sans-serif,serif,EmojiFont"><span dir="ltr" id="divtagdefaultwrapper" 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"></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"></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="Signature">
<div id="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="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div><font size="2" color="#808080"></font></div>
</div>
</div>
</div>
</div>
<hr tabindex="-1" 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="divRplyFwdMsg" 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 face="Calibri, sans-serif" color="#000000" style="font-size:11pt"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> 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 style="">
<div id="__MailbirdStyleContent" style=""><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 class="mb_sig" style="color: rgb(0, 0, 0); font-family: Arial; font-size: 10pt;">
</div>
<blockquote class="history_container" 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 <christoph.thiede@student.hpi.uni-potsdam.de>:</p>
<div style="">
<div dir="ltr" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 10pt;">
<div id="x_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" class="x_OWAAutoLink">
[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="x_Signature">
<div id="x_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" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div>
<div class="x__rp_T4" id="x_Item.MessagePartBody">
<div class="x__rp_U4 x_ms-font-weight-regular x_ms-font-color-neutralDark x_rpHighlightAllClass x_rpHighlightBodyClass" id="x_Item.MessageUniqueBody" style="font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif,serif,EmojiFont">
<div dir="ltr">
<div id="x_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="x_Signature">
<div style="margin:0px"><span style=""></span></div>
</div>
</span></div>
</div>
</div>
</div>
</div>
<div><span style="font-size:10pt; color:#808080"></span></div>
</div>
</div>
</div>
</div>
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="x_divRplyFwdMsg" dir="ltr"><span style="font-family:Calibri,sans-serif; color:#000000"><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> Montag, 30. Dezember 2019 03:11:52<br>
<b>An:</b> squeak-dev@lists.squeakfoundation.org<br>
<b>Betreff:</b> [squeak-dev] The Inbox: Graphics-jr.425.mcz</span>
<div> </div>
</div>
</div>
<div class="PlainText" style=""><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;">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 class="PlainText" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 10pt;">
<br>
</div>
<div class="PlainText" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 10pt;">
<br>
</div>
<div class="PlainText" style="color: rgb(0, 0, 0); font-family: Arial, Helvetica, sans-serif; font-size: 10pt;">
<div><br>
</div>
<div>
<div id="divtagdefaultwrapper" 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="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;">
<div name="divtagdefaultwrapper" style="font-family: Calibri, Arial, Helvetica, sans-serif; margin: 0px;">
<div>
<div class="_rp_T4" id="Item.MessagePartBody">
<div class="_rp_U4 ms-font-weight-regular ms-font-color-neutralDark rpHighlightAllClass rpHighlightBodyClass" id="Item.MessageUniqueBody" style="font-family: wf_segoe-ui_normal, "Segoe UI", "Segoe WP", Tahoma, Arial, sans-serif, serif, EmojiFont;">
<div dir="ltr">
<div id="divtagdefaultwrapper"><font face="Calibri,Helvetica,sans-serif,EmojiFont,Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols">
<div id="Signature">
<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 tabindex="-1" 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="divRplyFwdMsg" 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 face="Calibri, sans-serif" color="#000000" style="font-size: 11pt;"><b>Von:</b> Squeak-dev <squeak-dev-bounces@lists.squeakfoundation.org> 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="__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 class="mb_sig"></div>
<blockquote class="history_container" 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 <forums.jakob@resfarm.de>:</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">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>
</body>
</html>