Salome HOME
c43df0106b0557c0da38031495aff3eb5042ee85
[modules/multipr.git] / src / MULTIPRGUI / MULTIPR_GUI_Dlg.h
1 // Project MULTIPR, IOLS WP1.2.1 - EDF/CS
2 // Partitioning/decimation module for the SALOME v3.2 platform
3
4 /**
5  * \file    MULTIPR_GUI_Dlg.h
6  *
7  * \brief   MULTIPR GUI Dialog (QT)
8  *
9  * \author  Olivier LE ROUX - CS, Virtual Reality Dpt
10  * 
11  * \date    01/2007
12  */
13
14 #ifndef __MULTIPR_GUI_DLG__
15 #define __MULTIPR_GUI_DLG__
16
17
18 //*****************************************************************************
19 // Includes section
20 //*****************************************************************************
21
22 #include <SalomeApp_Module.h>
23 #include <LightApp_DataObject.h>
24 #include <LightApp_DataModel.h>
25 #include <LightApp_RootObject.h>
26
27 #include <SALOMEconfig.h>
28 #include CORBA_CLIENT_HEADER(MULTIPR)
29
30 #include <qdialog.h>
31 #include <qprogressdialog.h>
32 #include <qstring.h>
33 #include <qvariant.h>
34
35 #include "MULTIPR_ProgressCallback.hxx"
36
37
38 //*****************************************************************************
39 // Pre-declaration
40 //*****************************************************************************
41
42 class SalomeApp_Application;
43 class CAM_Module;
44
45 class QVBoxLayout;
46 class QHBoxLayout;
47 class QGridLayout;
48 class QSpacerItem;
49 class QButtonGroup;
50 class QLabel;
51 class QComboBox;
52 class QLineEdit;
53 class QSpinBox;
54 class QPushButton;
55
56 class MULTIPR_GUI;
57
58
59
60 //*****************************************************************************
61 // Class MULTIPR_GUI_Partition1Dlg
62 // Dialog box used for extracting groups from sequential MED file
63 //*****************************************************************************
64
65 class MULTIPR_GUI_Partition1Dlg : public QDialog
66 {
67     Q_OBJECT
68
69 public:
70     MULTIPR_GUI_Partition1Dlg(MULTIPR_GUI* theModule);
71     ~MULTIPR_GUI_Partition1Dlg();
72
73     QButtonGroup* buttonGroupProcess;
74     QPushButton* pushButtonCancel;
75     QPushButton* pushButtonOK;
76     QButtonGroup* buttonGroupSelectMesh;
77     QComboBox* comboBoxSelectMesh;
78     QLabel* textLabelSelectMesh;
79
80 protected slots:
81         void accept();
82         void reject();
83         
84 private:
85         MULTIPR_GUI* mModule;
86
87 };
88
89
90 //*****************************************************************************
91 // Class MULTIPR_GUI_Partition2Dlg
92 // Dialog box used for splitting a group (use MEDSPLITTER)
93 //*****************************************************************************
94
95 class MULTIPR_GUI_Partition2Dlg : public QDialog
96 {
97     Q_OBJECT
98
99 public:
100     MULTIPR_GUI_Partition2Dlg(MULTIPR_GUI* theModule);
101     ~MULTIPR_GUI_Partition2Dlg();
102
103     QButtonGroup* buttonGroupSplitParameters;
104     QLabel* textLabelSelectNbParts;
105     QLabel* textLabelSelectSplitter;
106     QComboBox* comboBoxSelectSplitter;
107     QSpinBox* spinBoxNbParts;
108     QButtonGroup* buttonGroupProcess;
109     QPushButton* pushButtonOK;
110     QPushButton* pushButtonCancel;
111
112 protected slots:
113         void accept();
114         void reject();
115
116 private:
117         MULTIPR_GUI* mModule;
118 };
119
120
121 //*****************************************************************************
122 // Class MULTIPR_GUI_DecimateDlg
123 // Dialog box used for decimating mesh (compute 2 lower resolution: medium and low)
124 //*****************************************************************************
125
126 class MULTIPR_GUI_DecimateDlg : public QDialog
127 {
128     Q_OBJECT
129
130 public:
131     MULTIPR_GUI_DecimateDlg(MULTIPR_GUI* theModule);
132     ~MULTIPR_GUI_DecimateDlg();
133
134     QButtonGroup* buttonGroupSelectField;
135     QLabel* textLabelSelectFieldName;
136     QLabel* textLabelSelectFieldIteration;
137     QComboBox* comboBoxSelectFieldIteration;
138     QComboBox* comboBoxSelectFieldName;
139     QButtonGroup* buttonGroupSelectFilter;
140     QLabel* textLabelSelectFilter;
141     QComboBox* comboBoxSelectFilter;
142     QButtonGroup* buttonGroupParameters;
143     QLabel* textLabelTMed;
144     QLabel* textLabelTLow;
145     QLabel* textLabelRadius;
146     QLabel* textLabelBoxing;
147     QLineEdit* lineEditTMed;
148     QLineEdit* lineEditTLow;
149     QLineEdit* lineEditRadius;
150     QSpinBox* spinBoxBoxing;
151     QButtonGroup* buttonGroupProcess;
152     QPushButton* pushButtonCancel;
153     QPushButton* pushButtonOK;
154         QPushButton* pushButtonThresholdAuto;
155     QPushButton* pushButtonRadiusAuto;
156
157 protected:
158
159 protected slots:
160         void accept();
161         void reject();
162         void OnRadiusAuto();
163         void OnThresholdAuto();
164
165 private:
166         MULTIPR_GUI* mModule;
167
168 };
169
170
171 //*****************************************************************************
172 // Class MULTIPR_GUI_ProgressCallbackDlg
173 //*****************************************************************************
174
175 class MULTIPR_GUI_ProgressCallbackDlg : 
176         public QProgressDialog,
177         public MULTIPR_ProgressCallback
178         
179 {
180         Q_OBJECT
181         
182 public:
183
184         MULTIPR_GUI_ProgressCallbackDlg(QWidget* parent);
185         
186         ~MULTIPR_GUI_ProgressCallbackDlg();
187         
188         virtual void start(const char* pTaskTitle, int pNumStep);
189         
190         virtual void done();
191         
192 protected:
193         
194         virtual void progress(float pPercent);
195 };
196
197
198 #endif // __MULTIPR_GUI_DLG__
199
200
201 // EOF
202