Re: Writing TPads into a root file

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Sep 14 1998 - 15:45:48 MEST


Reiner,
I can reproduce this problem and I will investigate.
This problem seems to appear when the canvas includes two or more
levels of pads.
Thanks for reporting the problem.

Rene Brun

ROHLFS Reiner wrote:
> 
> Hi ROOters,
> 
> please have a look to these two ROOT macros:
> 
> 1) MakePads.C:
> {
>   gROOT->Reset();
> 
> // Create a new canvas.
>   c1 = new TCanvas("Display","Display",10,10,300,200);
> 
> // make the first pad
>    pad1 = new TPad("Pad", "Pad", 0.1, 0.1, 0.5, 0.9);
>    pad1->SetFillColor(3);
>    pad1->Draw();
>    pad1->cd();
> 
> // make the second pad
>    pad2 = new TPad("Pad", "Pad", 0.6, 0.4, 0.9, 0.7);
>    pad2->SetFillColor(4);
>    pad2->Draw();
> 
>    c1->SaveAs("pads.root");
> }
> 
> and ReadPads.C:
> {
>   gROOT->Reset();
> 
>   TCanvas * c2;
>   file = new TFile("pads.root", "READ", "no", 1);
>   c2 = (TCanvas*)file->Get("Display");
>   c2->Draw();
> 
>   file->Close();
> }
> 
> That is the sequence I call these macros:
> root [1] .x MakePads.C
> ROOT file: pads.root has been created
> root [2] delete c1
> root [3] .x ReadPads.C
> 
> But now the pad2 is displayed beside the pad1 directly on the canvas c2. The
> coordinates of pad2 (0.6, 0.4, 0.9, 0.7) are now relative to the canvas c2 and
> not any more relative to the pad1 as defined in the MakePads.C macro.
> Beside that the ExecuteEvent() - function of pad2 does not work any more after
> reading the pads from the root file. ( The pad2 cannot be resized and removed
> using the mouse and the menu of the right mouse button is lost.)
> 
> Cheers Reiner.



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:34:37 MET