Text Attributes class.
This class is used (in general by secondary inheritance) by many other classes (graphics, histograms). It holds all the text attributes.
Text attributes are:
The text alignment is an integer number (align
) allowing to control the horizontal and vertical position of the text string with respect to the text position. The text alignment of any class inheriting from TAttText
can be changed using the method SetTextAlign
and retrieved using the method GetTextAlign
.
For horizontal alignment the following convention applies:
For vertical alignment the following convention applies:
For example:
Mnemonic constants are available:
They allow to write:
Text angle in degrees. The text angle of any class inheriting from TAttText
can be changed using the method SetTextAngle
and retrieved using the method GetTextAngle
. The following picture shows the text angle:
The text color is a color index (integer) pointing in the ROOT color table. The text color of any class inheriting from TAttText
can be changed using the method SetTextColor
and retrieved using the method GetTextColor
. The following table shows the first 50 default colors.
SetTextColorAlpha()
, allows to set a transparent color. In the following example the text color of the text text
is set to blue with a transparency of 35%. The color kBlue
itself remains fully opaque.
The transparency is available on all platforms when the flag OpenGL.CanvasPreferGL
is set to 1
in $ROOTSYS/etc/system.rootrc
, or on Mac with the Cocoa backend. On the file output it is visible with PDF, PNG, Gif, JPEG, SVG, TeX ... but not PostScript.
If the text precision (see next paragraph) is smaller than 3, the text size (textsize
) is a fraction of the current pad size. Therefore the same textsize
value can generate text outputs with different absolute sizes in two different pads. The text size in pixels (charheight
) is computed the following way:
If the text precision is equal to 3, the text size doesn't depend on the pad's dimensions. A given textsize
value always generates the same absolute size. The text size (charheight
) is given in pixels:
Note that to scale fonts to the same size as the old True Type package a scale factor of 0.93376068
is apply to the text size before drawing.
The text size of any class inheriting from TAttText
can be changed using the method SetTextSize
and retrieved using the method GetTextSize
.
The text font code is combination of the font number and the precision.
Font numbers must be between 1 and 14.
The precision can be:
precision = 0
fast hardware fonts (steps in the size)precision = 1
scalable and rotatable hardware fonts (see below)precision = 2
scalable and rotatable hardware fontsprecision = 3
scalable and rotatable hardware fonts. Text size is given in pixels.The text font and precision of any class inheriting from TAttText
can be changed using the method SetTextFont
and retrieved using the method GetTextFont
.
When precision 0 is used, only the original non-scaled system fonts are used. The fonts have a minimum (4) and maximum (37) size in pixels. These fonts are fast and are of good quality. Their size varies with large steps and they cannot be rotated. Precision 1 and 2 fonts have a different behaviour depending if the True Type Fonts (TTF) are used or not. If TTF are used, you always get very good quality scalable and rotatable fonts. However TTF are slow.
One can activate the TTF by adding (or activating) the following line in the .rootrc
file:
It is possible to check the TTF are in use in a Root session with the command:
If the TTF are in use the following line will appear at the beginning of the printout given by this command:
The following picture shows how each font looks. The number on the left is the "text font code". In this picture precision 2 was selected.
Definition at line 18 of file TAttText.h.
Public Member Functions | |
TAttText () | |
AttText default constructor. | |
TAttText (Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize) | |
AttText normal constructor. | |
virtual | ~TAttText () |
AttText destructor. | |
void | Copy (TAttText &atttext) const |
Copy this text attributes to a new TAttText. | |
virtual Short_t | GetTextAlign () const |
Return the text alignment. | |
virtual Float_t | GetTextAngle () const |
Return the text angle. | |
virtual Color_t | GetTextColor () const |
Return the text color. | |
virtual Font_t | GetTextFont () const |
Return the text font. | |
virtual Float_t | GetTextSize () const |
Return the text size. | |
virtual Float_t | GetTextSizePercent (Float_t size) |
Return the text in percent of the pad size. | |
virtual TClass * | IsA () const |
virtual void | Modify () |
Change current text attributes if necessary. | |
virtual void | ResetAttText (Option_t *toption="") |
Reset this text attributes to default values. | |
virtual void | SaveTextAttributes (std::ostream &out, const char *name, Int_t alidef=12, Float_t angdef=0, Int_t coldef=1, Int_t fondef=61, Float_t sizdef=1) |
Save text attributes as C++ statement(s) on output stream out. | |
virtual void | SetTextAlign (Short_t align=11) |
Set the text alignment. | |
virtual void | SetTextAngle (Float_t tangle=0) |
Set the text angle. | |
virtual void | SetTextAttributes () |
Invoke the DialogCanvas Text attributes. | |
virtual void | SetTextColor (Color_t tcolor=1) |
Set the text color. | |
virtual void | SetTextColorAlpha (Color_t tcolor, Float_t talpha) |
Set a transparent marker color. | |
virtual void | SetTextFont (Font_t tfont=62) |
Set the text font. | |
virtual void | SetTextSize (Float_t tsize=1) |
Set the text size. | |
virtual void | SetTextSizePixels (Int_t npixels) |
Set the text size in pixel. | |
virtual void | Streamer (TBuffer &) |
void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Static Public Member Functions | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
Protected Attributes | |
Short_t | fTextAlign |
Text alignment. | |
Float_t | fTextAngle |
Text angle. | |
Color_t | fTextColor |
Text color. | |
Font_t | fTextFont |
Text font. | |
Float_t | fTextSize |
Text size. | |
#include <TAttText.h>
TAttText::TAttText | ( | ) |
AttText default constructor.
Default text attributes are taken from the current style.
Definition at line 262 of file TAttText.cxx.
AttText normal constructor.
Text attributes are taken from the argument list.
Definition at line 280 of file TAttText.cxx.
|
virtual |
AttText destructor.
Definition at line 292 of file TAttText.cxx.
|
static |
|
inlinestaticconstexpr |
Definition at line 50 of file TAttText.h.
void TAttText::Copy | ( | TAttText & | atttext | ) | const |
Copy this text attributes to a new TAttText.
Definition at line 299 of file TAttText.cxx.
|
inlinestatic |
Definition at line 50 of file TAttText.h.
|
inlinevirtual |
Return the text alignment.
Reimplemented in TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 32 of file TAttText.h.
|
inlinevirtual |
Return the text angle.
Reimplemented in TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 33 of file TAttText.h.
|
inlinevirtual |
Return the text color.
Reimplemented in TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 34 of file TAttText.h.
|
inlinevirtual |
Return the text font.
Reimplemented in TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 35 of file TAttText.h.
|
inlinevirtual |
Return the text size.
Reimplemented in TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 36 of file TAttText.h.
Return the text in percent of the pad size.
If the font precision is greater than 2, the text size returned is the size in pixel converted into percent of the pad size, otherwise the size returned is the same as the size given as input parameter.
Definition at line 315 of file TAttText.cxx.
|
inlinevirtual |
Reimplemented in TStyle, TVirtualPS, TVirtualX, TGCocoa, TGQuartz, TAnnotation, TButton, TDialogCanvas, TGroupButton, TInspectCanvas, TPaveClass, TDiamond, TGaxis, TGraphPolargram, TLatex, TLegend, TLegendEntry, TLink, TMathText, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPie, TText, TGraphNode, TImageDump, TPDF, TPostScript, TSVG, TTeXDump, TGWin32, TGX11, TGX11TTF, TGLAxis, TGLText, TWebPadPainter, TWebPS, and TAxisModLab.
Definition at line 50 of file TAttText.h.
|
virtual |
Change current text attributes if necessary.
Definition at line 334 of file TAttText.cxx.
|
virtual |
Reset this text attributes to default values.
Reimplemented in TGWin32VirtualXProxy.
Definition at line 366 of file TAttText.cxx.
|
virtual |
Save text attributes as C++ statement(s) on output stream out.
Definition at line 378 of file TAttText.cxx.
|
inlinevirtual |
Set the text alignment.
Reimplemented in TWebPadPainter, TVirtualX, TGQuartz, TGWin32, TGWin32VirtualXProxy, and TGX11.
Definition at line 42 of file TAttText.h.
|
inlinevirtual |
Set the text angle.
Reimplemented in TWebPadPainter, TGWin32VirtualXProxy, and TGraphNode.
Definition at line 43 of file TAttText.h.
|
virtual |
Invoke the DialogCanvas Text attributes.
Reimplemented in TGWin32VirtualXProxy.
Definition at line 405 of file TAttText.cxx.
|
inlinevirtual |
Set the text color.
Reimplemented in TVirtualX, TGQuartz, TGWin32, TGX11, TPDF, TPostScript, TSVG, TTeXDump, TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 44 of file TAttText.h.
Set a transparent marker color.
talpha defines the percentage of the color opacity from 0. (fully transparent) to 1. (fully opaque).
Definition at line 415 of file TAttText.cxx.
|
inlinevirtual |
Set the text font.
Reimplemented in TVirtualX, TGQuartz, TGWin32, TGX11, TGX11TTF, TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 46 of file TAttText.h.
|
inlinevirtual |
Set the text size.
Reimplemented in TVirtualX, TGQuartz, TGWin32, TGX11, TGX11TTF, TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 47 of file TAttText.h.
|
virtual |
Set the text size in pixel.
Set the text size in pixels.
If the font precision is greater than 2, the text size is set to npixels, otherwise the text size is computed as a percent of the pad size.
Reimplemented in TGWin32VirtualXProxy, and TWebPadPainter.
Definition at line 426 of file TAttText.cxx.
|
virtual |
Reimplemented in TStyle, TVirtualPS, TVirtualX, TGCocoa, TGQuartz, TAnnotation, TButton, TDialogCanvas, TGroupButton, TInspectCanvas, TPaveClass, TDiamond, TGaxis, TGraphPolargram, TLatex, TLegend, TLegendEntry, TLink, TMathText, TPaveLabel, TPaveStats, TPavesText, TPaveText, TPie, TText, TGraphNode, TImageDump, TPDF, TPostScript, TSVG, TTeXDump, TGWin32, TGX11, TGX11TTF, TGLAxis, TGLText, TWebPadPainter, TWebPS, and TAxisModLab.
|
inline |
Definition at line 50 of file TAttText.h.
|
protected |
Text alignment.
Definition at line 23 of file TAttText.h.
|
protected |
Text angle.
Definition at line 21 of file TAttText.h.
|
protected |
Text color.
Definition at line 24 of file TAttText.h.
|
protected |
Text font.
Definition at line 25 of file TAttText.h.
|
protected |
Text size.
Definition at line 22 of file TAttText.h.