PeriDyno 1.0.0
Loading...
Searching...
No Matches
WRealFieldWidget.cpp
Go to the documentation of this file.
1#include "WRealFieldWidget.h"
2
4 : Wt::WContainerWidget(), mData(nullptr), mFloatField(nullptr), mDoubleField(nullptr)
5{
6 layout = this->setLayout(std::make_unique<Wt::WHBoxLayout>());
7 layout->setContentsMargins(0, 0, 0, 0);
8 layout->setSpacing(0);
9
10 setValue(field);
11
12 mfield = field;
13 mData->valueChanged().connect(this, &WRealFieldWidget::updateField);
14}
15
19
21{
22 std::string template_name = field->getTemplateName();
23 if (template_name == std::string(typeid(float).name()))
24 {
26 mFloatField = f;
27 mData = layout->addWidget(std::make_unique<Wt::WDoubleSpinBox>());
28 mData->setRange(field->getMin(), field->getMax());
29 mData->setSingleStep(0.0001);
30 mData->setDecimals(4);
31 mData->setValue((double)f->getValue());
32 }
33 else if (template_name == std::string(typeid(double).name()))
34 {
36 mDoubleField = f;
37 mData = layout->addWidget(std::make_unique<Wt::WDoubleSpinBox>());
38 mData->setRange(field->getMin(), field->getMax());
39 mData->setSingleStep(0.0001);
40 mData->setDecimals(4);
41 mData->setValue(mDoubleField->getValue());
42 }
43}
44
46{
47 std::string template_name = mfield->getTemplateName();
48 double v = mData->value();
49 if (template_name == std::string(typeid(float).name()))
50 {
52 f->setValue((float)v);
53 f->update();
54 changeValue_.emit(1);
55 }
56 else if (template_name == std::string(typeid(double).name()))
57 {
59 f->setValue(v);
60 f->update();
61 changeValue_.emit(1);
62 };
63}
void setValue(dyno::FBase *field)
Wt::Signal< int > changeValue_
dyno::FBase * mfield
dyno::FVar< float > * mFloatField
Wt::WDoubleSpinBox * mData
dyno::FVar< double > * mDoubleField
WRealFieldWidget(dyno::FBase *)
Wt::WHBoxLayout * layout
virtual const std::string getTemplateName()
Definition FBase.h:51
float getMin()
Definition FBase.h:81
virtual void update()
Definition FBase.cpp:201
float getMax()
Definition FBase.h:84
T getValue()
Definition Field.h:130
void setValue(T val)
Definition Field.h:111
TA * cast(TB *b)
Definition Typedef.inl:286