RenderElement::RenderElement()
{
- fRnrElement = true;
+ fRnrElement = kTRUE;
fMainColorPtr = 0;
}
RenderElement::RenderElement(Color_t& main_color) : fMainColorPtr(&main_color)
{
- fRnrElement = true;
+ fRnrElement = kTRUE;
+}
+
+RenderElement::~RenderElement()
+{
+ for(sLTI_i i=fItems.begin(); i!=fItems.end(); ++i) {
+ i->fTree->DeleteItem(i->fItem);
+ gClient->NeedRedraw(i->fTree);
+ }
}
/**************************************************************************/
static const Exc_t eH("RenderElement::AddIntoListTree ");
TObject* tobj = GetObject(eH);
- TGListTreeItem* item = ltree->AddItem(parent, tobj->GetName(), tobj,
- 0, 0, kTRUE);
+ TGListTreeItem* item = ltree->AddItem(parent, tobj->GetName(), this,
+ 0, 0, kTRUE);
item->CheckItem(GetRnrElement());
- item->SetColor(GetMainColor());
- // printf("%s setting title for %s, '%s'\n", eH.Data(), tobj->GetName(), tobj->GetTitle());
+ if(fMainColorPtr != 0) item->SetColor(GetMainColor());
item->SetTipText(tobj->GetTitle());
fItems.insert(ListTreeInfo(ltree, item));
for(sLTI_i i=fItems.begin(); i!=fItems.end(); ++i) {
// Setup name and title/tooltip? Need update calls from setname/title as well.
i->fItem->CheckItem(fRnrElement);
- i->fItem->SetColor(GetMainColor());
+ if(fMainColorPtr != 0) i->fItem->SetColor(GetMainColor());
}
gReve->Redraw3D();
gReve->NotifyBrowser();
FullUpdate();
}
}
+
/**************************************************************************/
void RenderElement::SetMainColor(Color_t color)
/**************************************************************************/
/**************************************************************************/
+ClassImp(RenderElementObjPtr)
+
+RenderElementObjPtr::RenderElementObjPtr(TObject* obj) :
+ RenderElement(),
+ fObject(obj)
+{}
+
+RenderElementObjPtr::RenderElementObjPtr(TObject* obj, Color_t& mainColor) :
+ RenderElement(mainColor),
+ fObject(obj)
+{}
+
+RenderElementObjPtr::~RenderElementObjPtr()
+{
+ delete fObject;
+}
+
+/**************************************************************************/
+
+TObject* RenderElementObjPtr::GetObject(Reve::Exc_t eh)
+{
+ if(fObject == 0)
+ throw(eh + "fObject not set.");
+ return fObject;
+}
+
+void RenderElementObjPtr::SetRnrElement(Bool_t rnr)
+{
+ if(rnr != fRnrElement) {
+ fRnrElement = rnr;
+ if(rnr) {
+ gReve->GetCC()->GetListOfPrimitives()->Add(fObject);
+ } else {
+ gReve->GetCC()->GetListOfPrimitives()->Remove(fObject);
+ }
+ FullUpdate();
+ }
+}
+
+/**************************************************************************/
+/**************************************************************************/
+
ClassImp(RenderElementListBase)
Int_t RenderElementListBase::ExpandIntoListTree(TGListTree* ltree,
void RenderElementListBase::EnableListElements()
{
for(lpRE_i i=fList.begin(); i!=fList.end(); ++i)
- (*i)->SetRnrElement(true);
+ (*i)->SetRnrElement(kTRUE);
}
void RenderElementListBase::DisableListElements()
{
for(lpRE_i i=fList.begin(); i!=fList.end(); ++i)
- (*i)->SetRnrElement(false);
+ (*i)->SetRnrElement(kFALSE);
}
/**************************************************************************/