3 #include "RenderElementEditor.h"
4 #include <Reve/RenderElement.h>
5 #include <Reve/ZTransEditor.h>
7 #include <TVirtualPad.h>
12 #include <TGNumberEntry.h>
13 #include <TGColorSelect.h>
14 #include <TGDoubleSlider.h>
18 //______________________________________________________________________
19 // RenderElementEditor
22 ClassImp(RenderElementEditor)
24 RenderElementEditor::RenderElementEditor(const TGWindow *p,
25 Int_t width, Int_t height,
26 UInt_t options, Pixel_t back) :
27 TGedFrame(p, width, height, options | kVerticalFrame, back),
37 MakeTitle("RenderElement");
40 fHFrame = new TGHorizontalFrame(this);
42 fRnrSelf = new TGCheckButton(fHFrame, "RnrSelf");
43 fHFrame->AddFrame(fRnrSelf, new TGLayoutHints(kLHintsLeft, 1, 2, 1, 1));
46 "Reve::RenderElementEditor", this, "DoRnrSelf()");
48 fRnrChildren = new TGCheckButton(fHFrame, "RnrChildren");
49 fHFrame->AddFrame(fRnrChildren, new TGLayoutHints(kLHintsLeft, 2, 1, 1, 1));
52 "Reve::RenderElementEditor", this, "DoRnrChildren()");
54 fMainColor = new TGColorSelect(fHFrame, 0, -1);
55 fHFrame->AddFrame(fMainColor, new TGLayoutHints(kLHintsLeft, 2, 0, 1, 1));
57 ("ColorSelected(Pixel_t)",
58 "Reve::RenderElementEditor", this, "DoMainColor(Pixel_t)");
60 fTransparency = new TGNumberEntry(fHFrame, 0., 2, -1,
61 TGNumberFormat::kNESInteger, TGNumberFormat::kNEANonNegative,
62 TGNumberFormat::kNELLimitMinMax, 0, 100);
63 fTransparency->SetHeight(18);
64 fTransparency->GetNumberEntry()->SetToolTipText("Transparency: 0 is opaque, 100 fully transparent.");
65 fHFrame->AddFrame(fTransparency, new TGLayoutHints(kLHintsLeft, 0, 0, 2, 0));
66 fTransparency->Connect
68 "Reve::RenderElementEditor", this, "DoTransparency()");
70 AddFrame(fHFrame, new TGLayoutHints(kLHintsTop, 0, 0, 0, 0));
72 fHMTrans = new ZTransSubEditor(this);
73 fHMTrans->Connect("UseTrans()", "Reve::RenderElementEditor", this, "Update()");
74 fHMTrans->Connect("TransChanged()", "Reve::RenderElementEditor", this, "Update()");
75 AddFrame(fHMTrans, new TGLayoutHints(kLHintsTop | kLHintsExpandX, 0, 0, 0, 0));
78 RenderElementEditor::~RenderElementEditor()
81 /**************************************************************************/
83 void RenderElementEditor::SetModel(TObject* obj)
85 fRE = dynamic_cast<RenderElement*>(obj);
87 if (fRE->CanEditRnrElement()) {
88 fRnrSelf->SetState(fRE->GetRnrSelf() ? kButtonDown : kButtonUp);
89 fRnrChildren->SetState(fRE->GetRnrChildren() ? kButtonDown : kButtonUp);
90 fRnrSelf->MapWindow();
91 fRnrChildren->MapWindow();
93 fRnrSelf->UnmapWindow();
94 fRnrChildren->UnmapWindow();
97 if (fRE->CanEditMainColor()) {
98 fMainColor->SetColor(TColor::Number2Pixel(fRE->GetMainColor()), kFALSE);
99 fMainColor->MapWindow();
101 fMainColor->UnmapWindow();
103 if (fRE->CanEditMainTransparency()) {
104 fTransparency->SetNumber(fRE->GetMainTransparency());
105 fTransparency->MapWindow();
107 fTransparency->UnmapWindow();
109 if (fRE->CanEditMainHMTrans()) {
110 fHMTrans->SetDataFromTrans(fRE->PtrMainHMTrans());
111 fHMTrans->MapWindow();
113 fHMTrans->UnmapWindow();
119 /**************************************************************************/
122 void RenderElementEditor::DoRnrSelf()
124 fRE->SetRnrSelf(fRnrSelf->IsOn());
129 void RenderElementEditor::DoRnrChildren()
131 fRE->SetRnrChildren(fRnrChildren->IsOn());
135 void RenderElementEditor::DoMainColor(Pixel_t color)
137 fRE->SetMainColor(color);
141 void RenderElementEditor::DoTransparency()
143 fRE->SetMainTransparency((UChar_t)(fTransparency->GetNumber()));