00001
00017 #ifndef GFXDIGIT_H
00018 #define GFXDIGIT_H
00019
00020
00021 #include <Midad/MultiPage/GfxDigitListCfg.h>
00022
00023 #include <TObject.h>
00024
00025 class CandDigitHandle;
00026 class PlexSEIdAltLItem;
00027 class GfxDigitList;
00028
00029 class GfxDigit : public TObject
00030 {
00031
00032 public:
00033
00034 GfxDigit(const CandDigitHandle& csh, GfxDigitList& parent);
00035 GfxDigit(const CandDigitHandle& csh, const PlexSEIdAltLItem& itm,
00036 GfxDigitList& parent);
00037 GfxDigit(const GfxDigit& rhs);
00038 GfxDigit& operator=(const GfxDigit& rhs);
00039 ~GfxDigit();
00040 void Clear(const Option_t* ="");
00041
00042
00043 void Configure();
00044
00045 void ExecuteEvent(int event, int px, int py);
00046 void Paint(Option_t* option="");
00047 int DistancetoPrimitive(int px, int py);
00048
00049 const CandDigitHandle& GetDigit() { return *fDigit; }
00050 const PlexSEIdAltLItem& GetItem() { return *fItem; }
00051
00052 void ConfigGui();
00053
00054 private:
00055
00056
00057 bool GetRealCoords(double& x1, double& y1, double& x2, double& y2);
00058 bool GetDiscreteCoords(double& x1, double& y1, double& x2, double& y2);
00059 float GetRelativeValue(GfxDigitListCfg::MeasureScale_t ms);
00060 void ModifyCoords(double& cx, double& cy, double& dx, double& dy);
00061 bool SetColor();
00062 void RelToAbs(double& dx, double& dy);
00063
00064 const CandDigitHandle *fDigit;
00065 const PlexSEIdAltLItem *fItem;
00066
00067 GfxDigitList *fParent;
00068 TObject* fImp;
00069
00070 double fCx, fCy, fDx, fDy;
00071
00072 ClassDef(GfxDigit,0)
00073 };
00074
00075 #endif // GFXDIGIT_H