3 #ifndef REVE_RenderElement_H
4 #define REVE_RenderElement_H
24 friend class RGTopFrame;
29 TGListTreeItem* fItem;
32 ListTreeInfo(TGListTree* lt, TGListTreeItem* lti) : fTree(lt), fItem(lti) {}
33 virtual ~ListTreeInfo() {}
35 bool operator==(const ListTreeInfo& x) const
36 { return fTree == x.fTree && fItem == x.fItem; }
37 bool operator<(const ListTreeInfo& x) const
38 { return fTree == x.fTree ? fItem < x.fItem : fTree < x.fTree; }
40 ClassDef(ListTreeInfo, 0);
42 typedef std::set<ListTreeInfo> sLTI_t;
43 typedef std::set<ListTreeInfo>::iterator sLTI_i;
45 typedef std::list<RenderElement*> lpRE_t;
46 typedef std::list<RenderElement*>::iterator lpRE_i;
52 Color_t* fMainColorPtr;
57 Bool_t fDestroyOnZeroRefCnt;
62 RenderElement(Color_t& main_color);
63 virtual ~RenderElement();
65 virtual void AddParent(RenderElement* re);
66 virtual void RemoveParent(RenderElement* re);
68 Bool_t GetDestroyOnZeroRefCnt() const { return fDestroyOnZeroRefCnt; }
69 void SetDestroyOnZeroRefCnt(Bool_t d) { fDestroyOnZeroRefCnt = d; }
71 Bool_t GetDenyDestroy() const { return fDenyDestroy; }
72 void SetDenyDestroy(Bool_t d) { fDenyDestroy = d; }
74 virtual TObject* GetObject(Reve::Exc_t eh="RenderElement::GetObject ");
77 TRef& GetSource() { return fSource; }
78 TObject* GetSourceObject() const { return fSource.GetObject(); }
79 void SetSourceObject(TObject* o) { fSource.SetObject(o); }
81 void DumpSourceObject(); // *MENU*
82 void InspectSourceObject(); // *MENU*
85 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
86 TGListTreeItem* parent_lti);
87 virtual TGListTreeItem* AddIntoListTree(TGListTree* ltree,
88 RenderElement* parent);
89 virtual Bool_t RemoveFromListTree(TGListTree* ltree);
90 virtual Bool_t RemoveFromListTree(TGListTree* ltree,
91 TGListTreeItem* parent_lti);
93 virtual sLTI_i FindItem(TGListTree* ltree);
94 virtual sLTI_i FindItem(TGListTree* ltree,
95 TGListTreeItem* parent_lti);
96 virtual TGListTreeItem* FindListTreeItem(TGListTree* ltree);
97 virtual TGListTreeItem* FindListTreeItem(TGListTree* ltree,
98 TGListTreeItem* parent_lti);
100 virtual void UpdateItems();
102 void SpawnEditor(); // *MENU*
103 void ExportToCINT(Text_t* var_name); // *MENU*
105 virtual void Destroy(); // *MENU*
107 virtual Bool_t CanEditRnrElement() { return kTRUE; }
108 virtual Bool_t GetRnrElement() const { return fRnrElement; }
109 virtual void SetRnrElement(Bool_t rnr);
111 virtual Bool_t CanEditMainColor() { return kFALSE; }
112 Color_t* GetMainColorPtr() { return fMainColorPtr; }
113 void SetMainColorPtr(Color_t* color) { fMainColorPtr = color; }
115 virtual Color_t GetMainColor() const { return fMainColorPtr ? *fMainColorPtr : 0; }
116 virtual void SetMainColor(Color_t color);
117 void SetMainColor(Pixel_t pixel);
119 ClassDef(RenderElement, 1);
120 }; // endclass RenderElement
122 /**************************************************************************/
124 class RenderElementObjPtr : public RenderElement,
132 RenderElementObjPtr(TObject* obj, Bool_t own=kTRUE);
133 RenderElementObjPtr(TObject* obj, Color_t& mainColor, Bool_t own=kTRUE);
134 virtual ~RenderElementObjPtr();
136 virtual TObject* GetObject(Exc_t eh="RenderElementObjPtr::GetObject ");
138 Bool_t GetOwnObject() const { return fOwnObject; }
139 void SetOwnObject(Bool_t o) { fOwnObject = o; }
141 ClassDef(RenderElementObjPtr, 1);
142 }; // endclass RenderElementObjPtr
144 /**************************************************************************/
146 class RenderElementListBase : public RenderElement
151 void PaintElements(Option_t* option="");
154 RenderElementListBase() {}
155 RenderElementListBase(Color_t& col) : RenderElement(col) {}
156 virtual ~RenderElementListBase();
158 virtual void AddElement(RenderElement* el);
159 virtual void RemoveElement(RenderElement* el);
160 virtual void RemoveElementLocal(RenderElement* el);
161 virtual void RemoveElements();
163 virtual Int_t ExpandIntoListTree(TGListTree* ltree, TGListTreeItem* parent);
164 virtual Int_t DestroyListSubTree(TGListTree* ltree, TGListTreeItem* parent);
166 void EnableListElements(); // *MENU*
167 void DisableListElements(); // *MENU*
169 virtual void SetMainColor(Color_t color);
170 virtual void SetMainColor(Pixel_t pixel);
172 ClassDef(RenderElementListBase, 1);
175 /**************************************************************************/
177 class RenderElementList : public RenderElementListBase,
185 RenderElementList(const Text_t* n="RenderElementList", const Text_t* t="",
186 Bool_t doColor=kFALSE);
187 virtual ~RenderElementList() {}
189 virtual Bool_t CanEditMainColor() { return fDoColor; }
191 virtual void Paint(Option_t* option = "") { PaintElements(option); }
193 ClassDef(RenderElementList, 1);