Hi Jan and Olivier,
thanks for the hint.
Regards,
George 
On Fri, 17 Feb 2006, Olivier Couet wrote:
> 
> In fact it is enough to put gPad->Update(); just after the 2nd 
> BuildLayout()->Draw(); the you will get the small picture. Sorry to not 
> have seen that faster.
> Here is the modifed test() main program:
> 
> void test()
> {
>    TCanvas *c1 = new TCanvas("c1","The ... canvas",200,10,700,700);
>    c1->cd();
>                                                                                 
>    BuildLayout()->Draw();
>    //ShowAxis(-15,-15,-20,4);
>    ShowView(1.);
>                                                                                 
>                                                                                 
>    TCanvas* c2 = new TCanvas("c2","The ... canvas",200,10,700,700);
>    c2->cd();
>                                                                                 
>    BuildLayout()->Draw();
>    gPad->Update();
>                                                                                 
>    ShowView(0.5);
>                                                                                 
> }
> 
> Olivier
> 
> 
> > ---------- Forwarded message ----------
> > Date: Thu, 16 Feb 2006 11:33:01 +0100 (CET)
> > From: G.Mavromanolakis <gmavroma_at_mail.cern.ch>
> > To: roottalk_at_pcroot.cern.ch
> > Cc: gmavroma_at_mail.cern.ch
> > Subject: [ROOT] problem with TView zoom
> > 
> > Hello ROOTers,
> > 
> > I am developing a 3d event display for a monitor application.
> > I used ROOTv4.02.00 under ScientificLinux3 and I tried to switched
> > recently to a newer version. I experience some strange behavior from
> > the zoom methods in TView class. They work as expected
> > when invoked within the CINT or by clicking a TView object on a
> > pad. But when they are put in a macro or source code they produce
> > no effect.
> > For example something like
> > 
> > void test()
> > {
> >    TCanvas *c1 = new TCanvas("c1","The ... canvas",200,10,700,700);
> >    c1->cd();
> > 
> >    BuildLayout()->Draw();
> >    //ShowAxis(-15,-15,-20,4);
> >    ShowView(1.);
> > 
> > 
> >    TCanvas* c2 = new TCanvas("c2","The ... canvas",200,10,700,700);
> >    c2->cd();
> > 
> >    BuildLayout()->Draw();
> >    //ShowAxis(-15,-15,-20,4);
> >    ShowView(0.5);
> > 
> > }
> > 
> > with
> > 
> > void ShowView(float zoomfactor)
> > {
> >    gPad->GetView()->ZoomView(0,zoomfactor);
> >    gPad->SetFillColor(17);//light grey
> >    gPad->Modified();
> >    gPad->Update();
> > }
> > 
> > should produce 2 canvases with one normal and one small view.
> > This is the case for v4.02.00 or older. When trying with a newer version
> > (4.04.02g, 5.08.00) there is no zoom, the example above
> > gives 2 identical canvases!
> > 
> > Also the TView::Zoom, ZoomIn, ZoomOut methods behave similarly
> > strange, ie they give no effect.
> > 
> > Any hints??? Am I doing something wrong???
> > 
> > Thanks and regards,
> > George
> > 
> > PS. I attach a small example macro
> > (run it from root with
> > .L test.C
> > test()
> > )
> 
Received on Fri Feb 17 2006 - 19:15:35 MET
This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:57 MET