Salome HOME
aa929e2483b3db15b3c29e23b77fe814794686c9
[modules/multipr.git] / src / MULTIPRGUI / MULTIPR_GUI.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.h
6  *
7  * \brief   MULTIPR GUI (QT)
8  *
9  * \author  Olivier LE ROUX - CS, Virtual Reality Dpt
10  * 
11  * \date    01/2007
12  */
13
14 #ifndef __MULTIPR_GUI__
15 #define __MULTIPR_GUI__
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
57 //*****************************************************************************
58 // Class MULTIPR_GUI
59 // Salome Application
60 //*****************************************************************************
61
62 class MULTIPR_GUI: public SalomeApp_Module
63 {
64         Q_OBJECT
65
66 public:
67         MULTIPR_GUI();
68         
69         void    initialize(CAM_Application*);
70         QString engineIOR() const;
71         void    windows(QMap<int, int>&) const;
72         
73         MULTIPR_ORB::MULTIPR_Obj_ptr getMULTIPRObj();
74         SalomeApp_Application* getAppli() const;
75         void selected(QStringList&, const bool);
76         
77         static MULTIPR_ORB::MULTIPR_Gen_ptr InitMULTIPRGen(SalomeApp_Application*);
78         
79         const QStringList& getSelectedParts() const { return mSelectedParts; }
80
81 public slots:
82         bool deactivateModule(SUIT_Study*);
83         bool activateModule(SUIT_Study*);
84
85 protected slots:
86         void OnImportFromMEDFile();
87         void OnPartition1();
88         void OnPartition2();
89         void OnDecimate();
90         void OnSave();
91         
92         void retrieveSelectedParts();
93         
94 protected:
95         virtual CAM_DataModel* createDataModel();
96         
97 protected:
98
99         enum 
100         { 
101                 ACTION_IMPORT_MED = 190,
102                 ACTION_SAVE,
103                 ACTION_SPLIT,
104                 ACTION_DECIMATE
105         };
106         
107 private:
108         QString                      mMEDFileName;
109         QStringList                  mSelectedParts;
110         MULTIPR_ORB::MULTIPR_Obj_ptr mMULTIPRObj;
111   
112 }; // class MULTIPR_GUI
113
114
115 //*****************************************************************************
116 // Class MULTIPR_GUI_DataObject
117 //*****************************************************************************
118
119 class MULTIPR_GUI_DataObject : public LightApp_DataObject
120 {
121 public:
122         MULTIPR_GUI_DataObject(SUIT_DataObject* parent, const char* name);
123         virtual ~MULTIPR_GUI_DataObject();
124         
125         virtual QString entry()   const;
126         virtual QString name()    const;
127         virtual QPixmap icon()    const;
128         virtual QString toolTip() const;
129
130 protected:
131         QString mName;
132 };
133
134
135 //*****************************************************************************
136 // Class MULTIPR_GUI_DataObject_Module
137 //*****************************************************************************
138
139 class MULTIPR_GUI_DataObject_Module : public MULTIPR_GUI_DataObject, public LightApp_ModuleObject
140 {
141 public:
142         MULTIPR_GUI_DataObject_Module(CAM_DataModel* dm, SUIT_DataObject* parent, const char* name);
143         virtual ~MULTIPR_GUI_DataObject_Module();
144         
145         virtual QString entry()   const;
146         virtual QString name()    const;
147         virtual QPixmap icon()    const;
148         virtual QString toolTip() const;
149
150 private:
151 };
152
153
154 //*****************************************************************************
155 // Class MULTIPR_GUI_DataObject_Mesh
156 //*****************************************************************************
157
158 class MULTIPR_GUI_DataObject_Mesh : public MULTIPR_GUI_DataObject
159 {
160 public:
161         MULTIPR_GUI_DataObject_Mesh(SUIT_DataObject* parent, const char* name);
162         virtual ~MULTIPR_GUI_DataObject_Mesh();
163         
164         virtual QString entry()   const;
165         virtual QPixmap icon()    const;
166         virtual QString toolTip() const;
167
168 private:
169 };
170
171
172 //*****************************************************************************
173 // Class MULTIPR_GUI_DataObject_Part
174 //*****************************************************************************
175
176 class MULTIPR_GUI_DataObject_Part : public MULTIPR_GUI_DataObject
177 {
178 public:
179         MULTIPR_GUI_DataObject_Part(SUIT_DataObject* parent, const char* name, const char* info);
180         virtual ~MULTIPR_GUI_DataObject_Part();
181         
182         virtual QString entry()   const;
183         virtual QPixmap icon()    const;
184         virtual QString toolTip() const;
185
186 protected:
187         QString mMeshName;
188         int     mId;
189         QString mPath;
190         QString mMEDFileName;
191         QString mTooltip;
192 };
193
194
195 //*****************************************************************************
196 // Class MULTIPR_GUI_DataObject_Resolution
197 //*****************************************************************************
198
199 class MULTIPR_GUI_DataObject_Resolution : public MULTIPR_GUI_DataObject_Part
200 {
201 public:
202         MULTIPR_GUI_DataObject_Resolution(SUIT_DataObject* parent, const char* name, const char* info);
203         virtual ~MULTIPR_GUI_DataObject_Resolution();
204         
205         virtual QString entry()   const;
206         virtual QPixmap icon()    const;
207         virtual QString toolTip() const;
208
209 private:
210 };
211
212
213 //*****************************************************************************
214 // Class MULTIPR_GUI_DataModel
215 //*****************************************************************************
216
217 class MULTIPR_GUI_DataModel : public LightApp_DataModel
218 {
219 public:
220         MULTIPR_GUI_DataModel(CAM_Module*);
221         virtual ~MULTIPR_GUI_DataModel();
222
223 protected:
224         virtual void build();
225         
226 private:
227         MULTIPR_GUI* mMULTIPR_GUI;
228 };
229
230
231 #endif // __MULTIPR_GUI__
232
233
234 // EOF
235