RE: [ROOT] Update on the state of Windows GUIs

From: James Peachey (peachey@bigband.gsfc.nasa.gov)
Date: Mon May 12 2003 - 21:08:10 MEST


Hello All,

First, many thanks for the detailed answers from Rene, Fons and
Valeri. One thing is still not quite clear. What I would like to
do is to install the root win32gdk version from source code. If I
install from the standard source tar file, I will get the "old"
WIN32 API, correct? I see binaries for the win32gdk version, but
can I build this version myself from source, and if so, how?

Further, just to make sure I Fons' response, at some point in
the not-too-distant future, the plan is for the win32gdk version
to become the standard version -- for both Unix and Windows?.

With thanks again for the information,
James

On Sat, 10 May 2003, Faine, Valeri wrote:

> Hello  folks,
> 
> It seems to me I have to clarify a few extra things.
> 
> Rene mentioned two implementations of TVirtualX in a row.
> 
>   However I've to say the goals of the projects are completely
> different:
> 
>   1. win32gdk (started 3 years ago, correct me if I am wrong) 
>      is to replace the existent implementation of TVirtualX class 
>      for Windows based on the WIN32 API with another implementation
> based 
>      on win32gdk
>      (see: http://root.cern.ch/root/win32progress/Win32GUI.html )
> 
>     One needed this because the original implementation based on WIN32
> API 
>     was written before any ROOT GUI class emerged. As result some
> methods 
>     of TVirtualX interface introduced later got no implementation for
>     Windows and the ROOT GUI TG classes were left with no low-level
> support 
>     on Windows platform. There were two ways to do that. 
>     First was to complete the existent WIN32 API based code and another 
>     one was to do everything from scratch. The second approach was
> chosen.
> 
>     -----------
>     The goal of the project is to allow the Windows user 
>     to use ROOT TG classes to build GUI applications. 
>     -----------
> 
>     The approach still requires TWO separate implementations of
> TVirtualX 
>     classes for WIN32 and X11. Any prospected platform, one will want 
>     to port ROOT to, requires the separate implementation  (maintains) 
>     also.
> 
>   2. "Qt project" was started 1.2 year ago.
>     -----------
>      The main goal is to develop a plug-in DLL/ share libraries those 
>      to allow ROOT user to use non-ROOT Qt-provided external widgets. 
> 
>      The idea was to provide a capability to switch from the 
>     "standard implementation" to Qt with no recompilation, 
>      and no change of the ROOT and the end-user code.
>     -----------
>     (See:  http://root.bnl.gov/QtRoot/QtRoot.html#switch  
>            http://root.bnl.gov/QtRoot/QtRoot.html#publications )
> 
>      The concrete target was the Event Display package for STAR
> experiment.
> 
>      Its primary target platform was very UNIX (not Windows) 
> 
>      What about WIN32.  At the same time, thanks Qt cross platform
>      implementation, the Qt-edition of TVirtualX class can
> "automatically"  
>      be used just on both platforms in question, namely UNIX and Windows
> 
>      from one source code.
> 
>     The project requires ONE single code for any existent platform and 
>     any future platforms as well.
> 
> 
>   The MAIN goal of the Qt project has been achieved:
>  
> First version of STAR "Event Display" works (see: 
> http://www-conf.slac.stanford.edu/chep03/register/report/abstract.asp?ai
> d=444 
>  and one can use the 
>   Qt library to build the complex GUI using ROOT and Qt widgets.
> 
>   It was already shown one and the same code works properly on X11 and 
>   WIN32 based platforms. (see: FAQ on http://root.bnl.gov )
> 
>   So the more simple part of the job was done.
> 
> The code is available via CVS repository. 
> http://root.bnl.gov/QtRoot/QtRoot.html#source
> The binary for Linux/Sun can be found on AFS, and Windows version can be
> installed with "one click" from the BNL Web site. (see:
> http://root.bnl.gov/QtRoot/downloads/new.exe )
> 
>   However the new implementation still lacks of the full support for TG
>   classes. One can use non-ROOT classes to build the ROOT-based 
>   implementation but can not use the "native" one :-(
> 
> I was asked by ROOT team whether it is possible to create the Qt-edition
> that is TG class compliant. I believe it is possible.
> To complete things I need some help from the ROOT team. 
> I asked them to add a few simple corrections to the ROOT code that would
> have allowed me to share Qt-based activity with other people and save me
> some time I have to spend to synchronize my version of ROOT with the
> official one.
> 
> I was told the ROOT team must evaluate the corrections and got the
> promised it will be done quickly. 
> 
> What about the precise date I think no serious professional can expect
> the solid answer of such sort of question. The only question to be asked
> serious what should be done to speed this work up.
> 
> I believe the number of the lines of the code will no grow. The code has
> been written but it doesn't work yet :-(((. To make it up one has to
> "read" (not write) the ROOT GUI code.
> 
> For example:
> STAR experiment several times asked whether somebody from ROOT team can
> attend BNL for a couple of weeks to help with the interface. Alas people
> are busy and could not find the time.
> 
> None can say precisely how long it would take to learn one's 40K lines
> long non-documented code and provide the precise implementation of the
> low-level interface this code assumes. My estimation it is about 200-300
> man-hours
> For example I have to admit last weeks I was able to devote very few
> hours of my spare time to deal with Qt. 
> 
> I am willing to collaborate with any people / organization interesting
> to complete this job as soon as possible. You are welcome. Just send me
> a message.
> 
> Coming back to the original question of the thread
>     "Update on the state of Windows GUIs"
> let me make a remark:
> STAR experiment did not wait for any "Update of Windows GUIs". It just
> allocated some resource to make the job done ( for STAR of course ).
> That was enough to achieve the STAR goals but it was not enough to make
> all people on the Earth happy.
> 
> 
>                 My best regards, Valeri
> 
> > -----Original Message-----
> > From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]
> > On Behalf Of Rene Brun
> > Sent: Thursday, May 08, 2003 3:54 PM
> > To: James Peachey
> > Cc: roottalk@pcroot.cern.ch
> > Subject: Re: [ROOT] Update on the state of Windows GUIs
> > 
> > Hi James,
> > 
> > Some complementary information to the answers by Valeri and Fons:
> > 
> > For many years, we had only one version under Windows. This version
> > was originally developed by Valeri. The graphics classes drawing in
> > the canvas were identical with the Unix version, but the GUI was based
> > on a native WIN32 interface. The fact that the GUI classes were
> > different from the Unix classes had become more and more difficult
> > to maintain.
> > 
> > Two years ago, Bertrand Bellenot started the win32gdk version.
> > The GUI classes (TGWin32gdk) are fully compliant with the Unix
> > version TGX11, being derived from our abstract interface TVirtualX.
> > It has always been our intention to make the win32gdk version
> > the default version under Windows. However, for many months, this
> > version had been too slow to pretend replacing the original win32
> > version. WE are just about to introduce the version 3.05/05.
> > This version is at least twice faster than the previous version.
> > We are currently working on speed improvements to make this version
> > as fast as the Unix/X11 version (see some numbers below).
> > This version will replace the win32 version in the coming weeks.
> > When you take this version, you do not need additional libraries.
> > Everything is provided in our binary or source distrbutions.
> > 
> > Two years ago, Valeri started the development of the ROOT version
> based
> > on Qt. The idea is to have a fully compliant TVirtualX implementation.
> > The version that Valeri is currently distributing IS NOT TVirtualX
> > compliant. For example, the Root Browser is different and the
> TreeViewer
> > is based on the very first and old implementation.
> > Valeri expects to make his version fully compliant with TVirtualX.
> > It has to be 100% compliant, not just 99%. The remaining 1% seems
> > to take more time than expected. It is up to Valeri to comment on
> > a precise date when he believes that he will have a working version.
> > The Qt version requires the Qt libraries (commercial under Windows).
> > You can use the executable modules for free, but you need a
> development
> > license as soon as you want to build a GUI application.
> > 
> > This summer, we are planning to make a serious upgrade of many
> > ROOT widgets (TAttFill, Line, Text, Marker, the editor, etc).
> > This upgrade will assume a TVirtualX interface only.
> > 
> > I also want to mention a very recent addition to the list of Windows
> > version by Axel Naumann. Axel is working on the win32gcc version
> > that requires the CYGWIN ennvironment. This version looks like Linux,
> > based on gcc3.2 and X11. I have been playing with this version in
> > the past few weeks and it looks to be an interesting option for
> > Windows users. Of course, this version is compatible with Linux.
> > We will build the win32gcc binary tar file with the coming 3.05/05.
> > 
> > Coming back on the speed issue, I have run the 4 versions on my
> laptop.
> > Here are the results:
> >  - original win32 version     : 678 Rootmarks with benchmarks.C
> >  - Valeri new Root/Qt version : 389 Rootmarks
> >  - Axel win32gcc              : 415 Rootmarks
> >  - new win32gdk               : 267 Rootmarks
> > 
> > For the non-graphics benchmarks, the 3 versions compiled with VC++
> > (win32, win32gdk, Qt) show a similar performance.
> > The win32gcc show a much better performance with the tests like
> > stress and bench (up to a factor 2 better than VC++).
> > 
> > Rene Brun
> > 
> > On
> > Thu,
> > 8
> > May 2003, James Peachey wrote:
> > 
> > > Hello,
> > >
> > > I'm just writing to find out the latest news on portable Root
> > > GUIs. Specifically, I understand at one time there was an effort
> > > to develop a common Root source tree which builds on Unix and
> > > Windows, which offers a full implementation of the Root GUI
> > > classes (TG*) on both architectures, and which does not require
> > > any other proprietary software (other than the Visual Studio
> > > compiler to build it.)
> > >
> > > Is this in fact the case? If so, what is the timescale for its
> > > completion? If not, are some other developments in the works
> > > to support Root GUIs on Windows?
> > >
> > > Thanks,
> > > James
> > >
> > > PS: Apologies if there was a recent thread on this subject which I
> > > somehow missed when I searched the archives...
> > >
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:11 MET