3 #ifndef REVE_RenderElement_H
4 #define REVE_RenderElement_H
24 friend class RGTopFrame;
30 Color_t* fMainColorPtr;
34 TGListTreeItem* fItem;
37 ListTreeInfo(TGListTree* lt, TGListTreeItem* lti) : fTree(lt), fItem(lti) {}
38 virtual ~ListTreeInfo() {}
40 bool operator==(const ListTreeInfo& x) const
41 { return fTree == x.fTree && fItem == x.fItem; }
42 bool operator<(const ListTreeInfo& x) const
43 { return fTree == x.fTree ? fItem < x.fItem : fTree < x.fTree; }
45 ClassDef(ListTreeInfo, 0);
47 typedef std::set<ListTreeInfo> sLTI_t;
48 typedef std::set<ListTreeInfo>::iterator sLTI_i;
54 RenderElement(Color_t& main_color);
55 virtual ~RenderElement();
57 virtual TObject* GetObject(Reve::Exc_t eh="RenderElement::GetObject ");
60 TRef& GetSource() { return fSource; }
61 TObject* GetSourceObject() const { return fSource.GetObject(); }
62 void SetSourceObject(TObject* o) { fSource.SetObject(o); }
64 void DumpSourceObject(); // *MENU*
65 void InspectSourceObject(); // *MENU*
68 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
69 TGListTreeItem* parent);
71 virtual void FullUpdate();
73 void SpawnEditor(); // *MENU*
74 void ExportToCINT(Text_t* var_name); // *MENU*
76 virtual Bool_t CanEditRnrElement() { return kTRUE; }
77 virtual Bool_t GetRnrElement() const { return fRnrElement; }
78 virtual void SetRnrElement(Bool_t rnr);
80 virtual Bool_t CanEditMainColor() { return kFALSE; }
81 Color_t* GetMainColorPtr() { return fMainColorPtr; }
82 void SetMainColorPtr(Color_t* color) { fMainColorPtr = color; }
84 virtual Color_t GetMainColor() const { return fMainColorPtr ? *fMainColorPtr : 0; }
85 virtual void SetMainColor(Color_t color);
86 void SetMainColorByPixel(Pixel_t pixel);
88 ClassDef(RenderElement, 1);
89 }; // endclass RenderElement
91 /**************************************************************************/
93 class RenderElementObjPtr : public RenderElement
99 RenderElementObjPtr(TObject* obj);
100 RenderElementObjPtr(TObject* obj, Color_t& mainColor);
101 virtual ~RenderElementObjPtr();
103 virtual TObject* GetObject(Reve::Exc_t eh="RenderElementObjPtr::GetObject ");
105 virtual void SetRnrElement(Bool_t rnr);
107 ClassDef(RenderElementObjPtr, 1);
108 }; // endclass RenderElementObjPtr
110 /**************************************************************************/
112 class RenderElementListBase : public RenderElement
115 typedef std::list<RenderElement*> lpRE_t;
116 typedef std::list<RenderElement*>::iterator lpRE_i;
120 void PaintElements(Option_t* option="");
123 RenderElementListBase() {}
124 RenderElementListBase(Color_t& col) : RenderElement(col) {}
125 virtual ~RenderElementListBase() {}
127 virtual void AddElement(RenderElement* el) { fList.push_back(el); }
129 virtual Int_t ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
131 void EnableListElements(); // *MENU*
132 void DisableListElements(); // *MENU*
134 virtual void SetMainColor(Color_t color);
135 virtual void SetMainColor(Pixel_t pixel);
137 ClassDef(RenderElementListBase, 1);
140 /**************************************************************************/
142 class RenderElementList : public TNamed, public RenderElementListBase
148 RenderElementList(const Text_t* n="RenderElementList", const Text_t* t="") :
149 TNamed(n, t), RenderElementListBase(fColor), fColor(0)
151 virtual ~RenderElementList() {}
153 virtual Bool_t CanEditMainColor() { return kTRUE; }
155 virtual void Paint(Option_t* option = "") { PaintElements(option); }
157 ClassDef(RenderElementList, 1);