ProcessFileDialog::ProcessFileDialog(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h, UInt_t options) : TGTransientFrame(p, main, w, h, options) { // layouts topLeftLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 2, 2, 2, 2); centerLayout = new TGLayoutHints(kLHintsCenterX | kLHintsCenterY, 2, 2, 2, 2); bottomRightLayout = new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 2, 2); // end layouts mainFrame = new TGVerticalFrame(this, 60, 20); { configTab = new TGTab(mainFrame,300,300); { TGCompositeFrame *tab; tab = configTab->AddTab("Files"); { inBrowseButton = new TGTextButton(tab, "Browse", B_PROCESS_FILE_IN_BROWSE); inBrowseButton->Associate(this); outBrowseButton = new TGTextButton(tab, "Browse", B_PROCESS_FILE_OUT_BROWSE); outBrowseButton->Associate(this); inFileText = new TGTextEntry(tab, "", TE_PROCESS_FILE_IN); inFileText->Resize(250, inFileText->GetDefaultHeight()); inFileText->Associate(this); outFileText = new TGTextEntry(tab, "", TE_PROCESS_FILE_OUT); outFileText->Resize(250, outFileText->GetDefaultHeight()); outFileText->Associate(this); splitTreeCheck = new TGCheckButton(tab, ""); if (splitTree==true) splitTreeCheck->SetState(kButtonDown); else splitTreeCheck->SetState(kButtonUp); tab->SetLayoutManager(new TGMatrixLayout(tab, 0, 3, 10)); tab->AddFrame(new TGLabel (tab, "Input File"), topLeftLayout); tab->AddFrame(inFileText, topLeftLayout); tab->AddFrame(inBrowseButton, topLeftLayout); tab->AddFrame(new TGLabel (tab, "Output File")); tab->AddFrame(outFileText, topLeftLayout); tab->AddFrame(outBrowseButton, topLeftLayout); tab->AddFrame(new TGLabel (tab, "Split Tree"), topLeftLayout); tab->AddFrame(splitTreeCheck, topLeftLayout); } tab = configTab->AddTab("Trackfitting"); trackFinder->MakePanel(tab); tab = configTab->AddTab("Geometry"); theDetector->MakePanel(tab); } buttonFrame = new TGHorizontalFrame(this, 60, 20, kFixedWidth); { okButton = new TGTextButton(buttonFrame, "&Ok", B_PROCESS_FILE_OK); okButton->Associate(this); cancelButton = new TGTextButton(buttonFrame, "&Cancel", B_PROCESS_FILE_CANCEL); cancelButton->Associate(this); buttonFrame->AddFrame(okButton, topLeftLayout); buttonFrame->AddFrame(cancelButton, topLeftLayout); buttonFrame->Resize(150, okButton->GetDefaultHeight()); } mainFrame->AddFrame(configTab, topLeftLayout); mainFrame->AddFrame(buttonFrame, bottomRightLayout); } AddFrame(mainFrame, topLeftLayout); SetWindowName("Process File"); Resize(GetDefaultSize()); MapSubwindows(); MapWindow(); } ProcessFileDialog::~ProcessFileDialog() { delete topLeftLayout; delete centerLayout; delete bottomRightLayout; delete inBrowseButton; delete outBrowseButton; delete inFileText; delete outFileText; delete splitTreeCheck; delete okButton; delete cancelButton; delete configTab; delete mainFrame; delete buttonFrame; } void ProcessFileDialog::CloseWindow() { // Called when window is closed via the window manager. delete this; }