// ESAF : Euso Simulation and Analysis Framework
// $Id: OAPxViewer.cc,v 1.1 2004/04/26 21:40:08 thea Exp $
// A.Thea created Apr, 21 2004
#include "OAPxViewer.hh"
#include <TGTextView.h>
#include <TGButton.h>
#include "Riostream.h"
#include "TString.h"
ClassImp(OAPxViewer)
enum OAPxViewerMessageTypes {
M_FILE_OPEN,
M_FILE_SAVE,
M_FILE_SAVEAS,
};
// ctor
OAPxViewer::OAPxViewer( OAPxPlayer* p ) : TGMainFrame(0,200,200,kVerticalFrame), fPlayer(p) {
// fL1;
// fL2;
// fL3;
// fL4;
// fL5;
fL6 = new TGLayoutHints(kLHintsBottom |
kLHintsLeft | kLHintsExpandX,0,0,2,0);
MakeMenuBar();
MakeTextStats();
MakePanel();
MakeStatusBar();
SetWindowName("OAPxViewer");
MapSubwindows();
Resize(GetDefaultSize());
MapWindow();
}
// dtor
OAPxViewer::~OAPxViewer() {
cout << "~OAPxViewer()" << endl;
if (fECanvas) delete fECanvas; fECanvas = 0;
if (fTextStats) delete fTextStats; fTextStats = 0;
if (fStatusBar) delete fStatusBar; fStatusBar = 0;
if (fMenuBar) delete fMenuBar; fMenuBar = 0;
if (fPanelFrame) delete fPanelFrame; fPanelFrame = 0;
if (fMenuFile) delete fMenuFile;
// if (fMenuBarLayout) delete fMenuBarLayout;
// if (fMenuBarItemLayout) delete fMenuBarItemLayout;
if (fButtonGroupFrame) delete fButtonGroupFrame;
}
void OAPxViewer::DoAppend() {
TGText *t = new TGText(fTextStats->GetText());
t->InsLine(0,"a");
fTextStats->SetText(t);
}
void OAPxViewer::MakeStatusBar() {
Int_t parts[] = {40,60};
fStatusBar = new TGStatusBar(this, 50,10, kHorizontalFrame);
fStatusBar->SetParts(parts,2);
AddFrame(fStatusBar,fL6 );
}
void OAPxViewer::MakeTextStats() {
TString text("Pixel Map Tree");
fTextStats = new TGTextView(this, 400,100);
fTextStats->SetText(new TGText(text));
AddFrame(fTextStats,new TGLayoutHints(kLHintsTop | kLHintsCenterX | kLHintsExpandX |
kLHintsExpandY ,2,2,2,2));
}
void OAPxViewer::MakePanel() {
fPanelFrame = new TGCompositeFrame(this, 400,400, kHorizontalFrame);
fECanvas = new TRootEmbeddedCanvas("Ecanvas",fPanelFrame,200,400);
fPanelFrame->AddFrame(fECanvas, new TGLayoutHints( kLHintsRight | kLHintsExpandX
| kLHintsExpandY,10,10,10,1));
AddFrame(fPanelFrame, new TGLayoutHints(kLHintsRight,2,2,2,2));
}
void OAPxViewer::MakeMenuBar() {
fMenuBarLayout = new TGLayoutHints(kLHintsTop| kLHintsLeft |
kLHintsExpandX, 0, 0, 0, 0);
fMenuBarItemLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft, 0, 4, 0, 0);
fMenuBar = new TGMenuBar(this, 1, 1, kHorizontalFrame | kRaisedFrame);
// file menu
fMenuFile = new TGPopupMenu(gClient->GetRoot());
// adding menu entries
fMenuFile->AddEntry("&Open...",M_FILE_OPEN);
fMenuFile->AddEntry("&Save",M_FILE_SAVE);
fMenuFile->AddEntry("S&ave as...",M_FILE_SAVEAS);
fMenuFile->AddEntry("&Close", -1);
fMenuFile->Associate(this);
fMenuBar->AddPopup("&File", fMenuFile, fMenuBarItemLayout);
AddFrame(fMenuBar, fMenuBarLayout);
}
void OAPxViewer::MakeButtons(){
fButtonGroupFrame = new TGGroupFrame(this, "Buttons", kHorizontalFrame);
TGTextButton *exit = new TGTextButton(fButtonGroupFrame,"&Exit");
fButtonGroupFrame ->AddFrame(exit,new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterX,2,2,2,2));
TGTextButton *append = new TGTextButton(fButtonGroupFrame,"&Append");
append->Connect("Clicked()","OAPxViewer",this,"DoAppend()");
fButtonGroupFrame->AddFrame(append, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsCenterX,2,2,2,2));
AddFrame(fButtonGroupFrame,new TGLayoutHints(kLHintsCenterX,2,2,2,2));
}
void OAPxViewer::CloseWindow() {
cout << "CloseWindow()" << endl;
DeleteWindow();
}