00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include "EventDisplayBase/Canvas.h"
00014 #include "EventDisplayBase/IoModule.h"
00015
00016 #include "TCanvas.h"
00017 #include "TGFrame.h"
00018 #include "TGLayout.h"
00019 #include "TRootEmbeddedCanvas.h"
00020
00021 #include <iostream>
00022 #include <string>
00023
00024 using namespace evdb;
00025
00026
00027
00031 Canvas::Canvas(TGMainFrame* mf)
00032 {
00033 TGDimension sz;
00034
00035 sz = mf->GetSize();
00036 fXsize = sz.fWidth - 10;
00037 fYsize = sz.fHeight - 58;
00038 fAspectRatio = (float)fYsize/(float)fXsize;
00039
00040
00041
00042 fFrame = new TGCompositeFrame(mf, 60, 60, kHorizontalFrame);
00043
00044
00045 fLayout = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX |
00046 kLHintsExpandY, 5, 5, 5, 5);
00047
00048
00049
00050 std::string name(this->PrintTag());
00051 name += "evdb::Canvas";
00052
00053
00054 fEmbCanvas = new TRootEmbeddedCanvas(name.c_str(), mf, fXsize, fYsize,
00055 kSunkenFrame, 0);
00056 mf->AddFrame(fEmbCanvas, fLayout);
00057 mf->AddFrame(fFrame);
00058
00059
00060
00061 fCanvas = fEmbCanvas->GetCanvas();
00062 }
00063
00064
00065
00066 void Canvas::Connect()
00067 {
00068
00069 IoModule::Instance()->Connect("NewEvent()",
00070 "evdb::Canvas",this,"Draw()");
00071 Printable::AddToListOfPrintables(this->Description(),this);
00072 }
00073
00074
00075
00076 Canvas::~Canvas()
00077 {
00078 IoModule::Instance()->Disconnect(0,this,0);
00079 delete fEmbCanvas;
00080 delete fLayout;
00081 delete fFrame;
00082 }
00083
00084
00085
00086 void Canvas::Print(const char* f) { fCanvas->Print(f); }
00087
00089