#include #include #include #include #include #include #include #include class MyMainFrame { RQ_OBJECT("MyMainFrame") private: TGMainFrame *fMain; TRootEmbeddedCanvas *fEcanvas; public: MyMainFrame(const TGWindow *p,UInt_t w,UInt_t h); virtual ~MyMainFrame(); void DoDraw(); }; MyMainFrame::MyMainFrame(const TGWindow *p,UInt_t w,UInt_t h) { // Create a main frame fMain = new TGMainFrame(p,w,h); // Create canvas widget fEcanvas = new TRootEmbeddedCanvas("Ecanvas",fMain,200,200); fMain->AddFrame(fEcanvas, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10,10,10,1)); // Create a horizontal frame widget with buttons TGHorizontalFrame *hframe = new TGHorizontalFrame(fMain,200,40); TGTextButton *toolbar = new TGTextButton(hframe,"&ToolBar"); toolbar->Connect("Clicked()","MyMainFrame",this,"DoDraw()"); hframe->AddFrame(toolbar, new TGLayoutHints(kLHintsCenterX, 5,5,3,4)); fMain->AddFrame(hframe, new TGLayoutHints(kLHintsCenterX, 2,2,2,2)); // Set a name to the main frame fMain->SetWindowName("Simple Example"); // Map all subwindows of main frame fMain->MapSubwindows(); // Initialize the layout algorithm fMain->Resize(fMain->GetDefaultSize()); // Map main frame fMain->MapWindow(); } void MyMainFrame::DoDraw() { // Toggles the toolbar TCanvas *fCanvas = fEcanvas->GetCanvas(); fCanvas->cd(); fCanvas->ToggleToolBar(); cout << fCanvas->GetShowToolBar() << endl; fCanvas->Update(); } MyMainFrame::~MyMainFrame() { // Clean up used widgets: frames, buttons, layout hints fMain->Cleanup(); delete fMain; } void canvasError() { // Popup the GUI... new MyMainFrame(gClient->GetRoot(),200,200); }