]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/BaseObjects/Parameters.cxx
...
[cpPlugins.git] / lib / cpPlugins / BaseObjects / Parameters.cxx
index e77c2cc16475cd0d77e68d320544ad8919130e34..d55278661dc18c0c6d1b77ce2b8635607b5c8c49 100644 (file)
@@ -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::