Logo ROOT  
Reference Guide
TPadPainter.h
Go to the documentation of this file.
1// @(#)root/gpad:$Id$
2// Author: Olivier Couet, Timur Pocheptsov 06/05/2009
3
4/*************************************************************************
5 * Copyright (C) 1995-2009, Rene Brun and Fons Rademakers. *
6 * All rights reserved. *
7 * *
8 * For the licensing terms see $ROOTSYS/LICENSE. *
9 * For the list of contributors see $ROOTSYS/README/CREDITS. *
10 *************************************************************************/
11
12#ifndef ROOT_TPadPainter
13#define ROOT_TPadPainter
14
15#include "TVirtualPadPainter.h"
16
17/*
18TVirtualPadPainter is an attempt to abstract
19painting operation furthermore. gVirtualX can
20be X11 or GDI, but pad painter can be gVirtualX (X11 or GDI),
21or gl pad painter.
22*/
23
24class TVirtualPad;
25
27public:
29 //Final overriders for TVirtualPadPainter pure virtual functions.
30 //1. Part, which simply delegates to TVirtualX.
31 //Line attributes.
32 Color_t GetLineColor() const;
33 Style_t GetLineStyle() const;
34 Width_t GetLineWidth() const;
35
36 void SetLineColor(Color_t lcolor);
37 void SetLineStyle(Style_t lstyle);
38 void SetLineWidth(Width_t lwidth);
39 //Fill attributes.
40 Color_t GetFillColor() const;
41 Style_t GetFillStyle() const;
42 Bool_t IsTransparent() const;
43
44 void SetFillColor(Color_t fcolor);
45 void SetFillStyle(Style_t fstyle);
46 void SetOpacity(Int_t percent);
47 //Text attributes.
48 Short_t GetTextAlign() const;
49 Float_t GetTextAngle() const;
50 Color_t GetTextColor() const;
51 Font_t GetTextFont() const;
52 Float_t GetTextSize() const;
54
55 void SetTextAlign(Short_t align);
56 void SetTextAngle(Float_t tangle);
57 void SetTextColor(Color_t tcolor);
58 void SetTextFont(Font_t tfont);
59 void SetTextSize(Float_t tsize);
60 void SetTextSizePixels(Int_t npixels);
61 //2. "Off-screen management" part.
63 void ClearDrawable();
64 void CopyDrawable(Int_t device, Int_t px, Int_t py);
65 void DestroyDrawable(Int_t device);
66 void SelectDrawable(Int_t device);
67
68 //TASImage support (noop for a non-gl pad).
69 void DrawPixels(const unsigned char *pixelData, UInt_t width, UInt_t height,
70 Int_t dstX, Int_t dstY, Bool_t enableAlphaBlending);
71
72
75
77 //TPad needs double and float versions.
78 void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y);
79 void DrawFillArea(Int_t n, const Float_t *x, const Float_t *y);
80
81 //TPad needs both double and float versions of DrawPolyLine.
82 void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y);
83 void DrawPolyLine(Int_t n, const Float_t *x, const Float_t *y);
84 void DrawPolyLineNDC(Int_t n, const Double_t *u, const Double_t *v);
85
86 //TPad needs both versions.
87 void DrawPolyMarker(Int_t n, const Double_t *x, const Double_t *y);
88 void DrawPolyMarker(Int_t n, const Float_t *x, const Float_t *y);
89
90 void DrawText(Double_t x, Double_t y, const char *text, ETextMode mode);
91 void DrawText(Double_t x, Double_t y, const wchar_t *text, ETextMode mode);
92 void DrawTextNDC(Double_t u, Double_t v, const char *text, ETextMode mode);
93 void DrawTextNDC(Double_t u, Double_t v, const wchar_t *text, ETextMode mode);
94
95 //jpg, png, bmp, gif output.
96 void SaveImage(TVirtualPad *pad, const char *fileName, Int_t type) const;
97
98private:
99 //Let's make this clear:
100 TPadPainter(const TPadPainter &rhs) = delete;
101 TPadPainter(TPadPainter && rhs) = delete;
102 TPadPainter & operator = (const TPadPainter &rhs) = delete;
104
105 ClassDef(TPadPainter, 0) //Abstract interface for painting in TPad
106};
107
108#endif
int Int_t
Definition: CPyCppyy.h:43
unsigned int UInt_t
Definition: CPyCppyy.h:44
#define h(i)
Definition: RSha256.hxx:106
static const double x2[5]
static const double x1[5]
short Width_t
Definition: RtypesCore.h:91
bool Bool_t
Definition: RtypesCore.h:63
short Font_t
Definition: RtypesCore.h:88
short Short_t
Definition: RtypesCore.h:39
double Double_t
Definition: RtypesCore.h:59
short Color_t
Definition: RtypesCore.h:92
short Style_t
Definition: RtypesCore.h:89
float Float_t
Definition: RtypesCore.h:57
#define ClassDef(name, id)
Definition: Rtypes.h:325
include TDocParser_001 C image html pict1_TDocParser_001 png width
Definition: TDocParser.cxx:121
int type
Definition: TGX11.cxx:121
Implement TVirtualPadPainter which abstracts painting operations.
Definition: TPadPainter.h:26
void SetFillColor(Color_t fcolor)
Delegate to gVirtualX.
Float_t GetTextAngle() const
Delegate to gVirtualX.
void SetLineColor(Color_t lcolor)
Delegate to gVirtualX.
TPadPainter()
Empty ctor. We need it only because of explicit copy ctor.
Definition: TPadPainter.cxx:72
void DrawPixels(const unsigned char *pixelData, UInt_t width, UInt_t height, Int_t dstX, Int_t dstY, Bool_t enableAlphaBlending)
Noop, for non-gl pad TASImage calls gVirtualX->CopyArea.
Int_t CreateDrawable(UInt_t w, UInt_t h)
Create a gVirtualX Pixmap.
void SetLineStyle(Style_t lstyle)
Delegate to gVirtualX.
void SetTextSize(Float_t tsize)
Delegate to gVirtualX.
Style_t GetFillStyle() const
Delegate to gVirtualX.
void SetTextSizePixels(Int_t npixels)
Delegate to gVirtualX.
void DestroyDrawable(Int_t device)
Close the current gVirtualX pixmap.
void DrawPolyLine(Int_t n, const Double_t *x, const Double_t *y)
Paint Polyline.
Color_t GetTextColor() const
Delegate to gVirtualX.
void DrawTextNDC(Double_t u, Double_t v, const char *text, ETextMode mode)
Paint text in normalized coordinates.
Style_t GetLineStyle() const
Delegate to gVirtualX.
Definition: TPadPainter.cxx:98
void SetLineWidth(Width_t lwidth)
Delegate to gVirtualX.
Float_t GetTextMagnitude() const
Delegate to gVirtualX.
Short_t GetTextAlign() const
Delegate to gVirtualX.
void SetTextFont(Font_t tfont)
Delegate to gVirtualX.
TPadPainter & operator=(const TPadPainter &rhs)=delete
void DrawBox(Double_t x1, Double_t y1, Double_t x2, Double_t y2, EBoxMode mode)
Paint a simple box.
void SetTextAlign(Short_t align)
Delegate to gVirtualX.
TPadPainter(const TPadPainter &rhs)=delete
Color_t GetFillColor() const
Delegate to gVirtualX.
Color_t GetLineColor() const
Delegate to gVirtualX.
Definition: TPadPainter.cxx:89
void SetFillStyle(Style_t fstyle)
Delegate to gVirtualX.
Bool_t IsTransparent() const
Delegate to gVirtualX.
void SetTextAngle(Float_t tangle)
Delegate to gVirtualX.
Width_t GetLineWidth() const
Delegate to gVirtualX.
void DrawLine(Double_t x1, Double_t y1, Double_t x2, Double_t y2)
Paint a simple line.
void ClearDrawable()
Clear the current gVirtualX window.
void SetOpacity(Int_t percent)
Delegate to gVirtualX.
void DrawLineNDC(Double_t u1, Double_t v1, Double_t u2, Double_t v2)
Paint a simple line in normalized coordinates.
void SelectDrawable(Int_t device)
Select the window in which the graphics will go.
void SaveImage(TVirtualPad *pad, const char *fileName, Int_t type) const
Save the image displayed in the canvas pointed by "pad" into a binary file.
Float_t GetTextSize() const
Delegate to gVirtualX.
void CopyDrawable(Int_t device, Int_t px, Int_t py)
Copy a gVirtualX pixmap.
void DrawText(Double_t x, Double_t y, const char *text, ETextMode mode)
Paint text.
void SetTextColor(Color_t tcolor)
Delegate to gVirtualX.
void DrawPolyMarker(Int_t n, const Double_t *x, const Double_t *y)
Paint polymarker.
void DrawPolyLineNDC(Int_t n, const Double_t *u, const Double_t *v)
Paint polyline in normalized coordinates.
void DrawFillArea(Int_t n, const Double_t *x, const Double_t *y)
Paint filled area.
TPadPainter(TPadPainter &&rhs)=delete
Font_t GetTextFont() const
Delegate to gVirtualX.
To make it possible to use GL for 2D graphic in a TPad/TCanvas.
TVirtualPad is an abstract base class for the Pad and Canvas classes.
Definition: TVirtualPad.h:51
TText * text
Double_t y[n]
Definition: legend1.C:17
Double_t x[n]
Definition: legend1.C:17
const Int_t n
Definition: legend1.C:16