X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FBaseObjects%2FParameters.cxx;h=b30b7d7cc82b2264f08ed0c8c10537726ae36e76;hb=d8ebffc6ece697ddf7b358946ef5d9c9cd7191fe;hp=e77c2cc16475cd0d77e68d320544ad8919130e34;hpb=3393941bf8f26babc7b592db434b40c1b747a687;p=cpPlugins.git diff --git a/lib/cpPlugins/BaseObjects/Parameters.cxx b/lib/cpPlugins/BaseObjects/Parameters.cxx index e77c2cc..b30b7d7 100644 --- a/lib/cpPlugins/BaseObjects/Parameters.cxx +++ b/lib/cpPlugins/BaseObjects/Parameters.cxx @@ -174,6 +174,20 @@ ConfigureAsChoices( this->Modified( ); } +// ------------------------------------------------------------------------- +void cpPlugins::BaseObjects::Parameters:: +ConfigureAsRealTypesChoices( const std::string& name ) +{ + std::vector< std::string > choices; +#ifdef cpPlugins_CONFIG_REAL_TYPES_float + choices.push_back( "float" ); +#endif // cpPlugins_CONFIG_REAL_TYPES_float +#ifdef cpPlugins_CONFIG_REAL_TYPES_double + choices.push_back( "double" ); +#endif // cpPlugins_CONFIG_REAL_TYPES_double + this->ConfigureAsChoices( name, choices ); +} + // ------------------------------------------------------------------------- std::vector< std::string > cpPlugins::BaseObjects::Parameters:: GetChoices( const std::string& name ) const @@ -349,12 +363,24 @@ GetRawParameters( ) const // ------------------------------------------------------------------------- #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 \ @@ -390,15 +416,16 @@ cpPlugins_BaseObjects_Parameters_Configure_Code( Real ); 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 ); @@ -406,15 +433,92 @@ cpPlugins_BaseObjects_Parameters_GetSet_Code( Real ); 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 = v.find_last_of( "/\\" ); + if( i->second.second == "" ) + i->second.second = v.substr( 0, pos ); + i->second.second += std::string( "#" ); + i->second.second += v.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 = v.find_last_of( "/\\" ); + if( i->second.second == "" ) + i->second.second = v.substr( 0, pos ); + i->second.second += std::string( "#" ); + i->second.second += v.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::