#if !defined( __CINT__) || defined (__MAKECINT__) #ifndef ROOT_TGDockableFrame #include "TGDockableFrame.h" #endif #ifndef ROOT_TGMenu #include "TGMenu.h" #endif #ifndef ROOT_TGMdiDecorFrame #include "TGMdiDecorFrame.h" #endif #ifndef ROOT_TG3DLine #include "TG3DLine.h" #endif #ifndef ROOT_TGMdiFrame #include "TGMdiFrame.h" #endif #ifndef ROOT_TGMdiMainFrame #include "TGMdiMainFrame.h" #endif #ifndef ROOT_TGuiBldHintsButton #include "TGuiBldHintsButton.h" #endif #ifndef ROOT_TGMdiMenu #include "TGMdiMenu.h" #endif #ifndef ROOT_TGListBox #include "TGListBox.h" #endif #ifndef ROOT_TGNumberEntry #include "TGNumberEntry.h" #endif #ifndef ROOT_TGScrollBar #include "TGScrollBar.h" #endif #ifndef ROOT_TGuiBldHintsEditor #include "TGuiBldHintsEditor.h" #endif #ifndef ROOT_TGFrame #include "TGFrame.h" #endif #ifndef ROOT_TGFileDialog #include "TGFileDialog.h" #endif #ifndef ROOT_TGShutter #include "TGShutter.h" #endif #ifndef ROOT_TGButtonGroup #include "TGButtonGroup.h" #endif #ifndef ROOT_TGCanvas #include "TGCanvas.h" #endif #ifndef ROOT_TGFSContainer #include "TGFSContainer.h" #endif #ifndef ROOT_TGFontDialog #include "TGFontDialog.h" #endif #ifndef ROOT_TGuiBldEditor #include "TGuiBldEditor.h" #endif #ifndef ROOT_TGColorSelect #include "TGColorSelect.h" #endif #ifndef ROOT_TGButton #include "TGButton.h" #endif #ifndef ROOT_TGFSComboBox #include "TGFSComboBox.h" #endif #ifndef ROOT_TGLabel #include "TGLabel.h" #endif #ifndef ROOT_TRootGuiBuilder #include "TRootGuiBuilder.h" #endif #ifndef ROOT_TGTab #include "TGTab.h" #endif #ifndef ROOT_TGListView #include "TGListView.h" #endif #ifndef ROOT_TGSplitter #include "TGSplitter.h" #endif #ifndef ROOT_TRootCanvas #include "TRootCanvas.h" #endif #ifndef ROOT_TGStatusBar #include "TGStatusBar.h" #endif #ifndef ROOT_TGToolTip #include "TGToolTip.h" #endif #ifndef ROOT_TGToolBar #include "TGToolBar.h" #endif #ifndef ROOT_TRootEmbeddedCanvas #include "TRootEmbeddedCanvas.h" #endif #ifndef ROOT_TCanvas #include "TCanvas.h" #endif #ifndef ROOT_TGuiBldDragManager #include "TGuiBldDragManager.h" #endif #ifndef ROOT_TGComboBox #include "TGComboBox.h" #endif #ifndef ROOT_TGTextEdit #include "TGTextEdit.h" #endif #ifndef ROOT_TGSlider #include "TGSlider.h" #endif #ifndef ROOT_TGView #include "TGView.h" #endif #ifndef ROOT_TGMsgBox #include "TGMsgBox.h" #endif #ifndef ROOT_TGListTree #include "TGListTree.h" #endif #include "Riostream.h" #include "RQ_OBJECT.h" #include "TGListBox.h" #endif Int_t x=0; Int_t i=0; Int_t j; TGeoManager *gGeoManager; TGeoMedium *med[30]; TGeoMaterial *mat[30]; TGeoVolume *top[30]; class BoxEditor { RQ_OBJECT("BoxEditor") private: TGMainFrame *fBoxEditor; TGNumberEntry *fNumberEntryDx; TGNumberEntry *fNumberEntryDy; TGNumberEntry *fNumberEntryDz; TGNumberEntry *fNumberEntryOx; TGNumberEntry *fNumberEntryOy; TGNumberEntry *fNumberEntryOz; TGTextEntry *fTextEntryName; public: BoxEditor(const TGWindow *p,UInt_t w,UInt_t h); virtual ~BoxEditor(); void DoEventUndo(); void DoEventApply(); void DoEventValid(); }; BoxEditor::BoxEditor(const TGWindow *p,UInt_t w,UInt_t h) { // main frame fBoxEditor = new TGMainFrame(gClient->GetRoot(),10,10,kMainFrame | kVerticalFrame); fBoxEditor->SetLayoutBroken(kTRUE); // composite frame TGCompositeFrame *fBoxEditorFille = new TGCompositeFrame(fBoxEditor,257,504,kVerticalFrame); fBoxEditorFille->SetLayoutBroken(kTRUE); // tab widget TGTab *fTabBoxParam = new TGTab(fBoxEditorFille,232,424); // container of "BOX Param" TGCompositeFrame *fCompositeFrameTab; fCompositeFrameTab = fTabBoxParam->AddTab("BOX Param"); fCompositeFrameTab->SetLayoutManager(new TGVerticalLayout(fCompositeFrameTab)); fCompositeFrameTab->SetLayoutBroken(kTRUE); TGTextButton *fTextButtonApply = new TGTextButton(fCompositeFrameTab,"Apply"); TQObject::Connect(fTextButtonApply,"Clicked()","BoxEditor",this,"DoEventApply()"); fTextButtonApply->SetTextJustify(36); fTextButtonApply->Resize(100,22); fCompositeFrameTab->AddFrame(fTextButtonApply, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextButtonApply->MoveResize(8,368,100,22); TGTextButton *fTextButtonUndo = new TGTextButton(fCompositeFrameTab,"Undo"); TQObject::Connect(fTextButtonUndo,"Clicked()","BoxEditor",this,"DoEventUndo()"); fTextButtonUndo->SetTextJustify(36); fTextButtonUndo->Resize(100,22); fCompositeFrameTab->AddFrame(fTextButtonUndo, new TGLayoutHints(kLHintsLeft | kLHintsTop,0,0,1,0)); fTextButtonUndo->MoveResize(112,368,100,22); // "BoxHalf-Lengths" group frame TGGroupFrame *fGroupFrameDim = new TGGroupFrame(fCompositeFrameTab,"BoxHalf-Lengths"); fGroupFrameDim->SetLayoutBroken(kTRUE); TGLabel *fLabelDx = new TGLabel(fGroupFrameDim,"DX"); fLabelDx->SetTextJustify(36); fGroupFrameDim->AddFrame(fLabelDx, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelDx->MoveResize(8,16,62,16); TGLabel *fLabelDy = new TGLabel(fGroupFrameDim,"DY"); fLabelDy->SetTextJustify(36); fGroupFrameDim->AddFrame(fLabelDy, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelDy->MoveResize(8,48,62,16); TGLabel *fLabelDz = new TGLabel(fGroupFrameDim,"DZ"); fLabelDz->SetTextJustify(36); fGroupFrameDim->AddFrame(fLabelDz, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelDz->MoveResize(8,80,62,16); fNumberEntryDx = new TGNumberEntry(fGroupFrameDim, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); fGroupFrameDim->AddFrame(fNumberEntryDx, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fNumberEntryDx->MoveResize(96,16,53,20); fNumberEntryDy = new TGNumberEntry(fGroupFrameDim, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); fGroupFrameDim->AddFrame(fNumberEntryDy, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fNumberEntryDy->MoveResize(96,48,53,20); fNumberEntryDz = new TGNumberEntry(fGroupFrameDim, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); fGroupFrameDim->AddFrame(fNumberEntryDz, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fNumberEntryDz->MoveResize(96,80,53,20); fGroupFrameDim->SetLayoutManager(new TGVerticalLayout(fGroupFrameDim)); fGroupFrameDim->Resize(192,120); fCompositeFrameTab->AddFrame(fGroupFrameDim, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fGroupFrameDim->MoveResize(16,64,192,120); TGFont *ufont; // will reflect user font changes ufont = gClient->GetFont("-adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1"); TGGC *uGC; // will reflect user GC changes // graphics context changes GCValues_t valEntry756; valEntry756.fMask = kGCForeground | kGCBackground | kGCFillStyle | kGCFont | kGCGraphicsExposures; gClient->GetColorByName("#000000",valEntry756.fForeground); gClient->GetColorByName("#c6c3c6",valEntry756.fBackground); valEntry756.fFillStyle = kFillSolid; valEntry756.fFont = ufont->GetFontHandle(); valEntry756.fGraphicsExposures = kFALSE; uGC = gClient->GetGC(&valEntry756, kTRUE); fTextEntryName = new TGTextEntry(fCompositeFrameTab, new TGTextBuffer(15),-1,uGC->GetGC(),ufont->GetFontStruct(),kSunkenFrame | kDoubleBorder | kOwnBackground); fTextEntryName->SetMaxLength(255); fTextEntryName->SetAlignment(kTextLeft); fTextEntryName->SetText(""); fTextEntryName->Resize(184,fTextEntryName->GetDefaultHeight()); fCompositeFrameTab->AddFrame(fTextEntryName, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextEntryName->MoveResize(16,32,184,20); TGLabel *fLabelName = new TGLabel(fCompositeFrameTab,"Name"); fLabelName->SetTextJustify(36); fCompositeFrameTab->AddFrame(fLabelName, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelName->MoveResize(16,8,88,16); // "BoxHalf-Lengths" group frame TGGroupFrame *fGroupFrameOrg = new TGGroupFrame(fCompositeFrameTab,"Box Origin"); fGroupFrameOrg->SetLayoutBroken(kTRUE); TGLabel *fLabelOx = new TGLabel(fGroupFrameOrg,"OX"); fLabelOx->SetTextJustify(36); fGroupFrameOrg->AddFrame(fLabelOx, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelOx->MoveResize(8,16,62,16); TGLabel *fLabelOy = new TGLabel(fGroupFrameOrg,"OY"); fLabelOy->SetTextJustify(36); fGroupFrameOrg->AddFrame(fLabelOy, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelOy->MoveResize(8,48,62,16); TGLabel *fLabelOz = new TGLabel(fGroupFrameOrg,"OZ"); fLabelOz->SetTextJustify(36); fGroupFrameOrg->AddFrame(fLabelOz, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelOz->MoveResize(8,80,62,16); fNumberEntryOx = new TGNumberEntry(fGroupFrameOrg, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); fGroupFrameOrg->AddFrame(fNumberEntryOx, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fNumberEntryOx->MoveResize(96,16,53,20); fNumberEntryOy = new TGNumberEntry(fGroupFrameOrg, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); fGroupFrameOrg->AddFrame(fNumberEntryOy, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fNumberEntryOy->MoveResize(96,48,53,20); fNumberEntryOz = new TGNumberEntry(fGroupFrameOrg, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); fGroupFrameOrg->AddFrame(fNumberEntryOz, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fNumberEntryOz->MoveResize(96,80,53,20); fGroupFrameOrg->SetLayoutManager(new TGVerticalLayout(fGroupFrameOrg)); fGroupFrameOrg->Resize(192,120); fCompositeFrameTab->AddFrame(fGroupFrameOrg, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fGroupFrameOrg->MoveResize(16,208,192,120); fTabBoxParam->SetTab(0); fTabBoxParam->Resize(fTabBoxParam->GetDefaultSize()); fBoxEditorFille->AddFrame(fTabBoxParam, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTabBoxParam->MoveResize(8,8,232,424); // horizontal frame TGHorizontalFrame *fHorizontalFrame758 = new TGHorizontalFrame(fBoxEditorFille,232,56,kHorizontalFrame); fHorizontalFrame758->SetLayoutBroken(kTRUE); TGTextButton *fTextButtonVld = new TGTextButton(fHorizontalFrame758,"Valider"); TQObject::Connect(fTextButtonVld,"Clicked()","BoxEditor",this,"DoEventValid()"); fTextButtonVld->SetTextJustify(36); fTextButtonVld->Resize(80,24); fHorizontalFrame758->AddFrame(fTextButtonVld, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextButtonVld->MoveResize(68,16,80,24); fBoxEditorFille->AddFrame(fHorizontalFrame758, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fHorizontalFrame758->MoveResize(8,440,232,56); fBoxEditor->AddFrame(fBoxEditorFille, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY)); fBoxEditorFille->MoveResize(0,0,257,504); fBoxEditor->MapSubwindows(); fBoxEditor->Resize(fBoxEditor->GetDefaultSize()); fBoxEditor->MapWindow(); fBoxEditor->Resize(256,500); if(!x) { gSystem->Load("libGeom"); gGeoManager =new TGeoManager("world", "the simplest geometry"); } x++; } BoxEditor::~BoxEditor() { // Clean up used widgets: frames, buttons, layouthints fBoxEditor->Cleanup(); delete fBoxEditor; } void BoxEditor::DoEventUndo() { fBoxEditor->CloseWindow(); //Interface::fTextButtonOK->SetEnabled(kTRUE); } //In this method, line 367 void BoxEditor::DoEventApply() { i++; Double_t dx=fNumberEntryDx->GetNumber(); Double_t dy=fNumberEntryDy->GetNumber(); Double_t dz=fNumberEntryDz->GetNumber(); Double_t ox=fNumberEntryOx->GetNumber(); Double_t oy=fNumberEntryOy->GetNumber(); Double_t oz=fNumberEntryOz->GetNumber(); if(i==1) { mat[i] = new TGeoMaterial("Vacuum",0,0,0); med[i] = new TGeoMedium("Vacuum",1,mat[i]); top[i] = gGeoManager->MakeBox("Top",med[i],dx,dy,dz); gGeoManager->SetTopVolume(top[i]); //gGeoManager->CloseGeometry(); top[i]->Draw("SAME"); c01->Update(); } else { //mat[i] = new TGeoMaterial("Vacuum",0,0,0); //med[i] = new TGeoMedium("Vacuum",1,mat[i]); top[i] = gGeoManager->MakeBox("Top4",med[1],dx,dy,dz); //gGeoManager->CloseGeometry(); gGeoManager->SetTopVisible(); top[i]->Draw("SAME"); c01->Update(); //top[i]->SetLineColor(kWhite); //and espescially here... delete top[i]; } } void BoxEditor::DoEventValid() { i++; Double_t dx=fNumberEntryDx->GetNumber(); Double_t dy=fNumberEntryDy->GetNumber(); Double_t dz=fNumberEntryDz->GetNumber(); Double_t ox=fNumberEntryOx->GetNumber(); Double_t oy=fNumberEntryOy->GetNumber(); Double_t oz=fNumberEntryOz->GetNumber(); top[i] = gGeoManager->MakeBox("Top3",med[1],dx,dy,dz); j=gGeoManager->AddVolume(top[i]); top[i]->SetLineColor(kMagenta); gGeoManager->SetTopVisible(); top[i]->Draw("SAME"); c01->Update(); fBoxEditor->CloseWindow(); } class Interface { RQ_OBJECT("Interface") private: TGGroupFrame *fGroupWorld; TGGroupFrame *fGroupOS; TGGroupFrame *fGroupView; public: TCanvas *c01; TGComboBox *fComboBoxWorld; TGComboBox *fComboBoxAdd; TGComboBox *fComboBoxRmv; TGTextButton *fTextButtonOK; TGTextButton *fTextButtonRmv; TGTextButton *fTextButtonAdd; //const TGWindow *p,UInt_t w,UInt_t h Interface(const TGWindow *p,UInt_t w,UInt_t h); virtual ~Interface(); void DoEventOK(); void DoEventAdd(); void DoEventRmv(); }; Interface::Interface(const TGWindow *p,UInt_t w,UInt_t h) { // main frame TGMainFrame *fMainFrame = new TGMainFrame(gClient->GetRoot(),10,10,kMainFrame | kVerticalFrame); fMainFrame->SetLayoutBroken(kTRUE); TGTextButton *fTextButtonExit = new TGTextButton(fMainFrame,"&Exit","gApplication->Terminate(0)"); fTextButtonExit->SetTextJustify(36); fTextButtonExit->Resize(92,24); fMainFrame->AddFrame(fTextButtonExit, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextButtonExit->MoveResize(700,16,92,24); // composite frame TGCompositeFrame *fMainFrameFille = new TGCompositeFrame(fMainFrame,687,547,kVerticalFrame); fMainFrameFille->SetLayoutBroken(kTRUE); // tab widget TGTab *fTab = new TGTab(fMainFrameFille,668,520); // container of "Tab1" TGCompositeFrame *fTabMateriel; fTabMateriel = fTab->AddTab("Materiel"); fTabMateriel->SetLayoutManager(new TGVerticalLayout(fTabMateriel)); // container of "Tab2" TGCompositeFrame *fTabGeometry; fTabGeometry = fTab->AddTab("Geometry"); fTabGeometry->SetLayoutManager(new TGVerticalLayout(fTabGeometry)); fTabGeometry->SetLayoutBroken(kTRUE); // "VIEW" group frame fGroupView = new TGGroupFrame(fTabGeometry,"VIEW"); fGroupView->SetLayoutBroken(kTRUE); // embedded canvas TRootEmbeddedCanvas *fCanvas = new TRootEmbeddedCanvas(0,fGroupView,412,394); Int_t wfCanvas = fCanvas->GetCanvasWindowId(); c01 = new TCanvas("c01", 10, 10, wfCanvas); fCanvas->AdoptCanvas(c01); fGroupView->AddFrame(fCanvas, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fCanvas->MoveResize(17,25,412,394); fGroupView->SetLayoutManager(new TGVerticalLayout(fGroupView)); fGroupView->Resize(450,446); fTabGeometry->AddFrame(fGroupView, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fGroupView->MoveResize(187,22,450,446); // "OTHER SHAPES" group frame fGroupOS = new TGGroupFrame(fTabGeometry,"OTHER SHAPES"); fGroupOS->SetLayoutBroken(kTRUE); fTextButtonAdd = new TGTextButton(fGroupOS,"ADD"); fTextButtonAdd->Connect("Clicked()","Interface",this,"DoEventAdd()"); fTextButtonAdd->SetTextJustify(36); fTextButtonAdd->Resize(103,24); fTextButtonAdd->SetEnabled(kFALSE); fGroupOS->AddFrame(fTextButtonAdd, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextButtonAdd->MoveResize(24,88,103,24); ULong_t ucolor; // will reflect user color changes gClient->GetColorByName("#ffffff",ucolor); // combo box fComboBoxAdd = new TGComboBox(fGroupOS,-1,kHorizontalFrame | kSunkenFrame | kDoubleBorder | kOwnBackground); fComboBoxAdd->AddEntry("BOX",0); fComboBoxAdd->AddEntry("TUBE",1); fComboBoxAdd->AddEntry("CONE",2); fComboBoxAdd->Resize(104,22); fComboBoxAdd->Select(0); fComboBoxAdd->SetEnabled(kFALSE); fGroupOS->AddFrame(fComboBoxAdd, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fComboBoxAdd->MoveResize(24,56,104,22); fTextButtonRmv = new TGTextButton(fGroupOS,"REMOVE"); fTextButtonRmv->SetEnabled(kFALSE); fTextButtonRmv->Connect("Clicked()","Interface",this,"DoEventRmv()"); fTextButtonRmv->SetTextJustify(36); fTextButtonRmv->Resize(106,25); fGroupOS->AddFrame(fTextButtonRmv, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextButtonRmv->MoveResize(24,208,106,25); gClient->GetColorByName("#ffffff",ucolor); // combo box fComboBoxRmv = new TGComboBox(fGroupOS,-1,kHorizontalFrame | kSunkenFrame | kDoubleBorder | kOwnBackground); fComboBoxRmv->AddEntry("Entry 1 ",0); fComboBoxRmv->AddEntry("Entry 2 ",1); fComboBoxRmv->Resize(102,22); fComboBoxRmv->Select(0); fComboBoxRmv->SetEnabled(kFALSE); fGroupOS->AddFrame(fComboBoxRmv, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fComboBoxRmv->MoveResize(24,176,102,22); TGLabel *fLabelRmv = new TGLabel(fGroupOS,"Remove shape"); fLabelRmv->SetTextJustify(36); fGroupOS->AddFrame(fLabelRmv, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelRmv->MoveResize(24,144,100,21); TGLabel *fLabelAdd = new TGLabel(fGroupOS,"Add shape"); fLabelAdd->SetTextJustify(36); fGroupOS->AddFrame(fLabelAdd, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelAdd->MoveResize(24,24,96,23); fGroupOS->SetLayoutManager(new TGVerticalLayout(fGroupOS)); fGroupOS->Resize(156,264); fTabGeometry->AddFrame(fGroupOS, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fGroupOS->MoveResize(11,205,156,264); TGFont *ufont; // will reflect user font changes ufont = gClient->GetFont("-adobe-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1"); TGGC *uGC; // will reflect user GC changes // graphics context changes GCValues_t valpFrame867; valpFrame867.fMask = kGCForeground | kGCBackground | kGCFillStyle | kGCFont | kGCGraphicsExposures; gClient->GetColorByName("#000000",valpFrame867.fForeground); gClient->GetColorByName("#c0c0c0",valpFrame867.fBackground); valpFrame867.fFillStyle = kFillSolid; valpFrame867.fFont = ufont->GetFontHandle(); valpFrame867.fGraphicsExposures = kFALSE; uGC = gClient->GetGC(&valpFrame867, kTRUE); // "WORLD" group frame fGroupWorld = new TGGroupFrame(fTabGeometry,"WORLD",kVerticalFrame,uGC->GetGC()); fGroupWorld->SetLayoutBroken(kTRUE); TGLabel *fLabelWorld = new TGLabel(fGroupWorld,"Choose your World"); fLabelWorld->SetTextJustify(36); fGroupWorld->AddFrame(fLabelWorld, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fLabelWorld->MoveResize(8,24,128,23); /*TGTextButton **/fTextButtonOK = new TGTextButton(fGroupWorld,"OK"); fTextButtonOK->Connect("Clicked()","Interface",this,"DoEventOK()"); fTextButtonOK->SetTextJustify(36); fTextButtonOK->Resize(99,24); fGroupWorld->AddFrame(fTextButtonOK, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTextButtonOK->MoveResize(24,96,99,24); gClient->GetColorByName("#ffffff",ucolor); // combo box fComboBoxWorld = new TGComboBox(fGroupWorld,-1,kHorizontalFrame | kSunkenFrame | kDoubleBorder | kOwnBackground); fComboBoxWorld->AddEntry("BOX",0); fComboBoxWorld->AddEntry("TUBE",1); fComboBoxWorld->Resize(102,22); fComboBoxWorld->Select(0); fGroupWorld->AddFrame(fComboBoxWorld, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fComboBoxWorld->MoveResize(24,64,102,22); fGroupWorld->SetLayoutManager(new TGVerticalLayout(fGroupWorld)); fGroupWorld->Resize(156,150); fTabGeometry->AddFrame(fGroupWorld, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fGroupWorld->MoveResize(10,22,156,150); fTab->SetTab(1); fTab->Resize(fTab->GetDefaultSize()); fMainFrameFille->AddFrame(fTab, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fTab->MoveResize(5,15,668,520); fMainFrame->AddFrame(fMainFrameFille, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY)); fMainFrameFille->MoveResize(0,0,687,547); fMainFrame->MapSubwindows(); fMainFrame->Resize(fMainFrame->GetDefaultSize()); fMainFrame->MapWindow(); fMainFrame->Resize(820,580); } void DoBoxParam(Int_t id) { printf("l'entrée selectionnée : %d\n",id); new BoxEditor(gClient->GetRoot(),200,200); } void Interface::DoEventOK() { Int_t id=fComboBoxWorld->GetSelected(); DoBoxParam(id); fComboBoxAdd->SetEnabled(kTRUE); fTextButtonAdd->SetEnabled(kTRUE); } void Interface::DoEventAdd() { fComboBoxRmv->SetEnabled(kTRUE); fTextButtonRmv->SetEnabled(kTRUE); TGMainFrame *win2 = new TGMainFrame(gClient->GetRoot(),25,25,kMainFrame | kVerticalFrame); win2->SetLayoutBroken(kTRUE); win2->SetWindowName("Simple Example win2"); win2->MapSubwindows(); win2->Resize(win2->GetDefaultSize()); win2->MapWindow(); } void Interface::DoEventRmv() { TGMainFrame *win3 = new TGMainFrame(gClient->GetRoot(),25,25,kMainFrame | kVerticalFrame); win3->SetLayoutBroken(kTRUE); win3->SetWindowName("Simple Example win3"); win3->MapSubwindows(); win3->Resize(win3->GetDefaultSize()); win3->MapWindow(); } Interface::~Interface() { // Clean up used widgets: frames, buttons, layouthints fGroupWorld->Cleanup(); fGroupOS->Cleanup(); fGroupView->Cleanup(); delete fGroupWorld; delete fGroupOS; delete fGroupView; } void project() { // Popup the GUI... new Interface(gClient->GetRoot(),200,200); }