-// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
-// This library is distributed in the hope that it will be useful
+// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
+
+// SMESH SMESHGUI : GUI for SMESH component
+// File : SMESHGUI_AddMeshElementDlg.h
+// Author : Nicolas REJNERI, Open CASCADE S.A.S.
//
-#ifndef DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
-#define DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
+#ifndef SMESHGUI_ADDQUADRATICELEMENTDLG_H
+#define SMESHGUI_ADDQUADRATICELEMENTDLG_H
+
+// SMESH includes
+#include "SMESH_SMESHGUI.hxx"
+#include "SMDSAbs_ElementType.hxx"
-#include "LightApp_SelectionMgr.h"
+// Qt includes
+#include <QDialog>
-// QT Includes
-#include <qdialog.h>
-#include <qtable.h>
+// IDL includes
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
-class QButtonGroup;
+class QComboBox;
+class QFrame;
class QGroupBox;
+class QLabel;
class QLineEdit;
class QPushButton;
class QRadioButton;
class QCheckBox;
-class QTable;
+class QTableWidget;
class SMESHGUI;
class SMESH_Actor;
class SVTK_Selector;
+class LightApp_SelectionMgr;
-namespace SMESH{
+namespace SMESH
+{
struct TElementSimulation;
}
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
-
-enum { QUAD_EDGE, QUAD_TRIANGLE, QUAD_QUADRANGLE, QUAD_TETRAHEDRON, QUAD_PYRAMID, QUAD_PENTAHEDRON, QUAD_HEXAHEDRON };
-
//=================================================================================
// class : SMESHGUI_AddQuadraticElementDlg
// purpose :
//=================================================================================
-class SMESHGUI_AddQuadraticElementDlg : public QDialog
+class SMESHGUI_EXPORT SMESHGUI_AddQuadraticElementDlg : public QDialog
{
- Q_OBJECT
+ Q_OBJECT
public:
- SMESHGUI_AddQuadraticElementDlg( SMESHGUI* theModule,
- const int theType,
- const char* = 0,
- bool modal = FALSE, WFlags fl = 0 );
- ~SMESHGUI_AddQuadraticElementDlg();
-
+ SMESHGUI_AddQuadraticElementDlg( SMESHGUI*, const SMDSAbs_EntityType );
+ ~SMESHGUI_AddQuadraticElementDlg();
+
private:
- void Init ();
- void closeEvent (QCloseEvent*);
- void hideEvent (QHideEvent*); /* ESC key */
- void enterEvent (QEvent*); /* mouse enter the QWidget */
- void displaySimulation();
- void UpdateTable( bool theConersValidity = true );
- bool IsValid();
-
- SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */
- LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */
- int myNbCorners; /* The required number of corners */
- bool myBusy;
- SVTK_Selector* mySelector;
-
- SMESH::SMESH_Mesh_var myMesh;
- SMESH_Actor* myActor;
- SMESH::TElementSimulation* mySimulation;
-
- int myType;
- bool myIsEditCorners;
-
- QButtonGroup* GroupConstructors;
- QRadioButton* myRadioButton1;
+ typedef QList<SMESH::SMESH_GroupBase_var> GrpList;
- QGroupBox* GroupArguments;
- QLineEdit* myCornerNodes;
- QPushButton* mySelectButton;
- QTable* myTable;
- QCheckBox* myReverseCB;
+ void Init();
+ void enterEvent( QEvent* ); /* mouse enter the QWidget */
+ void keyPressEvent( QKeyEvent* );
+ void displaySimulation();
+ void UpdateTable( bool = true );
+ bool IsValid();
+ void updateButtons();
- QGroupBox* GroupButtons;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
- QPushButton* buttonApply;
- QPushButton * buttonHelp;
-
- QString myHelpFileName;
-
-private slots:
+ bool isValid();
- void onTextChange(const QString&);
- void onCellTextChange(int, int);
- void onReverse( int );
- void onCellDoubleClicked(int, int, int, const QPoint&);
+ SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */
+ LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */
+ int myNbCorners; /* The required number of corners */
+ int myNbMidFaceNodes;
+ int myNbCenterNodes;
+ bool myBusy;
+ SVTK_Selector* mySelector;
- void ClickOnOk();
- void ClickOnCancel();
- void ClickOnApply();
- void ClickOnHelp();
- void SetEditCorners() ;
- void SelectionIntoArgument() ;
- void DeactivateActiveDialog() ;
- void ActivateThisDialog() ;
-};
-
-class SMESHGUI_IdEditItem: public QTableItem
-{
-public:
- SMESHGUI_IdEditItem(QTable* table, EditType et, const QString& text ):
- QTableItem(table, et, text) {};
- ~SMESHGUI_IdEditItem() {};
+ SMESH::SMESH_Mesh_var myMesh;
+ SMESH_Actor* myActor;
+ SMESH::TElementSimulation* mySimulation;
+ QString myEntry;
+ GrpList myGroups;
+
+ SMDSAbs_EntityType myGeomType;
+ QLineEdit* myCurrentLineEdit;
+
+ QGroupBox* GroupConstructors;
+ QRadioButton* myRadioButton1;
+
+ QGroupBox* GroupArguments;
+ QPushButton* myCornerSelectButton;
+ QLineEdit* myCornerNodes;
+ QLabel* myMidFaceLabel;
+ QPushButton* myMidFaceSelectButton;
+ QLineEdit* myMidFaceNodes;
+ QLabel* myCenterLabel;
+ QPushButton* myCenterSelectButton;
+ QLineEdit* myCenterNode;
+ QTableWidget* myTable;
+ QCheckBox* myReverseCB;
+
+ QGroupBox* GroupGroups;
+ QLabel* TextLabel_GroupName;
+ QComboBox* ComboBox_GroupName;
+
+ QGroupBox* GroupButtons;
+ QPushButton* buttonOk;
+ QPushButton* buttonCancel;
+ QPushButton* buttonApply;
+ QPushButton* buttonHelp;
+
+ QString myHelpFileName;
+
+protected slots:
+ virtual void reject();
- QWidget* createEditor() const;
+private slots:
+ void onTextChange( const QString& );
+ void onCellTextChange( int, int );
+ void onReverse( int );
+ void onCellDoubleClicked( int, int );
+
+ void ClickOnOk();
+ bool ClickOnApply();
+ void ClickOnHelp();
+ void SetCurrentSelection();
+ void SelectionIntoArgument();
+ void DeactivateActiveDialog();
+ void ActivateThisDialog();
};
-
-#endif // DIALOGBOX_ADD_QUADRATIC_ELEMENT_H
+#endif // SMESHGUI_ADDQUADRATICELEMENTDLG_H