On Sunday 26 February 2006 21:36, Panagiotis Sidiropoulos wrote:
> > AFAIK it is not yet implemented in the LCL gtk2 interface, only in the
> > LCL gtk1 and win32 interface.
>
> Does it need any special implementation? Why this for gtk1 can't work on
> gtk2? Maybe it is a silly question, I don't know. How someone can find
> infromation on how to do such things?
>
The short version is because the LCL is NOT the interface it is using, lazarus 
compiling to GTK1 does not mean you are using GTK1. You are still compiling 
your program against the LCL, the LCL uses some or other widget set for 
rendering but the LCL itself has to implement the calls to let that widget 
set do whatever is needed. 
Right now I believe the win32 and GTK1 interfaces are by far the most complete 
since they are the oldest ones, carbon, qt and gtk2 are all in a much more 
immature state. 
The big thing is that you have the Object Pascal way of telling components how 
to behave on one side, and whatever method is typical in the widget set on 
the other side - the LCL basically translates the one to the other - so the 
translation to GTK1 for ownerdraw isn't the same as for GTK2 because GTK2 
doesn't use the same calls as GTK1 did.

With me so far ?

Right now GTK2 is actually more complete than QT and Carbon mostly because a 
lot of the calls are similar to the highly mature GTK1 which allowed for a 
faster conversion, but it is not I think production ready. 
I have tried it and there are some glaring problems, the worst for me is that 
the GTK2 LCL has some kind of issue in event handling - a LOT of events just 
disappear into the bitbucket and nothing annoys a user as much as clicking a 
button and nothing happens, it is also MUCH slower than the GTK1 version but 
it IS improving and I don't think it will be very long before you CAN use it 
for production work.

Now, you seem interested in helping to shorten that time, the place to start 
is the layout and readme text files in the LCL subdirectory of your lazarus 
source tree, get an idea of how the LCL interfaces are laid out, then go into 
the subdirectory that implements your target widget set and start hacking the 
code, when you are done, recompile lazarus and try it out, repeat.

Ciao
A.J.
-- 
A.J. Venter
Chief Software Architect
OpenLab International
www.getopenlab.com
www.silentcoder.co.za
+27 82 726 5103

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to