00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_TVirtualPad
00013 #define ROOT_TVirtualPad
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef ROOT_TAttPad
00026 #include "TAttPad.h"
00027 #endif
00028
00029 #ifndef ROOT_TVirtualX
00030 #include "TVirtualX.h"
00031 #endif
00032
00033 #ifndef ROOT_TString
00034 #include "TString.h"
00035 #endif
00036
00037 #ifndef ROOT_Buttons
00038 #include "Buttons.h"
00039 #endif
00040
00041 #ifndef ROOT_TQObject
00042 #include "TQObject.h"
00043 #endif
00044
00045
00046 class TAxis;
00047 class TObject;
00048 class TObjLink;
00049 class TView;
00050 class TCanvas;
00051 class TCanvasImp;
00052 class TH1F;
00053 class TFrame;
00054 class TBox;
00055 class TVirtualViewer3D;
00056
00057 class TVirtualPad : public TObject, public TAttLine, public TAttFill,
00058 public TAttPad, public TQObject {
00059
00060 protected:
00061 Bool_t fResizing;
00062
00063 virtual void *GetSender() { return this; }
00064
00065 public:
00066 TVirtualPad();
00067 TVirtualPad(const char *name, const char *title, Double_t xlow,
00068 Double_t ylow, Double_t xup, Double_t yup,
00069 Color_t color=19, Short_t bordersize=4, Short_t bordermode=1);
00070 virtual ~TVirtualPad();
00071 virtual void AbsCoordinates(Bool_t set) = 0;
00072 virtual Double_t AbsPixeltoX(Int_t px) = 0;
00073 virtual Double_t AbsPixeltoY(Int_t py) = 0;
00074 virtual void AddExec(const char *name, const char *command) = 0;
00075 virtual TVirtualPad* cd(Int_t subpadnumber=0) = 0;
00076 virtual void Clear(Option_t *option="") = 0;
00077 virtual void Close(Option_t *option="") = 0;
00078 virtual void CopyPixmap() = 0;
00079 virtual void CopyPixmaps() = 0;
00080 virtual void DeleteExec(const char *name) = 0;
00081 virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0) = 0;
00082 virtual void Draw(Option_t *option="") = 0;
00083 virtual void DrawClassObject(const TObject *obj, Option_t *option="") = 0;
00084 virtual TH1F *DrawFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax, const char *title="") = 0;
00085 virtual void ExecuteEventAxis(Int_t event, Int_t px, Int_t py, TAxis *axis) = 0;
00086 virtual Short_t GetBorderMode() const = 0;
00087 virtual Short_t GetBorderSize() const = 0;
00088 virtual Int_t GetCanvasID() const = 0;
00089 virtual TCanvasImp *GetCanvasImp() const = 0;
00090 virtual TCanvas *GetCanvas() const = 0;
00091 virtual TVirtualPad *GetVirtCanvas() const = 0;
00092 virtual Int_t GetEvent() const = 0;
00093 virtual Int_t GetEventX() const = 0;
00094 virtual Int_t GetEventY() const = 0;
00095 virtual TFrame *GetFrame() = 0;
00096 virtual Color_t GetHighLightColor() const = 0;
00097 virtual Int_t GetNumber() const = 0;
00098 virtual void GetRange(Double_t &x1, Double_t &y1, Double_t &x2, Double_t &y2) = 0;
00099 virtual void GetRangeAxis(Double_t &xmin, Double_t &ymin, Double_t &xmax, Double_t &ymax) = 0;
00100 virtual void GetPadPar(Double_t &xlow, Double_t &ylow, Double_t &xup, Double_t &yup) = 0;
00101 virtual Double_t GetXlowNDC() const = 0;
00102 virtual Double_t GetYlowNDC() const = 0;
00103 virtual Double_t GetWNDC() const = 0;
00104 virtual Double_t GetHNDC() const = 0;
00105 virtual UInt_t GetWw() const = 0;
00106 virtual UInt_t GetWh() const = 0;
00107 virtual Double_t GetAbsXlowNDC() const = 0;
00108 virtual Double_t GetAbsYlowNDC() const = 0;
00109 virtual Double_t GetAbsWNDC() const = 0;
00110 virtual Double_t GetAbsHNDC() const = 0;
00111 virtual Double_t GetAspectRatio() const = 0;
00112 virtual Double_t GetPhi() const = 0;
00113 virtual Double_t GetTheta() const = 0;
00114 virtual Double_t GetUxmin() const = 0;
00115 virtual Double_t GetUymin() const = 0;
00116 virtual Double_t GetUxmax() const = 0;
00117 virtual Double_t GetUymax() const = 0;
00118 virtual Bool_t GetGridx() const = 0;
00119 virtual Bool_t GetGridy() const = 0;
00120 virtual Int_t GetTickx() const = 0;
00121 virtual Int_t GetTicky() const = 0;
00122 virtual Double_t GetX1() const = 0;
00123 virtual Double_t GetX2() const = 0;
00124 virtual Double_t GetY1() const = 0;
00125 virtual Double_t GetY2() const = 0;
00126 virtual TList *GetListOfPrimitives() const = 0;
00127 virtual TList *GetListOfExecs() const = 0;
00128 virtual TObject *GetPrimitive(const char *name) const = 0;
00129 virtual TObject *GetSelected() const = 0;
00130 virtual TVirtualPad *GetPad(Int_t subpadnumber) const = 0;
00131 virtual TObject *GetPadPointer() const = 0;
00132 virtual TVirtualPad *GetPadSave() const = 0;
00133 virtual TVirtualPad *GetSelectedPad() const = 0;
00134 virtual TView *GetView() const = 0;
00135 virtual Int_t GetLogx() const = 0;
00136 virtual Int_t GetLogy() const = 0;
00137 virtual Int_t GetLogz() const = 0;
00138 virtual TVirtualPad *GetMother() const = 0;
00139 virtual const char *GetName() const = 0;
00140 virtual const char *GetTitle() const = 0;
00141 virtual Int_t GetPadPaint() const = 0;
00142 virtual Int_t GetPixmapID() const = 0;
00143 virtual TObject *GetView3D() const = 0;
00144 virtual Bool_t HasCrosshair() const = 0;
00145 virtual void HighLight(Color_t col=kRed, Bool_t set=kTRUE) = 0;
00146 virtual Bool_t HasFixedAspectRatio() const = 0;
00147 virtual Bool_t IsBatch() const = 0;
00148 Bool_t IsBeingResized() const { return fResizing; }
00149 virtual Bool_t IsEditable() const = 0;
00150 virtual Bool_t IsModified() const = 0;
00151 virtual Bool_t IsRetained() const = 0;
00152 virtual Bool_t IsVertical() const = 0;
00153 virtual void ls(Option_t *option="") const = 0;
00154 virtual void Modified(Bool_t flag=1) = 0;
00155 virtual Bool_t OpaqueMoving() const = 0;
00156 virtual Bool_t OpaqueResizing() const = 0;
00157 virtual Double_t PadtoX(Double_t x) const = 0;
00158 virtual Double_t PadtoY(Double_t y) const = 0;
00159 virtual void Paint(Option_t *option="") = 0;
00160 virtual void PaintBorderPS(Double_t xl,Double_t yl,Double_t xt,Double_t yt,Int_t bmode,Int_t bsize,Int_t dark,Int_t light) = 0;
00161 virtual void PaintBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, Option_t *option="") = 0;
00162 virtual void PaintFillArea(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0;
00163 virtual void PaintFillArea(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0;
00164 virtual void PaintPadFrame(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) = 0;
00165 virtual void PaintLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0;
00166 virtual void PaintLineNDC(Double_t u1, Double_t v1,Double_t u2, Double_t v2) = 0;
00167 virtual void PaintLine3D(Float_t *p1, Float_t *p2) = 0;
00168 virtual void PaintLine3D(Double_t *p1, Double_t *p2) = 0;
00169 virtual void PaintPolyLine(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0;
00170 virtual void PaintPolyLine(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0;
00171 virtual void PaintPolyLine3D(Int_t n, Double_t *p) = 0;
00172 virtual void PaintPolyLineNDC(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0;
00173 virtual void PaintPolyMarker(Int_t n, Float_t *x, Float_t *y, Option_t *option="") = 0;
00174 virtual void PaintPolyMarker(Int_t n, Double_t *x, Double_t *y, Option_t *option="") = 0;
00175 virtual void PaintModified() = 0;
00176 virtual void PaintText(Double_t x, Double_t y, const char *text) = 0;
00177 virtual void PaintTextNDC(Double_t u, Double_t v, const char *text) = 0;
00178 virtual Double_t PixeltoX(Int_t px) = 0;
00179 virtual Double_t PixeltoY(Int_t py) = 0;
00180 virtual void Pop() = 0;
00181 virtual void Print(const char *filename="") const = 0;
00182 virtual void Print(const char *filename, Option_t *option) = 0;
00183 virtual void Range(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0;
00184 virtual void RangeAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax) = 0;
00185 virtual void RecursiveRemove(TObject *obj) = 0;
00186 virtual void RedrawAxis(Option_t *option="") = 0;
00187 virtual void ResetView3D(TObject *view=0) = 0;
00188 virtual void ResizePad(Option_t *option="") = 0;
00189 virtual void SaveAs(const char *filename="",Option_t *option="") const = 0;
00190 virtual void SetBatch(Bool_t batch=kTRUE) = 0;
00191 virtual void SetBorderMode(Short_t bordermode) = 0;
00192 virtual void SetBorderSize(Short_t bordersize) = 0;
00193 virtual void SetCanvas(TCanvas *c) = 0;
00194 virtual void SetCanvasSize(UInt_t ww, UInt_t wh) = 0;
00195 virtual void SetCrosshair(Int_t crhair=1) = 0;
00196 virtual void SetCursor(ECursor cursor) = 0;
00197 virtual void SetDoubleBuffer(Int_t mode=1) = 0;
00198 virtual void SetEditable(Bool_t mode=kTRUE) = 0;
00199 virtual void SetFixedAspectRatio(Bool_t fixed = kTRUE) = 0;
00200 virtual void SetGrid(Int_t valuex = 1, Int_t valuey = 1) = 0;
00201 virtual void SetGridx(Int_t value = 1) = 0;
00202 virtual void SetGridy(Int_t value = 1) = 0;
00203 virtual void SetLogx(Int_t value = 1) = 0;
00204 virtual void SetLogy(Int_t value = 1) = 0;
00205 virtual void SetLogz(Int_t value = 1) = 0;
00206 virtual void SetPad(const char *name, const char *title,
00207 Double_t xlow, Double_t ylow, Double_t xup,
00208 Double_t yup, Color_t color=35,
00209 Short_t bordersize=5, Short_t bordermode=-1) = 0;
00210 virtual void SetPad(Double_t xlow, Double_t ylow, Double_t xup, Double_t yup) = 0;
00211 virtual void SetAttFillPS(Color_t color, Style_t style) = 0;
00212 virtual void SetAttLinePS(Color_t color, Style_t style, Width_t lwidth) = 0;
00213 virtual void SetAttMarkerPS(Color_t color, Style_t style, Size_t msize) = 0;
00214 virtual void SetAttTextPS(Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) = 0;
00215 virtual void SetName(const char *name) = 0;
00216 virtual void SetSelected(TObject *obj) = 0;
00217 virtual void SetTicks(Int_t valuex = 1, Int_t valuey = 1) = 0;
00218 virtual void SetTickx(Int_t value = 1) = 0;
00219 virtual void SetTicky(Int_t value = 1) = 0;
00220 virtual void SetTitle(const char *title="") = 0;
00221 virtual void SetTheta(Double_t theta=30) = 0;
00222 virtual void SetPhi(Double_t phi=30) = 0;
00223 virtual void SetToolTipText(const char *text, Long_t delayms = 1000) = 0;
00224 virtual void SetVertical(Bool_t vert=kTRUE) = 0;
00225 virtual void SetView(TView *view=0) = 0;
00226 virtual void SetViewer3D(TVirtualViewer3D * ) {}
00227 virtual TObject *WaitPrimitive(const char *pname="", const char *emode="") = 0;
00228 virtual void Update() = 0;
00229 virtual Int_t UtoAbsPixel(Double_t u) const = 0;
00230 virtual Int_t VtoAbsPixel(Double_t v) const = 0;
00231 virtual Int_t UtoPixel(Double_t u) const = 0;
00232 virtual Int_t VtoPixel(Double_t v) const = 0;
00233 virtual Int_t XtoAbsPixel(Double_t x) const = 0;
00234 virtual Int_t YtoAbsPixel(Double_t y) const = 0;
00235 virtual Double_t XtoPad(Double_t x) const = 0;
00236 virtual Double_t YtoPad(Double_t y) const = 0;
00237 virtual Int_t XtoPixel(Double_t x) const = 0;
00238 virtual Int_t YtoPixel(Double_t y) const = 0;
00239
00240 virtual TObject *CreateToolTip(const TBox *b, const char *text, Long_t delayms) = 0;
00241 virtual void DeleteToolTip(TObject *tip) = 0;
00242 virtual void ResetToolTip(TObject *tip) = 0;
00243 virtual void CloseToolTip(TObject *tip) = 0;
00244
00245 virtual TVirtualViewer3D *GetViewer3D(Option_t * type = "") = 0;
00246 virtual Bool_t HasViewer3D() const = 0;
00247 virtual void ReleaseViewer3D(Option_t * type = "") = 0;
00248
00249 virtual Int_t GetGLDevice() = 0;
00250 virtual void SetCopyGLDevice(Bool_t copy) = 0;
00251
00252 static TVirtualPad *&Pad();
00253
00254 ClassDef(TVirtualPad,2)
00255 };
00256
00257 #ifndef __CINT__
00258 #define gPad (TVirtualPad::Pad())
00259
00260 R__EXTERN void **(*gThreadTsd)(void*,Int_t);
00261 #endif
00262 R__EXTERN Int_t (*gThreadXAR)(const char *xact, Int_t nb, void **ar, Int_t *iret);
00263
00264 #endif