+//=================================================================================
+// class : SMESHGUI_3TypesSelector
+// purpose : A widget used to select both nodes, edges and faces for
+// Extrusion and Revolution operations
+//=================================================================================
+
+class SMESHGUI_EXPORT SMESHGUI_3TypesSelector : public QWidget
+{
+ Q_OBJECT
+
+ public:
+
+ SMESHGUI_3TypesSelector( QWidget * parent = 0 );
+ ~SMESHGUI_3TypesSelector();
+
+ void Clear();
+ void SetEnabled( bool enable, SMESH::ElementType type );
+ bool IsAnythingSelected( SMESH::ElementType type = SMESH::ALL );
+ SMESH::ElementType GetSelected( SMESH::ListOfIDSources & nodes,
+ SMESH::ListOfIDSources & edges,
+ SMESH::ListOfIDSources & faces );
+ SMESH::SMESH_Mesh_var GetMesh() { return myMesh; }
+ SMESH_Actor* GetActor() { return myActor; }
+ Handle(SALOME_InteractiveObject) GetIO() { return myIO; }
+ QButtonGroup* GetButtonGroup() { return mySelectBtnGrp; }
+
+ signals:
+
+ void selectionChanged();
+
+ private slots:
+
+ void selectionIntoArgument();
+ void onTextChange( const QString& );
+ void onSelectMesh( bool on );
+ void setFilters();
+ void onSelectType( int iType );
+
+ private:
+
+ void addTmpIdSource( SMESH::smIdType_array_var& ids,
+ int iType, int index);
+
+ QGroupBox* myGroups [3];
+ QLabel* myLabel [3];
+ QLineEdit* myLineEdit [3];
+ QCheckBox* myMeshChk [3];
+ QPushButton* myFilterBtn[3];
+ QButtonGroup* mySelectBtnGrp;
+ SMESHGUI_FilterDlg* myFilterDlg;
+ SUIT_SelectionFilter* myFilter [3];
+ SMESHGUI_IdValidator* myIdValidator;
+
+ bool myBusy;
+ SMESH::SMESH_Mesh_var myMesh;
+ SMESH_Actor* myActor;
+ Handle(SALOME_InteractiveObject) myIO;
+ SMESH::ListOfIDSources_var myIDSource[3];
+ QList<SMESH::IDSource_wrap> myTmpIDSourceList;
+
+ LightApp_SelectionMgr* mySelectionMgr;
+ SVTK_Selector* mySelector;
+};