File indexing completed on 2023-03-17 11:01:29
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #include "TGLabel.h"
0015 #include "TGTextEntry.h"
0016
0017 #include <cassert>
0018 #include <iostream>
0019
0020
0021 #include "Fireworks/Core/src/FWStringParameterSetter.h"
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 FWStringParameterSetter::FWStringParameterSetter() : m_param(nullptr), m_widget(nullptr) {}
0035
0036
0037
0038
0039
0040
0041 FWStringParameterSetter::~FWStringParameterSetter() {}
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059 void FWStringParameterSetter::attach(FWParameterBase* iParam) {
0060 m_param = dynamic_cast<FWStringParameter*>(iParam);
0061 assert(nullptr != m_param);
0062 }
0063
0064 TGFrame* FWStringParameterSetter::build(TGFrame* iParent, bool labelBack) {
0065 TGCompositeFrame* frame = new TGHorizontalFrame(iParent, 180, 20, kFixedWidth);
0066
0067 m_widget = new TGTextEntry(frame, m_param->name().c_str(), 0);
0068 m_widget->SetText(m_param->value().c_str());
0069 m_widget->Connect("ReturnPressed()", "FWStringParameterSetter", this, "doUpdate()");
0070
0071 TGLabel* label = new TGLabel(frame, m_param->name().c_str());
0072 if (labelBack) {
0073 frame->AddFrame(m_widget, new TGLayoutHints(kLHintsExpandX | kLHintsCenterY, 2, 2, 1, 1));
0074 frame->AddFrame(label, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 4, 2, 1, 1));
0075 } else {
0076 frame->AddFrame(label, new TGLayoutHints(kLHintsLeft | kLHintsCenterY));
0077 frame->AddFrame(m_widget, new TGLayoutHints(kLHintsLeft | kLHintsCenterY, 2, 8, 2, 2));
0078 }
0079 return frame;
0080 }
0081
0082 void FWStringParameterSetter::doUpdate() {
0083 assert(nullptr != m_param);
0084 assert(nullptr != m_widget);
0085 m_param->set(m_widget->GetText());
0086 update();
0087 }
0088
0089
0090
0091
0092
0093
0094