Sunday, February 10, 2008

GTK2 planned not before Lazarus 1.2?

Sometimes people ask: Why don't the Lazarus developers want to fix the gtk2 bug before Lazarus 1.0?

The Lazarus developers have limited resources, so in order to have Lazarus 1.0 sooner rather than later, some decisions were made to reduce the work load (scope) for Lazarus 1.0. Some of this is mentioned on the wiki.

Basically, this means we think that no new features are needed for Lazarus 1.0. That doesn't mean that there will be no new features until then, but that we won't delay the release of Lazarus 1.0 because of it.

The gtk2 interface could be regarded as a feature too, because in most cases the gtk1 interface works just fine or better (except it looks dated). I must admit it is getting more troublesome recently, because some distroes now ship with gtk2 only. Currently the gtk widgetset is more stable and has less bugs with Lazarus than gtk2. Until that situation has changed gtk1 will remain the default. As soon as gtk2 is better (i.e. less bugs and more stable) than gtk1, it will come the default. But this is no priority for the Lazarus team, it rather focuses on other bugs.

Fortunately Lazarus is open source and with your contributions you can steer the path of Lazarus. For example Andrew Haines and Ales Katona understood that and have contributed a lot of gtk2 patches, trying to improve the gtk2 widgetset, so that it become the default for Lazarus 1.0. If a couple of other people start helping, I have no doubt that Lazarus 1.0 will eventually be with gtk2.


Eric TF Bat said...

Hi Vincent - EtFb here. I think I'd like to help out with GTK2 integration, because the current UI is really kind of ugly. I hate those diamond radio buttons! Unfortunately, I haven't been able to get Lazarus to rebuild using the GTK2 or QT widget sets; it does nothing for one and gives a "make" error for the other. Any chance of a pointer to the documentation on how to get that to work? Once I've figured it out, I think my first step will be to try compiling Lazarus from sources and then go hunting for the bug that stops the build from working. No doubt it's a dependency issue, but the messages could be a little more informative.

Wiki seems to be up and down like a yoyo, btw. Is there a database issue?

Vincent Snijders said...

There are some problems with Apache on the wiki server. Or rather with somebody who retrieves more than one page per second.

See wiki for instructions on how to compile the gtk2 interface.

Some dependency errors are metioned in the FAQ

Luiz Américo said...

What about splitting completely gtk and gtk2 widgetsets ?

Gtk2 has deprecated a lot of functions (gdk_* and gtk_* )in name of new libraries (pango, glib). Many of this functions work in a completely different way make difficult to share the same code even with some ifdefs. And even when it's possible to share the same code, there's performance/behavior issues.

I can help, if you agree, to maintain such separate widgetset.

Unknown said...

According to last discussions in lazarus-dev list we have this aim too. If you'll split it then we should subscribe you at first to lazarus-dev for better coordination.

Vincent Snijders said...

As part of those discussions, I asked Michael to create a lazarus-gtk2 list, just like lazarus-qt.

Luiz Américo said...

I think this can be accomplished in two steps:

1) Raw separation of the widgetset code: at this time the code will be exactly the same without any enhancements. I would create another widgetset named gtk2-dev. The user visible gtk2 widgetset would stay gtk2.

2) Modify each subsystem code (font/pango, signals) at a time.

3) Backport changes in gtk1 where appropriate.

If any big change (like the recent bitmap changes) is planned i would postpone the "fork".

Let me know when the list is setup.

Vincent Snijders said...

There is a new gtk2 list. More info here.

zooplah said...

@Eric: I don't know. I kind of liked the look of GTK 1.x. At the time when most Linux apps were GTK 1.x, I thought it was ugly, but now I remember fondly on it. It wasn't just a bad clone of the Windows UI like GTK2 is.

Android app development said...

This is one of the magnificent Post.i like your detail Information.Your blog is providing a outstanding performance.Nice post.Android app developers