X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=lib%2FcpPlugins%2FBaseObjects%2FParameters.cxx;h=d55278661dc18c0c6d1b77ce2b8635607b5c8c49;hb=9b11582dc5062474361432e46838c4e790c21f10;hp=e77c2cc16475cd0d77e68d320544ad8919130e34;hpb=9d315ac836e5fe246a8c987681085ee19898affc;p=cpPlugins.git diff --git a/lib/cpPlugins/BaseObjects/Parameters.cxx b/lib/cpPlugins/BaseObjects/Parameters.cxx index e77c2cc..d552786 100644 --- a/lib/cpPlugins/BaseObjects/Parameters.cxx +++ b/lib/cpPlugins/BaseObjects/Parameters.cxx @@ -349,12 +349,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 +402,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 +419,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 = 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::