Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "TGLabel.h"
00016 #include "TGNumberEntry.h"
00017 #include <assert.h>
00018 #include <iostream>
00019
00020
00021 #include "Fireworks/Core/src/FWDoubleParameterSetter.h"
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 FWDoubleParameterSetter::FWDoubleParameterSetter() :
00036 m_param(0),
00037 m_widget(0)
00038 {
00039 }
00040
00041
00042
00043
00044
00045
00046 FWDoubleParameterSetter::~FWDoubleParameterSetter()
00047 {
00048 }
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 void
00067 FWDoubleParameterSetter::attach(FWParameterBase* iParam)
00068 {
00069 m_param = dynamic_cast<FWDoubleParameter*>(iParam);
00070 assert(0!=m_param);
00071 }
00072
00073 TGFrame*
00074 FWDoubleParameterSetter::build(TGFrame* iParent, bool)
00075 {
00076 TGCompositeFrame* frame = new TGHorizontalFrame(iParent);
00077
00078
00079 TGNumberFormat::ELimit limits = m_param->min()==m_param->max() ?
00080 TGNumberFormat::kNELNoLimits :
00081 ( m_param->min() > m_param->max() ? TGNumberFormat::kNELLimitMin : TGNumberFormat::kNELLimitMinMax);
00082 double min = 0;
00083 double max = 1;
00084 if(m_param->min()!=m_param->max()) {
00085 min=m_param->min();
00086 max=m_param->max();
00087 }
00088 m_widget = new TGNumberEntry
00089 (frame, m_param->value(),
00090 5,
00091 0,
00092 TGNumberFormat::kNESReal,
00093 TGNumberFormat::kNEAAnyNumber,
00094 limits,
00095 min,
00096 max);
00097
00098 frame->AddFrame(m_widget, new TGLayoutHints(kLHintsLeft|kLHintsCenterY, 2,8,2,2));
00099 m_widget->Connect("ValueSet(Long_t)", "FWDoubleParameterSetter", this, "doUpdate(Long_t)");
00100
00101
00102 frame->AddFrame(new TGLabel(frame,m_param->name().c_str()),
00103 new TGLayoutHints(kLHintsLeft|kLHintsCenterY) );
00104 return frame;
00105 }
00106
00107 void
00108 FWDoubleParameterSetter::doUpdate(Long_t)
00109 {
00110
00111 assert(0!=m_param);
00112 assert(0!=m_widget);
00113
00114 m_param->set(m_widget->GetNumberEntry()->GetNumber());
00115 update();
00116 }
00117
00118 void
00119 FWDoubleParameterSetter::setEnabled(bool x)
00120 {
00121 m_widget->SetState(x);
00122 }
00123
00124
00125
00126
00127
00128
00129