Пример #1
0
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();
}
Пример #2
0
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();
}
Пример #3
0
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();
}
Пример #4
0
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
}