<!DOCTYPE html><html><head><title></title><style type="text/css">
p.MsoNormal,p.MsoNoSpacing{margin:0}</style></head><body><div>Hi Juan,<br></div><div><br></div><div>Thanks for the update. This makes obvious that a Morph instance shouldn't be used inside a LayoutMorph.<br></div><div><br></div><div>My current assignment for myself is to adapt the examples of the <a href="https://rmod-files.lille.inria.fr/FreeBooks/CollectiveNBlueBook/morphic.final.pdf">An Introduction to Morphic: The Squeak User Interface Framework</a> paper to Cuis. I tried to translate this method:<br></div><blockquote type="cite"><div>drawOn: aCanvas<br></div><div>| colors |<br></div><div>colors := color wheel: 6.<br></div><div>colors withIndexDo: [:c :i |<br></div><div>aCanvas fillOval: (self bounds insetBy: 4 * i) color: c].</div></blockquote><div>With this:<br></div><blockquote type="cite"><div>drawOn: aCanvas<br></div><div>| colors extent |<br></div><div>colors := self color wheel: 6.<br></div><div>extent := self morphExtentInOwner.<br></div><div>colors withIndexDo: [ :c :i |<br></div><div>aCanvas strokeWidth: 0 color: Color transparent  fillColor: c do: [<br></div><div>aCanvas ellipseCenter: (0 @ 0 )  radius: (extent - (4 * i))]]</div></blockquote><div><br></div><div>But using the message morphExtentInOwner locks the image and the virtual machine uses up the available memory and I have to kill the virtual machine process. Today I realized that the morph doesn't have an extent because it is in the middle of drawing itself. :-) Even if morphExtentInOwner is nonsensical in this method maybe this qualifies as a bug. My drawOn: method is in a subclass of PlacedMorph.<br></div><div><br></div><div>Regards,<br></div><div>Szabolcs<br></div><div><br></div><div>On Thu, Aug 17, 2023, at 14:59, Juan Vuletich wrote:<br></div><blockquote type="cite" id="qt" style=""><div>Hi Folks,<br></div><div> <br></div><div> On 8/16/2023 5:36 PM, Szabolcs Komáromi via Cuis-dev wrote:<br></div><blockquote cite="mid:24efa5d7-ec43-4247-b208-8c2d15d3900f@app.fastmail.com" type="cite"><div>My question is more hypothetical than practical. Is it a good
        idea to have a kind of morph that doesn't interact uniformly
        with other kinds of morphs? But maybe this is an irrelevant
        question and I should perceive the Morph class as an abstract
        class.<br></div><div><br></div><div><span class="qt-syl">Regards,</span><br></div><div><span class="qt-syl">Szabolcs</span><br></div></blockquote><div><br></div><div>Morph is not abstract. It can be used, although it is most useful if
    subclassed.<br></div><div> <br></div><div> A Morph that can not be moved is a bit like (in the real world) a
    part that is glued or soldered to another. We see those all the
    time. Not all (real world) objects are equally easy to decompose
    into parts. I think it is a good flexibility to give to users
    (including developers).<br></div><div> <br></div><div> WRT Morph in Layouts, yes, you found a bug. It is great to have more
    fresh eyes exploring the system. Some of the things that surprise
    you may lead to new insights on the system, but some can also be
    just bugs. I've just pushed an update to give an error if Morphs,
    that are not PlacedMorphs, are added to a Layout or a Text.<br></div><div> <br></div><div> Thanks for reporting!<br></div><div> <br></div><div> Cheers,<br></div><div><br></div><blockquote cite="mid:24efa5d7-ec43-4247-b208-8c2d15d3900f@app.fastmail.com" type="cite"><div>On Wed, Aug 16, 2023, at 22:07, Hilaire Fernandes via
        Cuis-dev wrote:<br></div><blockquote type="cite" id="qt-qt" style=""><div>For GUI (then layout), you don't want to use Morph because
          it does not <br></div><div>have location. The idea is to remove the unnecessary
          attributes<br></div><div><br></div><div>Le 16/08/2023 à 20:25, Szabolcs Komáromi a écrit :<br></div><div>> For me Morph feels a little bit broken. Too simplified
          and feels like <br></div><div>> a special case. (But I certainly doesn't have a
          comprehensive overview <br></div><div>> of Morphic in Cuis.) E.g.: If I try to add a Morph
          instance inside a <br></div><div>> LayoutMorph I get an MNU because Morph doesn't
          implement layoutSpec. <br></div><div>> It brakes the uniformity of morphs.<br></div><div>><br></div><div>>> a := Morph new.<br></div><div>>> b := LayoutMorph newColumn.<br></div><div>>> b addMorph: a.<br></div><div>>> b openInWorld<br></div><div>><br></div><div>> But I understand what was the rationale behind it.<br></div><div>><br></div><div>> Regards,<br></div><div>> Szabolcs<br></div><div><br></div><div>-- <br></div><div>GNU Dr. Geo<br></div><div><a href="http://drgeo.eu">http://drgeo.eu</a><br></div><div><a href="http://blog.drgeo.eu">http://blog.drgeo.eu</a><br></div><div><br></div><div>-- <br></div><div>Cuis-dev mailing list<br></div><div><a href="mailto:Cuis-dev@lists.cuis.st">Cuis-dev@lists.cuis.st</a><br></div><div><a href="https://lists.cuis.st/mailman/listinfo/cuis-dev">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br></div><div><br></div></blockquote><div><br></div></blockquote><div><br></div><div><br></div><pre class="qt-moz-signature" cols="72">-- 
Juan Vuletich
cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
linkedin.com/in/juan-vuletich-75611b3
twitter.com/JuanVuletich<br></pre></blockquote><div><br></div></body></html>