[Lazarus] Component icons howto ?
Michael Van Canneyt
michael at freepascal.org
Tue Mar 29 19:45:43 CEST 2022
On Tue, 29 Mar 2022, Werner Pamler wrote:
> Am 29.03.2022 um 18:37 schrieb Michael Van Canneyt:
>> So you must always register the three images.
> You are not forced to. But when you provide only the standard size and run
> the IDE at 200% the IDE will upscale the 24x24 image to double size, and the
> icon will become blurry - just as it was in the days before Ondrej
> implemented all these scaling functions. (BTW: a long time before Delphi
> which seems to support High-Dpi only now in the recent release).
OK, thank you.
>>>> As a corollary: what's with the strange names ?
>>>> Why not use the size of the icon in the name, that would be a lot
>>>> clearer IMHO?
>>> That's the way it was decided. One advantage is that when images are
>>> needed for other purposes, but at different sizes (e.g. the icons in the
>>> message window which are much smaller) the scaling procedure can still be
>>> the same
>> Not sure I follow the logic ?
> I don't know the actual procedure names ATM, but imagine that when the
> message window needs a "warning" icon (which is - say - 12x12 at 96ppi) then
> the scaling procedure at 192ppi only needs to look for "warning_200.png". If
> the exact image size would have been included in the file name instead
> ("warning_24x24.png"), it would have to know the size of the base image at
> 96ppi in order to select the right image. A little simplification.
I fail to see the link between 192 and 200. This requires people to know
that 96dpi and 144 dpi and 192 dpi are 100, 150 and 200 % of a standard size.
For me - and I've been in IT for quite some time now - this is far from
obvious that this should result in 24x24, 36x36 and 48x48 icon sizes.
In short: I think this is a horribly contorted scheme.
All other systems I came across simply use icon dimensions in the name.
Far simpler and hence preferable in my opinion.
>>>> I looked in the WIKI but could not find any relevant info.
>> Hehe, the history shows you sneaked in the different sizes today. I checked
>> only last week, so I was pretty sure the info was outdated ;-)
> I had written this part of the wiki already in 2018, so it definitely was not
> outdated. I just noticed that it was missing some basic requirements (like
> component name = image name) and decided to rewrite the paragraph.
the 3 sizes were not mentioned when last I looked ?
>> OK, I will look at the SVG files. It didn't occur to me I can remove the
>> text. Or possibly simply change it to what I need.
> I am attaching the three "database" png images extracted from the TDbf svgs
> without the text, in case you have problems with InkScape (which definitely
> will not win the prize of the most user-friendly software).
Well, I managed to get something working with Inkscape.
I already committed TJSONDataset.
(for which, strangely enough, there was already an image)
Thank you for all explanations.
More information about the lazarus