+SetAcceptedFileExtensions(
+ const std::string& name, const std::string& extensions
+ )
+{
+ auto i = this->m_Parameters.find( name );
+ if( i != this->m_Parameters.end( ) )
+ {
+ bool is_valid = ( i->second.first == Self::OpenFileName );
+ is_valid |= ( i->second.first == Self::SaveFileName );
+ is_valid |= ( i->second.first == Self::OpenFileNameList );
+ is_valid |= ( i->second.first == Self::SaveFileNameList );
+ if( is_valid )
+ this->m_AcceptedFileExtensions[ name ] = extensions;
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+bool cpPlugins::Interface::Parameters::
+ToXML( TiXmlElement* parent_elem ) const
+{
+ if( parent_elem == NULL )
+ return( false );
+
+ auto pIt = this->m_Parameters.begin( );
+ for( ; pIt != this->m_Parameters.end( ); ++pIt )
+ {
+ TiXmlElement* p = new TiXmlElement( "parameter" );
+ p->SetAttribute( "name", pIt->first.c_str( ) );
+ p->SetAttribute( "value", pIt->second.second.c_str( ) );
+ p->SetAttribute( "type", this->GetTypeAsString( pIt->first ).c_str( ) );
+ parent_elem->LinkEndChild( p );
+
+ } // rof
+ return( true );
+}
+
+// -------------------------------------------------------------------------
+bool cpPlugins::Interface::Parameters::
+FromXML( const TiXmlElement* filter_elem )
+{
+ const TiXmlElement* param = filter_elem->FirstChildElement( "parameter" );
+ bool ret = false;
+ while( param != NULL )
+ {
+ const char* param_name = param->Attribute( "name" );
+ const char* param_type = param->Attribute( "type" );
+ if( param_name != NULL && param_type != NULL )
+ {
+ TParameter value;
+ value.second = param->Attribute( "value" );
+ value.first = Self::GetTypeFromString( param_type );
+ this->m_Parameters[ param_name ] = value;
+
+ } // fi
+ param = param->NextSiblingElement( "parameter" );
+ ret = true;
+
+ } // elihw
+ this->Modified( );
+ return( ret );
+}
+
+// -------------------------------------------------------------------------
+cpPlugins::Interface::Parameters::
+Parameters( )
+ : Superclass( ),
+ m_Process( NULL )
+{
+ this->Clear( );
+}
+
+// -------------------------------------------------------------------------
+cpPlugins::Interface::Parameters::
+~Parameters( )