Salome HOME
First executable version
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_EditMeshDlg.h
1 // Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
3 // 
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License as published by the Free Software Foundation; either 
7 // version 2.1 of the License.
8 // 
9 // This library is distributed in the hope that it will be useful 
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 // Lesser General Public License for more details.
13 //
14 // You should have received a copy of the GNU Lesser General Public  
15 // License along with this library; if not, write to the Free Software 
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
17 //
18 // See http://www.salome-platform.org/
19 //
20
21 #ifndef DIALOGBOX_GETMESH_H
22 #define DIALOGBOX_GETMESH_H
23
24 #include "SMESH_SMESHGUI.hxx"
25
26 #include "LightApp_SelectionMgr.h"
27 #include "SUIT_SelectionFilter.h"
28
29 // QT Includes
30 #include <qdialog.h>
31
32 // Open CASCADE Includes
33
34 class QGridLayout;
35 class QButtonGroup;
36 class QGroupBox;
37 class QLabel;
38 class QLineEdit;
39 class QPushButton;
40 class QRadioButton;
41 class SMESHGUI;
42
43 // IDL Headers
44 #include <SALOMEconfig.h>
45 #include CORBA_SERVER_HEADER(SMESH_Mesh)
46
47 //=================================================================================
48 // class    : SMESHGUI_EditMeshDlg
49 // purpose  : 
50 //=================================================================================
51 class SMESHGUI_EXPORT SMESHGUI_EditMeshDlg : public QDialog
52 {
53   Q_OBJECT;
54
55  public:
56   SMESHGUI_EditMeshDlg (SMESHGUI  * theModule,
57                         const char* title,
58                         const char* icon,
59                         int         theAction);
60   ~SMESHGUI_EditMeshDlg();
61
62  private:
63   void Init();
64   void closeEvent (QCloseEvent*);
65   void enterEvent (QEvent*);              /* mouse enter the QWidget */
66   void hideEvent  (QHideEvent*);          /* ESC key */
67
68  private:
69   SMESHGUI*               mySMESHGUI;     /* Current SMESHGUI object */
70   LightApp_SelectionMgr*  mySelectionMgr; /* User shape selection */
71
72   SMESH::SMESH_Mesh_var   myMesh;
73   SUIT_SelectionFilter*   myMeshFilter;
74
75   int myAction;
76
77   // Widgets
78   QButtonGroup* GroupConstructors;
79   QRadioButton* Constructor1;
80
81   QGroupBox* GroupButtons;
82   QPushButton* buttonOk;
83   QPushButton* buttonCancel;
84   QPushButton* buttonApply;
85
86   QGroupBox* GroupMesh;
87   QLabel* TextLabelMesh;
88   QPushButton* SelectButton;
89   QLineEdit* LineEditMesh;
90
91   //protected:
92   QGridLayout* DlgLayout;
93   QGridLayout* GroupConstructorsLayout;
94   QGridLayout* GroupButtonsLayout;
95   QGridLayout* GroupMeshLayout;
96
97  private slots:
98   void ClickOnOk();
99   void ClickOnCancel();
100   void ClickOnApply();
101   void SelectionIntoArgument();
102   void DeactivateActiveDialog();
103   void ActivateThisDialog();
104 };
105
106 #endif // DIALOGBOX_GETMESH_H