+// SMESH SMESHGUI : GUI for SMESH component
+//
// Copyright (C) 2005 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
-// modify it under the terms of the GNU Lesser General Public
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
// 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
+// version 2.1 of the License.
+//
+// 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.
+// Lesser General Public License for more details.
//
-// You should have received a copy of the GNU Lesser General Public
+// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+// File : SMESHGUI_EditMeshDlg.h
+// Author : Open CASCADE S.A.S.
+//
-#ifndef DIALOGBOX_GETMESH_H
-#define DIALOGBOX_GETMESH_H
+#ifndef SMESHGUI_EDITMESHDLG_H
+#define SMESHGUI_EDITMESHDLG_H
-#include "LightApp_SelectionMgr.h"
-#include "SUIT_SelectionFilter.h"
+// SMESH includes
+#include "SMESH_SMESHGUI.hxx"
-// QT Includes
-#include <qdialog.h>
+// Qt includes
+#include <QDialog>
-// Open CASCADE Includes
+// OCCT includes
+#include <gp_XYZ.hxx>
+
+// STL includes
+#include <list>
+
+// IDL includes
+#include <SALOMEconfig.h>
+#include CORBA_SERVER_HEADER(SMESH_Mesh)
-class QGridLayout;
-class QButtonGroup;
class QGroupBox;
class QLabel;
class QLineEdit;
class QPushButton;
class QRadioButton;
+class QCheckBox;
+class QListWidget;
class SMESHGUI;
-
-// IDL Headers
-#include <SALOMEconfig.h>
-#include CORBA_SERVER_HEADER(SMESH_Mesh)
+class SMESHGUI_SpinBox;
+class SMESH_Actor;
+class SVTK_Selector;
+class LightApp_SelectionMgr;
+class SUIT_SelectionFilter;
+class TColStd_MapOfInteger;
+
+namespace SMESH
+{
+ struct TIdPreview;
+}
//=================================================================================
// 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);
+public:
+ SMESHGUI_EditMeshDlg( SMESHGUI*, int );
~SMESHGUI_EditMeshDlg();
- private:
- void Init();
- void closeEvent (QCloseEvent*);
- void enterEvent (QEvent*); /* mouse enter the QWidget */
- void hideEvent (QHideEvent*); /* ESC key */
+private:
+ void Init();
+ void closeEvent( QCloseEvent* );
+ void enterEvent( QEvent* ); /* mouse enter the QWidget */
+ void hideEvent( QHideEvent* ); /* ESC key */
+ void keyPressEvent( QKeyEvent* );
+ void onEditGroup();
- private:
- SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */
- LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */
+ void FindGravityCenter( TColStd_MapOfInteger&,
+ std::list<gp_XYZ>& );
+ // add the centers of gravity of ElemsIdMap elements to the GrCentersXYZ list
- SMESH::SMESH_Mesh_var myMesh;
- SUIT_SelectionFilter* myMeshFilter;
+private:
+ SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */
+ LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */
+ SVTK_Selector* mySelector;
+
+ QWidget* myEditCurrentArgument;
- int myAction;
+ SMESH::SMESH_Mesh_var myMesh;
+ SMESH::SMESH_IDSource_var mySubMeshOrGroup;
+ SMESH_Actor* myActor;
+ SUIT_SelectionFilter* myMeshOrSubMeshOrGroupFilter;
- // Widgets
- QButtonGroup* GroupConstructors;
- QRadioButton* Constructor1;
-
- QGroupBox* GroupButtons;
- QPushButton* buttonOk;
- QPushButton* buttonCancel;
- QPushButton* buttonApply;
- QPushButton* buttonHelp;
+ SMESH::TIdPreview* myIdPreview;
- QGroupBox* GroupMesh;
- QLabel* TextLabelMesh;
- QPushButton* SelectButton;
- QLineEdit* LineEditMesh;
+ int myAction;
+ bool myIsBusy;
- //protected:
- QGridLayout* DlgLayout;
- QGridLayout* GroupConstructorsLayout;
- QGridLayout* GroupButtonsLayout;
- QGridLayout* GroupMeshLayout;
-
- QString myHelpFileName;
+ // Widgets
+ QGroupBox* 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;
+ QListWidget* ListCoincident;
+ QPushButton* AddGroupButton;
+ QPushButton* RemoveGroupButton;
+ QCheckBox* SelectAllCB;
+
+ QGroupBox* GroupEdit;
+ QListWidget* ListEdit;
+ QPushButton* AddElemButton;
+ QPushButton* RemoveElemButton;
+ QPushButton* SetFirstButton;
+
+ QString myHelpFileName;
private slots:
- void ClickOnOk();
- void ClickOnCancel();
- void ClickOnApply();
- void ClickOnHelp();
- void SelectionIntoArgument();
- void DeactivateActiveDialog();
- void ActivateThisDialog();
+ void ClickOnOk();
+ void ClickOnCancel();
+ bool ClickOnApply();
+ void ClickOnHelp();
+ void updateControls();
+ void onDetect();
+ void onAddGroup();
+ void onRemoveGroup();
+ void onSelectGroup();
+ void onSelectAll( bool );
+ void onSelectElementFromGroup();
+ void onAddElement();
+ void onRemoveElement();
+ void onSetFirst();
+ void SetEditCurrentArgument();
+ void SelectionIntoArgument();
+ void DeactivateActiveDialog();
+ void ActivateThisDialog();
};
-#endif // DIALOGBOX_GETMESH_H
+#endif // SMESHGUI_EDITMESHDLG_H