#include "MyDialog.h" #include "MainFrame.h" ClassImp(MyDialog) MyDialog::MyDialog(const TGWindow *p, const TGWindow *main, UInt_t w, UInt_t h, TRootEmbeddedCanvas *ec) { // 1st: to create an window with respect to its parent (main) window fEmbCanvas = ec; fMain = new TGTransientFrame(p, main, w, h); fMain->Connect("CloseWindow()", "MyDialog", this, "CloseWindow()"); fHor1 = new TGHorizontalFrame(fMain, 80, 20, kFixedWidth); fClose = new TGTextButton(fHor1,"Draw&Close", 1); fClose->Connect("Clicked()", "MyDialog", this, "DoClose()"); fHor1->AddFrame(fClose, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX, 4, 4, 4, 4)); fHor1->Resize(150, fClose->GetDefaultHeight()); fMain->AddFrame(fHor1,new TGLayoutHints(kLHintsBottom | kLHintsRight, 2, 2, 5, 1)); // 2nd: create widgets in the dialog fText = new TGTextEntry(fMain, new TGTextBuffer(100)); fText->SetToolTipText("Enter name and hit enter key"); fText->Connect("ReturnPressed()", "MyDialog", this, "DoSetlabel()"); // fText->Connect("Clicked()", "MyDialog", this, "DoOk()"); // fOk->Connect("Clicked()", "MyDialog", 0, 0, "Draw()"); fMain->AddFrame(fText, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fGframe = new TGGroupFrame(fMain, "Chain name"); fLabel = new TGLabel(fGframe, "Chain name"); fGframe->AddFrame(fLabel, new TGLayoutHints(kLHintsTop | kLHintsLeft, 5, 5, 5, 5)); fMain->AddFrame(fGframe, new TGLayoutHints(kLHintsExpandX, 2, 2, 1, 1)); fText->Resize(150, fText->GetDefaultHeight()); fMain->MapSubwindows(); fMain->Resize(fMain->GetDefaultSize()); // position of the dialog relative to the parent's window Window_t wdum; int ax, ay; gVirtualX->TranslateCoordinates(main->GetId(), fMain->GetParent()->GetId(), (Int_t)(((TGFrame *) main)->GetWidth() - fMain->GetWidth()) >> 1, (Int_t)(((TGFrame *) main)->GetHeight() - fMain->GetHeight()) >> 1, ax, ay, wdum); fMain->Move(ax, ay); fMain->SetWindowName("My Dialog"); fMain->MapWindow(); } MyDialog::~MyDialog() { delete fText; delete fLabel; delete fClose; delete fHor1; delete fGframe; delete fMain; } void MyDialog::CloseWindow() { // Called when the window is closed via the window manager. delete this; } void MyDialog::DoSetlabel() { printf("\nThe Enter key is pressed\n"); fLabel->SetText(fText->GetBuffer()->GetString()); fGframe->Layout(); } void MyDialog::DoClose() { TQObject::Disconnect(fText, "ReturnPressed()", this, "DoSetlabel()"); printf("\nThe Ok button is pressed\n"); fEmbCanvas->GetCanvas()->cd(); gROOT->ProcessLine(Form("%s->Draw();",fText->GetBuffer()->GetString())); fEmbCanvas->GetCanvas()->Modified(); fEmbCanvas->GetCanvas()->Update(); fMain->SendCloseMessage(); } void MyDialog::SetFrame(MainFrame* frame) { fFrame = frame; } void MyDialog::Draw(const char* chainname) { // TCanvas *Canvas = fPlotter->GetCanvas(); // TCanvas *fCanvas = fEmbCanvas->GetCanvas(); // fCanvas->cd(); // DRAW // fFrame->Draw(chainname); //Plotter->DrawHist(chainname); // fCanvas->Update(); // gSystem->ProcessEvents(); }