ROOT logo
#include "honlinemonclientsimplewin.h"

#include "honlinemonclientmain.h"
#include "honlinemonclientcanvas.h"

ClassImp(HOnlineMonClientSimpleWin);

/* -------------------------------------------------------------------------- */
HOnlineMonClientSimpleWin::HOnlineMonClientSimpleWin() {
    mainFrame = 0;
    statBar = 0;
    active = kFALSE;
    lastUpdate = "";
    detectorname = "";
}
/* -------------------------------------------------------------------------- */
HOnlineMonClientSimpleWin::~HOnlineMonClientSimpleWin() {
    if (mainFrame) {
	mainFrame->Cleanup();
	delete mainFrame;
	mainFrame = 0;
	statBar = 0;
    }

    listCanvases.Delete();
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientSimpleWin::CreateWindow(HOnlineMonClientMain* clientmain, TString detectorName) {

    detectorname = detectorName;

    mainFrame = new TGMainFrame(gClient->GetRoot());

    for (Int_t i=0;i<listCanvases.LastIndex()+1;i++) {
	HOnlineMonClientCanvas *clientcanvas = (HOnlineMonClientCanvas*) listCanvases.At(i);
	clientcanvas->CreateCanvas(clientmain, (TGWindow*) mainFrame);
	mainFrame->AddFrame(clientcanvas->GetRCanvas(), new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
    }

    // create status bar
    statBar = new TGStatusBar(mainFrame, 50, 10, kVerticalFrame);
    statBar->SetText("", 0);
    mainFrame->AddFrame(statBar, new TGLayoutHints(kLHintsExpandX, 0, 0, 10, 0));

    mainFrame->SetName(this->GetName());
    mainFrame->SetWindowName(this->GetTitle());
    //mainFrame->Connect("CloseWindow()", "HOnlineMonClientMain", clientmain, ((TString) "HandleSingleWindowClose(=\"" + this->GetName() + "\", \"" + detectorname.Data() + "\")").Data());
    mainFrame->MapSubwindows();
    mainFrame->MapWindow();
    mainFrame->Resize(mainFrame->GetDefaultSize());

    this->SetActive(kTRUE);
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientSimpleWin::DestroyWindow(HOnlineMonClientMain* clientmain) {

    TThread* main = clientmain->getMainThread();
    main->Lock();

    this->SetActive(kFALSE);

    if (mainFrame) {


	for (Int_t i=0;i<listCanvases.LastIndex()+1;i++) {
	    HOnlineMonClientCanvas* clientcanvas = (HOnlineMonClientCanvas*) listCanvases.At(i);
	    clientcanvas->DestroyCanvas(clientmain);
	}
	mainFrame->Cleanup(); // removes all objects added via AddFrame()

	delete mainFrame;
	mainFrame = 0;
    }
    main->UnLock();

}
/* -------------------------------------------------------------------------- */
TString HOnlineMonClientSimpleWin::GetLastUpdate() {
    return lastUpdate;
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientSimpleWin::SetLastUpdate() {
    TTimeStamp* timestamp = new TTimeStamp();
    lastUpdate = timestamp->AsString("l");
    delete timestamp;
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientSimpleWin::SetStatusBarText(TString text) {
    if (statBar) {
	statBar->SetText(text, 0);
    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientSimpleWin::SetActive(Bool_t state) {
    for (Int_t i=0;i<listCanvases.LastIndex()+1;i++) {
	HOnlineMonClientCanvas* clientcanvas = (HOnlineMonClientCanvas*) listCanvases.At(i);
	clientcanvas->SetActive(state);
    }
    this->active = state;
}
/* -------------------------------------------------------------------------- */
Bool_t HOnlineMonClientSimpleWin::IsActive() {
    return this->active;
}
/* -------------------------------------------------------------------------- */

 honlinemonclientsimplewin.cc:1
 honlinemonclientsimplewin.cc:2
 honlinemonclientsimplewin.cc:3
 honlinemonclientsimplewin.cc:4
 honlinemonclientsimplewin.cc:5
 honlinemonclientsimplewin.cc:6
 honlinemonclientsimplewin.cc:7
 honlinemonclientsimplewin.cc:8
 honlinemonclientsimplewin.cc:9
 honlinemonclientsimplewin.cc:10
 honlinemonclientsimplewin.cc:11
 honlinemonclientsimplewin.cc:12
 honlinemonclientsimplewin.cc:13
 honlinemonclientsimplewin.cc:14
 honlinemonclientsimplewin.cc:15
 honlinemonclientsimplewin.cc:16
 honlinemonclientsimplewin.cc:17
 honlinemonclientsimplewin.cc:18
 honlinemonclientsimplewin.cc:19
 honlinemonclientsimplewin.cc:20
 honlinemonclientsimplewin.cc:21
 honlinemonclientsimplewin.cc:22
 honlinemonclientsimplewin.cc:23
 honlinemonclientsimplewin.cc:24
 honlinemonclientsimplewin.cc:25
 honlinemonclientsimplewin.cc:26
 honlinemonclientsimplewin.cc:27
 honlinemonclientsimplewin.cc:28
 honlinemonclientsimplewin.cc:29
 honlinemonclientsimplewin.cc:30
 honlinemonclientsimplewin.cc:31
 honlinemonclientsimplewin.cc:32
 honlinemonclientsimplewin.cc:33
 honlinemonclientsimplewin.cc:34
 honlinemonclientsimplewin.cc:35
 honlinemonclientsimplewin.cc:36
 honlinemonclientsimplewin.cc:37
 honlinemonclientsimplewin.cc:38
 honlinemonclientsimplewin.cc:39
 honlinemonclientsimplewin.cc:40
 honlinemonclientsimplewin.cc:41
 honlinemonclientsimplewin.cc:42
 honlinemonclientsimplewin.cc:43
 honlinemonclientsimplewin.cc:44
 honlinemonclientsimplewin.cc:45
 honlinemonclientsimplewin.cc:46
 honlinemonclientsimplewin.cc:47
 honlinemonclientsimplewin.cc:48
 honlinemonclientsimplewin.cc:49
 honlinemonclientsimplewin.cc:50
 honlinemonclientsimplewin.cc:51
 honlinemonclientsimplewin.cc:52
 honlinemonclientsimplewin.cc:53
 honlinemonclientsimplewin.cc:54
 honlinemonclientsimplewin.cc:55
 honlinemonclientsimplewin.cc:56
 honlinemonclientsimplewin.cc:57
 honlinemonclientsimplewin.cc:58
 honlinemonclientsimplewin.cc:59
 honlinemonclientsimplewin.cc:60
 honlinemonclientsimplewin.cc:61
 honlinemonclientsimplewin.cc:62
 honlinemonclientsimplewin.cc:63
 honlinemonclientsimplewin.cc:64
 honlinemonclientsimplewin.cc:65
 honlinemonclientsimplewin.cc:66
 honlinemonclientsimplewin.cc:67
 honlinemonclientsimplewin.cc:68
 honlinemonclientsimplewin.cc:69
 honlinemonclientsimplewin.cc:70
 honlinemonclientsimplewin.cc:71
 honlinemonclientsimplewin.cc:72
 honlinemonclientsimplewin.cc:73
 honlinemonclientsimplewin.cc:74
 honlinemonclientsimplewin.cc:75
 honlinemonclientsimplewin.cc:76
 honlinemonclientsimplewin.cc:77
 honlinemonclientsimplewin.cc:78
 honlinemonclientsimplewin.cc:79
 honlinemonclientsimplewin.cc:80
 honlinemonclientsimplewin.cc:81
 honlinemonclientsimplewin.cc:82
 honlinemonclientsimplewin.cc:83
 honlinemonclientsimplewin.cc:84
 honlinemonclientsimplewin.cc:85
 honlinemonclientsimplewin.cc:86
 honlinemonclientsimplewin.cc:87
 honlinemonclientsimplewin.cc:88
 honlinemonclientsimplewin.cc:89
 honlinemonclientsimplewin.cc:90
 honlinemonclientsimplewin.cc:91
 honlinemonclientsimplewin.cc:92
 honlinemonclientsimplewin.cc:93
 honlinemonclientsimplewin.cc:94
 honlinemonclientsimplewin.cc:95
 honlinemonclientsimplewin.cc:96
 honlinemonclientsimplewin.cc:97
 honlinemonclientsimplewin.cc:98
 honlinemonclientsimplewin.cc:99
 honlinemonclientsimplewin.cc:100
 honlinemonclientsimplewin.cc:101
 honlinemonclientsimplewin.cc:102
 honlinemonclientsimplewin.cc:103
 honlinemonclientsimplewin.cc:104
 honlinemonclientsimplewin.cc:105
 honlinemonclientsimplewin.cc:106