This commit was generated by cvs2svn to compensate for changes in r13732,
[u/mrichter/AliRoot.git] / EVE / Reve / RenderElementEditor.cxx
1 // $Header$
2
3 #include "RenderElementEditor.h"
4 #include <Reve/RenderElement.h>
5
6 #include <TVirtualPad.h>
7 #include <TColor.h>
8
9 #include <TGLabel.h>
10 #include <TGButton.h>
11 #include <TGNumberEntry.h>
12 #include <TGColorSelect.h>
13 #include <TGDoubleSlider.h>
14
15 using namespace Reve;
16
17 //______________________________________________________________________
18 // RenderElementEditor
19 //
20
21 ClassImp(RenderElementEditor)
22
23 RenderElementEditor::RenderElementEditor(const TGWindow *p, Int_t id, Int_t width, Int_t height,
24              UInt_t options, Pixel_t back) :
25   TGedFrame(p, id, width, height, options | kVerticalFrame, back)
26 {
27   fRE = 0;
28   MakeTitle("RenderElement");
29
30   fHFrame = new TGHorizontalFrame(this);
31
32   fMainColor = new TGColorSelect(fHFrame, 0, -1);
33   fHFrame->AddFrame(fMainColor, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
34   fMainColor->Associate(fHFrame);
35   fMainColor->Connect
36     ("ColorSelected(Pixel_t)",
37      "Reve::RenderElementEditor", this, "DoMainColor(Pixel_t)");
38
39   fRnrElement = new TGCheckButton(fHFrame, "Render element");
40   fHFrame->AddFrame(fRnrElement, new TGLayoutHints(kLHintsLeft, 1, 1, 1, 1));
41   fRnrElement->Connect
42     ("Toggled(Bool_t)",
43      "Reve::RenderElementEditor", this, "DoRnrElement()");
44
45   AddFrame(fHFrame, new TGLayoutHints(kLHintsTop, 0, 0, 1, 1));    
46
47   // Register the editor.
48   TClass *cl = RenderElement::Class();
49   TGedElement *ge = new TGedElement;
50   ge->fGedFrame = this;
51   ge->fCanvas = 0;
52   cl->GetEditorList()->Add(ge);
53 }
54
55 RenderElementEditor::~RenderElementEditor()
56 {}
57
58 /**************************************************************************/
59
60 void RenderElementEditor::SetModel(TVirtualPad* pad, TObject* obj, Int_t )
61 {
62   fModel = 0;
63   fPad   = 0;
64
65   if (!obj || !obj->InheritsFrom(RenderElement::Class()) || obj->InheritsFrom(TVirtualPad::Class())) {
66     SetActive(kFALSE);
67     return;
68   }
69
70   fModel = obj;
71   fPad   = pad;
72
73   fRE = dynamic_cast<RenderElement*>(fModel);
74
75   if (fRE->CanEditRnrElement()) {
76     fRnrElement->SetState(fRE->GetRnrElement() ? kButtonDown : kButtonUp);
77     fRnrElement->MapWindow();
78   } else {
79     fRnrElement->UnmapWindow();
80   }
81
82   if (fRE->CanEditMainColor()) {
83     fMainColor->SetColor(TColor::Number2Pixel(fRE->GetMainColor()), kFALSE);
84     fMainColor->MapWindow();
85   } else {
86     fMainColor->UnmapWindow();
87   }
88
89   fHFrame->Layout();
90
91   SetActive();
92 }
93
94 /**************************************************************************/
95
96
97 void RenderElementEditor::DoRnrElement()
98 {
99   Bool_t fd = fRnrElement->IsOn();
100   fRE->SetRnrElement(fd);
101   Update();
102 }
103
104 void RenderElementEditor::DoMainColor(Pixel_t color)
105 {
106   // Slot connected to the axis color.
107    
108   fRE->SetMainColor(color);
109   Update();
110 }