18#include "TDirectory.h"
21#include "TObjString.h"
42 fIter = pad->GetListOfPrimitives()->MakeIterator();
60 TFrame* fr =
dynamic_cast<TFrame*
>(
fCurrent);
61 if (fr) { skip =
true;
continue; }
63 TPaveText* ptxt =
dynamic_cast<TPaveText*
> (
fCurrent);
64 if (ptxt && (strcmp(ptxt->GetName(),
"title") == 0)) { skip =
true;
continue; }
66 if (
dynamic_cast<TPave*
>(
fCurrent)) { skip =
true;
continue; }
68 if (!
fCurrent->GetName()) { skip =
true;
continue; }
70 if (strlen(
fCurrent->GetName()) == 0) { skip =
true;
continue; }
72 if (strcmp(
fCurrent->GetName(),
fCurrent->ClassName()) == 0) { skip =
true;
continue; }
75 if (
fStacks.FindObject(
fCurrent->GetName()) &&
fCurrent->InheritsFrom(TH1F::Class())) { skip =
true;
continue; }
87 return dynamic_cast<TPad *
>(
fCurrent) ||
93 TPad *subpad =
dynamic_cast<TPad *
>(
fCurrent);
95 THStack *hs =
dynamic_cast<THStack *
>(
fCurrent);
152 auto om = slot->
GetOM();
158 auto om = slot->
GetOM();
173 const char *objname =
nullptr;
178 slot->
SetPar(
"CanvasProxy::CanvasName", objname);
189 const char *objname = slot->
GetPar(
"CanvasProxy::CanvasName");
190 if (!objname || !dir)
return;
199 return cl && cl->InheritsFrom(TCanvas::Class());
207 fCanvas =
dynamic_cast<TCanvas *
>(obj);
210 if (!
fCanvas && obj && owner)
delete obj;
226 if (!canv)
return nullptr;
228 return std::make_unique<TGo4ObjectAccess>(canv);
231 const char *curname = name;
234 const char *slash = strchr(curname,
'/');
235 UInt_t len = slash ? slash - curname : strlen(curname);
236 TIter iter(curpad->GetListOfPrimitives());
237 TObject *obj =
nullptr;
238 while ((obj = iter()) !=
nullptr)
239 if ((strlen(obj->GetName()) == len) &&
240 (strncmp(obj->GetName(), curname, len) == 0))
break;
241 if (!obj)
return nullptr;
244 return std::make_unique<TGo4ObjectAccess>(obj);
248 curpad =
dynamic_cast<TPad *
>(obj);
251 THStack *hs =
dynamic_cast<THStack*
> (obj);
TGo4CanvasLevelIter(TPad *pad)
const char * GetClassName() override
virtual ~TGo4CanvasLevelIter()
TGo4LevelIter * subiterator() override
const char * name() override
const char * info() override
Bool_t isfolder() override
static std::unique_ptr< TGo4Access > CreateAccess(TCanvas *canv, const char *name)
Bool_t IsAcceptObject(TClass *cl) const override
const char * GetContainedClassName() const override
Bool_t AssignObject(TGo4Slot *slot, TObject *obj, Bool_t owner) override
void Finalize(TGo4Slot *slot) override
TObject * GetAssignedObject() override
static TGo4LevelIter * ProduceIter(TCanvas *canv)
Bool_t RemoveRegisteredObject(TObject *obj) override
Int_t GetObjectKind() const override
void Initialize(TGo4Slot *slot) override
virtual ~TGo4CanvasProxy()
void ReadData(TGo4Slot *slot, TDirectory *dir) override
void WriteData(TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs) override
static TGo4LevelIter * ProduceIter(THStack *hs)
static std::unique_ptr< TGo4Access > CreateAccess(THStack *hs, const char *name)
void RegisterObjectWith(TObject *obj, TGo4Slot *slot)
void UnregisterObject(TObject *obj, TGo4Slot *slot)
virtual TGo4ObjectManager * GetOM() const
void ForwardEvent(TGo4Slot *source, Int_t id, void *param=nullptr)
void SetPar(const char *name, const char *value)
const char * GetPar(const char *name) const