[2] | 1 | // %flair:license{
|
---|
[15] | 2 | // This file is part of the Flair framework distributed under the
|
---|
| 3 | // CECILL-C License, Version 1.0.
|
---|
[2] | 4 | // %flair:license}
|
---|
| 5 | // created: 2011/10/07
|
---|
| 6 | // filename: DoubleSpinBox.cpp
|
---|
| 7 | //
|
---|
| 8 | // author: Guillaume Sanahuja
|
---|
| 9 | // Copyright Heudiasyc UMR UTC/CNRS 7253
|
---|
| 10 | //
|
---|
| 11 | // version: $Id: $
|
---|
| 12 | //
|
---|
| 13 | // purpose: Class displaying a QDoubleSpinBox on the ground station
|
---|
| 14 | //
|
---|
| 15 | //
|
---|
| 16 | /*********************************************************************/
|
---|
| 17 |
|
---|
| 18 | #include "DoubleSpinBox.h"
|
---|
| 19 |
|
---|
| 20 | using std::string;
|
---|
| 21 |
|
---|
[15] | 22 | namespace flair {
|
---|
| 23 | namespace gui {
|
---|
[2] | 24 |
|
---|
[15] | 25 | DoubleSpinBox::DoubleSpinBox(const LayoutPosition *position, string name,
|
---|
| 26 | double min, double max, double step, int decimals,
|
---|
| 27 | double default_value)
|
---|
| 28 | : Box(position, name, "DoubleSpinBox") {
|
---|
| 29 | // update value from xml file
|
---|
| 30 | if (default_value < min)
|
---|
| 31 | default_value = min;
|
---|
| 32 | if (default_value > max)
|
---|
| 33 | default_value = max;
|
---|
| 34 | box_value = default_value;
|
---|
[2] | 35 |
|
---|
[15] | 36 | SetVolatileXmlProp("min", min);
|
---|
| 37 | SetVolatileXmlProp("max", max);
|
---|
| 38 | SetVolatileXmlProp("step", step);
|
---|
| 39 | SetVolatileXmlProp("decimals", decimals);
|
---|
| 40 | GetPersistentXmlProp("value", box_value);
|
---|
| 41 | SetPersistentXmlProp("value", box_value);
|
---|
[2] | 42 |
|
---|
[15] | 43 | SendXml();
|
---|
[2] | 44 | }
|
---|
| 45 |
|
---|
[15] | 46 | DoubleSpinBox::DoubleSpinBox(const LayoutPosition *position, string name,
|
---|
| 47 | string suffix, double min, double max, double step,
|
---|
| 48 | int decimals, double default_value)
|
---|
| 49 | : Box(position, name, "DoubleSpinBox") {
|
---|
| 50 | // update value from xml file
|
---|
| 51 | if (default_value < min)
|
---|
| 52 | default_value = min;
|
---|
| 53 | if (default_value > max)
|
---|
| 54 | default_value = max;
|
---|
| 55 | box_value = default_value;
|
---|
[2] | 56 |
|
---|
[15] | 57 | SetVolatileXmlProp("suffix", suffix);
|
---|
| 58 | SetVolatileXmlProp("min", min);
|
---|
| 59 | SetVolatileXmlProp("max", max);
|
---|
| 60 | SetVolatileXmlProp("step", step);
|
---|
| 61 | SetVolatileXmlProp("decimals", decimals);
|
---|
| 62 | GetPersistentXmlProp("value", box_value);
|
---|
| 63 | SetPersistentXmlProp("value", box_value);
|
---|
[2] | 64 |
|
---|
[15] | 65 | SendXml();
|
---|
[2] | 66 | }
|
---|
| 67 |
|
---|
[15] | 68 | DoubleSpinBox::~DoubleSpinBox() {}
|
---|
[2] | 69 |
|
---|
[15] | 70 | double DoubleSpinBox::Value(void) const {
|
---|
| 71 | double tmp;
|
---|
[2] | 72 |
|
---|
[15] | 73 | GetMutex();
|
---|
| 74 | tmp = box_value;
|
---|
| 75 | ReleaseMutex();
|
---|
[2] | 76 |
|
---|
[15] | 77 | return tmp;
|
---|
[2] | 78 | }
|
---|
| 79 |
|
---|
[15] | 80 | void DoubleSpinBox::XmlEvent(void) {
|
---|
| 81 | GetMutex();
|
---|
| 82 | if (GetPersistentXmlProp("value", box_value))
|
---|
| 83 | SetValueChanged();
|
---|
| 84 | ReleaseMutex();
|
---|
[2] | 85 | }
|
---|
| 86 |
|
---|
| 87 | } // end namespace gui
|
---|
| 88 | } // end namespace flair
|
---|