3 #ifndef REVE_RenderElement_H
4 #define REVE_RenderElement_H
24 friend class RGTopFrame;
26 RenderElement(const RenderElement&); // Not implemented
27 RenderElement& operator=(const RenderElement&); // Not implemented
34 TGListTreeItem* fItem;
36 ListTreeInfo() : fTree(0), fItem(0) {}
37 ListTreeInfo(TGListTree* lt, TGListTreeItem* lti) : fTree(lt), fItem(lti) {}
38 ListTreeInfo(const ListTreeInfo& l) : fTree(l.fTree), fItem(l.fItem) {}
39 virtual ~ListTreeInfo() {}
41 ListTreeInfo& operator=(const ListTreeInfo& l)
42 { fTree = l.fTree; fItem = l.fItem; return *this; }
44 bool operator==(const ListTreeInfo& x) const
45 { return fTree == x.fTree && fItem == x.fItem; }
46 bool operator<(const ListTreeInfo& x) const
47 { return fTree == x.fTree ? fItem < x.fItem : fTree < x.fTree; }
49 ClassDef(ListTreeInfo, 0);
51 typedef std::set<ListTreeInfo> sLTI_t;
52 typedef std::set<ListTreeInfo>::iterator sLTI_i;
54 typedef std::list<RenderElement*> lpRE_t;
55 typedef std::list<RenderElement*>::iterator lpRE_i;
61 Color_t* fMainColorPtr;
66 Bool_t fDestroyOnZeroRefCnt;
71 RenderElement(Color_t& main_color);
72 virtual ~RenderElement();
74 virtual void AddParent(RenderElement* re);
75 virtual void RemoveParent(RenderElement* re);
77 Bool_t GetDestroyOnZeroRefCnt() const { return fDestroyOnZeroRefCnt; }
78 void SetDestroyOnZeroRefCnt(Bool_t d) { fDestroyOnZeroRefCnt = d; }
80 Bool_t GetDenyDestroy() const { return fDenyDestroy; }
81 void SetDenyDestroy(Bool_t d) { fDenyDestroy = d; }
83 virtual TObject* GetObject(Reve::Exc_t eh="RenderElement::GetObject ");
86 TRef& GetSource() { return fSource; }
87 TObject* GetSourceObject() const { return fSource.GetObject(); }
88 void SetSourceObject(TObject* o) { fSource.SetObject(o); }
90 void DumpSourceObject(); // *MENU*
91 void InspectSourceObject(); // *MENU*
94 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
95 TGListTreeItem* parent_lti);
96 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
97 RenderElement* parent);
98 virtual Bool_t RemoveFromListTree(TGListTree* ltree);
99 virtual Bool_t RemoveFromListTree(TGListTree* ltree,
100 TGListTreeItem* parent_lti);
102 virtual sLTI_i FindItem(TGListTree* ltree);
103 virtual sLTI_i FindItem(TGListTree* ltree,
104 TGListTreeItem* parent_lti);
105 virtual TGListTreeItem* FindListTreeItem(TGListTree* ltree);
106 virtual TGListTreeItem* FindListTreeItem(TGListTree* ltree,
107 TGListTreeItem* parent_lti);
109 virtual void UpdateItems();
111 void SpawnEditor(); // *MENU*
112 virtual void ExportToCINT(Text_t* var_name); // *MENU*
114 virtual void Destroy(); // *MENU*
116 virtual Bool_t CanEditRnrElement() { return kTRUE; }
117 virtual Bool_t GetRnrElement() const { return fRnrElement; }
118 virtual void SetRnrElement(Bool_t rnr);
120 virtual Bool_t CanEditMainColor() { return kFALSE; }
121 Color_t* GetMainColorPtr() { return fMainColorPtr; }
122 void SetMainColorPtr(Color_t* color) { fMainColorPtr = color; }
124 virtual Color_t GetMainColor() const { return fMainColorPtr ? *fMainColorPtr : 0; }
125 virtual void SetMainColor(Color_t color);
126 void SetMainColor(Pixel_t pixel);
128 ClassDef(RenderElement, 1);
129 }; // endclass RenderElement
131 /**************************************************************************/
133 class RenderElementObjPtr : public RenderElement,
136 RenderElementObjPtr(const RenderElementObjPtr&); // Not implemented
137 RenderElementObjPtr& operator=(const RenderElementObjPtr&); // Not implemented
144 RenderElementObjPtr(TObject* obj, Bool_t own=kTRUE);
145 RenderElementObjPtr(TObject* obj, Color_t& mainColor, Bool_t own=kTRUE);
146 virtual ~RenderElementObjPtr();
148 virtual TObject* GetObject(Exc_t eh="RenderElementObjPtr::GetObject ");
149 virtual void ExportToCINT(Text_t* var_name);
151 Bool_t GetOwnObject() const { return fOwnObject; }
152 void SetOwnObject(Bool_t o) { fOwnObject = o; }
154 ClassDef(RenderElementObjPtr, 1);
155 }; // endclass RenderElementObjPtr
157 /**************************************************************************/
159 class RenderElementListBase : public RenderElement
164 void PaintElements(Option_t* option="");
167 RenderElementListBase() : RenderElement(), fChildren() {}
168 RenderElementListBase(Color_t& col) : RenderElement(col), fChildren() {}
169 virtual ~RenderElementListBase();
171 virtual void AddElement(RenderElement* el);
172 virtual void RemoveElement(RenderElement* el);
173 virtual void RemoveElementLocal(RenderElement* el);
174 virtual void RemoveElements();
176 virtual void DestroyElements();
178 virtual Int_t ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
179 virtual Int_t DestroyListSubTree(TGListTree* ltree, TGListTreeItem* parent);
181 void EnableListElements(); // *MENU*
182 void DisableListElements(); // *MENU*
184 virtual void SetMainColor(Color_t color);
185 virtual void SetMainColor(Pixel_t pixel);
187 ClassDef(RenderElementListBase, 1);
190 /**************************************************************************/
192 class RenderElementList : public RenderElementListBase,
200 RenderElementList(const Text_t* n="RenderElementList", const Text_t* t="",
201 Bool_t doColor=kFALSE);
202 virtual ~RenderElementList() {}
204 virtual Bool_t CanEditMainColor() { return fDoColor; }
206 virtual void Paint(Option_t* option = "") { PaintElements(option); }
208 ClassDef(RenderElementList, 1);