// $Id$ //----------------------------------------------------------------------- // The GSI Online Offline Object Oriented (Go4) Project // Experiment Data Processing at EE department, GSI //----------------------------------------------------------------------- // Copyright (C) 2000- GSI Helmholtzzentrum fuer Schwerionenforschung GmbH // Planckstr. 1, 64291 Darmstadt, Germany // Contact: http://go4.gsi.de //----------------------------------------------------------------------- // This software can be used under the license agreements as stated // in Go4License.txt file which is part of the distribution. //----------------------------------------------------------------------- #include "TGo4DrawObjProxy.h" #include "TList.h" #include "THStack.h" #include "TMultiGraph.h" TGo4DrawObjProxy::TGo4DrawObjProxy(TObject *obj, Bool_t owner, Bool_t doclear) : TGo4ObjectProxy(obj, owner), fDoClear(doclear) { } TGo4DrawObjProxy::~TGo4DrawObjProxy() { if (fDoClear) TryToClearObject(); } Bool_t TGo4DrawObjProxy::RemoveRegisteredObject(TObject *obj) { if (obj == fObject) TryToClearObject(); return TGo4ObjectProxy::RemoveRegisteredObject(obj); } void TGo4DrawObjProxy::TryToClearObject() { if (!fObject) return; if (fObject->InheritsFrom(THStack::Class())) { THStack *hs = (THStack*) fObject; if (hs->GetHists()) hs->GetHists()->Clear(); } else if (fObject->InheritsFrom(TMultiGraph::Class())) { TMultiGraph *mgr = (TMultiGraph *) fObject; if (mgr->GetListOfGraphs()) mgr->GetListOfGraphs()->Clear(); } }