Hi Rooters, I would like to copy a canvas into a little pad in another canvas, something like // create two canvases (and one pad in second canvas) .x $ROOTSYS/tutorials/graph.C; TCanvas *canv1 = (TCanvas*)gROOT->GetListOfCanvases()->First(); TCanvas *canv2 = new TCanvas("canv2", "canv2", 1); TPad *pad2 = new TPad("subpad","subpad", 0.3, 0.3, 0.7, 0.7); canv2->cd(); pad2->Range(canv1->GetX1(), canv1->GetY1(), canv1->GetX2(), canv1->GetY2()); pad2->Draw(); But if I do //first try TCanvas *clone1 = (TCanvas*)canv1->Clone(); pad2->cd(); clone1->Draw(); all that appears on pad2 is a frame and the title of canv1's graph. If one decides to manually loop through all graphics objects //second try pad2->Clear(); TIter next(canv1->GetListOfPrimitives()); TObject *obj; while (obj = next()) obj->Clone()->Draw(); the copy is still incomplete (apart from the obvious fact that this doesn't duplicate pad attributes like color and grid). On the other hand, the second approach works fine on the output of .x $ROOTSYS/tutorials/archi.C which contains mainly TBoxes. What is wrong with these examples? (ROOT 2.25/00 on Linux) - any comments would be greatly appreciated. Ingolf ------------------------------------------------ Ingolf Martin Physikalisches Institut, Universität Tübingen Auf der Morgenstelle 14, 72076 Tübingen, Germany Tel: 07071/2976311 Fax: /295373
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:29 MET