TVirtualPad.h

Go to the documentation of this file.
00001 // @(#)root/base:$Id: TVirtualPad.h 29712 2009-08-07 08:00:45Z brun $
00002 // Author: Rene Brun   05/12/95
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 #ifndef ROOT_TVirtualPad
00013 #define ROOT_TVirtualPad
00014 
00015 
00016 //////////////////////////////////////////////////////////////////////////
00017 //                                                                      //
00018 // TVirtualPad                                                          //
00019 //                                                                      //
00020 // Abstract base class for Pads and Canvases                            //
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 // forward declarations
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;         //!true when resizing the pad
00062 
00063    virtual void  *GetSender() { return this; }  //used to set gTQSender
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 * /*viewer3d*/) {}
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)  //Abstract base class for Pads and Canvases
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

Generated on Tue Jul 5 14:10:34 2011 for ROOT_528-00b_version by  doxygen 1.5.1