#include "honlinemonclientmainwin.h"
#include "honlinemonclientmain.h"
ClassImp(HOnlineMonClientMainWin);
HOnlineMonClientMainWin::HOnlineMonClientMainWin() {
width = 0;
height = 0;
clientMainWindow = 0;
clientMain = 0;
gFrameRefreshRate = 0;
numberEntryRefreshRate = 0;
numberEntryAutoSaveRate = 0;
gFrameSnapshot = 0;
buttonSnapshot = 0;
gFrameDetectors = 0;
SnapShotPath ="";
}
void HOnlineMonClientMainWin::CreateMainWin(HOnlineMonClientMain* clientmain) {
clientMainWindow = new TGMainFrame(gClient->GetRoot());
clientMain = clientmain;
gFrameDetectors = new TGGroupFrame(clientMainWindow, "detectors", kVerticalFrame);
gFrameDetectors->SetLayoutManager(new TGVerticalLayout(gFrameDetectors));
for (Int_t i=0;i<clientmain->listDetectors.LastIndex()+1;i++) {
TString detname = clientmain->listDetectors.At(i)->GetName();
TGCheckButton *checkbutton = new TGCheckButton(gFrameDetectors, detname);
checkbutton->SetName(detname);
checkbutton->Connect("Clicked()", "HOnlineMonClientMain", clientmain, ((TString) "HandleControlbuttonClick(=\"" + detname + "\")").Data());
listControlbuttons.Add(checkbutton);
if (listOpenDetectors.FindObject(detname.Data()) || listOpenDetectors.FindObject("all") ) checkbutton->SetOn(kTRUE);
gFrameDetectors->AddFrame(checkbutton, new TGLayoutHints(kLHintsLeft,2,2,2,2));
}
clientMainWindow->AddFrame(gFrameDetectors, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4));
gFrameRefreshRate = new TGGroupFrame(clientMainWindow, "refresh rate (s) | auto save (m)", kHorizontalFrame);
gFrameRefreshRate->SetLayoutManager(new TGHorizontalLayout(gFrameRefreshRate));
numberEntryRefreshRate = new TGNumberEntry(gFrameRefreshRate,clientmain->GetUpdateInterval(), 5, -1, TGNumberFormat::kNESInteger, TGNumberFormat::kNEAAnyNumber, TGNumberFormat::kNELLimitMin, 1);
numberEntryRefreshRate->Connect("ValueSet(Long_t)", "HOnlineMonClientMain", clientmain, "HandleRefreshRateChange()");
(numberEntryRefreshRate->GetNumberEntry())->Connect("ReturnPressed()", "HOnlineMonClientMain", clientmain, "HandleRefreshRateChange()");
gFrameRefreshRate->AddFrame(numberEntryRefreshRate, new TGLayoutHints(kLHintsLeft, 5, 5, 3, 4));
numberEntryAutoSaveRate = new TGNumberEntry(gFrameRefreshRate, -1, 5, -1, TGNumberFormat::kNESInteger, TGNumberFormat::kNEAAnyNumber, TGNumberFormat::kNELLimitMin, 1);
numberEntryAutoSaveRate->SetLimits(TGNumberFormat::kNELLimitMinMax, -1,300);
numberEntryAutoSaveRate->Connect("ValueSet(Long_t)", "HOnlineMonClientMain", clientmain, "HandleAutoSaveRateChange()");
(numberEntryAutoSaveRate->GetNumberEntry())->Connect("ReturnPressed()", "HOnlineMonClientMain", clientmain, "HandleAutoSaveRateChange()");
gFrameRefreshRate->AddFrame(numberEntryAutoSaveRate, new TGLayoutHints(kLHintsRight, 5, 5, 3, 4));
numberEntryAutoSaveRate->GetNumberEntry()->SetIntNumber(GetAutoSaveRate());
clientMainWindow->AddFrame(gFrameRefreshRate, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4));
gFrameSnapshot = new TGGroupFrame(clientMainWindow, "actions", kHorizontalFrame);
gFrameSnapshot->SetLayoutManager(new TGHorizontalLayout(gFrameSnapshot));
TGTextButton* buttonStop = new TGTextButton(gFrameSnapshot, "STOP");
buttonStop->SetToolTipText("Click here to stop the hadesonlineserver. \n"
"Only super user should stop the server since it \n"
"will affect all other monitoring clients! \n"
"USE With CARE!");
buttonStop->Connect("Clicked()", "HOnlineMonClientMain", clientmain, "HandleSendStopServer()");
gFrameSnapshot->AddFrame(buttonStop, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4));
TGTextButton* buttonReset = new TGTextButton(gFrameSnapshot, "RESET");
buttonReset->SetToolTipText("Click here to reset hists on the hadesonlineserver. \n"
"This will affect all other monitoring clients! \n"
"USE With CARE!");
buttonReset->Connect("Clicked()", "HOnlineMonClientMain", clientmain, "HandleSendResetHists()");
gFrameSnapshot->AddFrame(buttonReset, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4));
buttonSnapshot = new TGTextButton(gFrameSnapshot, "SAVE");
buttonSnapshot->SetToolTipText("Click here to store all monitoring screens to a \n"
"pdf file in the snapshot dir. The file name is \n"
"composed filename_yyyy-m-dd_hh:minmin:ss.pdf \n"
"ONLY HISTOGRAMS OF OPEN MONITORS WILL BE SAVED!");
buttonSnapshot->Connect("Clicked()", "HOnlineMonClientMain", clientmain, "HandleSnapshotSave()");
gFrameSnapshot->AddFrame(buttonSnapshot, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4));
clientMainWindow->AddFrame(gFrameSnapshot, new TGLayoutHints(kLHintsCenterX, 5, 5, 3, 4));
fTextFilename = new TGTextEntry(clientMainWindow );
clientMainWindow->AddFrame(fTextFilename,new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 5));
fTextSnapshotPath = new TGTextEntry(clientMainWindow );
clientMainWindow->AddFrame(fTextSnapshotPath,new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 5));
fTextSnapshotPath->SetText(GetSnapShotPath().Data());
fTextSpeed = new TGTextEntry(clientMainWindow );
clientMainWindow->AddFrame(fTextSpeed,new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 5));
fDataRate = new TGTextEntry(clientMainWindow );
clientMainWindow->AddFrame(fDataRate,new TGLayoutHints(kLHintsExpandX, 5, 5, 3, 5));
clientMainWindow->SetName(this->GetName());
clientMainWindow->SetWindowName(this->GetTitle());
clientMainWindow->MapSubwindows();
clientMainWindow->MapWindow();
clientMainWindow->Resize(this->GetWidth(), this->GetHeight());
clientMainWindow->Connect("CloseWindow()", "HOnlineMonClientMain", clientmain, "HandleMainWindowClose()");
}
void HOnlineMonClientMainWin::DestroyMainWin(HOnlineMonClientMain* clientmain) {
}
HOnlineMonClientMainWin::~HOnlineMonClientMainWin() {
listControlbuttons.Delete();
clientMainWindow->Cleanup();
delete clientMainWindow;
clientMainWindow = 0;
clientMain = 0;
}
void HOnlineMonClientMainWin::SetWidth(Int_t width) {
this->width = width;
}
Int_t HOnlineMonClientMainWin::GetWidth() {
return this->width;
}
void HOnlineMonClientMainWin::SetHeight(Int_t height) {
this->height = height;
}
Int_t HOnlineMonClientMainWin::GetHeight() {
return this->height;
}
void HOnlineMonClientMainWin::SetSnapShotPath(TString path) {
SnapShotPath = path;
}
void HOnlineMonClientMainWin::SetAutoSaveRate(Int_t rate) {
autoSaveRate = rate;
}
honlinemonclientmainwin.cc:1 honlinemonclientmainwin.cc:2 honlinemonclientmainwin.cc:3 honlinemonclientmainwin.cc:4 honlinemonclientmainwin.cc:5 honlinemonclientmainwin.cc:6 honlinemonclientmainwin.cc:7 honlinemonclientmainwin.cc:8 honlinemonclientmainwin.cc:9 honlinemonclientmainwin.cc:10 honlinemonclientmainwin.cc:11 honlinemonclientmainwin.cc:12 honlinemonclientmainwin.cc:13 honlinemonclientmainwin.cc:14 honlinemonclientmainwin.cc:15 honlinemonclientmainwin.cc:16 honlinemonclientmainwin.cc:17 honlinemonclientmainwin.cc:18 honlinemonclientmainwin.cc:19 honlinemonclientmainwin.cc:20 honlinemonclientmainwin.cc:21 honlinemonclientmainwin.cc:22 honlinemonclientmainwin.cc:23 honlinemonclientmainwin.cc:24 honlinemonclientmainwin.cc:25 honlinemonclientmainwin.cc:26 honlinemonclientmainwin.cc:27 honlinemonclientmainwin.cc:28 honlinemonclientmainwin.cc:29 honlinemonclientmainwin.cc:30 honlinemonclientmainwin.cc:31 honlinemonclientmainwin.cc:32 honlinemonclientmainwin.cc:33 honlinemonclientmainwin.cc:34 honlinemonclientmainwin.cc:35 honlinemonclientmainwin.cc:36 honlinemonclientmainwin.cc:37 honlinemonclientmainwin.cc:38 honlinemonclientmainwin.cc:39 honlinemonclientmainwin.cc:40 honlinemonclientmainwin.cc:41 honlinemonclientmainwin.cc:42 honlinemonclientmainwin.cc:43 honlinemonclientmainwin.cc:44 honlinemonclientmainwin.cc:45 honlinemonclientmainwin.cc:46 honlinemonclientmainwin.cc:47 honlinemonclientmainwin.cc:48 honlinemonclientmainwin.cc:49 honlinemonclientmainwin.cc:50 honlinemonclientmainwin.cc:51 honlinemonclientmainwin.cc:52 honlinemonclientmainwin.cc:53 honlinemonclientmainwin.cc:54 honlinemonclientmainwin.cc:55 honlinemonclientmainwin.cc:56 honlinemonclientmainwin.cc:57 honlinemonclientmainwin.cc:58 honlinemonclientmainwin.cc:59 honlinemonclientmainwin.cc:60 honlinemonclientmainwin.cc:61 honlinemonclientmainwin.cc:62 honlinemonclientmainwin.cc:63 honlinemonclientmainwin.cc:64 honlinemonclientmainwin.cc:65 honlinemonclientmainwin.cc:66 honlinemonclientmainwin.cc:67 honlinemonclientmainwin.cc:68 honlinemonclientmainwin.cc:69 honlinemonclientmainwin.cc:70 honlinemonclientmainwin.cc:71 honlinemonclientmainwin.cc:72 honlinemonclientmainwin.cc:73 honlinemonclientmainwin.cc:74 honlinemonclientmainwin.cc:75 honlinemonclientmainwin.cc:76 honlinemonclientmainwin.cc:77 honlinemonclientmainwin.cc:78 honlinemonclientmainwin.cc:79 honlinemonclientmainwin.cc:80 honlinemonclientmainwin.cc:81 honlinemonclientmainwin.cc:82 honlinemonclientmainwin.cc:83 honlinemonclientmainwin.cc:84 honlinemonclientmainwin.cc:85 honlinemonclientmainwin.cc:86 honlinemonclientmainwin.cc:87 honlinemonclientmainwin.cc:88 honlinemonclientmainwin.cc:89 honlinemonclientmainwin.cc:90 honlinemonclientmainwin.cc:91 honlinemonclientmainwin.cc:92 honlinemonclientmainwin.cc:93 honlinemonclientmainwin.cc:94 honlinemonclientmainwin.cc:95 honlinemonclientmainwin.cc:96 honlinemonclientmainwin.cc:97 honlinemonclientmainwin.cc:98 honlinemonclientmainwin.cc:99 honlinemonclientmainwin.cc:100 honlinemonclientmainwin.cc:101 honlinemonclientmainwin.cc:102 honlinemonclientmainwin.cc:103 honlinemonclientmainwin.cc:104 honlinemonclientmainwin.cc:105 honlinemonclientmainwin.cc:106 honlinemonclientmainwin.cc:107 honlinemonclientmainwin.cc:108 honlinemonclientmainwin.cc:109 honlinemonclientmainwin.cc:110 honlinemonclientmainwin.cc:111 honlinemonclientmainwin.cc:112 honlinemonclientmainwin.cc:113 honlinemonclientmainwin.cc:114 honlinemonclientmainwin.cc:115 honlinemonclientmainwin.cc:116 honlinemonclientmainwin.cc:117 honlinemonclientmainwin.cc:118 honlinemonclientmainwin.cc:119 honlinemonclientmainwin.cc:120 honlinemonclientmainwin.cc:121 honlinemonclientmainwin.cc:122 honlinemonclientmainwin.cc:123 honlinemonclientmainwin.cc:124 honlinemonclientmainwin.cc:125 honlinemonclientmainwin.cc:126 honlinemonclientmainwin.cc:127 honlinemonclientmainwin.cc:128 honlinemonclientmainwin.cc:129 honlinemonclientmainwin.cc:130 honlinemonclientmainwin.cc:131 honlinemonclientmainwin.cc:132 honlinemonclientmainwin.cc:133 honlinemonclientmainwin.cc:134 honlinemonclientmainwin.cc:135 honlinemonclientmainwin.cc:136 honlinemonclientmainwin.cc:137 honlinemonclientmainwin.cc:138 honlinemonclientmainwin.cc:139 honlinemonclientmainwin.cc:140 honlinemonclientmainwin.cc:141 honlinemonclientmainwin.cc:142 honlinemonclientmainwin.cc:143 honlinemonclientmainwin.cc:144 honlinemonclientmainwin.cc:145 honlinemonclientmainwin.cc:146 honlinemonclientmainwin.cc:147 honlinemonclientmainwin.cc:148 honlinemonclientmainwin.cc:149 honlinemonclientmainwin.cc:150 honlinemonclientmainwin.cc:151 honlinemonclientmainwin.cc:152 honlinemonclientmainwin.cc:153 honlinemonclientmainwin.cc:154 honlinemonclientmainwin.cc:155 honlinemonclientmainwin.cc:156 honlinemonclientmainwin.cc:157 honlinemonclientmainwin.cc:158 honlinemonclientmainwin.cc:159 honlinemonclientmainwin.cc:160 honlinemonclientmainwin.cc:161 honlinemonclientmainwin.cc:162 honlinemonclientmainwin.cc:163 honlinemonclientmainwin.cc:164 honlinemonclientmainwin.cc:165 honlinemonclientmainwin.cc:166 honlinemonclientmainwin.cc:167 honlinemonclientmainwin.cc:168 honlinemonclientmainwin.cc:169 honlinemonclientmainwin.cc:170 honlinemonclientmainwin.cc:171 honlinemonclientmainwin.cc:172 honlinemonclientmainwin.cc:173 honlinemonclientmainwin.cc:174 honlinemonclientmainwin.cc:175 honlinemonclientmainwin.cc:176 honlinemonclientmainwin.cc:177 honlinemonclientmainwin.cc:178 honlinemonclientmainwin.cc:179 honlinemonclientmainwin.cc:180