Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TGGC.h
Go to the documentation of this file.
1// @(#)root/gui:$Id$
2// Author: Fons Rademakers 20/9/2000
3
4/*************************************************************************
5 * Copyright (C) 1995-2021, 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_TGGC
13#define ROOT_TGGC
14
15
16#include "TGObject.h"
17#include "TRefCnt.h"
18
19class THashTable;
20
21
22class TGGC : public TObject, public TRefCnt {
23
24friend class TGGCPool;
25
26protected:
27 GCValues_t fValues = {}; ///< graphics context values + mask
28 GContext_t fContext; ///< graphics context handle
29
30 TGGC(GCValues_t *values, Bool_t calledByGCPool);
32
33 TString GetMaskString() const; //used in SavePrimitive()
34
35public:
36 TGGC(GCValues_t *values = nullptr);
37 TGGC(const TGGC &g);
38 virtual ~TGGC();
39 TGGC &operator=(const TGGC &rhs);
40
41 GContext_t GetGC() const { return fContext; }
42 GContext_t operator()() const;
43
44 void SetAttributes(GCValues_t *values);
49 void SetLineWidth(Int_t v);
50 void SetLineStyle(Int_t v);
51 void SetCapStyle(Int_t v);
52 void SetJoinStyle(Int_t v);
53 void SetFillStyle(Int_t v);
54 void SetFillRule(Int_t v);
55 void SetTile(Pixmap_t v);
56 void SetStipple(Pixmap_t v);
59 void SetFont(FontH_t v);
65 void SetDashOffset(Int_t v);
66 void SetDashList(const char v[], Int_t len);
67 void SetArcMode(Int_t v);
68
69 const GCValues_t *GetAttributes() const { return &fValues; }
70 Mask_t GetMask() const { return fValues.fMask; }
77 Pixmap_t GetTile() const { return fValues.fTile; }
78 Pixmap_t GetStipple() const { return fValues.fStipple; }
82 FontH_t GetFont() const { return fValues.fFont; }
87 Int_t GetCapStyle() const { return fValues.fCapStyle; }
90 Int_t GetFillRule() const { return fValues.fFillRule; }
92 Int_t GetDashLen() const { return fValues.fDashLen; }
93 const char *GetDashes() const { return fValues.fDashes; }
94 Int_t GetArcMode() const { return fValues.fArcMode; }
95
96 void Print(Option_t *option="") const;
97 void SavePrimitive(std::ostream &out, Option_t *option = "");
98
99 ClassDef(TGGC,0) // Graphics context
100};
101
102
103class TGGCPool : public TGObject {
104
105friend class TGGC;
106
107private:
108 THashTable *fList; // hash table of graphics contexts in pool
109
110 void ForceFreeGC(const TGGC *gc);
111 Int_t MatchGC(const TGGC *gc, GCValues_t *values);
112 void UpdateGC(TGGC *gc, GCValues_t *values);
113
114protected:
115 TGGCPool(const TGGCPool& gp) : TGObject(gp), fList(gp.fList) { }
117 {if(this!=&gp) {TGObject::operator=(gp); fList=gp.fList;}
118 return *this;}
119
120public:
121 TGGCPool(TGClient *client);
122 virtual ~TGGCPool();
123
124 TGGC *GetGC(GCValues_t *values, Bool_t rw = kFALSE);
125 TGGC *GetGC(GContext_t gct);
126 void FreeGC(const TGGC *gc);
127 void FreeGC(GContext_t gc);
128
129 TGGC *FindGC(const TGGC *gc);
131
132 void Print(Option_t *option="") const;
133
134 ClassDef(TGGCPool,0) // Graphics context pool
135};
136
137#endif
Handle_t FontH_t
Font handle (as opposed to Font_t which is an index)
Definition GuiTypes.h:35
EGraphicsFunction
Definition GuiTypes.h:67
Handle_t Pixmap_t
Pixmap handle.
Definition GuiTypes.h:30
Handle_t GContext_t
Graphics context handle.
Definition GuiTypes.h:38
ULong_t Pixel_t
Pixel value.
Definition GuiTypes.h:40
#define g(i)
Definition RSha256.hxx:105
int Int_t
Definition RtypesCore.h:45
const Bool_t kFALSE
Definition RtypesCore.h:101
unsigned long ULong_t
Definition RtypesCore.h:55
bool Bool_t
Definition RtypesCore.h:63
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:325
Window client.
Definition TGClient.h:37
THashTable * fList
Definition TGGC.h:108
virtual ~TGGCPool()
Delete graphics context pool.
Definition TGGC.cxx:895
Int_t MatchGC(const TGGC *gc, GCValues_t *values)
Try to find matching graphics context.
Definition TGGC.cxx:1039
TGGC * GetGC(GCValues_t *values, Bool_t rw=kFALSE)
Get the best matching graphics context depending on values.
Definition TGGC.cxx:987
void FreeGC(const TGGC *gc)
Delete graphics context if it is not used anymore.
Definition TGGC.cxx:918
TGGCPool & operator=(const TGGCPool &gp)
Definition TGGC.h:116
TGGC * FindGC(const TGGC *gc)
Find graphics context. Returns 0 in case gc is not found.
Definition TGGC.cxx:951
void Print(Option_t *option="") const
List all graphics contexts in the pool.
Definition TGGC.cxx:1161
void ForceFreeGC(const TGGC *gc)
Force remove graphics context from list. Is only called via ~TGGC().
Definition TGGC.cxx:903
TGGCPool(const TGGCPool &gp)
Definition TGGC.h:115
void UpdateGC(TGGC *gc, GCValues_t *values)
Update graphics context with the values spcified in values->fMask.
Definition TGGC.cxx:1153
Encapsulate a graphics context used in the low level graphics.
Definition TGGC.h:22
Pixmap_t GetTile() const
Definition TGGC.h:77
void SetArcMode(Int_t v)
Set arc mode (kArcChord, kArcPieSlice).
Definition TGGC.cxx:503
Int_t GetTileStipYOrigin() const
Definition TGGC.h:80
GContext_t GetGC() const
Definition TGGC.h:41
Int_t GetJoinStyle() const
Definition TGGC.h:88
Bool_t GetGraphicsExposures() const
Definition TGGC.h:83
Int_t GetSubwindowMode() const
Definition TGGC.h:81
Int_t GetFillStyle() const
Definition TGGC.h:89
void SavePrimitive(std::ostream &out, Option_t *option="")
Save graphics context info as a C++ statement(s) on output stream out.
Definition TGGC.cxx:627
void SetLineWidth(Int_t v)
Set line width.
Definition TGGC.cxx:300
ULong_t GetPlaneMask() const
Definition TGGC.h:72
Int_t GetDashLen() const
Definition TGGC.h:92
void SetFont(FontH_t v)
Set font.
Definition TGGC.cxx:411
void SetPlaneMask(ULong_t v)
Set plane mask.
Definition TGGC.cxx:267
TGGC & operator=(const TGGC &rhs)
Graphics context assignment operator.
Definition TGGC.cxx:115
GContext_t fContext
graphics context handle
Definition TGGC.h:28
void SetTileStipYOrigin(Int_t v)
Y offset for tile or stipple operations.
Definition TGGC.cxx:400
Pixmap_t GetClipMask() const
Definition TGGC.h:86
Int_t GetClipXOrigin() const
Definition TGGC.h:84
FontH_t GetFont() const
Definition TGGC.h:82
void SetFillStyle(Int_t v)
Set fill style (kFillSolid, kFillTiled, kFillStippled, kFillOpaeueStippled).
Definition TGGC.cxx:345
Pixel_t GetForeground() const
Definition TGGC.h:73
Int_t GetFillRule() const
Definition TGGC.h:90
GCValues_t fValues
graphics context values + mask
Definition TGGC.h:27
void SetCapStyle(Int_t v)
Set cap style (kCapNotLast, kCapButt, kCapRound, kCapProjecting).
Definition TGGC.cxx:322
void Print(Option_t *option="") const
Print graphics contexts info.
Definition TGGC.cxx:514
const char * GetDashes() const
Definition TGGC.h:93
Int_t GetTileStipXOrigin() const
Definition TGGC.h:79
void SetForeground(Pixel_t v)
Set foreground color.
Definition TGGC.cxx:278
Int_t GetLineStyle() const
Definition TGGC.h:76
void SetClipMask(Pixmap_t v)
Bitmap for clipping.
Definition TGGC.cxx:466
void SetFillRule(Int_t v)
Set fill rule (kEvenOddRule, kWindingRule).
Definition TGGC.cxx:356
GContext_t operator()() const
Not inline due to a bug in g++ 2.96 20000731 (Red Hat Linux 7.0).
Definition TGGC.cxx:138
void SetDashOffset(Int_t v)
Patterned/dashed line offset.
Definition TGGC.cxx:477
void SetTileStipXOrigin(Int_t v)
X offset for tile or stipple operations.
Definition TGGC.cxx:389
void SetAttributes(GCValues_t *values)
Set attributes as specified in the values structure.
Definition TGGC.cxx:235
void SetDashList(const char v[], Int_t len)
Set dash pattern. First use SetDashOffset() if not 0.
Definition TGGC.cxx:488
EGraphicsFunction GetFunction() const
Definition TGGC.h:71
void SetJoinStyle(Int_t v)
Set line join style (kJoinMiter, kJoinRound, kJoinBevel).
Definition TGGC.cxx:333
void SetClipXOrigin(Int_t v)
X origin for clipping.
Definition TGGC.cxx:444
Int_t GetClipYOrigin() const
Definition TGGC.h:85
Pixel_t GetBackground() const
Definition TGGC.h:74
void SetTile(Pixmap_t v)
Set tile pixmap for tiling operations.
Definition TGGC.cxx:367
void SetClipYOrigin(Int_t v)
Y origin for clipping.
Definition TGGC.cxx:455
void UpdateValues(GCValues_t *v)
Update values + mask.
Definition TGGC.cxx:146
void SetBackground(Pixel_t v)
Set background color.
Definition TGGC.cxx:289
void SetFunction(EGraphicsFunction v)
Set graphics context drawing function.
Definition TGGC.cxx:256
void SetStipple(Pixmap_t v)
Set 1 plane pixmap for stippling.
Definition TGGC.cxx:378
Mask_t GetMask() const
Definition TGGC.h:70
Pixmap_t GetStipple() const
Definition TGGC.h:78
Int_t GetLineWidth() const
Definition TGGC.h:75
void SetGraphicsExposures(Bool_t v)
True if graphics exposure should be generated.
Definition TGGC.cxx:433
void SetLineStyle(Int_t v)
Set line style (kLineSolid, kLineOnOffDash, kLineDoubleDash).
Definition TGGC.cxx:311
Int_t GetDashOffset() const
Definition TGGC.h:91
Int_t GetCapStyle() const
Definition TGGC.h:87
virtual ~TGGC()
Delete graphics context.
Definition TGGC.cxx:103
const GCValues_t * GetAttributes() const
Definition TGGC.h:69
Int_t GetArcMode() const
Definition TGGC.h:94
TString GetMaskString() const
Returns GC mask as a string - used in SavePrimitive().
Definition TGGC.cxx:523
void SetSubwindowMode(Int_t v)
Set sub window mode (kClipByChildren, kIncludeInferiors).
Definition TGGC.cxx:422
This class is the baseclass for all ROOT GUI widgets.
Definition TGObject.h:22
TGObject & operator=(const TGObject &tgo)
Definition TGObject.h:29
THashTable implements a hash table to store TObject's.
Definition THashTable.h:35
Mother of all ROOT objects.
Definition TObject.h:41
Definitions for TRefCnt, base class for reference counted objects.
Definition TRefCnt.h:27
Basic string class.
Definition TString.h:136
Graphics context structure.
Definition GuiTypes.h:224
ULong_t fBackground
background pixel
Definition GuiTypes.h:228
Int_t fFillRule
kEvenOddRule, kWindingRule
Definition GuiTypes.h:236
Pixmap_t fClipMask
bitmap clipping; other calls for rects
Definition GuiTypes.h:247
Int_t fDashOffset
patterned/dashed line information
Definition GuiTypes.h:248
Int_t fClipYOrigin
Definition GuiTypes.h:246
Int_t fClipXOrigin
origin for clipping
Definition GuiTypes.h:245
Int_t fLineWidth
line width
Definition GuiTypes.h:229
Pixmap_t fStipple
stipple 1 plane pixmap for stippling
Definition GuiTypes.h:239
Mask_t fMask
bit mask specifying which fields are valid
Definition GuiTypes.h:251
Int_t fLineStyle
kLineSolid, kLineOnOffDash, kLineDoubleDash
Definition GuiTypes.h:230
Pixmap_t fTile
tile pixmap for tiling operations
Definition GuiTypes.h:238
Bool_t fGraphicsExposures
boolean, should exposures be generated
Definition GuiTypes.h:244
Int_t fJoinStyle
kJoinMiter, kJoinRound, kJoinBevel
Definition GuiTypes.h:233
Char_t fDashes[8]
dash pattern list (dash length per byte)
Definition GuiTypes.h:249
ULong_t fForeground
foreground pixel
Definition GuiTypes.h:227
ULong_t fPlaneMask
plane mask
Definition GuiTypes.h:226
Int_t fFillStyle
kFillSolid, kFillTiled, kFillStippled, kFillOpaeueStippled
Definition GuiTypes.h:234
FontH_t fFont
default text font for text operations
Definition GuiTypes.h:242
Int_t fTsXOrigin
offset for tile or stipple operations
Definition GuiTypes.h:240
EGraphicsFunction fFunction
logical operation
Definition GuiTypes.h:225
Int_t fDashLen
number of dashes in fDashes
Definition GuiTypes.h:250
Int_t fCapStyle
kCapNotLast, kCapButt, kCapRound, kCapProjecting
Definition GuiTypes.h:231
Int_t fArcMode
kArcChord, kArcPieSlice
Definition GuiTypes.h:237
Int_t fTsYOrigin
Definition GuiTypes.h:241
Int_t fSubwindowMode
kClipByChildren, kIncludeInferiors
Definition GuiTypes.h:243