ROOT logo
#include "honlinemonclienttabwin.h"

#include "honlinemonclientmain.h"
#include "honlinemonclienttab.h"

ClassImp(HOnlineMonClientTabWin);

/* -------------------------------------------------------------------------- */
HOnlineMonClientTabWin::HOnlineMonClientTabWin() {
    mainFrame = 0;
    tabContainerFrame = 0;
    tabContainer = 0;
    statBar = 0;
    detectorname = "";
}
/* -------------------------------------------------------------------------- */
HOnlineMonClientTabWin::~HOnlineMonClientTabWin() {
    if (mainFrame) {
	mainFrame->Cleanup(); // deletes tabContainerFrame
	delete tabContainer;
	tabContainer = 0;
	tabContainerFrame = 0;
	delete mainFrame;
	mainFrame = 0;
    }

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

    detectorname = detectorName;

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

    tabContainerFrame = new TGCompositeFrame(mainFrame, 500, 300, kVerticalFrame);
    tabContainer = new TGTab(tabContainerFrame);

    for (Int_t i=0;i<listTabs.LastIndex()+1;i++) {
	HOnlineMonClientTab *clienttab = (HOnlineMonClientTab*) listTabs.At(i);
	clienttab->CreateTab(clientmain, this);
    }

    tabContainerFrame->AddFrame(tabContainer, new TGLayoutHints(kLHintsLeft | kLHintsTop,2,2,2,2));
    mainFrame->AddFrame(tabContainerFrame, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));


    // 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 HOnlineMonClientTabWin::DestroyWindow(HOnlineMonClientMain* clientmain) {
    TThread* main = clientmain->getMainThread();
    main->Lock();

    this->SetActive(kFALSE);

    if (mainFrame) {

	for (Int_t i=0;i<listTabs.LastIndex()+1;i++) {
	    HOnlineMonClientTab *clienttab = (HOnlineMonClientTab*) listTabs.At(i);
	    clienttab->DestroyTab(clientmain);
	}

	mainFrame->Cleanup(); // removes all objects added via AddFrame()
	delete tabContainer;
	tabContainer = 0;
	delete mainFrame;
	mainFrame = 0;
    }

    main->UnLock();
}
/* -------------------------------------------------------------------------- */
TString HOnlineMonClientTabWin::GetLastUpdate() {
    return lastUpdate;
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientTabWin::SetLastUpdate() {
    TTimeStamp* timestamp = new TTimeStamp();
    lastUpdate = timestamp->AsString("l");
    delete timestamp;
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientTabWin::SetStatusBarText(TString text) {
    if (statBar) {
	statBar->SetText(text, 0);
    }
}
/* -------------------------------------------------------------------------- */
void HOnlineMonClientTabWin::SetActive(Bool_t state) {
    for (Int_t i=0;i<listTabs.LastIndex()+1;i++) {
	HOnlineMonClientTab *clienttab = (HOnlineMonClientTab*) listTabs.At(i);
	clienttab->SetActive(state);
    }

    this->active = state;
}
/* -------------------------------------------------------------------------- */
Bool_t HOnlineMonClientTabWin::IsActive() {
    return this->active;
}
/* -------------------------------------------------------------------------- */

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