Hi Christian,
"cstrato@EUnet.at" wrote:
>
> In my GUI macro I am trying to implement a TGListTree to
> display the contents of TFiles.
> Although I try to use code from TRootBrowser, I would
> appreciate any hints how this could be done best?
>
> While studying the code of TRootBrowser I came across
> a couple of questions:
>
> 1, It seems that TBrowser depends on every object¥s
> function "obj->Browse(fBrowser)". So I would have to
> substitute for this function?
>
> In the new root version you have as source code:
> TRootBrowser::BrowseObj(TObject *obj)
> obj->Browse(fBrowser);
>
> TObject::Browse(TBrowser *b)
> TClass::AutoBrowse(this,b);
>
> TClass::AutoBrowse(TObject *obj, TBrowser *b)
> TAutoInspector insp(b);
> obj->ShowMembers(insp,cbuf);
>
> however, TObject has no longer memberfunction ShowMembers().
>
ShowMembers() is defined in ClassDef/ClassImp. Override the
TObject::Browse() method for custom browsing behaviour.
>
> 2, Mouse events in TGListTree:
> Double clicking on item always emits first Clicked() and then
> DoubleClicked(). Is there a reason for this?
> Is it possible to separate these events, so that I could
> use these functions for different purposes?
>
The reason is that a double click is always first a single click
and that we don't want to build in a "wait" to see if a click
is a single or a double click (which can be only found out after
the double click wait time has expired). Make sure that your
single click can be followed by a double click (like selecting
the object on single click and executing some action on selected
object when double clicked).
>
> Is it possible to add (event->fYRoot << 16) | event->fXRoot)
> as variable in Clicked() and DoubleClicked()?
>
Now possible in version in CVS. New methods in TGListView and
TGListTree that emit signal with in addition x, y for the
mouse position at click time.
>
> 3, Scrollbars in TBrowser:
> TRootIconBox in "Details" view: When TBrowser window is reduced
> horizontal scrollbar does only appear when ObjHeader("Name") is
> only partly visible, but not when only ObjHeader("Title") is
> covered. Is this a bug or a feature? How could this be changed
> when I want to create my own descendent of TGFileContainer?
>
This is a feature. You need to override TGLVEntry::GetDefaultSize()
where you modify the case for kLVDetails to include also the length
of the title or the other subnames you want to keep visible.
>
> 4, Items can be displayed in treeview multiple times:
> Suppose I have a TFile "test.root" containing a folder "test;1"
> in treeview of TBrowser. Clicking on "test.root" puts "test;1"
> also in treeview as "test;1". Clicking on "test;1" converts it
> to "test". Clicking again on "test.root" puts another "test;1"
> in treeview as "test;1", etc, etc. In this way you put the one
> item "test;1" as many times in treeview as you want. Is this
> behaviour intended?
>
Has still to be optimzed/fixed.
-- Fons
--
Org: CERN, European Laboratory for Particle Physics.
Mail: 1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers@cern.ch Phone: +41 22 7679248
WWW: http://root.cern.ch/~rdm/ Fax: +41 22 7679480
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET