From: hristov Date: Wed, 27 Sep 2006 15:13:58 +0000 (+0000) Subject: Waiting for a tagged version of Root. All the development is in EVE-dev X-Git-Url: http://git.uio.no/git/?a=commitdiff_plain;h=e8f20a252108622a6cfb70b8d79215f6f1094e87;p=u%2Fmrichter%2FAliRoot.git Waiting for a tagged version of Root. All the development is in EVE-dev --- diff --git a/EVE/Alieve/ChangeLog b/EVE/Alieve/ChangeLog index 3d390177004..6fba1239420 100644 --- a/EVE/Alieve/ChangeLog +++ b/EVE/Alieve/ChangeLog @@ -1,15 +1,3 @@ -2006-09-26 Matevz Tadel - - * TPCLoaderEditor.cxx: - * TPCLoaderEditor.h: - * TPCSector2DEditor.cxx: - * TPCSector2DEditor.h: - * TPCSector3DEditor.cxx: - * TPCSector3DEditor.h: - * TPCSectorVizEditor.cxx: - * TPCSectorVizEditor.h: - Conform to new TGedFrame paradigm in ROOT. - 2006-09-06 Matevz Tadel * MUONDigitsInfo.cxx: diff --git a/EVE/Alieve/TPCLoaderEditor.cxx b/EVE/Alieve/TPCLoaderEditor.cxx index 1a3add64bc4..bef26f50aee 100644 --- a/EVE/Alieve/TPCLoaderEditor.cxx +++ b/EVE/Alieve/TPCLoaderEditor.cxx @@ -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(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(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() diff --git a/EVE/Alieve/TPCLoaderEditor.h b/EVE/Alieve/TPCLoaderEditor.h index b3ea62cefc8..79fc364c358 100644 --- a/EVE/Alieve/TPCLoaderEditor.h +++ b/EVE/Alieve/TPCLoaderEditor.h @@ -38,11 +38,10 @@ protected: TGTextButton* fDeleteSectors3D; public: - TPCLoaderEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + TPCLoaderEditor(const TGWindow* p=0, Int_t id=-1, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~TPCLoaderEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void FileSelect(); void FileChanged(); diff --git a/EVE/Alieve/TPCSector2DEditor.cxx b/EVE/Alieve/TPCSector2DEditor.cxx index 865f3c10ca2..dcd2ebb1216 100644 --- a/EVE/Alieve/TPCSector2DEditor.cxx +++ b/EVE/Alieve/TPCSector2DEditor.cxx @@ -22,10 +22,10 @@ using namespace Alieve; ClassImp(TPCSector2DEditor) -TPCSector2DEditor::TPCSector2DEditor(const TGWindow *p, +TPCSector2DEditor::TPCSector2DEditor(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), fShowMax(0), fAverage(0), fUseTexture(0) { @@ -46,6 +46,13 @@ TPCSector2DEditor::TPCSector2DEditor(const TGWindow *p, fAverage->Connect("Toggled(Bool_t)","Alieve::TPCSector2DEditor", this, "DoAverage()"); AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1)); } + + // Register the editor. + TClass *cl = TPCSector2DEditor::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } TPCSector2DEditor::~TPCSector2DEditor() @@ -53,14 +60,27 @@ TPCSector2DEditor::~TPCSector2DEditor() /**************************************************************************/ -void TPCSector2DEditor::SetModel(TObject* obj) +void TPCSector2DEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t ) { - fM = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(TPCSector2D::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fM = dynamic_cast(fModel); fShowMax->SetState(fM->fShowMax ? kButtonDown : kButtonUp); SetupAverage(); fUseTexture->SetState(fM->fUseTexture ? kButtonDown : kButtonUp); + + SetActive(); } /**************************************************************************/ diff --git a/EVE/Alieve/TPCSector2DEditor.h b/EVE/Alieve/TPCSector2DEditor.h index 7e07c2e7439..c26af5b1d25 100644 --- a/EVE/Alieve/TPCSector2DEditor.h +++ b/EVE/Alieve/TPCSector2DEditor.h @@ -30,11 +30,10 @@ protected: TGCheckButton* fUseTexture; public: - TPCSector2DEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + TPCSector2DEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~TPCSector2DEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoShowMax(); void DoAverage(); diff --git a/EVE/Alieve/TPCSector3DEditor.cxx b/EVE/Alieve/TPCSector3DEditor.cxx index 580aea7723b..27fcd1ab844 100644 --- a/EVE/Alieve/TPCSector3DEditor.cxx +++ b/EVE/Alieve/TPCSector3DEditor.cxx @@ -24,10 +24,10 @@ using namespace Alieve; ClassImp(TPCSector3DEditor) -TPCSector3DEditor::TPCSector3DEditor(const TGWindow *p, +TPCSector3DEditor::TPCSector3DEditor(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), fRnrFrame(0), fDriftVel(0), fPointFrac(0), fPointSize(0) { @@ -73,6 +73,13 @@ TPCSector3DEditor::TPCSector3DEditor(const TGWindow *p, fPointSize->Connect("ValueSet(Double_t)", "Alieve::TPCSector3DEditor", this, "DoPointSize()"); AddFrame(fPointSize, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1)); + + // Register the editor. + TClass *cl = TPCSector3D::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } TPCSector3DEditor::~TPCSector3DEditor() @@ -80,15 +87,28 @@ TPCSector3DEditor::~TPCSector3DEditor() /**************************************************************************/ -void TPCSector3DEditor::SetModel(TObject* obj) +void TPCSector3DEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t /*event*/) { - fM = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(TPCSector3D::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fM = dynamic_cast(fModel); fRnrFrame->SetState(fM->fRnrFrame ? kButtonDown : kButtonUp); fDriftVel->SetValue(fM->fDriftVel); fPointFrac->SetValue(fM->fPointFrac); fPointSize->SetValue(fM->fPointSize); + + SetActive(); } /**************************************************************************/ diff --git a/EVE/Alieve/TPCSector3DEditor.h b/EVE/Alieve/TPCSector3DEditor.h index 6fda513f61c..ca556490729 100644 --- a/EVE/Alieve/TPCSector3DEditor.h +++ b/EVE/Alieve/TPCSector3DEditor.h @@ -33,11 +33,11 @@ protected: Reve::RGValuator* fPointSize; public: - TPCSector3DEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, + TPCSector3DEditor(const TGWindow* p, Int_t id, Int_t width=170, Int_t height=30, UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); virtual ~TPCSector3DEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoRnrFrame(); void DoDriftVel(); diff --git a/EVE/Alieve/TPCSectorVizEditor.cxx b/EVE/Alieve/TPCSectorVizEditor.cxx index bb845537fab..0f43865ca4c 100644 --- a/EVE/Alieve/TPCSectorVizEditor.cxx +++ b/EVE/Alieve/TPCSectorVizEditor.cxx @@ -24,10 +24,10 @@ using namespace Alieve; ClassImp(TPCSectorVizEditor) -TPCSectorVizEditor::TPCSectorVizEditor(const TGWindow *p, +TPCSectorVizEditor::TPCSectorVizEditor(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), fSectorID (0), fTrans (0), fRnrInn (0), fRnrOut1 (0), fRnrOut2(0), @@ -101,6 +101,14 @@ TPCSectorVizEditor::TPCSectorVizEditor(const TGWindow *p, fTime->Connect("ValueSet()", "Alieve::TPCSectorVizEditor", this, "DoTime()"); AddFrame(fTime, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1)); + + + // Register the editor. + TClass *cl = TPCSectorViz::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } TPCSectorVizEditor::~TPCSectorVizEditor() @@ -108,9 +116,20 @@ TPCSectorVizEditor::~TPCSectorVizEditor() /**************************************************************************/ -void TPCSectorVizEditor::SetModel(TObject* obj) +void TPCSectorVizEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t /*event*/) { - fM = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(TPCSectorViz::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fM = dynamic_cast(fModel); fSectorID->SetValue(fM->fSectorID); fTrans->SetState(fM->fTrans ? kButtonDown : kButtonUp); @@ -123,6 +142,8 @@ void TPCSectorVizEditor::SetModel(TObject* obj) fMaxVal->SetValue(fM->fMaxVal); fTime->SetValues(fM->fMinTime, fM->fMaxTime); + + SetActive(); } /**************************************************************************/ diff --git a/EVE/Alieve/TPCSectorVizEditor.h b/EVE/Alieve/TPCSectorVizEditor.h index df0c463f03a..ac9a97c1e93 100644 --- a/EVE/Alieve/TPCSectorVizEditor.h +++ b/EVE/Alieve/TPCSectorVizEditor.h @@ -41,11 +41,10 @@ protected: Reve::RGDoubleValuator* fTime; public: - TPCSectorVizEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + TPCSectorVizEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~TPCSectorVizEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoSectorID(); void DoTrans(); diff --git a/EVE/ChangeLog b/EVE/ChangeLog index 0e546d13911..9eecf3f87f1 100644 --- a/EVE/ChangeLog +++ b/EVE/ChangeLog @@ -1,18 +1,3 @@ -2006-09-27 Matevz TADEL - - Merged HEAD to EVE-dev. Tagged EVE-dev(EVE-dev-after-merge). - -2006-09-26 Matevz Tadel - - * alice-macros/clusters_from_label.C: - Add point-set containing clusters directly as render element (it - was wrapped in a RenderElementObjPtr by mistake (not fixed when - changing it from TPolyMarker3D)). - - * alice-macros/primary_vertex.C: - Removed code that gave vertex markers some volume (to avoid being - discarded by a too smart GLViewer). - 2006-09-04 Matevz Tadel * alice-macros/its_hits.C: diff --git a/EVE/Reve/ChangeLog b/EVE/Reve/ChangeLog index b0d76083cb1..1979a2ede6f 100644 --- a/EVE/Reve/ChangeLog +++ b/EVE/Reve/ChangeLog @@ -1,56 +1,3 @@ -2006-09-27 Matevz Tadel - - * RGTopFrame.cxx: - * RGTopFrame.h: - * VSDSelector.cxx: - Made GLCanvas un-editable to prevent users from drawing things - over 3D scene; renamed the canvas data member from fCC to - fGLCanvas. Renamed local variables not to dress-up as - data-members. - -2006-09-26 Matevz Tadel - - * RGBrowser.cxx: - Hack to fix RenderElementObjPtr's colors in tree-view is no longer - needed. - - * RGEditor.cxx: - * RGEditor.h: - Properly update items of render-elements; call gReve::Redraw3D() - instead of pad modified/update. Added separate method - DisplayRenderElement() that caches the render-element in a - data-member to update it on change (needed for RenderElementObjPtr). - - * RGTopFrame.cxx: - Use RGEditor::DisplayRenderElement() instead of - DisplayObject(). Removed some never-used static structures. - - * RenderElement.cxx: - Removed Redraw3D() from UpdateItems() as it can now be called from - RGEditor::Update(); optimized item-updates in SetRnrElement() and - SetMainColor(). - - * PointSetArrayEditor.cxx: - * TrackEditors.cxx: - Added call to Update() in SetRange() methods. - -2006-09-26 Matevz Tadel - - * RGBrowser.cxx: - * RGEditor.cxx: - * RGEditor.h: - Use new functionality from TGedEditor. - - * PointSetArrayEditor.cxx: - * PointSetArrayEditor.h: - * RGeoNodeEditors.cxx: - * RGeoNodeEditors.h: - * RenderElementEditor.cxx: - * RenderElementEditor.h: - * TrackEditors.cxx: - * TrackEditors.h: - Conform to new TGedFrame paradigm in ROOT. - 2006-09-04 Matevz Tadel * MCHelixLine.hi: diff --git a/EVE/Reve/PointSetArrayEditor.cxx b/EVE/Reve/PointSetArrayEditor.cxx index 8fac7968bed..019e2059045 100644 --- a/EVE/Reve/PointSetArrayEditor.cxx +++ b/EVE/Reve/PointSetArrayEditor.cxx @@ -21,10 +21,9 @@ using namespace Reve; ClassImp(PointSetArrayEditor) -PointSetArrayEditor::PointSetArrayEditor(const TGWindow *p, - Int_t width, Int_t height, - UInt_t options, Pixel_t back) : - TGedFrame(p,width, height, options | kVerticalFrame, back), +PointSetArrayEditor::PointSetArrayEditor(const TGWindow *p, Int_t id, Int_t width, Int_t height, + UInt_t options, Pixel_t back) : + TGedFrame(p, id, width, height, options | kVerticalFrame, back), fM(0), fRange(0) { @@ -39,6 +38,13 @@ PointSetArrayEditor::PointSetArrayEditor(const TGWindow *p, fRange->Connect("ValueSet()", "Reve::PointSetArrayEditor", this, "DoRange()"); AddFrame(fRange, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1)); + + // Register the editor. + TClass *cl = PointSetArray::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } PointSetArrayEditor::~PointSetArrayEditor() @@ -46,15 +52,28 @@ PointSetArrayEditor::~PointSetArrayEditor() /**************************************************************************/ -void PointSetArrayEditor::SetModel(TObject* obj) +void PointSetArrayEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t ) { - fM = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(PointSetArray::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fM = dynamic_cast(fModel); // printf("FullRange(%f, %f) Selected(%f,%f)\n", // fM->GetMin(), fM->GetMax(), fM->GetCurMin(), fM->GetCurMax()); fRange->SetLimits(fM->fMin, fM->fMax, TGNumberFormat::kNESRealTwo); fRange->SetValues(fM->fCurMin, fM->fCurMax); + + SetActive(); } /**************************************************************************/ @@ -62,5 +81,4 @@ void PointSetArrayEditor::SetModel(TObject* obj) void PointSetArrayEditor::DoRange() { fM->SetRange(fRange->GetMin(), fRange->GetMax()); - Update(); } diff --git a/EVE/Reve/PointSetArrayEditor.h b/EVE/Reve/PointSetArrayEditor.h index db7f0b03912..f79a587b565 100644 --- a/EVE/Reve/PointSetArrayEditor.h +++ b/EVE/Reve/PointSetArrayEditor.h @@ -27,11 +27,10 @@ protected: Reve::RGDoubleValuator* fRange; public: - PointSetArrayEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + PointSetArrayEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~PointSetArrayEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoRange(); diff --git a/EVE/Reve/RGBrowser.cxx b/EVE/Reve/RGBrowser.cxx index 48d9d04e0d1..0cfc80e88a9 100644 --- a/EVE/Reve/RGBrowser.cxx +++ b/EVE/Reve/RGBrowser.cxx @@ -160,7 +160,7 @@ void RGBrowser::SetupClassicLook(RGEditor*& editor, TCanvas* glpad) fV2->MapSubwindows(); editor = new RGEditor(glpad); - editor->GetTGCanvas()->ChangeOptions(0); + editor->GetCan()->ChangeOptions(0); editor->SetWindowName("Reve Editor"); } @@ -168,7 +168,7 @@ void RGBrowser::SetupEditorLook(RGEditor*& editor, TCanvas* glpad) { fClient->SetRoot(fV2); editor = new RGEditor(glpad); - editor->GetTGCanvas()->ChangeOptions(0); + editor->GetCan()->ChangeOptions(0); fV2->RemoveFrame(editor); fV2->AddFrame(editor, new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 0, 0, 2, 2)); fClient->SetRoot(); @@ -202,7 +202,7 @@ void RGBrowser::SetupGLViewerLook(RGEditor*& editor, TCanvas* glpad) fClient->SetRoot(fV1); editor = new RGEditor(glpad); - editor->GetTGCanvas()->ChangeOptions(0); + editor->GetCan()->ChangeOptions(0); editor->ChangeOptions(editor->GetOptions() | kFixedHeight); fV1->RemoveFrame(editor); fV1->AddFrame(editor, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 0,2,2,2)); @@ -244,6 +244,13 @@ void RGBrowser::ItemClicked(TGListTreeItem *item, Int_t btn, Int_t x, Int_t y) if(re == 0) return; TObject* obj = re->GetObject(); + // A pathetic hack to get at least a bit of color coordination + // for RenderElementObjPtr. + if(item->GetColor() != re->GetMainColor()) { + item->SetColor(re->GetMainColor()); + fListTree->GetClient()->NeedRedraw(fListTree); + } + if(btn == 3) { if (obj) { fCtxMenu->Popup(x, y, obj); diff --git a/EVE/Reve/RGEditor.cxx b/EVE/Reve/RGEditor.cxx index 42433e896e4..4d564383ca4 100644 --- a/EVE/Reve/RGEditor.cxx +++ b/EVE/Reve/RGEditor.cxx @@ -1,8 +1,6 @@ // $Header$ #include "RGEditor.h" -#include "RenderElement.h" -#include "RGTopFrame.h" #include #include @@ -19,26 +17,25 @@ ClassImp(RGEditor) RGEditor::RGEditor(TCanvas* canvas) : TGedEditor(canvas) {} -void RGEditor::DisplayRenderElement(RenderElement* re) -{ - fRnrElement = re; - TObject* obj = fRnrElement ? fRnrElement->GetObject() : 0; - SetModel(fPad, obj, kButton1Down); -} - void RGEditor::DisplayObject(TObject* obj) { - fRnrElement = 0; - SetModel(fPad, obj, kButton1Down); -} - -void RGEditor::Update(TGedFrame* /*gframe*/) -{ - // Virtual method from TGedEditor ... called on every change. - - if (fRnrElement) { - fRnrElement->UpdateItems(); + fModel = obj; + + if(obj) { + if(obj->IsA() != fClass && !obj->IsA()->InheritsFrom(fClass)) { + fClass = obj->IsA(); + GetEditors(); + } + } else { + fCan->UnmapWindow(); + return; } - gReve->Redraw3D(); + TGFrameElement *el; + TIter next(fStyle->GetList()); + while ((el = (TGFrameElement *) next())) { + if ((el->fFrame)->InheritsFrom(TGedFrame::Class())) + ((TGedFrame *)(el->fFrame))->SetModel(fPad, fModel, 0); + } + fCan->MapWindow(); } diff --git a/EVE/Reve/RGEditor.h b/EVE/Reve/RGEditor.h index f247eeba3e2..d13143cba3c 100644 --- a/EVE/Reve/RGEditor.h +++ b/EVE/Reve/RGEditor.h @@ -7,21 +7,16 @@ namespace Reve { -class RenderElement; - class RGEditor : public TGedEditor { protected: - RenderElement* fRnrElement; public: RGEditor(TCanvas* canvas=0); virtual ~RGEditor() {} - void DisplayRenderElement(RenderElement* re); void DisplayObject(TObject* obj); - - virtual void Update(TGedFrame* gframe=0); + TGCanvas * GetCan() const {return fCan;} ClassDef(RGEditor, 1); }; // endclass RGEditor diff --git a/EVE/Reve/RGTopFrame.cxx b/EVE/Reve/RGTopFrame.cxx index 6723a437fe7..f2b64ab8e9e 100644 --- a/EVE/Reve/RGTopFrame.cxx +++ b/EVE/Reve/RGTopFrame.cxx @@ -44,12 +44,37 @@ using namespace Reve; Reve::RGTopFrame* gReve = 0; +namespace { + +enum RGBrowserMT { + M_LAYOUT_1, + M_LAYOUT_2, + M_LAYOUT_3 +}; + +const char *xpm_names[] = { + "lay1.xpm", + "lay2.xpm", + "lay3.xpm", + 0 +}; + +ToolBarData_t tb_data[] = { + { "", "Standard list layout", kFALSE, M_LAYOUT_1, NULL }, + { "", "TParticle latout", kFALSE, M_LAYOUT_2, NULL }, + { "", "TGeo layout", kFALSE, M_LAYOUT_3, NULL }, + { NULL, NULL, 0, 0, NULL } +}; + +} // unnamed namespace + /**************************************************************************/ RGTopFrame::RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look) : TGMainFrame(p, w, h), - fGLCanvas (0), + fCC (0), + fHistoCanvas (0), fSelector (0), fBrowser (0), fStatusBar (0), @@ -79,44 +104,54 @@ RGTopFrame::RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look) : // Build GUI - TGLayoutHints *lay0 = new TGLayoutHints(kLHintsCenterX | kLHintsCenterY | kLHintsExpandY | kLHintsExpandX); - TGLayoutHints *lay1 = new TGLayoutHints(kLHintsCenterX | kLHintsCenterY | kLHintsExpandY | kLHintsExpandX, 2, 0, 2, 2); - TGLayoutHints *lay2 = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, 2, 2, 2, 2); - - TGCompositeFrame* mainFrame = new TGCompositeFrame(this, w, h, kHorizontalFrame | kRaisedFrame); - TGVerticalFrame* fV2 = new TGVerticalFrame(mainFrame, GetWidth()-40, GetHeight()-40, kSunkenFrame); + TGLayoutHints *fL0 = new TGLayoutHints(kLHintsCenterX |kLHintsCenterY | kLHintsExpandY| kLHintsExpandX); + TGLayoutHints *fL1 = new TGLayoutHints(kLHintsCenterX |kLHintsCenterY | kLHintsExpandY| kLHintsExpandX,2,0,2,2); + TGLayoutHints* fL2 = new TGLayoutHints(kLHintsTop | kLHintsLeft | kLHintsExpandX | kLHintsExpandY, + 2, 2, 2, 2); + TGCompositeFrame* fMainFrame = new TGCompositeFrame(this, w, h,kHorizontalFrame | kRaisedFrame); + fMainFrame->SetCleanup(kDeepCleanup); + TGVerticalFrame* fV2 = new TGVerticalFrame(fMainFrame, GetWidth()-40, GetHeight()-40, kSunkenFrame); - mainFrame->AddFrame(fV2, lay1); + fMainFrame->AddFrame(fV2, fL1); - TGTab* mainTab = new TGTab(fV2, GetWidth(), GetHeight()); + // ??? TGCanvas* fCanvasWindow = new TGCanvas(fV2,w,h); + TGTab* fDisplayFrame = new TGTab(fV2, GetWidth(), GetHeight()); // browser tab - TGCompositeFrame* tframe1 = mainTab->AddTab("Object Browser"); - fBrowser = new RGBrowser(tframe1, w, h); - tframe1->AddFrame(fBrowser, lay2); + TGCompositeFrame* tFrame1 = fDisplayFrame->AddTab("Object Browser"); + fBrowser = new RGBrowser(tFrame1, w, h); + tFrame1->AddFrame(fBrowser, fL2); // tree selection tab - TGCompositeFrame* tframe2 = mainTab->AddTab("Tree Selections"); - fSelector = new VSDSelector(fBrowser->GetListTree(), tframe2); + TGCompositeFrame* tFrame2 = fDisplayFrame->AddTab("Tree Selections"); + fSelector = new VSDSelector(fBrowser->GetListTree(), tFrame2); - // gl-canvas + // canvas Reve::PushPad(); - TGCompositeFrame* tframe3 = mainTab->AddTab("GLCanvas"); - TRootEmbeddedCanvas* ecanvas3 = new TRootEmbeddedCanvas("GLCanvas", tframe3, 580, 360); - tframe3->AddFrame(ecanvas3, lay2); - fGLCanvas = ecanvas3->GetCanvas(); - fGLCanvas->SetEditable(kFALSE); + TGCompositeFrame* tFrame3 = fDisplayFrame->AddTab("Canvas"); + TRootEmbeddedCanvas* fEmbeddedCanvas3 = new TRootEmbeddedCanvas("fEmbeddedCanvas3", tFrame3, 580, 360); + tFrame3->AddFrame(fEmbeddedCanvas3, fL2); + fEmbeddedCanvas3->GetCanvas()->SetBorderMode(0); + fCC = fEmbeddedCanvas3->GetCanvas(); + // fCC->SetFillColor(1); Reve::PopPad(); - fV2->AddFrame(mainTab, lay0); - AddFrame(mainFrame, lay0); + // histo canvas + TGCompositeFrame* frame4 = fDisplayFrame->AddTab("HistoCanvas"); + TRootEmbeddedCanvas* ecanvas4 = new TRootEmbeddedCanvas("HistoCanvas", frame4, 580, 360); + frame4->AddFrame(ecanvas4, fL2); + fHistoCanvas = ecanvas4->GetCanvas(); + fHistoCanvas->SetBorderMode(0); + + fV2->AddFrame(fDisplayFrame, fL0); + AddFrame(fMainFrame, fL0); // Create status bar Int_t parts[] = {45, 45, 10}; fStatusBar = new TGStatusBar(this, 50, 10, kHorizontalFrame); fStatusBar->SetParts(parts, 3); - TGLayoutHints* lay6 = new TGLayoutHints(kLHintsBottom| kLHintsExpandX, 0, 0, 0, 0); - AddFrame(fStatusBar, lay6); + TGLayoutHints* fL6 = new TGLayoutHints(kLHintsBottom| kLHintsExpandX, 0, 0, 0, 0); + AddFrame(fStatusBar, fL6); fStatusBar->SetText("GUI created", 0); MapSubwindows(); @@ -124,21 +159,22 @@ RGTopFrame::RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look) : /**************************************************************************/ /**************************************************************************/ + switch(look) { case LT_Classic: { - fBrowser->SetupClassicLook(fEditor, fGLCanvas); - fGLCanvas->GetViewer3D("ogl"); + fBrowser->SetupClassicLook(fEditor, fCC); + fCC->GetViewer3D("ogl"); break; } case LT_Editor: { - fBrowser->SetupEditorLook(fEditor, fGLCanvas); - fGLCanvas->GetViewer3D("ogl"); + fBrowser->SetupEditorLook(fEditor, fCC); + fCC->GetViewer3D("ogl"); break; } case LT_GLViewer: { - fBrowser->SetupGLViewerLook(fEditor, fGLCanvas); + fBrowser->SetupGLViewerLook(fEditor, fCC); break; } @@ -148,7 +184,7 @@ RGTopFrame::RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look) : } } - TGLViewer* glv = dynamic_cast(fGLCanvas->GetViewer3D()); + TGLViewer* glv = dynamic_cast(fCC->GetViewer3D()); if(glv) { glv->SetSmartRefresh(kTRUE); glv->SetResetCamerasOnUpdate(kFALSE); @@ -197,7 +233,9 @@ void RGTopFrame::EditRenderElement(RenderElement* rnr_element) { static const Exc_t eH("RGTopFrame::EditRenderElement "); - fEditor->DisplayRenderElement(rnr_element); + TObject* tobj = 0; + if(rnr_element) tobj = rnr_element->GetObject(); + fEditor->DisplayObject(tobj); } /**************************************************************************/ @@ -214,12 +252,11 @@ void RGTopFrame::DoRedraw3D() { // printf("RGTopFrame::DoRedraw3D redraw triggered\n"); if (fResetCameras) { - fGLCanvas->GetViewer3D()->ResetCamerasAfterNextUpdate(); + fCC->GetViewer3D()->ResetCamerasAfterNextUpdate(); fResetCameras = kFALSE; } - - fGLCanvas->Modified(); - fGLCanvas->Update(); + fCC->Modified(); + fCC->Update(); fTimerActive = kFALSE; } @@ -243,7 +280,6 @@ int RGTopFrame::SpawnGuiAndRun(int argc, char **argv) TRint theApp("App", &argc, argv); /* gReve = */ new RGTopFrame(gClient->GetRoot(), w, h, revemode); - run_loop: try { theApp.Run(); @@ -329,19 +365,16 @@ void RGTopFrame::RemoveRenderElement(RenderElement* parent, void RGTopFrame::DrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad) { - if(pad == 0) pad = fGLCanvas; - + if(pad == 0) pad = GetCC(); { Reve::PadHolder pHolder(false, pad); - if (pad == fGLCanvas) fGLCanvas->SetEditable(kTRUE); rnr_element->GetObject()->Draw(); - if (pad == fGLCanvas) fGLCanvas->SetEditable(kFALSE); } Redraw3D(); } void RGTopFrame::UndrawRenderElement(RenderElement* rnr_element, TVirtualPad* pad) { - if(pad == 0) pad = fGLCanvas; + if(pad == 0) pad = GetCC(); { Reve::PadHolder pHolder(false, pad); pad->GetListOfPrimitives()->Remove(rnr_element->GetObject()); } @@ -357,7 +390,6 @@ void RGTopFrame::RenderElementChecked(TObject* obj, Bool_t state) RenderElement* rnrEl = (RenderElement*) obj; rnrEl->SetRnrElement(state); - Redraw3D(); } /**************************************************************************/ diff --git a/EVE/Reve/RGTopFrame.h b/EVE/Reve/RGTopFrame.h index 14a005e8901..2af233f6c27 100644 --- a/EVE/Reve/RGTopFrame.h +++ b/EVE/Reve/RGTopFrame.h @@ -37,7 +37,8 @@ public: enum LookType_e { LT_Classic, LT_Editor, LT_GLViewer }; private: - TCanvas *fGLCanvas; + TCanvas *fCC; + TCanvas *fHistoCanvas; VSDSelector *fSelector; RGBrowser *fBrowser; TGStatusBar *fStatusBar; @@ -63,7 +64,7 @@ protected: public: RGTopFrame(const TGWindow *p, UInt_t w, UInt_t h, LookType_e look=LT_Classic); - TCanvas* GetGLCanvas() { return fGLCanvas; } + TCanvas* GetCC() { return fCC; } VSDSelector* GetSelector() { return fSelector; } RGBrowser* GetBrowser() { return fBrowser; } TGStatusBar* GetStatusBar() { return fStatusBar; } diff --git a/EVE/Reve/RGeoNodeEditors.cxx b/EVE/Reve/RGeoNodeEditors.cxx index 137495879a8..3bbd6652c56 100644 --- a/EVE/Reve/RGeoNodeEditors.cxx +++ b/EVE/Reve/RGeoNodeEditors.cxx @@ -22,10 +22,10 @@ using namespace Reve; ClassImp(GeoNodeRnrElEditor) -GeoNodeRnrElEditor::GeoNodeRnrElEditor(const TGWindow *p, +GeoNodeRnrElEditor::GeoNodeRnrElEditor(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), fNodeRE (0), @@ -81,13 +81,32 @@ GeoNodeRnrElEditor::GeoNodeRnrElEditor(const TGWindow *p, "Reve::GeoNodeRnrElEditor", this, "DoTransparency()"); AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1)); } + + + // What is this crap? + TClass *cl = GeoNodeRnrEl::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } /**************************************************************************/ -void GeoNodeRnrElEditor::SetModel(TObject* obj) +void GeoNodeRnrElEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t ) { - fNodeRE = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(GeoNodeRnrEl::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fNodeRE = dynamic_cast(fModel); TGeoNode* node = fNodeRE->fNode; TGeoVolume* vol = node->GetVolume(); @@ -97,6 +116,8 @@ void GeoNodeRnrElEditor::SetModel(TObject* obj) fVizVolumeDaughters->SetState(vol->IsVisDaughters() ? kButtonDown : kButtonUp); fTransparency->SetNumber(vol->GetTransparency()); + + SetActive(); } /**************************************************************************/ @@ -143,10 +164,10 @@ void GeoNodeRnrElEditor::DoTransparency() ClassImp(GeoTopNodeRnrElEditor) -GeoTopNodeRnrElEditor::GeoTopNodeRnrElEditor(const TGWindow *p, +GeoTopNodeRnrElEditor::GeoTopNodeRnrElEditor(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), fTopNodeRE (0), fVisOption (0), @@ -183,16 +204,37 @@ GeoTopNodeRnrElEditor::GeoTopNodeRnrElEditor(const TGWindow *p, "Reve::GeoTopNodeRnrElEditor", this, "DoVisLevel()"); AddFrame(f, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1)); } + + + // What is this crap? + TClass *cl = GeoNodeRnrEl::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } /**************************************************************************/ -void GeoTopNodeRnrElEditor::SetModel(TObject* obj) +void GeoTopNodeRnrElEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t ) { - fTopNodeRE = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(GeoTopNodeRnrEl::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fTopNodeRE = dynamic_cast(fModel); fVisOption->SetNumber(fTopNodeRE->GetVisOption()); fVisLevel->SetNumber(fTopNodeRE->GetVisLevel()); + + SetActive(); } /**************************************************************************/ diff --git a/EVE/Reve/RGeoNodeEditors.h b/EVE/Reve/RGeoNodeEditors.h index 68cf131931b..c42dd992c25 100644 --- a/EVE/Reve/RGeoNodeEditors.h +++ b/EVE/Reve/RGeoNodeEditors.h @@ -31,11 +31,10 @@ protected: TGNumberEntry* fTransparency; public: - GeoNodeRnrElEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + GeoNodeRnrElEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~GeoNodeRnrElEditor() {} - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoVizNode(); void DoVizNodeDaughters(); @@ -61,11 +60,10 @@ protected: TGNumberEntry* fVisLevel; public: - GeoTopNodeRnrElEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + GeoTopNodeRnrElEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); virtual ~GeoTopNodeRnrElEditor() {} - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoVisOption(); void DoVisLevel(); diff --git a/EVE/Reve/RenderElement.cxx b/EVE/Reve/RenderElement.cxx index 19589a9870b..6b25d6c4f48 100644 --- a/EVE/Reve/RenderElement.cxx +++ b/EVE/Reve/RenderElement.cxx @@ -195,6 +195,7 @@ void RenderElement::UpdateItems() if(fMainColorPtr != 0) i->fItem->SetColor(GetMainColor()); gClient->NeedRedraw(i->fTree); } + gReve->Redraw3D(); // This will go away once editor can notify ALL changes. } /**************************************************************************/ @@ -241,12 +242,7 @@ void RenderElement::SetRnrElement(Bool_t rnr) { if(rnr != fRnrElement) { fRnrElement = rnr; - for(sLTI_i i=fItems.begin(); i!=fItems.end(); ++i) { - if (i->fItem->IsChecked() != rnr) { - i->fItem->CheckItem(fRnrElement); - gClient->NeedRedraw(i->fTree); - } - } + UpdateItems(); } } @@ -256,12 +252,7 @@ void RenderElement::SetMainColor(Color_t color) { if (fMainColorPtr) { *fMainColorPtr = color; - for(sLTI_i i=fItems.begin(); i!=fItems.end(); ++i) { - if(i->fItem->GetColor() != color) { - i->fItem->SetColor(GetMainColor()); - gClient->NeedRedraw(i->fTree); - } - } + UpdateItems(); } } diff --git a/EVE/Reve/RenderElementEditor.cxx b/EVE/Reve/RenderElementEditor.cxx index 1fcc4f3c9bb..6ec7425c6db 100644 --- a/EVE/Reve/RenderElementEditor.cxx +++ b/EVE/Reve/RenderElementEditor.cxx @@ -20,10 +20,10 @@ using namespace Reve; ClassImp(RenderElementEditor) -RenderElementEditor::RenderElementEditor(const TGWindow *p, +RenderElementEditor::RenderElementEditor(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), fRE (0), fHFrame (0), @@ -48,6 +48,13 @@ RenderElementEditor::RenderElementEditor(const TGWindow *p, "Reve::RenderElementEditor", this, "DoRnrElement()"); AddFrame(fHFrame, new TGLayoutHints(kLHintsTop, 0, 0, 1, 1)); + + // Register the editor. + TClass *cl = RenderElement::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } RenderElementEditor::~RenderElementEditor() @@ -55,9 +62,20 @@ RenderElementEditor::~RenderElementEditor() /**************************************************************************/ -void RenderElementEditor::SetModel(TObject* obj) +void RenderElementEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t ) { - fRE = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(RenderElement::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fRE = dynamic_cast(fModel); if (fRE->CanEditRnrElement()) { fRnrElement->SetState(fRE->GetRnrElement() ? kButtonDown : kButtonUp); @@ -74,6 +92,8 @@ void RenderElementEditor::SetModel(TObject* obj) } fHFrame->Layout(); + + SetActive(); } /**************************************************************************/ diff --git a/EVE/Reve/RenderElementEditor.h b/EVE/Reve/RenderElementEditor.h index 1bf489f00b8..2916585c68b 100644 --- a/EVE/Reve/RenderElementEditor.h +++ b/EVE/Reve/RenderElementEditor.h @@ -26,11 +26,10 @@ protected: TGColorSelect* fMainColor; public: - RenderElementEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + RenderElementEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~RenderElementEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoRnrElement(); void DoMainColor(Pixel_t color); diff --git a/EVE/Reve/TrackEditors.cxx b/EVE/Reve/TrackEditors.cxx index 2bab8e469a3..95cfa64b705 100644 --- a/EVE/Reve/TrackEditors.cxx +++ b/EVE/Reve/TrackEditors.cxx @@ -22,10 +22,10 @@ using namespace Reve; ClassImp(TrackListEditor) -TrackListEditor::TrackListEditor(const TGWindow *p, +TrackListEditor::TrackListEditor(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), fTC (0), @@ -151,6 +151,13 @@ TrackListEditor::TrackListEditor(const TGWindow *p, fPtRange->Connect("ValueSet()", "Reve::TrackListEditor", this, "DoPtRange()"); AddFrame(fPtRange, new TGLayoutHints(kLHintsTop, 1, 1, 2, 1)); + + // Register the editor. + TClass *cl = TrackList::Class(); + TGedElement *ge = new TGedElement; + ge->fGedFrame = this; + ge->fCanvas = 0; + cl->GetEditorList()->Add(ge); } TrackListEditor::~TrackListEditor() @@ -158,9 +165,20 @@ TrackListEditor::~TrackListEditor() /**************************************************************************/ -void TrackListEditor::SetModel(TObject* obj) +void TrackListEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t ) { - fTC = dynamic_cast(obj); + fModel = 0; + fPad = 0; + + if (!obj || !obj->InheritsFrom(TrackList::Class()) || obj->InheritsFrom(TVirtualPad::Class())) { + SetActive(kFALSE); + return; + } + + fModel = obj; + fPad = pad; + + fTC = dynamic_cast(fModel); fMaxR->SetNumber(fTC->GetMaxR()); fMaxZ->SetNumber(fTC->GetMaxZ()); @@ -175,6 +193,8 @@ void TrackListEditor::SetModel(TObject* obj) fFitDecay->SetState(fTC->GetFitDecay() ? kButtonDown : kButtonUp); fPtRange->SetValues(0.1, 10); + + SetActive(); } /**************************************************************************/ @@ -243,5 +263,4 @@ void TrackListEditor::DoFitDecay() void TrackListEditor::DoPtRange() { fTC->SelectByPt(fPtRange->GetMin(), fPtRange->GetMax()); - Update(); } diff --git a/EVE/Reve/TrackEditors.h b/EVE/Reve/TrackEditors.h index 6b8a2f14ab5..6054937b41a 100644 --- a/EVE/Reve/TrackEditors.h +++ b/EVE/Reve/TrackEditors.h @@ -39,11 +39,10 @@ protected: RGDoubleValuator* fPtRange; public: - TrackListEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30, - UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground()); + TrackListEditor(const TGWindow* p, Int_t id, Int_t width = 170, Int_t height = 30, UInt_t options = kChildFrame, Pixel_t back = GetDefaultFrameBackground()); ~TrackListEditor(); - virtual void SetModel(TObject* obj); + virtual void SetModel(TVirtualPad* pad, TObject* obj, Int_t event); void DoMaxR(); void DoMaxZ(); diff --git a/EVE/Reve/VSDSelector.cxx b/EVE/Reve/VSDSelector.cxx index 2551b35ce7b..21c1142f4b6 100644 --- a/EVE/Reve/VSDSelector.cxx +++ b/EVE/Reve/VSDSelector.cxx @@ -207,7 +207,7 @@ void VSDSelector::SelectParticles(const Text_t* selection) // printf("%d entries in selection '%s'.\n", n, selection); if(n > 0) { - Reve::PadHolder pHolder(true, gReve->GetGLCanvas()); + Reve::PadHolder pHolder(true, gReve->GetCC()); for(Int_t i=0; iGetEntry(label); @@ -372,7 +372,7 @@ void VSDSelector::SelectRecTracks() throw (eH + "No entries found in ESD data."); if(n > 0) { - Reve::PadHolder pHolder(true, gReve->GetGLCanvas()); + Reve::PadHolder pHolder(true, gReve->GetCC()); TGListTreeItem* parent = fListTree->FindItemByPathname("Event0"); TrackList* cont = new TrackList(); diff --git a/EVE/alice-macros/clusters_from_label.C b/EVE/alice-macros/clusters_from_label.C index 07a6019513c..2bb2a6434ec 100644 --- a/EVE/alice-macros/clusters_from_label.C +++ b/EVE/alice-macros/clusters_from_label.C @@ -27,11 +27,13 @@ void clusters_from_label(Int_t label=0) } } clusters->SetMarkerStyle(2); - clusters->SetMarkerSize(0.5); + clusters->SetMarkerSize(5); clusters->SetMarkerColor(4); clusters->SetName(Form("Clusters lab=%d", label)); using namespace Reve; - gReve->AddRenderElement(clusters); + Color_t* colp = FindColorVar(clusters, "fMarkerColor"); + RenderElementObjPtr* rnrEl = new RenderElementObjPtr(clusters, *colp); + gReve->AddRenderElement(rnrEl); gReve->Redraw3D(); } diff --git a/EVE/alice-macros/primary_vertex.C b/EVE/alice-macros/primary_vertex.C index 3eb5e5ff69c..0e56a5ca531 100644 --- a/EVE/alice-macros/primary_vertex.C +++ b/EVE/alice-macros/primary_vertex.C @@ -11,6 +11,19 @@ TPolyMarker3D* make_vertex_marker(AliESDVertex* v, const Text_t* name) TPolyMarker3D* m = new TPolyMarker3D(8); m->SetName(name); + + // Problem with volume/length suppression of objects in TGLViewer + /* + m->SetPoint(0, x[0]+e[0], x[1]+e[1], x[2]+e[2]); + m->SetPoint(1, x[0]+e[0], x[1]-e[1], x[2]+e[2]); + m->SetPoint(2, x[0]-e[0], x[1]-e[1], x[2]+e[2]); + m->SetPoint(3, x[0]-e[0], x[1]+e[1], x[2]+e[2]); + + m->SetPoint(4, x[0]+e[0], x[1]+e[1], x[2]-e[2]); + m->SetPoint(5, x[0]+e[0], x[1]-e[1], x[2]-e[2]); + m->SetPoint(6, x[0]-e[0], x[1]+e[1], x[2]-e[2]); + m->SetPoint(7, x[0]-e[0], x[1]-e[1], x[2]-e[2]); + */ m->SetPoint(0, x[0], x[1], x[2]); return m; diff --git a/EVE/libReve.pkg b/EVE/libReve.pkg index 95c0d22c9d3..f069c67e503 100644 --- a/EVE/libReve.pkg +++ b/EVE/libReve.pkg @@ -5,4 +5,4 @@ SRCS := $(patsubst EVE/%, %, ${ORGSRCS}) HDRS := $(SRCS:.cxx=.h) DHDR := Reve/LinkDef.h -all-EVE: all-Reve all-reve all-Alieve all-alieve +all-EVE: all-Reve all-reve all-Alieve