]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/Alieve/TPCLoaderEditor.cxx
Waiting for a tagged version of Root. All the development is in EVE-dev
[u/mrichter/AliRoot.git] / EVE / Alieve / TPCLoaderEditor.cxx
index 1a3add64bc49b8c77e9c867ba8fe5dcd4c6b834b..bef26f50aee144daef1e1e401c19b4fc58588364 100644 (file)
@@ -25,10 +25,10 @@ using namespace Alieve;
 
 ClassImp(TPCLoaderEditor)
 
-TPCLoaderEditor::TPCLoaderEditor(const TGWindow *p,
+TPCLoaderEditor::TPCLoaderEditor(const TGWindow *p, Int_t id,
                                  Int_t width, Int_t height,
                                 UInt_t options, Pixel_t back) :
-  TGedFrame(p, width, height, options | kVerticalFrame, back),
+  TGedFrame(p, id, width, height, options | kVerticalFrame, back),
 
   fM (0),
 
@@ -98,6 +98,13 @@ TPCLoaderEditor::TPCLoaderEditor(const TGWindow *p,
                     "Alieve::TPCLoaderEditor", this, "DoDeleteSectors3D()");
     AddFrame(f, new TGLayoutHints(kLHintsExpandX, 8,8,8,0));
   }
+
+  // Register the editor.
+  TClass *cl = TPCLoader::Class();
+  TGedElement *ge = new TGedElement;
+  ge->fGedFrame = this;
+  ge->fCanvas = 0;
+  cl->GetEditorList()->Add(ge);
 }
 
 TPCLoaderEditor::~TPCLoaderEditor()
@@ -105,9 +112,20 @@ TPCLoaderEditor::~TPCLoaderEditor()
 
 /**************************************************************************/
 
-void TPCLoaderEditor::SetModel(TObject* obj)
+void TPCLoaderEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t /*event*/)
 {
-  fM = dynamic_cast<TPCLoader*>(obj);
+  fModel = 0;
+  fPad   = 0;
+
+  if (!obj || !obj->InheritsFrom(TPCLoader::Class()) || obj->InheritsFrom(TVirtualPad::Class())) {
+    SetActive(kFALSE);
+    return;
+  }
+
+  fModel = obj;
+  fPad   = pad;
+
+  fM = dynamic_cast<TPCLoader*>(fModel);
 
   // !!!! order changed, need TGTextEntry::SetText NO BLOODY EMIT.
   fFile->SetToolTipText(gSystem->DirName(fM->fFile));
@@ -115,6 +133,8 @@ void TPCLoaderEditor::SetModel(TObject* obj)
   fEvent->SetValue(fM->fEvent);
   fEvent->SetEnabled(fM->fEvent >= 0);
   fDoubleSR->SetState(fM->fDoubleSR  ? kButtonDown : kButtonUp);
+
+  SetActive();
 }
 
 /**************************************************************************/
@@ -152,7 +172,7 @@ void TPCLoaderEditor::FileChanged()
 void TPCLoaderEditor::DoOpen()
 {
   fM->OpenFile();
-  SetModel(fM);
+  SetModel(fPad, fModel, 0);
 }
 
 /**************************************************************************/
@@ -160,7 +180,7 @@ void TPCLoaderEditor::DoOpen()
 void TPCLoaderEditor::DoEvent()
 {
   fM->GotoEvent((Int_t) fEvent->GetValue());
-  SetModel(fM);
+  SetModel(fPad, fModel, 0);
 }
 
 void TPCLoaderEditor::DoDoubleSR()