Salome HOME
Improvement of the Group Feature (Undo-Redo functionality inside the multiple selecti...
[modules/shaper.git] / src / ModuleBase / ModuleBase_WidgetIntValue.h
1 // Copyright (C) 2014-2017  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or
18 // email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
19 //
20
21 #ifndef ModuleBase_WidgetIntValue_H
22 #define ModuleBase_WidgetIntValue_H
23
24 #include "ModuleBase.h"
25 #include "ModuleBase_ModelWidget.h"
26
27 class ModuleBase_ParamIntSpinBox;
28 class Config_WidgetAPI;
29 class QWidget;
30 class QLabel;
31 class QTimer;
32
33 /**
34 * \ingroup GUI
35 * A class of property panel widget for integer value input
36 * It can be defined with "integervalue" keyword. For example:
37 * \code
38 * <integervalue id="x" label="X:" icon=":pictures/x_point.png" tooltip="X coordinate"/>
39 * \endcode
40 */
41 class MODULEBASE_EXPORT ModuleBase_WidgetIntValue : public ModuleBase_ModelWidget
42 {
43 Q_OBJECT
44  public:
45   /// Constructor
46   /// \param theParent the parent object
47   /// \param theData the widget configuration. The attribute of the model widget is obtained from
48   ModuleBase_WidgetIntValue(QWidget* theParent, const Config_WidgetAPI* theData);
49
50   virtual ~ModuleBase_WidgetIntValue();
51
52   /// Select the internal content if it can be selected. It is empty in the default realization
53   virtual void selectContent();
54
55   /// Returns list of widget controls
56   /// \return a control list
57   virtual QList<QWidget*> getControls() const;
58
59 protected:
60   /// Returns true if the event is processed.
61   virtual bool processEnter();
62
63   /// Saves the internal parameters to the given feature
64   /// \return True in success
65   virtual bool storeValueCustom();
66
67   //! Read value of corresponded attribute from data model to the input control
68   // \return True in success
69   virtual bool restoreValueCustom();
70
71   /// Fills the widget with default values
72   /// \return true if the widget current value is reset
73   virtual bool resetCustom();
74
75 protected:
76   /// Label of the widget
77   QLabel* myLabel;
78
79   /// Input value control
80   ModuleBase_ParamIntSpinBox* mySpinBox;
81 };
82
83 #endif