Salome HOME
yfr : Merge V1.2
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_AddSubMeshDlg.h
1 //  File      : SMESHGUI_AddSubMeshDlg.h
2 //  Created   : Mon May 27 10:23:17 2002
3 //  Author    : Nicolas REJNERI
4
5 //  Project   : SALOME
6 //  Module    : SMESH
7 //  Copyright : Open CASCADE 2002
8 //  $Header$
9
10 #ifndef DIALOGBOX_ADD_SUBMESH_H
11 #define DIALOGBOX_ADD_SUBMESH_H
12
13 #include "SALOME_Selection.h"
14 #include "SALOME_TypeFilter.hxx"
15 #include "SMESH_TypeFilter.hxx"
16
17 // QT Includes
18 #include <qvariant.h>
19 #include <qdialog.h>
20
21 // IDL Headers
22 #include <SALOMEconfig.h>
23 #include CORBA_SERVER_HEADER(GEOM_Gen)
24 #include CORBA_SERVER_HEADER(GEOM_Shape)
25 #include CORBA_SERVER_HEADER(SMESH_Mesh)
26
27 class QVBoxLayout; 
28 class QHBoxLayout; 
29 class QGridLayout; 
30 class QButtonGroup;
31 class QGroupBox;
32 class QLabel;
33 class QLineEdit;
34 class QPushButton;
35 class QRadioButton;
36 class SMESHGUI;
37
38
39 //=================================================================================
40 // class    : SMESHGUI_AddSubMeshDlg
41 // purpose  :
42 //=================================================================================
43 class SMESHGUI_AddSubMeshDlg : public QDialog
44
45     Q_OBJECT
46
47 public:
48     SMESHGUI_AddSubMeshDlg( QWidget* parent = 0, const char* name = 0, SALOME_Selection* Sel = 0, bool modal = FALSE, WFlags fl = 0 );
49     ~SMESHGUI_AddSubMeshDlg();
50
51 private:
52
53     void Init( SALOME_Selection* Sel ) ;
54     void closeEvent( QCloseEvent* e ) ;
55     void enterEvent ( QEvent * ) ;
56
57     SMESHGUI*                     mySMESHGUI ;
58     SALOME_Selection*             mySelection ;
59              
60     GEOM::GEOM_Shape_var                myGeomShape ;
61     int                           myConstructorId ; 
62     QLineEdit*                    myEditCurrentArgument; 
63
64     SMESH::SMESH_Mesh_var         myMesh;
65     SMESH::SMESH_subMesh_var      mySubMesh;
66
67     QString                       myNameSubMesh ;
68
69     Handle(SALOME_TypeFilter)     myGeomFilter;
70     Handle(SMESH_TypeFilter)      myMeshFilter;
71     Handle(SMESH_TypeFilter)      myHypothesisFilter;
72     Handle(SMESH_TypeFilter)      myAlgorithmFilter;
73
74     SALOME_ListIO                 HypoList;
75     SALOME_ListIO                 AlgoList;
76
77     bool                          myOkHypothesis;
78     bool                          myOkAlgorithm;
79
80     SMESH::SMESH_Hypothesis_var   myHypothesis;
81     SMESH::SMESH_Hypothesis_var   myAlgorithm;
82
83     QButtonGroup* GroupConstructors;
84     QRadioButton* Constructor1;
85     QGroupBox*    GroupButtons;
86     QPushButton*  buttonOk;
87     QPushButton*  buttonCancel;
88     QPushButton*  buttonApply;
89     QGroupBox*    GroupC1;
90     QLabel*       TextLabel_NameMesh ;
91     QLineEdit*    LineEdit_NameMesh ;
92     QLabel*       TextLabelC1A1;
93     QPushButton*  SelectButtonC1A1;
94     QLineEdit*    LineEditC1A1;
95     QLabel*       TextLabelC1A2;
96     QPushButton*  SelectButtonC1A2;
97     QLineEdit*    LineEditC1A2;
98
99     QLabel*       TextLabelC1A1Hyp;
100     QPushButton*  SelectButtonC1A1Hyp;
101     QLineEdit*    LineEditC1A1Hyp;
102
103     QLabel*       TextLabelC1A1Algo;
104     QPushButton*  SelectButtonC1A1Algo;
105     QLineEdit*    LineEditC1A1Algo;
106
107 private slots:
108
109     void ConstructorsClicked(int constructorId);
110     void ClickOnOk();
111     void ClickOnCancel();
112     void ClickOnApply();
113     void SetEditCurrentArgument() ;
114     void SelectionIntoArgument() ;
115     void DeactivateActiveDialog() ;
116     void ActivateThisDialog() ;
117     void TextChangedInLineEdit(const QString& newText) ;
118
119 protected:
120     QGridLayout* SMESHGUI_AddSubMeshDlgLayout;
121     QGridLayout* GroupConstructorsLayout;
122     QGridLayout* GroupButtonsLayout;
123     QGridLayout* GroupC1Layout;
124 };
125
126 #endif // DIALOGBOX_ADD_SUBMESH_H