Salome HOME
Enable setting of Numeric Functors as criteria in Split Quadrangles and Union Triangl...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_aParameter.cxx
1 //  SMESH SMESHGUI : GUI for SMESH component
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org
21 //
22 //
23 //
24 //  File   : SMESHGUI_aParameter.cxx
25 //  Module : SMESH
26 //  $Header$
27
28 #include "SMESHGUI_aParameter.h"
29
30 #include <qspinbox.h>
31 #include <qvalidator.h>
32 #include <qtextedit.h>
33
34 #include <QtxDblSpinBox.h>
35
36 SMESHGUI_aParameter::~SMESHGUI_aParameter() {}
37
38 //=================================================================================
39 // class    : SMESHGUI_intParameter
40 // purpose  :
41 //=================================================================================
42 SMESHGUI_intParameter::SMESHGUI_intParameter (const int      theInitValue,
43                                               const QString& theLabel,
44                                               const int      theBottom,
45                                               const int      theTop)
46      :SMESHGUI_aParameter(theLabel),
47        _top(theTop), _bottom(theBottom), _initValue(theInitValue)
48 {
49 }
50 SMESHGUI_aParameter::Type SMESHGUI_intParameter::GetType() const
51 {
52   return SMESHGUI_aParameter::INT;
53 }
54 bool SMESHGUI_intParameter::GetNewInt (int & theValue) const
55 {
56   theValue = _newValue;
57   return _newValue != _initValue;
58 }
59 bool SMESHGUI_intParameter::GetNewDouble (double & Value) const
60 {
61   return false;
62 }
63 bool SMESHGUI_intParameter::GetNewText (QString & Value) const
64 {
65   return false;
66 }
67 void SMESHGUI_intParameter::InitializeWidget (QWidget* theQWidget) const
68 {
69   QSpinBox * aSpin = dynamic_cast< QSpinBox *>(theQWidget);
70   if (aSpin) {
71     aSpin->setMinValue(_bottom);
72     aSpin->setMaxValue(_top);
73     aSpin->setValue(_initValue);
74   }
75 }
76 void SMESHGUI_intParameter::TakeValue (QWidget* theQWidget)
77 {
78   QSpinBox * aSpin = dynamic_cast< QSpinBox *>(theQWidget);
79   if (aSpin)
80     _newValue = aSpin->value();
81 }
82
83 //=================================================================================
84 // class    : SMESHGUI_doubleParameter
85 // purpose  :
86 //=================================================================================
87 SMESHGUI_doubleParameter::SMESHGUI_doubleParameter (const double   theInitValue,
88                                                     const QString& theLabel,
89                                                     const double   theBottom,
90                                                     const double   theTop,
91                                                     const double   theStep,
92                                                     const int      theDecimals)
93      :SMESHGUI_aParameter(theLabel),
94        _top(theTop), _bottom(theBottom), _step(theStep),
95        _initValue(theInitValue), _decimals(theDecimals)
96 {
97 }
98 SMESHGUI_aParameter::Type SMESHGUI_doubleParameter::GetType() const
99 {
100   return SMESHGUI_aParameter::DOUBLE;
101 }
102 bool SMESHGUI_doubleParameter::GetNewInt (int & theValue) const
103 {
104   return false;
105 }
106 bool SMESHGUI_doubleParameter::GetNewDouble (double & Value) const
107 {
108   Value = _newValue;
109   return _newValue != _initValue;
110 }
111 bool SMESHGUI_doubleParameter::GetNewText (QString & Value) const
112 {
113   return false;
114 }
115 void SMESHGUI_doubleParameter::InitializeWidget (QWidget* theQWidget) const
116 {
117   QtxDblSpinBox* aSpin = dynamic_cast<QtxDblSpinBox*>(theQWidget);
118   if (aSpin) {
119     aSpin->setPrecision(_decimals);
120 #ifdef NEW_GUI
121     aSpin->setDblPrecision(_bottom);
122 #endif
123     aSpin->setRange(_bottom, _top);
124     aSpin->setValue(_initValue);
125     aSpin->setLineStep(_step);
126   }
127 }
128 void SMESHGUI_doubleParameter::TakeValue (QWidget* theQWidget)
129 {
130   QtxDblSpinBox* aSpin = dynamic_cast<QtxDblSpinBox*>(theQWidget);
131   if (aSpin)
132     _newValue = aSpin->value();
133 }
134
135 //=================================================================================
136 // class    : SMESHGUI_strParameter
137 // purpose  :
138 //=================================================================================
139 SMESHGUI_strParameter::SMESHGUI_strParameter (const QString& theInitValue,
140                                               const QString& theLabel)
141      :SMESHGUI_aParameter(theLabel),
142       _initValue(theInitValue)
143 {
144 }
145 SMESHGUI_aParameter::Type SMESHGUI_strParameter::GetType() const
146 {
147   return SMESHGUI_aParameter::TEXT;
148 }
149 bool SMESHGUI_strParameter::GetNewInt (int & theValue) const
150 {
151   return false;
152 }
153 bool SMESHGUI_strParameter::GetNewDouble (double & Value) const
154 {
155   return false;
156 }
157 bool SMESHGUI_strParameter::GetNewText (QString & theValue) const
158 {
159   theValue = _newValue;
160   return _newValue != _initValue;
161 }
162 void SMESHGUI_strParameter::InitializeWidget (QWidget* theQWidget) const
163 {
164   QTextEdit * anEdit = dynamic_cast< QTextEdit *>(theQWidget);
165   if (anEdit) {
166     anEdit->setText(_initValue);
167   }
168 }
169 void SMESHGUI_strParameter::TakeValue (QWidget* theQWidget)
170 {
171   QTextEdit * anEdit = dynamic_cast< QTextEdit *>(theQWidget);
172   if (anEdit)
173     _newValue = anEdit->text();
174 }