Re: [ROOT] TGListTree pointer not spatially synced, font related?

From: Valeriy Onuchin (Valeri.Onoutchine@cern.ch)
Date: Tue Jan 28 2003 - 10:37:00 MET


  Hi Brett,
thanks for reporting  a bug.  Will be fixed shortly. 

Regards. Valeriy


----- Original Message ----- 
From: "Brett Viren" <bv@bnl.gov>
To: "ROOT-TALK ML" <roottalk@pcroot.cern.ch>
Sent: Monday, January 27, 2003 11:00 PM
Subject: [ROOT] TGListTree pointer not spatially synced, font related?


> Hi,
> 
> I find that when clicking in TGListTree, the location of the pointer
> on the screen is different from where the TGListTree thinks it is.
> This makes it very difficult to open/close folders as one has to guess
> where to click.  
> 
> The loss of sync gets worse as one clicks further towards the end of a
> long list.  For example, in the attached code, in order to open/close
> the last folder ("nine/nine") I must click on "nine/four".
> 
> The fonts used apparently affect things.  I normally have the
> following in my ~/.rootrc:
> 
> Unix.*.Gui.NormalFont:        -adobe-helvetica-medium-r-*-*-18-*-*-*-*-*-iso8859-1
> Unix.*.Gui.BoldFont:          -adobe-helvetica-bold-r-*-*-18-*-*-*-*-*-iso8859-1
> Unix.*.Gui.SmallFont:         -adobe-helvetica-medium-r-*-*-16-*-*-*-*-*-iso8859-1
> Unix.*.Gui.ProportionalFont:  -adobe-courier-medium-r-*-*-18-*-*-*-*-*-iso8859-1
> 
> If I take this out, TGListTree behaves normally, even with a very long
> list (max_dummy set to 10 in the test code).
> 
> -Brett.
> 
> 


--------------------------------------------------------------------------------


> // make a longish list tree.  Run via:
> // shell> root tt.C++
> #include <TGFrame.h>
> #include <TGListTree.h>
> #include <TGCanvas.h>
> #include <iostream>
> using namespace std;
> 
> TGMainFrame* mf = 0;
> const char* label[] = {
>     "zero",
>     "one",
>     "two",
>     "three",
>     "four",
>     "five",
>     "six",
>     "seven",
>     "eight",
>     "nine",
>     0
> };
> 
> void tt()
> {
>     
>     mf = new TGMainFrame(gClient->GetRoot(),300,300);
> 
>     TGCanvas* can = new TGCanvas(mf,10,10);
>     TGListTree* tt = new TGListTree(can,kHorizontalFrame);
>     tt->Associate(mf);
> 
>     mf->AddFrame(can,new TGLayoutHints(kLHintsExpandX|kLHintsExpandY));
>     
>     const int max_dummy = 1;
>     for (int dummy=0; dummy<max_dummy; ++dummy) {
>         for (int j=0; label[j]; ++j) {
>             cerr << "Adding: " << label[j] << endl;
>             TGListTreeItem* item = tt->AddItem(0,label[j]);
>             for (int i=0; label[i]; ++i) {
>                 tt->AddItem(item,label[i]);
>             }
>             tt->OpenItem(item);
>         }
>     }
>     
>     mf->MapSubwindows();
>     cerr << "Mapped sub windows\n";
>     mf->Layout();
>     cerr << "Layed out\n";
>     mf->Resize(mf->GetDefaultSize());
>     cerr << "Resized\n";
>     mf->MapWindow();
>     cerr << "Done\n";
> }
> 



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