Hi,
maybe not a solution, but a workaround: Here it is:
void MStatusDisplay::DrawClonePad(TCanvas &newc, const TCanvas &oldc) const
{
//copy pad attributes
newc.Range(oldc.GetX1(),oldc.GetY1(),oldc.GetX2(),oldc.GetY2());
newc.SetTickx(oldc.GetTickx());
newc.SetTicky(oldc.GetTicky());
newc.SetGridx(oldc.GetGridx());
newc.SetGridy(oldc.GetGridy());
newc.SetLogx(oldc.GetLogx());
newc.SetLogy(oldc.GetLogy());
newc.SetLogz(oldc.GetLogz());
newc.SetBorderSize(oldc.GetBorderSize());
newc.SetBorderMode(oldc.GetBorderMode());
((TAttLine&)oldc).Copy((TAttLine&)newc);
((TAttFill&)oldc).Copy((TAttFill&)newc);
((TAttPad&)oldc).Copy((TAttPad&)newc);
//copy primitives
TObject *obj;
TIter next(oldc.GetListOfPrimitives());
while ((obj=next())) {
gROOT->SetSelectedPad(&newc);
newc.GetListOfPrimitives()->Add(obj->Clone(),obj->GetDrawOption());
}
newc.Modified();
newc.Update();
}
After reading oldc from the TFile everything is copied to the new canvas
from the embedded one. I'm not sure if something is missing. The code is
more or less taken from TCanvas.cxx.
Regards,
Thomas.
H.-Gerd Rosarius wrote:
> Hej Thomas,
>
> in fact I am faced with the same problem you already had in April.
> (See here: http://root.cern.ch/root/roottalk/roottalk03/2097.html)
>
> Did you find a solution? If so, would you be so kind and share it
> with the mailing-list?
>
> Thanks a lot!
>
> H.-Gerd Rosarius
>
>
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET