Hello,
I'm looking for the method which would give me the number of
subpads which are attached to a given pad...
I tried:
TCanvas* Current = gPad->GetCanvas(); (From this I get a pointer to the
Canvas in which my gPad is)
then:
int_t Total_Number_of_Pads = ((TList*)
Current->GetListOfPrimitives())->GetSize();
This happen to give me a number which is actually the number of pads
attached to the canvas... however, when
I take a random Pad in this canvas and divide it into subpads (lets say
4 = (2,2)) and with the following
recursive program I try to put all of the 1D spectra in a LinY scale:
Linyall()
{
// Auto Lin in Y direction for all Pads belonging
// to the canvas in which gPad is active
Int_t Current_Pad = 0, Pads = 0;
TCanvas* Current = gPad->GetCanvas();
Int_t Pad_Number = gPad->GetNumber();
Pads = ((TList*) Current->GetListOfPrimitives())->GetSize();
Current->cd(Current_Pad);
if (Pads==0)
{
gPad->SetLogy(0);
gPad->Modified();
}
else gPad->cd(Current_Pad++);
while (Pads>0)
{
Pads = 0 ;
Pads = ((TList*) gPad->GetListOfPrimitives())->GetSize();
if (Pads==0)
{
gPad->SetLogy(0);
gPad->Modified();
}
else
{
Current_Pad=0;
gPad->cd(Current_Pad++);
}
}
Current->cd(Pad_Number);
gPad->Modified();
}
The program seems to loop endlessly, the reason is in fact that the
command:
Pads = ((TList*) gPad->GetListOfPrimitives())->GetSize();
doesn't give the number of Subpads in the Pads anymore... So, I
suspect there is
a method that I missed which return the number of SubPads into a given
Pad.
Thanks for any help !
Fred (TRIUMF - Canada)
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:41 MET