Salome HOME
PAL8769: Limitation to give values in Spin boxes. Now coordinates and displacements...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_CreatePatternDlg.h
1 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,\r
2 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS \r
3 // \r
4 //  This library is free software; you can redistribute it and/or \r
5 //  modify it under the terms of the GNU Lesser General Public \r
6 //  License as published by the Free Software Foundation; either \r
7 //  version 2.1 of the License. \r
8 // \r
9 //  This library is distributed in the hope that it will be useful, \r
10 //  but WITHOUT ANY WARRANTY; without even the implied warranty of \r
11 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU \r
12 //  Lesser General Public License for more details. \r
13 // \r
14 //  You should have received a copy of the GNU Lesser General Public \r
15 //  License along with this library; if not, write to the Free Software \r
16 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA \r
17 // \r
18 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org \r
19 //\r
20 //\r
21 //\r
22 //  File   : SMESHGUI_CreatePatternDlg.h\r
23 //  Author : Sergey LITONIN\r
24 //  Module : SMESH\r
25 \r
26 \r
27 #ifndef SMESHGUI_CreatePatternDlg_H\r
28 #define SMESHGUI_CreatePatternDlg_H\r
29 \r
30 #include <qdialog.h>\r
31 \r
32 // IDL Headers\r
33 #include <SALOMEconfig.h>\r
34 #include CORBA_SERVER_HEADER(GEOM_Gen)\r
35 #include CORBA_SERVER_HEADER(SMESH_Mesh)\r
36 #include CORBA_SERVER_HEADER(SMESH_Pattern)\r
37 \r
38 class SMESHGUI_PatternWidget;\r
39 class QCloseEvent;\r
40 class QFrame;\r
41 class QLineEdit;\r
42 class QPushButton;\r
43 class SALOME_Selection;\r
44 class QRadioButton;\r
45 class QCheckBox;\r
46 class QButtonGroup;\r
47 class QLabel;\r
48 \r
49 /*\r
50   Class       : SMESHGUI_CreatePatternDlg\r
51   Description : Dialog to specify filters for VTK viewer\r
52 */\r
53 \r
54 class SMESHGUI_CreatePatternDlg : public QDialog\r
55 {\r
56   Q_OBJECT\r
57 \r
58 public:\r
59   \r
60   enum { Type_2d, Type_3d };\r
61 \r
62 public:\r
63                               SMESHGUI_CreatePatternDlg( QWidget*,\r
64                                                          SALOME_Selection*,\r
65                                                          const int,\r
66                                                          const char* = 0 );\r
67   virtual                     ~SMESHGUI_CreatePatternDlg();\r
68 \r
69   void                        Init( SALOME_Selection*, const int );\r
70   QString                     GetPatternName() const;\r
71   SMESH::SMESH_Pattern_ptr    GetPattern();\r
72   void                        SetMesh( SMESH::SMESH_Mesh_ptr );\r
73   \r
74 signals:\r
75 \r
76   void                        NewPattern();\r
77   void                        Close();\r
78     \r
79 private:\r
80 \r
81   void                        closeEvent( QCloseEvent* e ) ;\r
82   void                        enterEvent ( QEvent * ) ;            \r
83   \r
84 private slots:\r
85 \r
86   void                        onOk();\r
87   void                        onSave();\r
88   void                        onClose();\r
89 \r
90   void                        onDeactivate();\r
91 \r
92   void                        onSelectionDone();\r
93   void                        onTypeChanged( int );\r
94   void                        onProject( bool );\r
95   void                        onSelBtnClicked();\r
96 \r
97 private:\r
98 \r
99   QFrame*                     createButtonFrame( QWidget* );\r
100   QFrame*                     createMainFrame  ( QWidget* );\r
101   void                        displayPreview();\r
102   void                        erasePreview();\r
103   void                        activateSelection();\r
104   QString                     autoExtension( const QString& theFileName ) const;\r
105   bool                        isValid();\r
106   bool                        loadFromObject( const bool = true );\r
107   QString                     getDefaultName() const;\r
108   GEOM::GEOM_Object_ptr       getGeom( SALOMEDS::SObject_ptr );\r
109 \r
110 private:\r
111 \r
112   QPushButton*                myOkBtn;\r
113   QPushButton*                mySaveBtn;\r
114   QPushButton*                myCloseBtn;\r
115 \r
116   QButtonGroup*               myTypeGrp;\r
117   QRadioButton*               mySwitch2d;\r
118   QRadioButton*               mySwitch3d;\r
119   QRadioButton*               mySwitchSMESH_Pattern3d;\r
120 \r
121   QLineEdit*                  myMeshEdit;\r
122   QLineEdit*                  myName;\r
123 \r
124   SMESHGUI_PatternWidget*     myPicture2d;\r
125   \r
126   QCheckBox*                  myProjectChk;\r
127     \r
128   SALOME_Selection*           mySelection;\r
129   int                         myNbPoints;\r
130   int                         myType;\r
131 \r
132   SMESH::SMESH_Mesh_var       myMesh;\r
133   SMESH::SMESH_subMesh_var    mySubMesh;\r
134   GEOM::GEOM_Object_var       myGeomObj;\r
135 \r
136   SMESH::SMESH_Pattern_var    myPattern;\r
137   bool                        myIsLoaded;\r
138 };\r
139 \r
140 #endif\r
141 \r
142 \r
143 \r
144 \r
145 \r
146 \r
147 \r
148 \r
149 \r
150 \r
151 \r
152 \r
153 \r
154 \r
155 \r
156 \r
157 \r