PeriDyno
1.0.0
Loading...
Searching...
No Matches
D:
Peridyno
peridyno
src
Rendering
GUI
WtGUI
PropertyItem
WRealFieldWidget.cpp
Go to the documentation of this file.
1
#include "
WRealFieldWidget.h
"
2
3
WRealFieldWidget::WRealFieldWidget
(
dyno::FBase
* field)
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
16
WRealFieldWidget::~WRealFieldWidget
()
17
{
18
}
19
20
void
WRealFieldWidget::setValue
(
dyno::FBase
* field)
21
{
22
std::string template_name = field->
getTemplateName
();
23
if
(template_name == std::string(
typeid
(
float
).name()))
24
{
25
dyno::FVar<float>
* f =
TypeInfo::cast<dyno::FVar<float>
>(field);
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
{
35
dyno::FVar<double>
* f =
TypeInfo::cast<dyno::FVar<double>
>(field);
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
45
void
WRealFieldWidget::updateField
()
46
{
47
std::string template_name =
mfield
->getTemplateName();
48
double
v =
mData
->value();
49
if
(template_name == std::string(
typeid
(
float
).name()))
50
{
51
dyno::FVar<float>
* f =
TypeInfo::cast<dyno::FVar<float>
>(
mfield
);
52
f->
setValue
((
float
)v);
53
f->
update
();
54
changeValue_
.emit(1);
55
}
56
else
if
(template_name == std::string(
typeid
(
double
).name()))
57
{
58
dyno::FVar<double>
* f =
TypeInfo::cast<dyno::FVar<double>
>(
mfield
);
59
f->
setValue
(v);
60
f->
update
();
61
changeValue_
.emit(1);
62
};
63
}
WRealFieldWidget.h
WRealFieldWidget::setValue
void setValue(dyno::FBase *field)
Definition
WRealFieldWidget.cpp:20
WRealFieldWidget::changeValue_
Wt::Signal< int > changeValue_
Definition
WRealFieldWidget.h:46
WRealFieldWidget::mfield
dyno::FBase * mfield
Definition
WRealFieldWidget.h:41
WRealFieldWidget::~WRealFieldWidget
~WRealFieldWidget()
Definition
WRealFieldWidget.cpp:16
WRealFieldWidget::mFloatField
dyno::FVar< float > * mFloatField
Definition
WRealFieldWidget.h:44
WRealFieldWidget::updateField
void updateField()
Definition
WRealFieldWidget.cpp:45
WRealFieldWidget::mData
Wt::WDoubleSpinBox * mData
Definition
WRealFieldWidget.h:43
WRealFieldWidget::mDoubleField
dyno::FVar< double > * mDoubleField
Definition
WRealFieldWidget.h:45
WRealFieldWidget::WRealFieldWidget
WRealFieldWidget(dyno::FBase *)
Definition
WRealFieldWidget.cpp:3
WRealFieldWidget::layout
Wt::WHBoxLayout * layout
Definition
WRealFieldWidget.h:42
dyno::FBase
Definition
FBase.h:44
dyno::FBase::getTemplateName
virtual const std::string getTemplateName()
Definition
FBase.h:51
dyno::FBase::getMin
float getMin()
Definition
FBase.h:81
dyno::FBase::update
virtual void update()
Definition
FBase.cpp:201
dyno::FBase::getMax
float getMax()
Definition
FBase.h:84
dyno::FVar
Definition
Field.h:34
dyno::FVar::getValue
T getValue()
Definition
Field.h:130
dyno::FVar::setValue
void setValue(T val)
Definition
Field.h:111
TypeInfo::cast
TA * cast(TB *b)
Definition
Typedef.inl:286
Generated by
1.13.2