[Lazarus] Custom draw menu

Graeme Geldenhuys graemeg.lists at gmail.com
Sat Nov 6 23:32:02 CET 2010

On 5 November 2010 20:37, Paul Ishenin wrote:
> These controls are not part of LCL.

Well if core members of the Lazarus project starts suggesting to users
that more custom components should be created, then I am afraid the
"original design goal" of LCL is all but lost. I've had an argument
like this before in this mailing list, and it was pointed out to me
that fpGUI is custom draw, LCL in *not*. LCL is only a wrapper of
native components, and that is how the Lazarus team wants it to
stay.... well, now clearly that design goal is wrong at this time,
isn't it? So excuse me for just being a bit confused.

To make my statement factual, here is a quote from Mattias (I just
took the first link Google gave me, there are plenty more):
"Keep in mind that using the native widgets has several advantages:
- native look. Even when user switches theme or OS.
- widgetset specific goodies: e.g. tab menu of gtk notebook, unicode input
method, assistive technology, hardware acceleration, network support (X
client/server modell).
So basically every drawing should be avoided in the LCL or at least use only
high level drawing functions."

Again, this brings me to the question, why is the MenuBar in LCL under
Windows not a native component? The native component _can_ have glyphs
in menu items. Clearly somebody needs to do quality control over what
goes into LCL and why custom drawn components get used when native
components can apparently do a better job. If no such control exists,
I suggest simply make LCL totally custom drawn, have a much more
stable framework, less bugs and simply ask the native components theme
engine to do to the painting. Qt does this, yet it is 'perceived' as a
native widgetset on all platforms it supports, and even in the LCL.
And yes, Qt is custom drawn, it does have hardware acceleration, it
does change as OS themes changes, it does support assistive
technologies, and "network support under X" has nothing to do with
native controls by the way (X-Window doesn't have native controls),
the latter is all the x protocol itself.

  - Graeme -

fpGUI - a cross-platform Free Pascal GUI toolkit

More information about the Lazarus mailing list