Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

OAPxViewer - source file

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

}
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update 14-May-2005 21:31