Salome HOME
Merge relevant changes from V8_0_0_BR branch
[plugins/ghs3dprlplugin.git] / src / gui / GHS3DPRLPluginGUI_HypothesisCreator.h
1 // Copyright (C) 2007-2015  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 email : webmaster.salome@opencascade.com
18 //
19
20 // ---
21 // File   : GHS3DPRLPluginGUI_HypothesisCreator.h
22 // Author : Christian VAN WAMBEKE (CEA) (from Hexotic plugin Lioka RAZAFINDRAZAKA)
23 // ---
24 //
25 #ifndef GHS3DPRLPLUGINGUI_HypothesisCreator_H
26 #define GHS3DPRLPLUGINGUI_HypothesisCreator_H
27
28 #ifdef WIN32
29   #if defined GHS3DPRLPluginGUI_EXPORTS
30     #define GHS3DPRLPLUGINGUI_EXPORT __declspec( dllexport )
31   #else
32     #define GHS3DPRLPLUGINGUI_EXPORT __declspec( dllimport )
33   #endif
34 #else
35   #define GHS3DPRLPLUGINGUI_EXPORT
36 #endif
37
38
39 #include <SMESHGUI_Hypotheses.h>
40
41 class QtxIntSpinBox;
42 class QCheckBox;
43 class QLineEdit;
44
45 typedef struct
46 {
47   QString  myName;
48   QString  myMEDName;
49   int      myNbPart;
50   bool     myKeepFiles;
51   bool     myBackground;
52   //bool     myToMeshHoles;
53   bool     myToMergeSubdomains;
54   bool     myToTagSubdomains;
55   bool     myToOutputInterfaces;
56   bool     myToDiscardSubdomains;
57  } GHS3DPRLHypothesisData;
58
59 /*!
60  * \brief Class for creation of GHS3DPRL hypotheses
61 */
62 class GHS3DPRLPLUGINGUI_EXPORT GHS3DPRLPluginGUI_HypothesisCreator : public SMESHGUI_GenericHypothesisCreator
63 {
64   Q_OBJECT
65
66 public:
67   GHS3DPRLPluginGUI_HypothesisCreator( const QString& );
68   virtual ~GHS3DPRLPluginGUI_HypothesisCreator();
69
70   virtual bool    checkParams() const;
71   virtual QString helpPage() const;
72
73 protected:
74   virtual QFrame* buildFrame    ();
75   virtual void    retrieveParams() const;
76   virtual QString storeParams   () const;
77
78   virtual QString caption() const;
79   virtual QPixmap icon() const;
80   virtual QString type() const;
81
82 private:
83   bool            readParamsFromHypo( GHS3DPRLHypothesisData& ) const;
84   bool            readParamsFromWidgets( GHS3DPRLHypothesisData& ) const;
85   bool            storeParamsToHypo( const GHS3DPRLHypothesisData& ) const;
86
87 private:
88  QLineEdit*       myName;
89  QLineEdit*       myMEDName;
90  QtxIntSpinBox*   myNbPart;
91  QCheckBox*       myKeepFiles;
92  QCheckBox*       myBackground;
93  //QCheckBox*       myToMeshHoles;
94  QCheckBox*       myToMergeSubdomains;
95  QCheckBox*       myToTagSubdomains;
96  QCheckBox*       myToOutputInterfaces;
97  QCheckBox*       myToDiscardSubdomains;
98  bool             myIs3D;
99 };
100
101 #endif // GHS3DPRLPLUGINGUI_HypothesisCreator_H