Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_EditMeshDlg.h
index a69883fa624e7876bc476f880f614a8bd267e38e..5ea81ec3465efece2745ed6ca40636035cb995d8 100644 (file)
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-#ifndef DIALOGBOX_GETMESH_H
-#define DIALOGBOX_GETMESH_H
+using namespace std;
+
+#ifndef SMESHGUI_EditMeshDlg_H
+#define SMESHGUI_EditMeshDlg_H
+
+#include "SMESH_SMESHGUI.hxx"
 
 #include "LightApp_SelectionMgr.h"
 #include "SUIT_SelectionFilter.h"
@@ -28,6 +32,7 @@
 #include <qdialog.h>
 
 // Open CASCADE Includes
+#include <gp_XYZ.hxx>
 
 class QGridLayout;
 class QButtonGroup;
@@ -36,24 +41,33 @@ class QLabel;
 class QLineEdit;
 class QPushButton;
 class QRadioButton;
+class QCheckBox;
+class QListBox;
 class SMESHGUI;
+class SMESHGUI_SpinBox;
+class SMESH_Actor;
+class SALOME_Actor;
+class SVTK_ViewWindow;
+class SVTK_Selector;
+
+namespace SMESH{
+  struct TIdPreview;
+}
 
 // IDL Headers
 #include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
+#include CORBA_SERVER_HEADER(SMESH_MeshEditor)
 
 //=================================================================================
 // class    : SMESHGUI_EditMeshDlg
 // purpose  : 
 //=================================================================================
-class SMESHGUI_EditMeshDlg : public QDialog
+class SMESHGUI_EXPORT SMESHGUI_EditMeshDlg : public QDialog
 {
   Q_OBJECT;
 
  public:
   SMESHGUI_EditMeshDlg (SMESHGUI  * theModule,
-                       const char* title,
-                       const char* icon,
                        int         theAction);
   ~SMESHGUI_EditMeshDlg();
 
@@ -62,47 +76,90 @@ class SMESHGUI_EditMeshDlg : public QDialog
   void closeEvent (QCloseEvent*);
   void enterEvent (QEvent*);              /* mouse enter the QWidget */
   void hideEvent  (QHideEvent*);          /* ESC key */
+  void keyPressEvent(QKeyEvent*);
+  void onEditGroup();
+
+  void FindGravityCenter(TColStd_MapOfInteger & ElemsIdMap, 
+                        list< gp_XYZ > & GrCentersXYZ);
+  // add the centers of gravity of ElemsIdMap elements to the GrCentersXYZ list
 
  private:
   SMESHGUI*               mySMESHGUI;     /* Current SMESHGUI object */
   LightApp_SelectionMgr*  mySelectionMgr; /* User shape selection */
+  SVTK_Selector*          mySelector;
+  
+  QWidget*                myEditCurrentArgument;
+
+  SMESH::SMESH_Mesh_var     myMesh;
+  SMESH::SMESH_IDSource_var mySubMeshOrGroup;
+  SMESH_Actor*              myActor;
+  SUIT_SelectionFilter*     myMeshOrSubMeshOrGroupFilter;
 
-  SMESH::SMESH_Mesh_var   myMesh;
-  SUIT_SelectionFilter*   myMeshFilter;
+  SMESH::TIdPreview*        myIdPreview;
 
   int myAction;
+  bool myIsBusy;
 
   // Widgets
-  QButtonGroup* GroupConstructors;
-  QRadioButton* Constructor1;
-
-  QGroupBox* GroupButtons;
-  QPushButton* buttonOk;
-  QPushButton* buttonCancel;
-  QPushButton* buttonApply;
-  QPushButton* buttonHelp;
-
-  QGroupBox* GroupMesh;
-  QLabel* TextLabelMesh;
-  QPushButton* SelectButton;
-  QLineEdit* LineEditMesh;
-
+  QButtonGroup*     GroupConstructors;
+  QRadioButton*     RadioButton;
+
+  QGroupBox*        GroupButtons;
+  QPushButton*      buttonOk;
+  QPushButton*      buttonCancel;
+  QPushButton*      buttonApply;
+  QPushButton*      buttonHelp;
+
+  QGroupBox*        GroupMesh;
+  QLabel*           TextLabelName;
+  QPushButton*      SelectMeshButton;
+  QLineEdit*        LineEditMesh;
+
+  QGroupBox*        GroupCoincident;
+  QLabel*           TextLabelTolerance;
+  SMESHGUI_SpinBox* SpinBoxTolerance;
+  QPushButton*      DetectButton;
+  QListBox*         ListCoincident;
+  QPushButton*      AddGroupButton;
+  QPushButton*      RemoveGroupButton;
+  QCheckBox*        SelectAllCB;
+
+  QGroupBox*        GroupEdit;
+  QListBox*         ListEdit;
+  QPushButton*      AddElemButton;
+  QPushButton*      RemoveElemButton;
+  QPushButton*      SetFirstButton;
+    
   //protected:
   QGridLayout* DlgLayout;
   QGridLayout* GroupConstructorsLayout;
   QGridLayout* GroupButtonsLayout;
   QGridLayout* GroupMeshLayout;
+  QGridLayout* GroupCoincidentLayout;
+  QGridLayout* GroupEditLayout;
 
   QString myHelpFileName;
 
  private slots:
   void ClickOnOk();
   void ClickOnCancel();
-  void ClickOnApply();
+  bool ClickOnApply();
   void ClickOnHelp();
-  void SelectionIntoArgument();
-  void DeactivateActiveDialog();
-  void ActivateThisDialog();
+  void updateControls();
+  void onDetect();
+  void onAddGroup();
+  void onRemoveGroup();
+  void onSelectGroup();
+  void onSelectAll(bool isToggled);
+  void onSelectElementFromGroup();
+  void onAddElement();
+  void onRemoveElement();
+  void onSetFirst();
+  void SetEditCurrentArgument();
+  void SelectionIntoArgument() ;
+  void DeactivateActiveDialog() ;
+  void ActivateThisDialog() ;
+
 };
 
-#endif // DIALOGBOX_GETMESH_H
+#endif // SMESHGUI_EditMeshDlg_H