[ROOT] TCanvas problem with TRootEmbeddedCanvas

From: H.-Gerd Rosarius (rosarius@getit.de)
Date: Wed Jun 04 2003 - 17:57:42 MEST


Hello Rooters,

currently I'm going to program a small GUI application which 
imports a canvas with a histogram on it from a root-file and 
displays it on the screen. 

For this purpose I use the following code:

// --- Code start ----------------------------------------------------

// Do stuff like initialising TGMainFrame object etc.

// Import canvas from root-file
TFile* f = new TFile("/home/xxxxxx/root-files/demo.root");
TCanvas* c = (TCanvas*) f->Get("c1");

// Define a base canvas
TGCanvas* canvas = new TGCanvas( this, 1280, 1024, kHorizontalFrame | 
kSunkenFrame);

// Create embedded canvas and create root-canvas
TRootEmbeddedCanvas* rootCanvas = new TRootEmbeddedCanvas(0, 
canvas->GetViewPort(), 800, 400, kHorizontalFrame);
TCanvas* myRootCanvas = new TCanvas("Empty", 800, 400, 
rootCanvas->GetCanvasWindowId());

// Add imported canvas to empty canvas
myRootCanvas->SetCanvas( c );
myRootCanvas->cd();
myRootCanvas->Update();

// Adopt canvas and set the container
rootCanvas->AdoptCanvas( myRootCanvas );
canvas->SetContainer( rootCanvas );
// --- Code snippet end ---------------------------------------------

Unfortunately not the imported canvas c is displayed in the application.
The (or an) empty canvas myRootCanvas is displayed instead.

Maybe it's just a beginners mistake...

Any hints?

Grettings

   H.-Gerd

P. S.: Using Root 3.05 built from source on a Debian Linux box.



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:12 MET