Re: Gtk ?

From: Valeriy Onuchin <Valeri.Onoutchine_at_cern.ch>
Date: Tue, 22 Mar 2005 16:58:20 +0100


Hi Daniele,

Daniele Nicolodi wrote:

> Hello, i have seen on the mailing list archive some discussion about
> introducing an alternative gui and render based on Gtk-- back in 2001.
> There was any progres in this topic ?

no.

>
> I saw Qt work but but i think GTK is a more promising toolkit

This is a "holy war" question "Qt vs GTK", let's skip it. I'd like to mention few "minuses" for both of them

> (see for
> example the recent cairo integration).

In fact there is rising activity recently in "the whole X world" in development of new "painting engines".
Cairo is one of them oficially supported by X.org (freedesktop.org) and Gnome. Others - new QT4 painter http://doc.trolltech.com/4.0/qt4-arthur.html, antigrain library - http://antigrain.com/ which I'm trying to "put into ROOT" All of them provide "next genereration" graphics quality with antialiasing, alternative beckends, "svg, pdf complient" etc. It's difficult to compare "who is the best", but cairo is certainly a mainstream.

> If there is any work with Gtk

There are few ways for integration:
1. one is QtRoot. Let's Valeri Faine to say how easy to "walk this way".

2. another is making possible to use GTKmm (whatever else: Qt, fox-tookit, vxWorks clasess etc.)

   from interpreter with "common" event loop.

   Here is prelimenary roadmap how it can be done :

      libBFD is GNU library. It's "basement" for all GNU binutils
      (nm, objdump etc.) and for GDB, ld, libtool etc. That provides
       all information for GNU debugger and linux DLL loader (ld):
       demanlging,  functions memory entry addresses etc.

      In general, it's possible to write "plugin" to CINT which will
      "generate"&"fill" CINT internal dictionaries based on information provided
      by libBFD. That will allow to load external library without any
      preprocessing (no rootcint, no linkdefs) in a way how it is done by gdb,
      e.g.
          gdb qt3/lib/libqt.so
         (gdb) info functions
      compare to
          root [0] .functions
          root [1] .classes

     - the second step is providing mechanism for running "external" GUI event
       processing loop inside ROOT's event loop. I think it's not difficult to implement,
       few examples already here i.e. QtRoot, running ROOT GUI widgets inside MFC event loop.

Having both steps done will allow to use GTK-- classes from inside ROOT interpreter.

3. another way for "integration" is implementing XEmbed protocol for ROOT GUI  http://freedesktop.org/wiki/Standards_2fxembed_2dspec

That will allow to embed external widgets (Qt, GTK, whatever ..) into ROOT application and vice versa. Currently XEmbed is used for writing mozilla plugins http://www.mozilla.org/projects/plugins/xembed-plugin-extension.html To do "the same" under m$ windows we need to "resurect" ActiveRoot approach (ole, MFC way)  http://d0.phys.washington.edu/~haas/winroot/

>
> i'll be glad to help testing and coding.

Of cause, there are a lot of work here. Any help and voluntears are welcome (!!)

Regards. Valeriy

>
>
> Ciao
> --
> Daniele
>
> Physics is like sex. Sure, it may give some practical results, but
> that's not why we do it. -- Richard P. Feynman
Received on Tue Mar 22 2005 - 16:58:28 MET

This archive was generated by hypermail 2.2.0 : Tue Jan 02 2007 - 14:45:06 MET