On Tue, 13 Mar 2018, Anthony Walter wrote:
I agree with you somewhat that my proposal isn't a total solution, but
perhaps there is another point of view to consider that has been
And that is this:
There ought to be a way to edit component properties sweepingly either in
an application or in the IDE.
Sounds rather hackish to me :)
I say this because I have often edited the Lazarus source to make remove
toolbar button captions, change edge borders, fix the position of edit
boxes, increase the height of a panel, turn on tool tips. or remove an
unneeded panel. All for the effort of adjusting layouts to make the IDE
space more efficient, fix what I see as a design problem, or create a
layout better suited to a personal taste.
Allowing anyone to easily make sweeping changes like these to the IDE, and
making those changes easily shareable and modifiable without the need to
search for the correct lfm, or pas file to edit and recompile the IDE would
be a good thing. That is, imagine being able to group alter properties of
controls/components within the IDE (or any application written with
fpc/laszarus), and see those changes instantly, and easily reverted,
without the need to search for files and rebuild.
As such I think that there is merit to such a tool. It might not need to be
branded as a "themer" or "skinner". Perhaps as a "property pattern editor"
or something thereof.
That would indeed be more aptly named :)
Regarding a long term solution, I agree that would be best. What I would
see as the optimal way to handle this would be to use entirely owner drawn
controls based which depend on external resource files, to determine styles
such as color, sizes, padding, font, alignment, glyphs, and visibility
among a few potential possibilities. Actual control drawing would be
handled through an abstraction layer to a platforms best possible graphics
API to efficiently handle antialiasing, smoothing, subpixel, and hdpi
rendering in a manner that makes it complete transparent to controls. This
would allow one code base for all controls for all platforms, solving not
only layout problems among different widget sets, but also behavioral
problems that creep into usage due to difference or restrictions of the
underlying native widgets.
I believe this is the aim of fpGUI and the customdrawn widgetset.
That is why I proposed extending them to the point of usability needed for
Of course, such a design should be completely optional to allow people to
continue using native controls whenever they want, but if they're
interested in a totally themeable and consistent usage applications across
all platforms, then using this alternate widget set would be a pleasant
My main concern is more "strategical":
Our time is limited (and by "our" I mean you too).
This "property pattern editor" - while it definitely has reasons for existing -
will provide something halfway decent (because it can never do everything
required for proper theming), and will most likely divert attention/time
from the root problem...
But it is obviously a free world, I can only point out a concern I see...
Lazarus mailing list