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

Luciano Notarfrancesco luchiano at gmail.com
Thu Jun 25 01:40:46 PDT 2026


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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20260625/8ebc3d6b/attachment-0001.htm>


More information about the Cuis-dev mailing list