[Cuis-dev] Pluggable List of Morph

Nicolás Papagna Maldonado nicolas.papagna at gmail.com
Tue Jan 18 07:41:03 PST 2022


Hello all, @H. Fernandes <hilaire at drgeo.eu>!

Here's the code for the ListMorph morph I was working on some time ago.
Keep in mind that this was "a PoC within a PoC" so it is half
baked/incomplete.

The last thing I did IIRC was work on drag n drop support (not implemented
yet).

Make sure to install all updates, load the package and check examples in
ListMorphDemo class.

Cheers,
Nico PM

On Fri, Jan 14, 2022 at 1:12 PM Nicolás Papagna Maldonado <
nicolas.papagna at gmail.com> wrote:

> Hi Hilarie!
>
> I subclassed PluggableMorph and build my way from there.
> Implemented #layoutSubmorphs to calculate which ones should be displayed
> based on the scroll position and the item heights (similar to what
> LayourMoph does when it is created as a column).
>
> I took a different approach wrt items though: unlike PluggableListMorph
> and friends where the list is in control of everything (which item is
> selected, highlighted, item click handler, etc), I wanted to see what
> happened when the "control is inverted" and all these responsibilities are
> moved to the item themselves.
>
> That leaves the list with the responsibility of keeping the scroll
> positions, efficiently laying out submorphs, and a couple more things.
>
> It worked great for my use case. Not all items should be instances of the
> same morph (items can have varying heights) and this gets you lots of
> flexibility to play with.
>
> I will send the code over the weekend (just got back from a trip).
>
> Best,
> Nico PM
>
>
>
>
>
> On Thu, Jan 13, 2022 at 5:11 PM Hilaire Fernandes via Cuis-dev <
> cuis-dev at lists.cuis.st> wrote:
>
>> Hi Nicola et al.
>>
>> After some thinking,  a InnerListOfMorph should simply be a subclass of
>> MorphLayout (beColumn).
>>
>> The InnerListMorph draws directly its text content, highlight, selected.
>> It could have been designed with a row of TextMorph but would have been
>> inefficient.
>>
>> Nicolas, which direction did you took for your initial design?
>>
>> Hilaire
>> Le 11/01/2022 à 21:14, Hilaire Fernandes a écrit :
>>
>> Hi Nicola,
>>
>> Nice, I started subclassing those close for Morph, but not sure now it is
>> the right way. Need to check again. In fact all could be simplified with
>> only Morph as text in list can be morph too.
>>
>> Need some time to think about it..
>>
>> Best
>>
>> Hilaire
>> Le 08/01/2022 à 16:07, Nicolás Papagna Maldonado a écrit :
>>
>> Hi Hilarie!
>>
>> I had similar needs for a couple of projects (a generic, scrollable list
>> of morphs -- PluggableListMorph but having any morph as an item).
>> Initially, I took a look at PluggableListMophr, InnerListMorph, and
>> friends but found them a bit hard to understand/change for what I needed
>> (based on my very little experience with Morphic at the time).
>>
>> After some time I decided to "roll my own" because it looked like these
>> classes were not created for that purpose, and also I really wanted to get
>> into/learn how UI components work.
>>
>> I never finished the component but got it working fine for the PoC I was
>> building at the time.
>> The mail about Cuis-Smalltalk-UI got me thinking of getting it back in
>> shape.
>>
>> Best,
>> Nico PM
>>
>> --
>> GNU Dr. Geohttp://drgeo.euhttp://blog.drgeo.eu
>>
>> --
>> GNU Dr. Geohttp://drgeo.euhttp://blog.drgeo.eu
>>
>> --
>> Cuis-dev mailing list
>> Cuis-dev at lists.cuis.st
>> https://lists.cuis.st/mailman/listinfo/cuis-dev
>>
>
>
> --
>
> Nicolás Papagna
>


-- 

Nicolás Papagna
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220118/ca4fd79a/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ListMorph.pck.st
Type: application/octet-stream
Size: 23910 bytes
Desc: not available
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20220118/ca4fd79a/attachment-0001.obj>


More information about the Cuis-dev mailing list