X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_ExtrusionAlongPathDlg.h;fp=src%2FSMESHGUI%2FSMESHGUI_ExtrusionAlongPathDlg.h;h=951dbb3ef30e23abb7eb3a2ac5f8c2b3853a06a7;hb=e9962a2562c58286d8f3316fc1d3859f98212a1b;hp=0000000000000000000000000000000000000000;hpb=76e859fd8db64bec866e61c70b286910cdc185d9;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h new file mode 100644 index 000000000..951dbb3ef --- /dev/null +++ b/src/SMESHGUI/SMESHGUI_ExtrusionAlongPathDlg.h @@ -0,0 +1,156 @@ +// SMESH SMESHGUI : GUI for SMESH component +// +// Copyright (C) 2003 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 +// 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, +// 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. +// +// 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 +// +// See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// +// +// +// File : SMESHGUI_ExtrusionAlongPathDlg.h +// Author : Vadim SANDLER +// Module : SMESH +// $Header: + +#ifndef DIALOGBOX_EXTRUSION_PATH_H +#define DIALOGBOX_EXTRUSION_PATH_H + +#include "SALOME_Selection.h" +#include "SMESH_LogicalFilter.hxx" +#include "SMESH_TypeFilter.hxx" +// QT Includes +#include + +class QButtonGroup; +class QRadioButton; +class QGroupBox; +class QLabel; +class QToolButton; +class QLineEdit; +class QCheckBox; +class QListBox; +class QPushButton; +class SMESHGUI_SpinBox; +class SMESHGUI; +class SMESH_Actor; + +// IDL Headers +#include +#include CORBA_SERVER_HEADER(SMESH_Mesh) + +//================================================================================= +// class : SMESHGUI_ExtrusionAlongPathDlg +// purpose : +//================================================================================= +class SMESHGUI_ExtrusionAlongPathDlg : public QDialog +{ + Q_OBJECT + + class SetBusy { + public: + SetBusy( SMESHGUI_ExtrusionAlongPathDlg* _dlg ) { myDlg = _dlg; myDlg->myBusy = true; } + ~SetBusy() { myDlg->myBusy = false; } + private: + SMESHGUI_ExtrusionAlongPathDlg* myDlg; + }; + friend class SetBusy; + +public: + SMESHGUI_ExtrusionAlongPathDlg( QWidget* parent = 0, SALOME_Selection* Sel = 0, bool modal = FALSE ); + ~SMESHGUI_ExtrusionAlongPathDlg(); + + bool eventFilter( QObject* object, QEvent* event ); + +protected slots: + void reject(); + +private: + void Init( bool ResetControls = true ) ; + void enterEvent ( QEvent * ) ; /* mouse enter the QWidget */ + int GetConstructorId(); + void SetEditCurrentArgument( QToolButton* button ); + + SMESHGUI* mySMESHGUI ; /* Current SMESHGUI object */ + SALOME_Selection* mySelection ; /* User shape selection */ + QWidget* myEditCurrentArgument; /* Current argument */ + + bool myBusy; + SMESH::SMESH_IDSource_var myIDSource; + SMESH::SMESH_Mesh_var myMesh; + SMESH_Actor* myMeshActor; + SMESH::SMESH_Mesh_var myPathMesh; + GEOM::GEOM_Object_var myPathShape; + Handle(SMESH_LogicalFilter) myElementsFilter; + Handle(SMESH_TypeFilter) myPathMeshFilter; + int myType; + + // widgets + QButtonGroup* ElementsTypeGrp; + QRadioButton* Elements1dRB; + QRadioButton* Elements2dRB; + QGroupBox* ArgumentsGrp; + QLabel* ElementsLab; + QToolButton* SelectElementsButton; + QLineEdit* ElementsLineEdit; + QCheckBox* MeshCheck; + QGroupBox* PathGrp; + QLabel* PathMeshLab; + QToolButton* SelectPathMeshButton; + QLineEdit* PathMeshLineEdit; + QLabel* PathShapeLab; + QToolButton* SelectPathShapeButton; + QLineEdit* PathShapeLineEdit; + QLabel* StartPointLab; + QToolButton* SelectStartPointButton; + QLineEdit* StartPointLineEdit; + QCheckBox* AnglesCheck; + QGroupBox* AnglesGrp; + QListBox* AnglesList; + QToolButton* AddAngleButton; + QToolButton* RemoveAngleButton; + SMESHGUI_SpinBox* AngleSpin; + QCheckBox* BasePointCheck; + QGroupBox* BasePointGrp; + QToolButton* SelectBasePointButton; + QLabel* XLab; + SMESHGUI_SpinBox* XSpin; + QLabel* YLab; + SMESHGUI_SpinBox* YSpin; + QLabel* ZLab; + SMESHGUI_SpinBox* ZSpin; + QGroupBox* ButtonsGrp; + QPushButton* OkButton; + QPushButton* ApplyButton; + QPushButton* CloseButton; + +private slots: + void TypeChanged( int type ); + void ClickOnOk(); + bool ClickOnApply(); + void SetEditCurrentArgument(); + void SelectionIntoArgument(); + void DeactivateActiveDialog(); + void ActivateThisDialog(); + void onTextChange(const QString&); + void onSelectMesh(); + void onAnglesCheck(); + void onBasePointCheck(); + void OnAngleAdded(); + void OnAngleRemoved(); +}; + +#endif // DIALOGBOX_EXTRUSION_PATH_H