4 #include "RenderElement.h"
5 #include "ReveManager.h"
11 //______________________________________________________________________
19 RGEditor::RGEditor(TCanvas* canvas, Int_t width, Int_t height) :
24 Resize(width, height);
26 // Fix priority for TAttMarkerEditor.
27 TClass* amClass = TClass::GetClass("TAttMarker");
28 TClass* edClass = TClass::GetClass("TAttMarkerEditor");
29 TGWindow *exroot = (TGWindow*) fClient->GetRoot();
30 fClient->SetRoot(fTabContainer);
31 SetFrameCreator(this);
32 TGedFrame *frame = reinterpret_cast<TGedFrame*>(edClass->New());
33 frame->SetModelClass(amClass);
35 Int_t off = edClass->GetDataMemberOffset("fPriority");
39 * (Int_t*) (((char*)frame) + off) = 1;
42 fClient->SetRoot(exroot);
43 fFrameMap.Add(amClass, frame);
46 RenderElement* RGEditor::GetRnrElement() const
48 return (fModel == fObject) ? fRnrElement : 0;
51 void RGEditor::DisplayRenderElement(RenderElement* re)
54 fObject = fRnrElement ? fRnrElement->GetEditorObject() : 0;
55 TGedEditor::SetModel(fPad, fObject, kButton1Down);
58 void RGEditor::DisplayObject(TObject* obj)
60 fRnrElement = dynamic_cast<RenderElement*>(obj);
62 TGedEditor::SetModel(fPad, obj, kButton1Down);
65 /**************************************************************************/
67 void RGEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t event)
69 // !!!! do something so that such calls from elswhere will also
70 // now the render element
72 fRnrElement = dynamic_cast<RenderElement*>(obj);
74 TGedEditor::SetModel(pad, obj, event);
77 void RGEditor::Update(TGedFrame* /*gframe*/)
79 // Virtual method from TGedEditor ... called on every change.
82 fRnrElement->UpdateItems();
83 fRnrElement->ElementChanged();
89 /**************************************************************************/
92 // Attempt to enable mouse-wheel in geditor -- failed.
93 Bool_t RGEditor::HandleButton(Event_t *event)
95 // Handle mouse button event in container.
98 if (event->fCode == kButton4 || event->fCode == kButton5) {
99 return fCan->GetContainer()->HandleButton(event);
101 return TGedEditor::HandleButton(event);