// -------------------------------------------------------------------------
#define cpPlugins_BaseObjects_Parameters_Configure_Code( Y ) \
void cpPlugins::BaseObjects::Parameters:: \
- ConfigureAs##Y( const std::string& name ) \
- { this->_Configure< Y >( name ); } \
+ ConfigureAs##Y( const std::string& name, const T##Y& init ) \
+ { \
+ this->_Configure< Y >( name ); \
+ this->Set##Y( name, init ); \
+ } \
bool cpPlugins::BaseObjects::Parameters:: \
Has##Y( const std::string& name ) const \
{ return( this->_Has< Y >( name ) ); }
+// -------------------------------------------------------------------------
+#define cpPlugins_BaseObjects_Parameters_ConfigureList_Code( Y ) \
+ void cpPlugins::BaseObjects::Parameters:: \
+ ConfigureAs##Y##List( const std::string& name ) \
+ { this->_Configure< Y##List >( name ); } \
+ bool cpPlugins::BaseObjects::Parameters:: \
+ Has##Y##List( const std::string& name ) const \
+ { return( this->_Has< Y##List >( name ) ); }
+
// -------------------------------------------------------------------------
#define cpPlugins_BaseObjects_Parameters_GetSet_Code( Y ) \
cpPlugins::BaseObjects::Parameters::T##Y \
cpPlugins_BaseObjects_Parameters_Configure_Code( OpenFileName );
cpPlugins_BaseObjects_Parameters_Configure_Code( SaveFileName );
cpPlugins_BaseObjects_Parameters_Configure_Code( PathName );
-cpPlugins_BaseObjects_Parameters_Configure_Code( StringList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( BoolList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( IntList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( UintList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( RealList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( OpenFileNameList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( SaveFileNameList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( PathNameList );
-cpPlugins_BaseObjects_Parameters_Configure_Code( Choices );
+
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( String );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( Bool );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( Int );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( Uint );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( Real );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( OpenFileName );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( SaveFileName );
+cpPlugins_BaseObjects_Parameters_ConfigureList_Code( PathName );
+
cpPlugins_BaseObjects_Parameters_GetSet_Code( Bool );
cpPlugins_BaseObjects_Parameters_GetSet_Code( Int );
cpPlugins_BaseObjects_Parameters_GetSet_Code( Uint );
cpPlugins_BaseObjects_Parameters_GetSet_Code( OpenFileName );
cpPlugins_BaseObjects_Parameters_GetSet_Code( SaveFileName );
cpPlugins_BaseObjects_Parameters_GetSet_Code( PathName );
+
cpPlugins_BaseObjects_Parameters_GetSetList_Code( String );
cpPlugins_BaseObjects_Parameters_GetSetList_Code( Bool );
cpPlugins_BaseObjects_Parameters_GetSetList_Code( Int );
cpPlugins_BaseObjects_Parameters_GetSetList_Code( Uint );
cpPlugins_BaseObjects_Parameters_GetSetList_Code( Real );
-cpPlugins_BaseObjects_Parameters_GetSetList_Code( OpenFileName );
-cpPlugins_BaseObjects_Parameters_GetSetList_Code( SaveFileName );
cpPlugins_BaseObjects_Parameters_GetSetList_Code( PathName );
+// -------------------------------------------------------------------------
+std::vector< cpPlugins::BaseObjects::Parameters::TOpenFileName >
+cpPlugins::BaseObjects::Parameters::
+GetOpenFileNameList( const std::string& name ) const
+{
+ return( this->_GetList< TOpenFileName, OpenFileNameList >( name ) );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::BaseObjects::Parameters::
+AddToOpenFileNameList(
+ const std::string& name,
+ const cpPlugins::BaseObjects::Parameters::TOpenFileName& v
+ )
+{
+ auto i = this->m_Parameters.find( name );
+ if( i != this->m_Parameters.end( ) )
+ {
+ if( i->second.first == OpenFileNameList )
+ {
+ auto pos = name.find_last_of( "/\\" );
+ if( i->second.second == "" )
+ i->second.second = name.substr( 0, pos );
+ i->second.second += std::string( "#" );
+ i->second.second += name.substr( pos + 1 );
+ this->Modified( );
+
+ } // fi
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::BaseObjects::Parameters::
+ClearOpenFileNameList( const std::string& name )
+{
+ this->_ClearList< OpenFileNameList >( name );
+}
+
+// -------------------------------------------------------------------------
+std::vector< cpPlugins::BaseObjects::Parameters::TSaveFileName >
+cpPlugins::BaseObjects::Parameters::
+GetSaveFileNameList( const std::string& name ) const
+{
+ return( this->_GetList< TSaveFileName, SaveFileNameList >( name ) );
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::BaseObjects::Parameters::
+AddToSaveFileNameList(
+ const std::string& name,
+ const cpPlugins::BaseObjects::Parameters::TSaveFileName& v
+ )
+{
+ auto i = this->m_Parameters.find( name );
+ if( i != this->m_Parameters.end( ) )
+ {
+ if( i->second.first == SaveFileNameList )
+ {
+ auto pos = name.find_last_of( "/\\" );
+ if( i->second.second == "" )
+ i->second.second = name.substr( 0, pos );
+ i->second.second += std::string( "#" );
+ i->second.second += name.substr( pos + 1 );
+ this->Modified( );
+
+ } // fi
+
+ } // fi
+}
+
+// -------------------------------------------------------------------------
+void cpPlugins::BaseObjects::Parameters::
+ClearSaveFileNameList( const std::string& name )
+{
+ this->_ClearList< SaveFileNameList >( name );
+}
+
// -------------------------------------------------------------------------
template< unsigned int _Enum >
void cpPlugins::BaseObjects::Parameters::