Logo ROOT  
Reference Guide
TStructNodeProperty.cxx
Go to the documentation of this file.
1// @(#)root/gviz3d:$Id$
2// Author: Tomasz Sosnicki 18/09/09
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#include "TStructNodeProperty.h"
13#include <TROOT.h>
14#include <TClass.h>
15
17
18//________________________________________________________________________
19//////////////////////////////////////////////////////////////////////////
20//
21// TStructNodeProperty class keeps a color for type
22//
23//
24//
25//
26//
27//////////////////////////////////////////////////////////////////////////
28
29////////////////////////////////////////////////////////////////////////////////
30/// Contructs a TStructNodeProperty with p as parent window for class "name" with color "color".
31
33{
35 SetColor(color);
36}
37
38////////////////////////////////////////////////////////////////////////////////
39/// Contructs a TStructNodeProperty with p as parent window for class "name" with color "pixel".
40
42{
44 SetColor(pixel);
45}
46
47////////////////////////////////////////////////////////////////////////////////
48/// Destructor
49
51{
52}
53
54////////////////////////////////////////////////////////////////////////////////
55/// Overrided method. Compare two objects of TStructNodeProperty class
56
58{
59
60 // Default color "+" should be at the end.
61 if (fName == "+") {
62 return 1;
63 }
65 TString propName(prop->GetName());
66 if (propName == "+") {
67 return -1;
68 }
69
70 TClass* cl1;
71 if (fName.EndsWith("+")) {
73 } else {
75 }
76
77 TClass* cl2;
78
79 if (propName.EndsWith("+")) {
80 cl2 = TClass::GetClass(TString(propName.Data(), propName.Length()-1).Data());
81 } else {
82 cl2 = TClass::GetClass(prop->GetName());
83 }
84
85 if(!cl1) {
86 return -1;
87 }
88 if(!cl2) {
89 return -1;
90 }
91
92 if(cl1->InheritsFrom(cl2)) {
93 return -1;
94 }
95 if(cl2->InheritsFrom(cl1)) {
96 return 1;
97 }
98
99 if(this > prop) {
100 return 1;
101 }
102 if(this < prop) {
103 return -1;
104 }
105
106 return 0;
107}
108
109////////////////////////////////////////////////////////////////////////////////
110/// Returns color of class
111
113{
114 return fColor;
115}
116
117////////////////////////////////////////////////////////////////////////////////
118/// Return color in Pixel_t format
119
121{
122 return fColor.GetPixel();
123}
124
125////////////////////////////////////////////////////////////////////////////////
126/// Retruns true, because we have overrided method Compare
127
129{
130 return true;
131}
132
133////////////////////////////////////////////////////////////////////////////////
134/// Sets the color to "color"
135
137{
138 fColor = color;
139}
140
141////////////////////////////////////////////////////////////////////////////////
142/// Sets the color to "color"
143
145{
146 fColor = *(gROOT->GetColor(color));
147}
148
149////////////////////////////////////////////////////////////////////////////////
150/// Sets the color to "pixel"
151
153{
155}
ULong_t Pixel_t
Definition: GuiTypes.h:39
#define ClassImp(name)
Definition: Rtypes.h:361
char name[80]
Definition: TGX11.cxx:109
#define gROOT
Definition: TROOT.h:406
TClass instances represent classes, structs and namespaces in the ROOT type system.
Definition: TClass.h:80
Bool_t InheritsFrom(const char *cl) const
Return kTRUE if this class inherits from a class with name "classname".
Definition: TClass.cxx:4837
static TClass * GetClass(const char *name, Bool_t load=kTRUE, Bool_t silent=kFALSE)
Static method returning pointer to TClass of the specified class name.
Definition: TClass.cxx:2948
The color creation and management class.
Definition: TColor.h:19
static Int_t GetColor(const char *hexcolor)
Static method returning color number for color specified by hex color string of form: "#rrggbb",...
Definition: TColor.cxx:1769
ULong_t GetPixel() const
Return pixel value corresponding to this color.
Definition: TColor.cxx:1437
TString fName
Definition: TNamed.h:32
virtual void SetName(const char *name)
Set the name of the TNamed.
Definition: TNamed.cxx:140
virtual const char * GetName() const
Returns name of object.
Definition: TNamed.h:47
Mother of all ROOT objects.
Definition: TObject.h:37
Basic string class.
Definition: TString.h:131
Ssiz_t Length() const
Definition: TString.h:405
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Return true if string ends with the specified string.
Definition: TString.cxx:2177
const char * Data() const
Definition: TString.h:364
Pixel_t GetPixel() const
Return color in Pixel_t format.
~TStructNodeProperty()
Destructor.
Bool_t IsSortable() const
Retruns true, because we have overrided method Compare.
TColor GetColor() const
Returns color of class.
Int_t Compare(const TObject *obj) const
Overrided method. Compare two objects of TStructNodeProperty class.
void SetColor(const TColor &color)
Sets the color to "color".
TStructNodeProperty(const char *name, Int_t color)
Contructs a TStructNodeProperty with p as parent window for class "name" with color "color".