[squeak-dev] Morph layout madness

Bob Arning arning315 at comcast.net
Thu Aug 1 01:25:54 UTC 2013


|m am|
m := Morph new color: Color white; extent: 200 at 100.
am := AlignmentMorph newRow
         hResizing: #shrinkWrap;
         vResizing: #shrinkWrap;
         listDirection: #leftToRight;
         color: Color transparent.
am addMorph: (Morph new color: Color red; extent: 37 at 51).
am addMorph: (Morph new color: Color blue; extent: 43 at 51).
*am fullBounds. "<<<<<<<<<"*
m addMorph: am.
am right: m right -10.
am top: m top +2.
m openInWorld

Tim,

am right: m right - 10

sets the right edge of am before am has adjusted its size base on its 
submorphs. Add the line marked above. Normally you would let the 
alignment-style properties ripple down and up the tree and all would be 
cool. Your insertion of manual positioning needed the extra step.

Cheers,
Bob

On 7/31/13 9:09 PM, tim Rowledge wrote:
> Here's a fun way to kill a few braincells. I've been tearing much hair out for the last couple of days trying to work this one out; why do my morphs not go where they ought?
>
> Consider a morph with a submorph AlignmentMorph (I know, you don't need to use AlignmentMorphs so much now) that in turn contains two morphs. Set the alignmenmorph's right to the main morphs right-10. Open it; what do you expect? I'd expect to find the pair of morphs lined up near the main morphs right side.
>
> Nah. Don't be silly.
>
> Try out this code -
> |m am|
> m := Morph new color: Color white; extent: 200 at 100.
> am := AlignmentMorph newRow
> 		hResizing: #shrinkWrap;
> 		vResizing: #shrinkWrap;
> 		listDirection: #leftToRight;
> 		color: Color transparent.
> am addMorph: (Morph new color: Color red; extent: 37 at 51).
> am addMorph: (Morph new color: Color blue; extent: 43 at 51).
> m addMorph: am.
> am right: m right -10.
> am top: m top +2.
> m openInWorld
>
> Now change the listDirection: #leftToRight; to listDirection: #rightToLeft and see what happens. I think that is just plain wrong.
>
> Better yet, add 'am right: m right -10.' after the openInWorld. Now it goes where you expect. So, what is changing things, why, is it a bug that can be fixed, what the hell?
>
> tim
> --
> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> Useful random insult:- His shared libraries aren't installed.
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20130731/063a6885/attachment.htm


More information about the Squeak-dev mailing list