#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(); 
	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));
    
    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(); 
	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