[Cuis-dev] Icons with path sequence in vector graphics

Juan Vuletich juan at cuis.st
Thu Jun 25 06:02:26 PDT 2026


Hi Folks,

Just one comment Hilaire on performance. I agree with Luciano here.

If I remember correctly, you did you Circular Toolbar before we had the 
VectorEnginePlugin in the official VMs. At that time, running the 
Smalltalk version would be quite slower. You can try again without any 
caching. Especially if you use the literal FloatArray format it should 
be really fast.

Cheers,

On 2026-06-25 5:40 AM, Luciano Notarfrancesco via Cuis-dev wrote:
> Hi Hilaire,
>
> Yes, I'll share my widgets, I should make a new package independent 
> from my app. Anyway, feel free to extract and use/change anything from 
> my packages.
>
> Regarding your experience of slow drawing of vectorized icons vs fast 
> drawing of bitmap icons, I think that's not the case any more. Vector 
> graphics works really fast for me. For example, in the tracker I have 
> this big grid of text, and all the empty cells are the same, something 
> like '-- --- -- --- ---'. Typically you might have 100-300 empty cells 
> that need to be redrawn several times per second, and I thought 
> calling drawString: for each empty cell was going to be slow, so I 
> made a Form for this and I called image:at: instead. But later on I 
> realized it was slower than actually drawing the string. Perhaps I 
> made some mistake, but anyways drawing all the strings is super fast 
> and I removed the form cache.
>
> About the dictionary iconName -> icon, at this time I think I prefer 
> to just specify the icon with the path data string and avoid the 
> global registry of icons, it's simpler, keeps everything local. But I 
> have very few, perhaps it's different for a project like yours with 
> lots of icons. I recommend you to add support for path data strings, 
> tho, I love it, it makes it super easy to browse icons on the web and 
> copy and paste to Cuis.
>
>
>
>
>
>
> On Thu, Jun 25, 2026 at 4:33 AM Hilaire Fernandes via Cuis-dev 
> <cuis-dev at lists.cuis.st> wrote:
>
>     Hi Luciano,
>
>     Le 24/06/2026 à 09:27, Luciano Notarfrancesco via Cuis-dev a écrit :
>>     I've been making my own buttons, knobs, pulldown lists, etc...
>>     all sorts of widgets. Some of them draw text, like the label on a 
>
>     Please share your widgets on Cuis-Smalltalk-UI for re usability
>     within the cuis community.
>
>     In this repo, there is a simple icon importer for both png and
>     SVG. The icons are rendered on Form and cached on a dictionary to
>     improve speed. When you have a lot of vectorial icons on a GUI,
>     you may have slowdown if they are repeatedly rendered from the
>     vectorial forms. I noticed that with the DrGeo circular toolbar.
>
>     The icon importer could be extend to support this compact format
>
>     Hilaire
>
>>     button, and I'd like to add optional monochromatic icons. For the
>>     sake of simplicity, I'd like to just set the icon as path data,
>>     something like this:
>>         M784-120 532-372q-30 24-69 38t-83 14q-109
>>     0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5
>>     75.5T640-580q0 44-14 83t-38 69l252 252-56 56ZM380-400q75 0
>>     127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5
>>     52.5T200-580q0 75 52.5 127.5T380-400Z
>>
>>     I got this from https://fonts.google.com/icons , there you can
>>     search the icons you like and click on the image of the icon to
>>     copy this path data to the clipboard.
>>
>>     Then, say it is the icon for a button, the button morph can draw
>>     it scaled depending on the morph height, or on the line spacing
>>     of the font used for the label. Seems the simplest solution to
>>     me, and it would be just one or two lines of path data when
>>     creating the button.
>>
>>     My question is, how do I represent this in Cuis? There is
>>     PathCommand and subclasses, but it's not used anywhere in the
>>     base image or packages, I didn't find any examples. There's also
>>     VectorCanvas>>pathSequence: in a different format, more limited
>>     (only supports commands M L C Q, I think).
>>
>>     What's the correct path for this? What do you suggest?
>
>     -- 
>     http://mamot.fr/@drgeo
>
>     -- 
>     Cuis-dev mailing list
>     Cuis-dev at lists.cuis.st
>     https://lists.cuis.st/mailman/listinfo/cuis-dev
>
>
-- 
Juan Vuletich
www.cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20260625/c499bbdc/attachment.htm>


More information about the Cuis-dev mailing list