[squeak-dev] Morph layout madness

tim Rowledge tim at rowledge.org
Thu Aug 1 01:09:03 UTC 2013


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.




More information about the Squeak-dev mailing list