00001 #include "GuiAxis.h"
00002 #include "TCanvas.h"
00003 #include "TGaxis.h"
00004
00005 #include <iostream>
00006 #include <sigc++/object_slot.h>
00007
00008 GuiAxis::GuiAxis(TGWindow& parent, unsigned int )
00009 : GuiCanvas(parent), fRange(0)
00010 {
00011 this->UseRange(manage(new RangeDouble));
00012
00013 if (kHorizontalFrame)
00014 fAxis = new TGaxis(0.0,0.2, 1.0,0.2, 0,1,510,"-");
00015 else
00016 fAxis = new TGaxis(0.8,0.0, 0.8,1.0, 0,1,510,"");
00017 fAxis->SetLabelSize(0.3);
00018 fAxis->SetWmin(0.0);
00019 fAxis->SetWmax(1.0);
00020
00021 this->GetCanvas()->cd();
00022 fAxis->Draw();
00023
00024 this->GetCanvas()->SetEditable(kFALSE);
00025
00026 }
00027
00028 GuiAxis::~GuiAxis()
00029 {
00030 delete fAxis; fAxis = 0;
00031 }
00032
00033 void GuiAxis::UseRange(RangeDouble* rptr)
00034 {
00035 if (fRange == rptr) return;
00036 if (fRange && rptr) fCon.disconnect();
00037 fRange = rptr;
00038 fCon = fRange->modified.connect(SigC::slot(*this,&GuiAxis::ApplyRange));
00039 }
00040 void GuiAxis::ApplyRange(void)
00041 {
00042 fAxis->SetWmin(fRange->Min());
00043 fAxis->SetWmax(fRange->Max());
00044 this->GetCanvas()->Modified();
00045 this->GetCanvas()->Update();
00046 }