Salome HOME
*** empty log message ***
[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
26 #include <SALOMEconfig.h>
27 #include CORBA_CLIENT_HEADER(MULTIPR)
28
29 #include "MULTIPR_ProgressCallback.hxx"
30
31
32 //*****************************************************************************
33 // Pre-declaration
34 //*****************************************************************************
35
36 class SalomeApp_Application;
37 class CAM_Module;
38
39 class QVBoxLayout;
40 class QHBoxLayout;
41 class QGridLayout;
42 class QSpacerItem;
43 class QButtonGroup;
44 class QLabel;
45 class QComboBox;
46 class QLineEdit;
47 class QSpinBox;
48 class QPushButton;
49
50
51 //*****************************************************************************
52 // Class MULTIPR_GUI
53 // Salome Application
54 //*****************************************************************************
55
56 class MULTIPR_GUI: public SalomeApp_Module
57 {
58         Q_OBJECT
59
60 public:
61
62         MULTIPR_GUI();
63         
64         void initialize(CAM_Application*);
65         
66         QString engineIOR() const;
67         
68         void windows(QMap<int, int>&) const;
69         
70         MULTIPR_ORB::MULTIPR_Obj_ptr getMULTIPRObj();
71         
72         SalomeApp_Application* getAppli() const;
73         
74         void selected(QStringList&, const bool);
75         
76         static MULTIPR_ORB::MULTIPR_Gen_ptr InitMULTIPRGen(SalomeApp_Application*);
77         
78         const QStringList& getSelectedParts() const { return mSelectedParts; }
79
80 public slots:
81
82         bool deactivateModule(SUIT_Study*);
83         bool activateModule(SUIT_Study*);
84
85 protected slots:
86
87         void OnImportFromMEDFile();
88         void OnPartition1();
89         void OnPartition2();
90         void OnDecimate();
91         void OnRemove();
92         void OnSave();
93         
94 protected:
95
96         virtual CAM_DataModel* createDataModel();
97         
98         void retrieveSelectedParts();
99         bool isPartExist(const char* partName);
100         bool removeLowerResolution();
101         
102 protected:
103
104         enum 
105         { 
106                 ACTION_IMPORT_MED = 190,
107                 ACTION_SAVE,
108                 ACTION_REMOVE,
109                 ACTION_SPLIT,
110                 ACTION_DECIMATE
111         };
112         
113 private:
114
115         QString                      mMEDFileName;
116         QStringList                  mSelectedParts;
117         MULTIPR_ORB::MULTIPR_Obj_ptr mMULTIPRObj;
118   
119 }; // class MULTIPR_GUI
120
121
122 //*****************************************************************************
123 // Class MULTIPR_GUI_DataObject
124 // To use Object Browser
125 //*****************************************************************************
126
127 class MULTIPR_GUI_DataObject : public LightApp_DataObject
128 {
129 public:
130
131         MULTIPR_GUI_DataObject(SUIT_DataObject* parent, const char* name);
132         virtual ~MULTIPR_GUI_DataObject();
133         
134         virtual QString entry()   const;
135         virtual QString name()    const;
136         virtual QPixmap icon()    const;
137         virtual QString toolTip() const;
138
139 protected:
140
141         QString mName;
142 };
143
144
145 //*****************************************************************************
146 // Class MULTIPR_GUI_DataObject_Module
147 //*****************************************************************************
148
149 class MULTIPR_GUI_DataObject_Module : public MULTIPR_GUI_DataObject, public LightApp_ModuleObject
150 {
151 public:
152
153         MULTIPR_GUI_DataObject_Module(CAM_DataModel* dm, SUIT_DataObject* parent, const char* name);
154         virtual ~MULTIPR_GUI_DataObject_Module();
155         
156         virtual QString entry()   const;
157         virtual QString name()    const;
158         virtual QPixmap icon()    const;
159         virtual QString toolTip() const;
160 };
161
162
163 //*****************************************************************************
164 // Class MULTIPR_GUI_DataObject_Mesh
165 //*****************************************************************************
166
167 class MULTIPR_GUI_DataObject_Mesh : public MULTIPR_GUI_DataObject
168 {
169 public:
170
171         MULTIPR_GUI_DataObject_Mesh(SUIT_DataObject* parent, const char* name);
172         virtual ~MULTIPR_GUI_DataObject_Mesh();
173         
174         virtual QString entry()   const;
175         virtual QPixmap icon()    const;
176         virtual QString toolTip() const;
177 };
178
179
180 //*****************************************************************************
181 // Class MULTIPR_GUI_DataObject_Part
182 //*****************************************************************************
183
184 class MULTIPR_GUI_DataObject_Part : public MULTIPR_GUI_DataObject
185 {
186 public:
187
188         MULTIPR_GUI_DataObject_Part(SUIT_DataObject* parent, const char* name, const char* info);
189         virtual ~MULTIPR_GUI_DataObject_Part();
190         
191         virtual QString entry()   const;
192         virtual QPixmap icon()    const;
193         virtual QString toolTip() const;
194
195 protected:
196
197         QString mMeshName;
198         int     mId;
199         QString mPath;
200         QString mMEDFileName;
201         QString mTooltip;
202 };
203
204
205 //*****************************************************************************
206 // Class MULTIPR_GUI_DataObject_Resolution
207 //*****************************************************************************
208
209 class MULTIPR_GUI_DataObject_Resolution : public MULTIPR_GUI_DataObject_Part
210 {
211 public:
212
213         MULTIPR_GUI_DataObject_Resolution(SUIT_DataObject* parent, const char* name, const char* info);
214         virtual ~MULTIPR_GUI_DataObject_Resolution();
215         
216         virtual QString entry()   const;
217         virtual QPixmap icon()    const;
218         virtual QString toolTip() const;
219 };
220
221
222 //*****************************************************************************
223 // Class MULTIPR_GUI_DataModel
224 //*****************************************************************************
225
226 class MULTIPR_GUI_DataModel : public LightApp_DataModel
227 {
228 public:
229
230         MULTIPR_GUI_DataModel(CAM_Module*);
231         virtual ~MULTIPR_GUI_DataModel();
232
233 protected:
234
235         virtual void build();
236         
237 private:
238
239         MULTIPR_GUI* mMULTIPR_GUI;
240 };
241
242
243 #endif // __MULTIPR_GUI__
244
245
246 // EOF
247