Re: More on Graphics abstraction (was Re: [ROOT] Qt ROOT)

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Wed Oct 24 2001 - 19:52:36 MEST


On Tue, 23 Oct 2001 18:36:07 +0200
Fons Rademakers <Fons.Rademakers@cern.ch> wrote
concerning "Re: More on Graphics abstraction (was Re: [ROOT] Qt ROOT)":
> Hi Christian,
> 

>   this kind of factory approach is exatcly what we use for the
> higher level GUI components like TCanvas, TBrowser, etc., see
> TGuiFactory and the TRootGuiFactory which creates the browser and
> canvas with TG look and feel (TRootCanvas, TRootBrowser, etc). 

Why not extend that factory approach, and have the factory create
buttons, frames, ladida too?  

The complete widgets are fine for the ROOT native widgets like the
browser, canvas, inspector, control bar, and context menu, but not
very nice for user GUIs, since then you'd have to overload the factory
and add interfaces _not_ in the ABC.  

> Using the high level QtROOT interface of GSI somebody can then
> provide a TQtGuiFactory which will create TQtCanvas, TQtBrowser,
> etc. This would be more effective then to provide a low level
> interface like you describe 

You mean low, since it's dealing with elements rather than complete
widgets? 

> (besides the most difficult thing in such an interface is to
> properly abstract the layout management classes in a portable way). 

Portable as in OS dependent or as in Graphics library dependent?  I
guess you mean the later.  Well, that's what I said - that the task of
abstracting from the interfaces of the various libraries is
difficult.   However, since most modern Graphics libraries uses
signals and slots, and ROOT has that too, I guess what one could do is
to connect the Qt/Gtk--/... signals into slots in the wrapper, which
would then transform that into a ROOT signal.  Then ofcourse, there's
the issue of parents and children, and how different libraries deals
with that.  Most, I believe, do it like ROOT does it, so that
should not be too complicated. 

Hmm, I'm just babling away anyway. 

Yours, 

Christian Holm Christensen -------------------------------------------
Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
         DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
         Denmark                             Office: (+45) 353  25 305 
Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:04 MET