RE: [ROOT] auto-wrapping

From: Bernd Reinhold (bernd.reinhold@cern.ch)
Date: Tue Apr 20 2004 - 15:53:31 MEST


Hi Olivier!

Thanks for your hint. TLatex is definitely the better choice than TText.
Though instead of using splitline, I follow the example1 in the API-doc (http://root.cern.ch/root/html/TLatex.html)

     TCanvas c1("c1","Latex",600,700);
     TLatex l;
     l.SetTextAlign(12);
     l.SetTextSize(0.04);
     l.DrawLatex(0.1,0.8,"1)   C(x) (...));
     l.DrawLatex(0.1,0.6,"2)   C(x) (...));
     l.DrawLatex(0.1,0.4,"3)   R = |(...));
     l.DrawLatex(0.1,0.2,"4)   F(t) (...));
  }

However, if you/ anybody is still interested: I get a segmentation violation with the following strSQLstring:

strSQLstring="SELECT total_number_pulls AS total_number_pulls_lc_HSA_DT, count( ID ) 
FROM ( SELECT M.ID, count( pullforce )  AS total_number_pulls FROM pt_main AS M,
pt_rawdata AS R WHERE M.ID = R.ID AND M.status = R.status AND M.status =1 AND
M.batch LIKE  '%lc_HSA_DT' GROUP  BY M.ID HAVING count( pullforce )  >1 ) AS Z
GROUP  BY total_number_pulls"

> 	TPaveText *SQLLabel=new TPaveText(.02,.02,.98,.98, "NDC");
> 	TText *t1= SQLLabel->AddText(strSQLstring.c_str());
(see in the posting from 16.Apr, below)

However, it works with a smaller/ shorter strSQLstring. This led me to believe , that TText has a maximum capacity.

Thanks, Olivier and cheers,

Bernd.

-----Original Message-----
From:	Olivier Couet
Sent:	Mon 4/19/2004 10:53 AM
To:	Bernd Reinhold
Cc:	Roottalk
Subject:	Re: [ROOT] auto-wrapping

Hi,

TLatex support the text splitting. Try:

{
   gROOT->Reset();
   TCanvas *c1 = new TCanvas("c1","splittext",600,600);
   TLatex l(0.5,0.5,"#splitline{First line}{Second line}");            
   l.SetTextFont(42); l.SetTextSize(0.05);
   l.Draw();
}

I have tried the following example to simulate the seg fault you get with 
long text but for me it work (ROOT 4.00/03 on linux)

{
   gROOT->Reset();
   TCanvas *c1 = new TCanvas("c1","longtext",600,600);
   TText t(0.1,0.5,"ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz0123456789      
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
   t.SetTextFont(42); t.SetTextSize(0.015); 
   t.Draw();
}

Cheers,  Olivier


On Fri, 16 Apr 2004, Bernd REINHOLD wrote:

> Hi!
> 
> I'd like to display a TText within a TPad. But the TText is bigger than 
> TPad. Is there something like an option 'auto-wrap'? Does TText display 
> text only in one line? Is there a multiple-line version of TText? 
> I tried to use TPaveText, also, but didn't succeed. (see below for the 
> code I used, probably you can give me some hints for improvement)
> 
> And: Is there a limit for the length of the (C)string, that TText can 
> take (I got a segmentation violation) with a longer Cstring.
> 
> I use root 3.10.02 an CERN RedHat 7.3...
> 
> 
> the code: I tried different variations of that...
> SQL_Date is a subpad of a canvas (this works)
> 	TPad *SQL_Date = new TPad("SQL_Date", "SQL and date",.02,.3,.98,.49);
> 	SQL_Date->Draw();	
> 	SQL_Date->cd();
> 
> 	TPaveText *SQLLabel=new TPaveText(.02,.02,.98,.98, "NDC");
> 	TText *t1= SQLLabel->AddText(strSQLstring.c_str());
> 	t1->SetTextSize(0.07);
> 	SQLLabel->Draw();
> 	t1->Draw();
> 	SQL_Date->Update();
> 	SQL_Date->Modified();
> 	c1->Update();
> 
> found now, that this might be due to the textColor (white!!!). Now I can 
> see the t1, but still it is a TText, still it's only one line...
> 
> another try:
> 	TPad *SQL_Date = new TPad("SQL_Date", "SQL and date",.02,.3,.98,.49);
> 	SQL_Date->Draw();	
> 	SQL_Date->cd();
> 
> 	TText* Comment=new TText(0.04,0.2, strComment.c_str());
> 	Comment->SetTextSize(0.07);
> 	Comment->Draw();
> 	SQL_Date->Modified();
> 	c1->Update();
> 
> this drew both SQL_Date and inside the Comment, but it was too long (no 
> auto-wrap)
> 
> 

-- 
Org:    CERN - European Laboratory for Particle Physics.
Mail:   1211 Geneve 23 - Switzerland                     Mailbox: J25910      
E-Mail: Olivier.Couet@cern.ch                            Phone:   +41 22 7676522
WWW:    http://cern.ch/Olivier.Couet/                    Fax:     +41 22 7677155



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:07 MET