[lazarus] GTK2 interface

Andrew Johnson acjgenius at earthlink.net
Fri Sep 5 19:59:16 EDT 2003

Alright. For those who wish to help out, there is much that actually
seems to work, only a few major areas need working(and a whoooooooole
lot a little areas ;)

1st - I am going to start this now - with gtk2, gdkpixbuf is built in,
so the current hacks we have to store extra pixmaps and bitmap masks etc
is not only broken because of changes in gdk, but redundant and
slow(especially on remote displays. which since my laptop is down and
out is how I am working) so we need to use just a pixbuf for internal
storage, and only create a pixmap or mask as needed which in gtk2 for
most of what we do should be almost never, some of this can be done in
the gtk1 so that when gdkpixbuf is enabled we use gdkpixbufs for
everything, which may also effect(positively) everyone who enables it
for gtk1 build as well.

2nd - input is currently broken, not sure all the problems it may be
simple but it affects a lot of things, buttons edits memos etc, menus
partly work(input doesn't affect them since we don't have any

3rd - we need to break out all the complexities in the gtk1 interface
for deprecated widgets, so we can override them properly in gtk2.
sometimes as was done to make it compile it is simply a matter of
creating a wrapper of the gtk2 function name, which does what we already
do, sometimes it will be more tricky.

4th - related to the above, we need to get rid of Gtkclist and GtkText
for list and memo in the gtk2 interface(perferably with actual {$ifdef
GTK1} in the gtk files). these are not only deprecated but quite buggy
at times, we should replace them with the far more reliable/featurefull
TextView/TreeView which should allow us to be more accurate to the
original Delphi anyway, though it will likely require quite a
significant amount of work to implement properly.. (volunteers anyone?)

5th - make sure all the little routines are optimized for native gtk2
whenever possible, message dialogs especially, likely can do this
easily, but this is important for gtk2 integration because of the
standardized(and which is somewhat opposite windows) button layout.

at least 1 & 2 need to be done to make the ide work, plus all the little
bugs which will crop up as we go.

please note we should strive as much as possible to abstract version
specific things into the gtkproc.pp/.inc files(and if needed create a
gtk2proc.pp/.inc), and use lots of {$IFdef GTK1} so before to long we
can compile without using any deprecated functions, and so the future
GNOME2 interface will be easier to accomplish(I will look into creating
the basics extra libs headers as soon as gtk2 interface works).

This will also make the backend code cleaner for supporting features of
future version/sub-versions of GTK and GNOME without the same level of
changes needed(hopefully).


On Fri, 2003-09-05 at 16:05, Mattias Gaertner wrote:
> Hi all,
> Thanks to Andrew, the gtk2 interface can now be compiled. And I ran the
> first gtk2 lazarus application without error. 
> Now it has the same problem as the win32 interface. We need developers to
> test and fix the bugs. The current gtk2 interface needs special compilation
> and can not be built with 'make'. See lcl/interfaces/gtk2/README for
> details. You need the latest gtk2forpascal. cvs is recommended. 
> Mattias
> _________________________________________________________________
>      To unsubscribe: mail lazarus-request at miraclec.com with
>                 "unsubscribe" as the Subject
>    archives at http://www.lazarus.freepascal.org/mailarchives

More information about the Lazarus mailing list