[Lazarus] {Spam?} Re: Color setup of the Form1: TForm1

Vincent Snijders vsnijders at quicknet.nl
Tue Jun 17 19:45:29 CEST 2008


Kostas Michalopoulos schreef:
> First of all, Linux is not GTK+. There are other toolkits around, like Qt 
> and FLTK which have their own theming stuff. However X11, the windowing 
> system that is mostly used in Linux and other UNIX environments (which is 
> *NOT* even guarranteed that it will be the one used - i've seen some other 
> UIs which use the framebuffer directly) does not dictate a specific window 
> look or behavior. While GTK+ came to be a well known and widely used toolkit 
> (which is something that can be said about Qt too), it doesn't make it "the 
> way Linux looks like".
> 
> While you can restrain yourself to not use anything non-GTK, if you open a 
> non-GTK program (like a Qt program, a FLTK program, a Motif/Lesstif program, 
> a Tcl/Tk program, etc) it will not look the same as the rest. This is 
> because there is no universally acceptable theme engine that applies to all 
> toolkits. I'm not going to argue if this is good or bad, but thats the fact.
> 
> Secondly, even if there was a "Linux theme engine", the same applies to 
> Windows programs. Windows in fact *have* a theme engine and even since 
> Windows 3.0 (i think) you were able to change the current theme to something 
> else. However as i see, the Win32 backend allows you to change colors, while 
> GTK+ does not. While i can accept that doing such a thing in GTK+ is a very 
> low priority (which would imply, however, that GTK+ is not finished and if 
> 1.0 has to have GTK+ 1.2 finished then it has to provide this functionality 
> too), i find the answer of not doing it because the theme engine dictates 
> look as a cheap excuse (because otherwise if you really believe this, then 
> rip off the code that changes colors in Win32 from LCL too - there is a 
> theme engine there much older and widely used than GTK+'s).
> 
> And third, what you propose here is a platform-specific solution. Lazarus is 
> supposed to be "write once, compile everywhere" not "write once (while 
> praying that your code will work in other interface), compile everywhere (to 
> find bugs and missing features in other interfaces and platforms)". In the 
> very worst case (which is a hack) Lazarus should create the gtkrc file 
> transparently from the user/programmer.
> 
> Of course i think the best solution for all these problems would be a 
> crossplatform toolkit that sits below LCL and has a constant behavior no 
> matter what the system is. fpGUI seems to be such a kit, but setting Lazarus 
> to compile with this toolkit is failing due to some missing unit.
> 

Seems like a good idea. Although I have no right of speaking, I am just 
focussing on the win32 widget set, the major thing missing seems to be 
patches to implement all this, please send them.

Vincent



More information about the Lazarus mailing list