+//================================================================================
+/*!
+ * \brief Set types of elements available for search
+ */
+//================================================================================
+
+void SMESHGUI_FindElemByPointDlg::setTypes(SMESH::array_of_ElementType_var & types)
+{
+ myElemTypeCombo->blockSignals(true);
+ myElemTypeCombo->clear();
+ int nbTypes = 0, hasNodes = 0;
+ for ( int i = 0; i < types->length(); ++i )
+ {
+ switch ( types[i] ) {
+ case SMESH::NODE:
+ myElemTypeCombo->addItem( tr( "MEN_NODE" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::NODE ));
+ hasNodes = 1;
+ break;
+ case SMESH::EDGE:
+ myElemTypeCombo->addItem( tr( "MEN_EDGE" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::EDGE ));
+ break;
+ case SMESH::FACE:
+ myElemTypeCombo->addItem( tr( "MEN_FACE" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::FACE ));
+ break;
+ case SMESH::VOLUME:
+ myElemTypeCombo->addItem( tr( "MEN_VOLUME_3D" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::VOLUME ));
+ break;
+ case SMESH::ELEM0D:
+ myElemTypeCombo->addItem( tr( "MEN_ELEM0D" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::ELEM0D ));
+ break;
+ case SMESH::BALL:
+ myElemTypeCombo->addItem( tr( "MEN_BALL" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::BALL ));
+ break;
+ default:;
+ }
+ }
+ if ( nbTypes - hasNodes > 1 )
+ {
+ myElemTypeCombo->addItem( tr( "MEN_ALL" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::ALL ));
+ }
+ if ( !hasNodes && nbTypes > 0 )
+ {
+ myElemTypeCombo->addItem( tr( "MEN_NODE" ));
+ myElemTypeCombo->setId( nbTypes++, int( SMESH::NODE ));
+ }
+ myElemTypeCombo->blockSignals(false);
+}
+