3 #ifndef REVE_RenderElement_H
4 #define REVE_RenderElement_H
21 friend class RGTopFrame;
23 RenderElement(const RenderElement&); // Not implemented
24 RenderElement& operator=(const RenderElement&); // Not implemented
31 TGListTreeItem* fItem;
33 ListTreeInfo() : fTree(0), fItem(0) {}
34 ListTreeInfo(TGListTree* lt, TGListTreeItem* lti) : fTree(lt), fItem(lti) {}
35 ListTreeInfo(const ListTreeInfo& l) : fTree(l.fTree), fItem(l.fItem) {}
36 virtual ~ListTreeInfo() {}
38 ListTreeInfo& operator=(const ListTreeInfo& l)
39 { fTree = l.fTree; fItem = l.fItem; return *this; }
41 bool operator==(const ListTreeInfo& x) const
42 { return fTree == x.fTree && fItem == x.fItem; }
43 bool operator<(const ListTreeInfo& x) const
44 { return fTree == x.fTree ? fItem < x.fItem : fTree < x.fTree; }
46 ClassDef(ListTreeInfo, 0);
49 static const TGPicture* fgRnrIcons[4];
51 typedef std::set<ListTreeInfo> sLTI_t;
52 typedef std::set<ListTreeInfo>::iterator sLTI_i;
54 typedef std::list<RenderElement*> List_t;
55 typedef std::list<RenderElement*>::iterator List_i;
62 Color_t* fMainColorPtr;
67 Bool_t fDestroyOnZeroRefCnt;
74 RenderElement(Color_t& main_color);
75 virtual ~RenderElement();
77 virtual void AddParent(RenderElement* re);
78 virtual void RemoveParent(RenderElement* re);
80 List_i BeginParents() { return fParents.begin(); }
81 List_i EndParents() { return fParents.end(); }
82 Int_t GetNParents() const { return fParents.size(); }
84 List_i BeginChildren() { return fChildren.begin(); }
85 List_i EndChildren() { return fChildren.end(); }
86 Int_t GetNChildren() const { return fChildren.size(); }
88 virtual Int_t ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
89 virtual Int_t DestroyListSubTree(TGListTree* ltree, TGListTreeItem* parent);
91 void EnableListElements(); // *MENU*
92 void DisableListElements(); // *MENU*
94 Bool_t GetDestroyOnZeroRefCnt() const { return fDestroyOnZeroRefCnt; }
95 void SetDestroyOnZeroRefCnt(Bool_t d) { fDestroyOnZeroRefCnt = d; }
97 Bool_t GetDenyDestroy() const { return fDenyDestroy; }
98 void SetDenyDestroy(Bool_t d) { fDenyDestroy = d; }
100 virtual void PadPaint(Option_t* option);
102 virtual TObject* GetObject(Reve::Exc_t eh="RenderElement::GetObject ");
105 TRef& GetSource() { return fSource; }
106 TObject* GetSourceObject() const { return fSource.GetObject(); }
107 void SetSourceObject(TObject* o) { fSource.SetObject(o); }
109 void DumpSourceObject(); // *MENU*
110 void InspectSourceObject(); // *MENU*
113 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
114 TGListTreeItem* parent_lti);
115 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
116 RenderElement* parent);
117 virtual Bool_t RemoveFromListTree(TGListTree* ltree);
118 virtual Bool_t RemoveFromListTree(TGListTree* ltree,
119 TGListTreeItem* parent_lti);
121 virtual sLTI_i FindItem(TGListTree* ltree);
122 virtual sLTI_i FindItem(TGListTree* ltree,
123 TGListTreeItem* parent_lti);
124 virtual TGListTreeItem* FindListTreeItem(TGListTree* ltree);
125 virtual TGListTreeItem* FindListTreeItem(TGListTree* ltree,
126 TGListTreeItem* parent_lti);
128 virtual void UpdateItems();
130 void SpawnEditor(); // *MENU*
131 virtual void ExportToCINT(Text_t* var_name); // *MENU*
134 virtual void AddElement(RenderElement* el);
135 virtual void RemoveElement(RenderElement* el);
136 virtual void RemoveElementLocal(RenderElement* el);
137 virtual void RemoveElements();
139 virtual void Destroy(); // *MENU*
140 virtual void DestroyElements();
142 virtual Bool_t CanEditRnrElement() { return kTRUE; }
143 virtual Bool_t GetRnrSelf() const { return fRnrSelf; }
144 virtual Bool_t GetRnrChildren() const { return fRnrChildren; }
145 virtual void SetRnrSelf(Bool_t rnr);
146 virtual void SetRnrChildren(Bool_t rnr);
147 virtual void SetRnrState(Bool_t rnr);
149 virtual Bool_t CanEditMainColor() { return kFALSE; }
150 Color_t* GetMainColorPtr() { return fMainColorPtr; }
151 void SetMainColorPtr(Color_t* color) { fMainColorPtr = color; }
153 virtual Color_t GetMainColor() const { return fMainColorPtr ? *fMainColorPtr : 0; }
154 virtual void SetMainColor(Color_t color);
155 void SetMainColor(Pixel_t pixel);
157 virtual Bool_t CanEditMainTransparency() { return kFALSE; }
158 virtual UChar_t GetMainTransparency() const { return 0; }
159 virtual void SetMainTransparency(UChar_t) {}
161 virtual Bool_t CanEditMainHMTrans() { return kFALSE; }
162 virtual ZTrans* PtrMainHMTrans() { return 0; }
164 static const TGPicture* GetCheckBoxPicture(Bool_t rnrElement, Bool_t rnrDaughter);
166 ClassDef(RenderElement, 1);
167 }; // endclass RenderElement
169 /**************************************************************************/
171 class RenderElementObjPtr : public RenderElement,
174 RenderElementObjPtr(const RenderElementObjPtr&); // Not implemented
175 RenderElementObjPtr& operator=(const RenderElementObjPtr&); // Not implemented
182 RenderElementObjPtr(TObject* obj, Bool_t own=kTRUE);
183 RenderElementObjPtr(TObject* obj, Color_t& mainColor, Bool_t own=kTRUE);
184 virtual ~RenderElementObjPtr();
186 virtual TObject* GetObject(Exc_t eh="RenderElementObjPtr::GetObject ");
187 virtual void ExportToCINT(Text_t* var_name);
189 Bool_t GetOwnObject() const { return fOwnObject; }
190 void SetOwnObject(Bool_t o) { fOwnObject = o; }
192 ClassDef(RenderElementObjPtr, 1);
193 }; // endclass RenderElementObjPtr
195 /**************************************************************************/
197 class RenderElementList : public RenderElement,
205 RenderElementList(const Text_t* n="RenderElementList", const Text_t* t="",
206 Bool_t doColor=kFALSE);
207 virtual ~RenderElementList() {}
209 virtual Bool_t CanEditMainColor() { return fDoColor; }
211 ClassDef(RenderElementList, 1);
215 /**************************************************************************/
217 class PadPrimitive : public RenderElement,
221 PadPrimitive(const Text_t* n="PadPrimitive", const Text_t* t="");
222 virtual ~PadPrimitive() {}
224 virtual void Paint(Option_t* option = "");
226 // virtual void PaintRenderElement(RenderElement* re, Option_t* option);
228 ClassDef(PadPrimitive, 1);