12 #ifndef ROOT_TVirtualPadPainter
13 #define ROOT_TVirtualPadPainter
19 class TVirtualPadPainter {
21 enum EBoxMode {kHollow, kFilled};
22 enum ETextMode {kClear, kOpaque};
24 virtual ~TVirtualPadPainter();
27 virtual Color_t GetLineColor()
const = 0;
28 virtual Style_t GetLineStyle()
const = 0;
29 virtual Width_t GetLineWidth()
const = 0;
31 virtual void SetLineColor(Color_t lcolor) = 0;
32 virtual void SetLineStyle(Style_t lstyle) = 0;
33 virtual void SetLineWidth(Width_t lwidth) = 0;
36 virtual Color_t GetFillColor()
const = 0;
37 virtual Style_t GetFillStyle()
const = 0;
38 virtual Bool_t IsTransparent()
const = 0;
40 virtual void SetFillColor(Color_t fcolor) = 0;
41 virtual void SetFillStyle(Style_t fstyle) = 0;
42 virtual void SetOpacity(Int_t percent) = 0;
45 virtual Short_t GetTextAlign()
const = 0;
46 virtual Float_t GetTextAngle()
const = 0;
47 virtual Color_t GetTextColor()
const = 0;
48 virtual Font_t GetTextFont()
const = 0;
49 virtual Float_t GetTextSize()
const = 0;
50 virtual Float_t GetTextMagnitude()
const = 0;
52 virtual void SetTextAlign(Short_t align=11) = 0;
53 virtual void SetTextAngle(Float_t tangle=0) = 0;
54 virtual void SetTextColor(Color_t tcolor=1) = 0;
55 virtual void SetTextFont(Font_t tfont=62) = 0;
56 virtual void SetTextSize(Float_t tsize=1) = 0;
57 virtual void SetTextSizePixels(Int_t npixels) = 0;
61 virtual Int_t CreateDrawable(UInt_t w, UInt_t h) = 0;
62 virtual void ClearDrawable() = 0;
63 virtual void CopyDrawable(Int_t device, Int_t px, Int_t py) = 0;
64 virtual void DestroyDrawable(Int_t device) = 0;
65 virtual void SelectDrawable(Int_t device) = 0;
68 virtual void DrawPixels(
const unsigned char *pixelData, UInt_t width, UInt_t height,
69 Int_t dstX, Int_t dstY, Bool_t enableAlphaBlending) = 0;
72 virtual void InitPainter();
73 virtual void InvalidateCS();
74 virtual void LockPainter();
77 virtual void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2) = 0;
78 virtual void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2) = 0;
80 virtual void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBoxMode mode) = 0;
82 virtual void DrawFillArea(Int_t n,
const Double_t *x,
const Double_t *y) = 0;
83 virtual void DrawFillArea(Int_t n,
const Float_t *x,
const Float_t *y) = 0;
85 virtual void DrawPolyLine(Int_t n,
const Double_t *x,
const Double_t *y) = 0;
86 virtual void DrawPolyLine(Int_t n,
const Float_t *x,
const Float_t *y) = 0;
87 virtual void DrawPolyLineNDC(Int_t n,
const Double_t *u,
const Double_t *v) = 0;
89 virtual void DrawPolyMarker(Int_t n,
const Double_t *x,
const Double_t *y) = 0;
90 virtual void DrawPolyMarker(Int_t n,
const Float_t *x,
const Float_t *y) = 0;
92 virtual void DrawText(Double_t x, Double_t y,
const char *text, ETextMode mode) = 0;
93 virtual void DrawText(Double_t x, Double_t y,
const wchar_t *text, ETextMode mode) = 0;
94 virtual void DrawTextNDC(Double_t u, Double_t v,
const char *text, ETextMode mode) = 0;
95 virtual void DrawTextNDC(Double_t u, Double_t v,
const wchar_t *text, ETextMode mode) = 0;
98 virtual void SaveImage(TVirtualPad *pad,
const char *fileName, Int_t type)
const = 0;
101 static TVirtualPadPainter *PadPainter(Option_t *opt =
"");
103 ClassDef(TVirtualPadPainter, 0)