45 Warning(
"TGGC",
"dash list can have only up to %ld elements",
76 Error(
"TGGC",
"TGClient not yet initialized, should never happen");
96 gClient->GetGCPool()->fList->Add(
this);
105 gClient->GetGCPool()->ForceFreeGC(
this);
120 gClient->GetGCPool()->fList->Add(
this);
219 Warning(
"UpdateValues",
"dash list can have only up to %ld elements",
239 gClient->GetGCPool()->fList->Add(
this);
491 Warning(
"SetDashList",
"dash list can have only up to %ld elements",
529 if (
mask.Length() == 0)
mask =
"kGCFunction";
530 else mask +=
" | kGCFunction";
533 if (
mask.Length() == 0)
mask =
"kGCPlaneMask";
534 else mask +=
" | kGCPlaneMask";
537 if (
mask.Length() == 0)
mask =
"kGCForeground";
538 else mask +=
" | kGCForeground";
541 if (
mask.Length() == 0)
mask =
"kGCBackground";
542 else mask +=
" | kGCBackground";
545 if (
mask.Length() == 0)
mask =
"kGCLineWidth";
546 else mask +=
" | kGCLineWidth";
549 if (
mask.Length() == 0)
mask =
"kGCLineStyle";
550 else mask +=
" | kGCLineStyle";
553 if (
mask.Length() == 0)
mask =
"kGCCapStyle";
554 else mask +=
" | kGCCapStyle";
557 if (
mask.Length() == 0)
mask =
"kGCJoinStyle";
558 else mask +=
" | kGCJoinStyle";
561 if (
mask.Length() == 0)
mask =
"kGCFillStyle";
562 else mask +=
" | kGCFillStyle";
565 if (
mask.Length() == 0)
mask =
"kGCFillRule";
566 else mask +=
" | kGCFillRule";
569 if (
mask.Length() == 0)
mask =
"kGCTile";
570 else mask +=
" | kGCTile";
573 if (
mask.Length() == 0)
mask =
"kGCStipple";
574 else mask +=
" | kGCStipple";
577 if (
mask.Length() == 0)
mask =
"kGCTileStipXOrigin";
578 else mask +=
" | kGCTileStipXOrigin";
581 if (
mask.Length() == 0)
mask =
"kGCTileStipYOrigin";
582 else mask +=
" | kGCTileStipYOrigin";
585 if (
mask.Length() == 0)
mask =
"kGCFont";
586 else mask +=
" | kGCFont";
589 if (
mask.Length() == 0)
mask =
"kGCSubwindowMode";
590 else mask +=
" | kGCSubwindowMode";
593 if (
mask.Length() == 0)
mask =
"kGCGraphicsExposures";
594 else mask +=
" | kGCGraphicsExposures";
597 if (
mask.Length() == 0)
mask =
"kGCClipXOrigin";
598 else mask +=
" | kGCClipXOrigin";
601 if (
mask.Length() == 0)
mask =
"kGCClipYOrigin";
602 else mask +=
" | kGCClipYOrigin";
605 if (
mask.Length() == 0)
mask =
"kGCClipMask";
606 else mask +=
" | kGCClipMask";
609 if (
mask.Length() == 0)
mask =
"kGCDashOffset";
610 else mask +=
" | kGCDashOffset";
613 if (
mask.Length() == 0)
mask =
"kGCDashList";
614 else mask +=
" | kGCDashList";
617 if (
mask.Length() == 0)
mask =
"kGCArcMode";
618 else mask +=
" | kGCArcMode";
631 out <<
" TGGC *uGC; // will reflect user GC changes\n";
639 out <<
" // graphics context changes\n";
640 out <<
" GCValues_t " <<
valname <<
";\n";
649 out <<
" " <<
valname <<
".fFunction = ";
658 out <<
"kGXandReverse";
664 out <<
"kGXandInverted";
685 out <<
"kGXorReverse";
688 out <<
"kGXcopyInverted";
691 out <<
"kGXorInverted";
708 out <<
" gClient->GetColorByName(\"" <<
colorname <<
"\", " <<
valname <<
".fForeground);\n";
713 out <<
" gClient->GetColorByName(\"" <<
colorname <<
"\", " <<
valname <<
".fBackground);\n";
719 out <<
" " <<
valname <<
".fLineStyle = ";
725 out <<
"kLineOnOffDash";
728 out <<
"kLineDoubleDash";
734 out <<
" " <<
valname <<
".fCapStyle = ";
737 out <<
"kCapNotLast";
746 out <<
"kCapProjecting";
752 out <<
" " <<
valname <<
".fJoinStyle = ";
767 out <<
" " <<
valname <<
".fFillStyle = ";
776 out <<
"kFillStippled";
779 out <<
"kFillOpaqueStippled";
785 out <<
" " <<
valname <<
".fFillRule = ";
788 out <<
"kEvenOddRule";
791 out <<
"kWindingRule";
809 out <<
" " <<
valname <<
".fFont = ufont->GetFontHandle();\n";
812 out <<
" " <<
valname <<
".fSubwindowMode = ";
815 out <<
"kClipByChildren";
818 out <<
"kIncludeInferiors";
824 out <<
" " <<
valname <<
".fGraphicsExposures = ";
845 Warning(
"SavePrimitive",
"dash list can have only up to %ld elements",
847 out <<
" " <<
valname <<
".fDashLen = "
849 out <<
" memcpy(GetDashes()," <<
valname <<
".fDashes,"
853 out <<
" " <<
valname <<
".fArcMode = ";
859 out <<
"kArcPieSlice";
866 out <<
" uGC = gClient->GetGC(&" <<
valname <<
", kTRUE);\n";
897 if (
gc->References() > 1)
898 Error(
"ForceFreeGC",
"removed a shared graphics context\n"
899 "best to use graphics contexts via the TGGCPool()");
912 if (
gc->RemoveReference() == 0) {
927 if (
gc->fContext ==
gct) {
928 if (
gc->RemoveReference() == 0) {
954 if (
gc->fContext ==
gct)
992 while ((
gc = (
TGGC *) next())) {
997 if ((
gc->fValues.fMask & values->
fMask) == values->
fMask) {
1006 Printf(
"<TGGCPool::GetGC>: %smatching GC found\n",
exact ?
"exact " :
"");
1090 match = (values->
fTile ==
gcv->fTile);
1102 match = (values->
fFont ==
gcv->fFont);
1144 gc->SetAttributes(values);
const Mask_t kGCDashOffset
const Mask_t kGCBackground
const Mask_t kGCForeground
const Mask_t kGCLineStyle
const Mask_t kGCSubwindowMode
const Mask_t kGCLineWidth
Handle_t Pixmap_t
Pixmap handle.
const Mask_t kGCClipXOrigin
Handle_t FontH_t
Font handle (as opposed to Font_t which is an index)
const Mask_t kGCFillStyle
const Mask_t kGCJoinStyle
@ kGXorReverse
src OR NOT dst
@ kGXnand
NOT src OR NOT dst.
@ kGXandReverse
src AND NOT dst
@ kGXorInverted
NOT src OR dst.
@ kGXandInverted
NOT src AND dst.
@ kGXequiv
NOT src XOR dst.
@ kGXnor
NOT src AND NOT dst.
@ kGXcopyInverted
NOT src.
Handle_t GContext_t
Graphics context handle.
const Mask_t kGCTileStipXOrigin
const Mask_t kGCPlaneMask
const Mask_t kGCGraphicsExposures
const Mask_t kGCClipYOrigin
const Mask_t kGCTileStipYOrigin
unsigned long ULong_t
Unsigned long integer 4 bytes (unsigned long). Size depends on architecture.
long Long_t
Signed long integer 4 bytes (long). Size depends on architecture.
const char Option_t
Option string (const char)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t mask
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t UChar_t len
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t gval
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void gc
Int_t gDebug
Global variable setting the debug level. Set to 0 to disable, increase it in steps of 1 to increase t...
void Printf(const char *fmt,...)
Formats a string in a circular formatting buffer and prints the string.
virtual void SetOwner(Bool_t enable=kTRUE)
Set whether this collection is the owner (enable==true) of its content.
static const char * PixelAsHexString(ULong_t pixel)
Convert machine dependent pixel value (obtained via RGB2Pixel or via Number2Pixel() or via TColor::Ge...
void Print(Option_t *option="") const override
List all graphics contexts in the pool.
Int_t MatchGC(const TGGC *gc, GCValues_t *values)
Try to find matching graphics context.
~TGGCPool() override
Delete graphics context pool.
TGGC * GetGC(GCValues_t *values, Bool_t rw=kFALSE)
Get the best matching graphics context depending on values.
void FreeGC(const TGGC *gc)
Delete graphics context if it is not used anymore.
TGGC * FindGC(const TGGC *gc)
Find graphics context. Returns 0 in case gc is not found.
void ForceFreeGC(const TGGC *gc)
Force remove graphics context from list. Is only called via ~TGGC().
TGGCPool(const TGGCPool &gp)
void UpdateGC(TGGC *gc, GCValues_t *values)
Update graphics context with the values spcified in values->fMask.
Encapsulate a graphics context used in the low level graphics.
void SetArcMode(Int_t v)
Set arc mode (kArcChord, kArcPieSlice).
Int_t GetTileStipYOrigin() const
TGGC(GCValues_t *values, Bool_t calledByGCPool)
Create a graphics context (only called via TGGCPool::GetGC()).
Int_t GetJoinStyle() const
Bool_t GetGraphicsExposures() const
Int_t GetSubwindowMode() const
Int_t GetFillStyle() const
void SetLineWidth(Int_t v)
Set line width.
ULong_t GetPlaneMask() const
void SetFont(FontH_t v)
Set font.
void SetPlaneMask(ULong_t v)
Set plane mask.
TGGC & operator=(const TGGC &rhs)
Graphics context assignment operator.
GContext_t fContext
graphics context handle
void SetTileStipYOrigin(Int_t v)
Y offset for tile or stipple operations.
Pixmap_t GetClipMask() const
Int_t GetClipXOrigin() const
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save graphics context info as a C++ statement(s) on output stream out.
void SetFillStyle(Int_t v)
Set fill style (kFillSolid, kFillTiled, kFillStippled, kFillOpaeueStippled).
Pixel_t GetForeground() const
Int_t GetFillRule() const
GCValues_t fValues
graphics context values + mask
void SetCapStyle(Int_t v)
Set cap style (kCapNotLast, kCapButt, kCapRound, kCapProjecting).
~TGGC() override
Delete graphics context.
const char * GetDashes() const
Int_t GetTileStipXOrigin() const
void SetForeground(Pixel_t v)
Set foreground color.
Int_t GetLineStyle() const
void SetClipMask(Pixmap_t v)
Bitmap for clipping.
void SetFillRule(Int_t v)
Set fill rule (kEvenOddRule, kWindingRule).
GContext_t operator()() const
Not inline due to a bug in g++ 2.96 20000731 (Red Hat Linux 7.0).
void SetDashOffset(Int_t v)
Patterned/dashed line offset.
void SetTileStipXOrigin(Int_t v)
X offset for tile or stipple operations.
void SetAttributes(GCValues_t *values)
Set attributes as specified in the values structure.
void SetDashList(const char v[], Int_t len)
Set dash pattern. First use SetDashOffset() if not 0.
EGraphicsFunction GetFunction() const
void SetJoinStyle(Int_t v)
Set line join style (kJoinMiter, kJoinRound, kJoinBevel).
void SetClipXOrigin(Int_t v)
X origin for clipping.
Int_t GetClipYOrigin() const
Pixel_t GetBackground() const
void SetTile(Pixmap_t v)
Set tile pixmap for tiling operations.
void SetClipYOrigin(Int_t v)
Y origin for clipping.
void Print(Option_t *option="") const override
Print graphics contexts info.
void UpdateValues(GCValues_t *v)
Update values + mask.
void SetBackground(Pixel_t v)
Set background color.
void SetFunction(EGraphicsFunction v)
Set graphics context drawing function.
void SetStipple(Pixmap_t v)
Set 1 plane pixmap for stippling.
Pixmap_t GetStipple() const
Int_t GetLineWidth() const
void SetGraphicsExposures(Bool_t v)
True if graphics exposure should be generated.
void SetLineStyle(Int_t v)
Set line style (kLineSolid, kLineOnOffDash, kLineDoubleDash).
Int_t GetDashOffset() const
Int_t GetCapStyle() const
TString GetMaskString() const
Returns GC mask as a string - used in SavePrimitive().
void SetSubwindowMode(Int_t v)
Set sub window mode (kClipByChildren, kIncludeInferiors).
TGClient * fClient
Connection to display server.
THashTable implements a hash table to store TObject's.
void Add(TObject *obj) override
Add object to the hash table.
TObject * Remove(TObject *obj) override
Remove object from the hashtable.
TObject * FindObject(const char *name) const override
Find object using its name.
void Print(Option_t *option, Int_t recurse) const override
Print the collection header and its elements.
Mother of all ROOT objects.
TObject & operator=(const TObject &rhs) noexcept
TObject assignment operator.
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
Definitions for TRefCnt, base class for reference counted objects.
void SetRefCount(UInt_t r)
UInt_t References() const
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
Graphics context structure.
ULong_t fBackground
background pixel
Int_t fFillRule
kEvenOddRule, kWindingRule
Pixmap_t fClipMask
bitmap clipping; other calls for rects
Int_t fDashOffset
patterned/dashed line information
Int_t fClipXOrigin
origin for clipping
Int_t fLineWidth
line width
Pixmap_t fStipple
stipple 1 plane pixmap for stippling
Mask_t fMask
bit mask specifying which fields are valid
Int_t fLineStyle
kLineSolid, kLineOnOffDash, kLineDoubleDash
Pixmap_t fTile
tile pixmap for tiling operations
Bool_t fGraphicsExposures
boolean, should exposures be generated
Int_t fJoinStyle
kJoinMiter, kJoinRound, kJoinBevel
Char_t fDashes[8]
dash pattern list (dash length per byte)
ULong_t fForeground
foreground pixel
ULong_t fPlaneMask
plane mask
Int_t fFillStyle
kFillSolid, kFillTiled, kFillStippled, kFillOpaeueStippled
FontH_t fFont
default text font for text operations
Int_t fTsXOrigin
offset for tile or stipple operations
EGraphicsFunction fFunction
logical operation
Int_t fDashLen
number of dashes in fDashes
Int_t fCapStyle
kCapNotLast, kCapButt, kCapRound, kCapProjecting
Int_t fArcMode
kArcChord, kArcPieSlice
Int_t fSubwindowMode
kClipByChildren, kIncludeInferiors