RtMainFrame::RtMainFrame(const TGWindow* p) : TGMainFrame(p, 800, 600) { // Create canvas TRootEmbeddedCanvas* eCanvas = new TRootEmbeddedCanvas("Embedded canvas",this,800,600); m_canvas = eCanvas->GetCanvas(); AddFrame(eCanvas, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 10, 10, 10, 1)); // ======================================== // Tooltip m_canvas->Connect("ProcessedEvent(Int_t,Int_t,Int_t,TObject*)", "RtMainFrame", this, "eventHandler(Int_t,Int_t,Int_t,TObject*)"); m_tip = new TGToolTip( gClient->GetDefaultRoot(), eCanvas, "", 0 ); // ======================================== // Buttons TGHorizontalFrame *hframe= new TGHorizontalFrame(this, 200,40); // Exit button hframe->AddFrame( new TGTextButton(hframe, "&Quit", "gApplication->Terminate()") , new TGLayoutHints(kLHintsCenterX,5,5,3,4)); // Save button TGTextButton* buttonPDF = new TGTextButton(hframe, "Save &PDF"); TQObject::Connect(buttonPDF, "Clicked()", "RtMainFrame", this, "savePDF()" ); hframe->AddFrame( buttonPDF , new TGLayoutHints(kLHintsCenterX,5,5,3,4)); AddFrame(hframe,new TGLayoutHints(kLHintsCenterX,2,2,2,2)); // Sets window name and shows the main frame SetWindowName("RT-Biplot"); MapSubwindows(); Resize(GetDefaultSize()); MapWindow(); }
void TExpenser::drawStatisticsMonthTab() { fStatisticsTab = fTab->AddTab("Statistics (Month)"); fStatisticsTab -> SetLayoutManager(new TGHorizontalLayout(fStatisticsTab)); TRootEmbeddedCanvas * fEcanvas = new TRootEmbeddedCanvas("Ecanvas",fStatisticsTab, CANVAS_WIDTH, CANVAS_HEIGHT); fStatisticsTab -> AddFrame(fEcanvas, new TGLayoutHints(kLHintsCenterX, 10,10,10,1)); fCanvas = fEcanvas->GetCanvas(); fCategoriesHistogram = new TH1F("fCategoriesHistogram", "Expenses for each category for a given month", NCATEGORIES, 0, NCATEGORIES); fCategoriesHistogram -> SetStats(0); TGVerticalFrame *vframe = new TGVerticalFrame(fStatisticsTab, 60, 40); fStatisticsTab -> AddFrame(vframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2)); // month selector fStatisticsMonth = new TGComboBox(vframe); for (unsigned i = 0; i < 12; i++) { fStatisticsMonth->AddEntry(MONTHS[i], i+1); } fStatisticsMonth->Resize(DROPDOWN_MENU_WIDTH, DROPDOWN_MENU_HEIGHT); TDatime time; fStatisticsMonth->Select(time.GetMonth()); vframe->AddFrame(fStatisticsMonth, new TGLayoutHints(kLHintsLeft,5,10,5,5)); // year selector fStatisticsYear = new TGComboBox(vframe); for (unsigned i = FIRST_YEAR; i <= LAST_YEAR; i++) { fStatisticsYear->AddEntry(toStr(i), i+1-FIRST_YEAR); } fStatisticsYear->Resize(DROPDOWN_MENU_WIDTH, DROPDOWN_MENU_HEIGHT); fStatisticsYear->Select(time.GetYear()-FIRST_YEAR+1); vframe->AddFrame(fStatisticsYear, new TGLayoutHints(kLHintsLeft,5,10,5,5)); // update-button TGTextButton * update_button = new TGTextButton(vframe,"&Apply"); update_button -> SetFont("-*-times-bold-r-*-*-28-*-*-*-*-*-*-*"); update_button -> Connect("Clicked()", "TExpenser", this, "calculate_monthly()"); vframe -> AddFrame(update_button, new TGLayoutHints(kLHintsLeft,5,5,3,4)); // monthly sum TColor *color = gROOT->GetColor(kBlue); TGFont *font = gClient->GetFont("-*-times-bold-r-*-*-22-*-*-*-*-*-*-*"); fTotalMonthlyExpenses = new TGLabel(vframe, ""); vframe->AddFrame(fTotalMonthlyExpenses, new TGLayoutHints(kLHintsNormal, 5, 5, 3, 4)); fTotalMonthlyExpenses->SetTextColor(color); fTotalMonthlyExpenses -> SetTextFont(font); calculate_monthly(); }
void TExpenser::drawStatisticsYearTab() { fStatisticsYearTab = fTab->AddTab("Statistics (Year)"); fStatisticsYearTab -> SetLayoutManager(new TGHorizontalLayout(fStatisticsYearTab)); TRootEmbeddedCanvas * StatisticsYearCanvas = new TRootEmbeddedCanvas("StatisticsYearCanvas",fStatisticsYearTab, CANVAS_WIDTH, CANVAS_HEIGHT); fStatisticsYearTab -> AddFrame(StatisticsYearCanvas, new TGLayoutHints(kLHintsCenterX, 10,10,10,1)); fCanvasYear = StatisticsYearCanvas->GetCanvas(); fMonthsHistogram = new TH1F("fMonthsHistogram", "Expenses for each month for a given category", 12, 0, 12); fMonthsHistogram -> SetStats(0); TGVerticalFrame *vframe = new TGVerticalFrame(fStatisticsYearTab, 60, 40); fStatisticsYearTab -> AddFrame(vframe, new TGLayoutHints(kLHintsCenterX,2,2,2,2)); // selector fStatisticsCategory = new TGComboBox(vframe); for (unsigned i = 0; i < NCATEGORIES; i++) { fStatisticsCategory->AddEntry(CATEGORIES[i], i+1); } fStatisticsCategory -> AddEntry("All Categories", NCATEGORIES+1); fStatisticsCategory->Resize(DROPDOWN_MENU_WIDTH, DROPDOWN_MENU_HEIGHT); fStatisticsCategory->Select(1); vframe->AddFrame(fStatisticsCategory, new TGLayoutHints(kLHintsLeft,5,10,5,5)); // year selector TDatime time; fStatisticsYear2 = new TGComboBox(vframe); for (unsigned i = FIRST_YEAR; i <= LAST_YEAR; i++) { fStatisticsYear2->AddEntry(toStr(i), i+1-FIRST_YEAR); } fStatisticsYear2->Resize(DROPDOWN_MENU_WIDTH, DROPDOWN_MENU_HEIGHT); fStatisticsYear2->Select(time.GetYear()-FIRST_YEAR+1); vframe->AddFrame(fStatisticsYear2, new TGLayoutHints(kLHintsLeft,5,10,5,5)); // update-button TGTextButton * update_button = new TGTextButton(vframe,"&Update"); update_button -> Connect("Clicked()", "TExpenser", this, "calculate_yearly()"); vframe -> AddFrame(update_button, new TGLayoutHints(kLHintsLeft,5,5,3,4)); calculate_yearly(); }
Gui::Gui(): TGMainFrame(gClient->GetRoot(),10,10,kMainFrame | kVerticalFrame), _timer(1000) { TGMainFrame * fMainFrame1997 = this; fMainFrame1997->SetName("fMainFrame1997"); TGVerticalFrame *fVerticalFrame556 = new TGVerticalFrame(fMainFrame1997,545,470,kVerticalFrame); fVerticalFrame556->SetName("fVerticalFrame556"); // embedded canvas TRootEmbeddedCanvas *canvas = new TRootEmbeddedCanvas(0,fVerticalFrame556,541,362); canvas->SetName("canvas"); Int_t wcanvas = canvas->GetCanvasWindowId(); TCanvas *c125 = new TCanvas("c125", 10, 10, wcanvas); canvas->AdoptCanvas(c125); fVerticalFrame556->AddFrame(canvas, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX | kLHintsExpandY,2,2,2,2)); TGStatusBar *fStatusBar1313 = 0; #if 0 // status bar fStatusBar1313 = new TGStatusBar(fMainFrame1997,545,18); fStatusBar1313->SetName("fStatusBar1313"); fMainFrame1997->AddFrame(fStatusBar1313, new TGLayoutHints(kLHintsLeft | kLHintsBottom | kLHintsExpandX)); #endif #if 1 // horizontal frame TGHorizontalFrame *fHorizontalFrame585 = new TGHorizontalFrame(fVerticalFrame556,524,86,kHorizontalFrame | kRaisedFrame); fHorizontalFrame585->SetName("fHorizontalFrame585"); #if 1 // vertical frame TGVerticalFrame *fVerticalFrame592 = new TGVerticalFrame(fHorizontalFrame585,125,57,kVerticalFrame); fVerticalFrame592->SetName("fVerticalFrame592"); TGCheckButton *subtractTrigger = new TGCheckButton(fVerticalFrame592,"Subtract trigger"); subtractTrigger->SetTextJustify(36); subtractTrigger->SetMargins(0,0,0,0); subtractTrigger->SetWrapLength(-1); fVerticalFrame592->AddFrame(subtractTrigger, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGCheckButton *firstHit = new TGCheckButton(fVerticalFrame592,"First hit only"); firstHit->SetTextJustify(36); firstHit->SetMargins(0,0,0,0); firstHit->SetWrapLength(-1); fVerticalFrame592->AddFrame(firstHit, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGCheckButton *runningAverage = new TGCheckButton(fVerticalFrame592,"Running average"); runningAverage->SetTextJustify(36); runningAverage->SetMargins(0,0,0,0); runningAverage->SetWrapLength(-1); fVerticalFrame592->AddFrame(runningAverage, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fHorizontalFrame585->AddFrame(fVerticalFrame592, new TGLayoutHints(kLHintsNormal)); #endif #if 1 // vertical frame TGVerticalFrame *fVerticalFrame717 = new TGVerticalFrame(fHorizontalFrame585,153,80,kVerticalFrame); fVerticalFrame717->SetName("fVerticalFrame717"); // horizontal frame TGHorizontalFrame *fHorizontalFrame326 = new TGHorizontalFrame(fVerticalFrame717,153,24,kHorizontalFrame); fHorizontalFrame326->SetName("fHorizontalFrame326"); TGLabel *fLabel1760 = new TGLabel(fHorizontalFrame326,"Trigger channel:"); fLabel1760->SetTextJustify(36); fLabel1760->SetMargins(0,0,0,0); fLabel1760->SetWrapLength(-1); fHorizontalFrame326->AddFrame(fLabel1760, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); _triggerChannel = new TGNumberEntry(fHorizontalFrame326, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); _triggerChannel->SetName("trggerChannel"); fHorizontalFrame326->AddFrame(_triggerChannel, new TGLayoutHints(kLHintsRight | kLHintsTop,2,2,2,2)); fVerticalFrame717->AddFrame(fHorizontalFrame326, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX)); // horizontal frame TGHorizontalFrame *fHorizontalFrame726 = new TGHorizontalFrame(fVerticalFrame717,153,24,kHorizontalFrame); fHorizontalFrame726->SetName("fHorizontalFrame726"); TGLabel *fLabel1700 = new TGLabel(fHorizontalFrame726,"Channel:"); fLabel1700->SetTextJustify(36); fLabel1700->SetMargins(0,0,0,0); fLabel1700->SetWrapLength(-1); fHorizontalFrame726->AddFrame(fLabel1700, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGNumberEntry *channel = new TGNumberEntry(fHorizontalFrame726, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); channel->SetName("channel"); fHorizontalFrame726->AddFrame(channel, new TGLayoutHints(kLHintsRight | kLHintsTop,2,2,2,2)); fVerticalFrame717->AddFrame(fHorizontalFrame726, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX)); // horizontal frame TGHorizontalFrame *fHorizontalFrame794 = new TGHorizontalFrame(fVerticalFrame717,149,24,kHorizontalFrame); fHorizontalFrame794->SetName("fHorizontalFrame794"); TGLabel *fLabel1706 = new TGLabel(fHorizontalFrame794,"Window width:"); fLabel1706->SetTextJustify(36); fLabel1706->SetMargins(0,0,0,0); fLabel1706->SetWrapLength(-1); fHorizontalFrame794->AddFrame(fLabel1706, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGNumberEntry *width = new TGNumberEntry(fHorizontalFrame794, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); width->SetName("width"); fHorizontalFrame794->AddFrame(width, new TGLayoutHints(kLHintsRight | kLHintsTop,2,2,2,2)); fVerticalFrame717->AddFrame(fHorizontalFrame794, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX,2,2,2,2)); // horizontal frame TGHorizontalFrame *fHorizontalFrame859 = new TGHorizontalFrame(fVerticalFrame717,149,24,kHorizontalFrame); fHorizontalFrame859->SetName("fHorizontalFrame859"); TGLabel *fLabel1712 = new TGLabel(fHorizontalFrame859,"Window offset:"); fLabel1712->SetTextJustify(36); fLabel1712->SetMargins(0,0,0,0); fLabel1712->SetWrapLength(-1); fHorizontalFrame859->AddFrame(fLabel1712, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGNumberEntry *offset = new TGNumberEntry(fHorizontalFrame859, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); offset->SetName("offset"); fHorizontalFrame859->AddFrame(offset, new TGLayoutHints(kLHintsRight | kLHintsTop,2,2,2,2)); fVerticalFrame717->AddFrame(fHorizontalFrame859, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX,2,2,2,2)); fHorizontalFrame585->AddFrame(fVerticalFrame717, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); #endif #if 1 // vertical frame TGVerticalFrame *fVerticalFrame888 = new TGVerticalFrame(fHorizontalFrame585,240,48,kVerticalFrame); fVerticalFrame888->SetName("fVerticalFrame888"); fVerticalFrame888->SetLayoutManager(new TGMatrixLayout(fVerticalFrame888,2,1,0,0)); // horizontal frame TGHorizontalFrame *fHorizontalFrame951 = new TGHorizontalFrame(fVerticalFrame888,240,24,kHorizontalFrame); fHorizontalFrame951->SetName("fHorizontalFrame951"); TGLabel *fLabel1719 = new TGLabel(fHorizontalFrame951,"Host:"); fLabel1719->SetTextJustify(36); fLabel1719->SetMargins(0,0,0,0); fLabel1719->SetWrapLength(-1); fHorizontalFrame951->AddFrame(fLabel1719, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGFont *ufont; // will reflect user font changes ufont = gClient->GetFont("-*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1"); TGGC *uGC; // will reflect user GC changes // graphics context changes GCValues_t valEntry1720; valEntry1720.fMask = kGCForeground | kGCBackground | kGCFillStyle | kGCFont | kGCGraphicsExposures; gClient->GetColorByName("#000000",valEntry1720.fForeground); gClient->GetColorByName("#e7e3e7",valEntry1720.fBackground); valEntry1720.fFillStyle = kFillSolid; valEntry1720.fFont = ufont->GetFontHandle(); valEntry1720.fGraphicsExposures = kFALSE; uGC = gClient->GetGC(&valEntry1720, kTRUE); TGTextEntry *host = new TGTextEntry(fHorizontalFrame951, new TGTextBuffer(31),-1,uGC->GetGC(),ufont->GetFontStruct(),kSunkenFrame | kDoubleBorder | kOwnBackground); host->SetMaxLength(4096); host->SetAlignment(kTextLeft); host->SetText("fTextEntry965"); host->Resize(202,host->GetDefaultHeight()); fHorizontalFrame951->AddFrame(host, new TGLayoutHints(kLHintsLeft | kLHintsTop | kLHintsExpandX,2,2,2,2)); fVerticalFrame888->AddFrame(fHorizontalFrame951, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); // horizontal frame TGHorizontalFrame *fHorizontalFrame974 = new TGHorizontalFrame(fVerticalFrame888,95,24,kHorizontalFrame); fHorizontalFrame974->SetName("fHorizontalFrame974"); TGLabel *fLabel1722 = new TGLabel(fHorizontalFrame974,"Port:"); fLabel1722->SetTextJustify(36); fLabel1722->SetMargins(0,0,0,0); fLabel1722->SetWrapLength(-1); fHorizontalFrame974->AddFrame(fLabel1722, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); TGNumberEntry *port = new TGNumberEntry(fHorizontalFrame974, (Double_t) 0,6,-1,(TGNumberFormat::EStyle) 5); port->SetName("port"); fHorizontalFrame974->AddFrame(port, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2)); fVerticalFrame888->AddFrame(fHorizontalFrame974, new TGLayoutHints(kLHintsNormal)); fHorizontalFrame585->AddFrame(fVerticalFrame888, new TGLayoutHints(kLHintsNormal)); #endif fVerticalFrame556->AddFrame(fHorizontalFrame585, new TGLayoutHints(kLHintsBottom)); #endif fMainFrame1997->AddFrame(fVerticalFrame556, new TGLayoutHints(kLHintsTop | kLHintsExpandX | kLHintsExpandY,1,1,1,1)); fMainFrame1997->MoveResize(0,0,553,519); fMainFrame1997->SetMWMHints(kMWMDecorAll, kMWMFuncAll, kMWMInputModeless); fMainFrame1997->MapSubwindows(); fMainFrame1997->Resize(fMainFrame1997->GetDefaultSize()); fMainFrame1997->MapWindow(); fMainFrame1997->Resize(562,515); #if 1 _canvas = canvas->GetCanvas(); _channel = channel; _port = port; _width = width; _offset = offset; _host = host; _status = fStatusBar1313; _subtractTrigger = subtractTrigger; _runningAverage = runningAverage; _firstHit = firstHit; init(); #endif }