]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/Parameters.cxx
More on graph editor
[cpPlugins.git] / lib / cpPlugins / Interface / Parameters.cxx
index f63fbbc1b802cb89d9e2c9da2b3391a855b6f4bf..e584b5e5d36cbd5d7f2719fe46f9ffb481f77302 100644 (file)
@@ -47,7 +47,8 @@ Clear( )
 void cpPlugins::Interface::Parameters::
 ConfigureAsString( const TString& name, const TString& v )
 {
-  this->m_Parameters[ name ] = TParameter( Self::String, TValues( v, v ) );
+  this->m_Parameters[ name ] =
+    TParameter( Self::String, TValues( v, v ) );
   this->Modified( );
 }
 
@@ -86,6 +87,7 @@ cpPlugins_Parameters_List_Configure( Uint );
 cpPlugins_Parameters_List_Configure( Real );
 cpPlugins_Parameters_List_Configure( Index );
 cpPlugins_Parameters_List_Configure( Point );
+cpPlugins_Parameters_List_Configure( Vector );
 
 // -------------------------------------------------------------------------
 void cpPlugins::Interface::Parameters::
@@ -147,6 +149,7 @@ cpPlugins_Parameters_Has( Uint );
 cpPlugins_Parameters_Has( Real );
 cpPlugins_Parameters_Has( Index );
 cpPlugins_Parameters_Has( Point );
+cpPlugins_Parameters_Has( Vector );
 cpPlugins_Parameters_Has( StringList );
 cpPlugins_Parameters_Has( BoolList );
 cpPlugins_Parameters_Has( IntList );
@@ -154,17 +157,18 @@ cpPlugins_Parameters_Has( UintList );
 cpPlugins_Parameters_Has( RealList );
 cpPlugins_Parameters_Has( IndexList );
 cpPlugins_Parameters_Has( PointList );
+cpPlugins_Parameters_Has( VectorList );
 cpPlugins_Parameters_Has( Choices );
 
 // -------------------------------------------------------------------------
 cpPlugins::Interface::Parameters::
 TString cpPlugins::Interface::Parameters::
-GetString( const TString& name ) const
+GetString( const TString& name, bool force ) const
 {
   TParameters::const_iterator i = this->m_Parameters.find( name );
   if( i != this->m_Parameters.end( ) )
   {
-    if( i->second.first == Self::String )
+    if( i->second.first == Self::String || !force )
       return( i->second.second.second );
 
   } // fi
@@ -225,7 +229,13 @@ GetReal( const TString& name ) const
   if( i != this->m_Parameters.end( ) )
   {
     if( i->second.first == Self::Real )
-      return( TReal( std::atof( i->second.second.second.c_str( ) ) ) );
+    {
+      std::istringstream tok_str( i->second.second.second );
+      float v;
+      tok_str >> v;
+      return( TReal( v ) );
+
+    } // fi
 
   } // fi
   return( TReal( 0 ) );
@@ -313,7 +323,13 @@ GetRealList( std::vector< TReal >& lst, const TString& name ) const
   std::istringstream str( i->second.second.second );
   std::string token;
   while( std::getline( str, token, '#' ) )
-    lst.push_back( TReal( std::atof( token.c_str( ) ) ) );
+  {
+    std::istringstream tok_str( token );
+    float v;
+    tok_str >> v;
+    lst.push_back( TReal( v ) );
+
+  } // elihw
 }
 
 // -------------------------------------------------------------------------
@@ -348,12 +364,12 @@ GetSelectedChoice( const TString& name ) const
 
 // -------------------------------------------------------------------------
 void cpPlugins::Interface::Parameters::
-SetString( const TString& name, const TString& v )
+SetString( const TString& name, const TString& v, bool force )
 {
   TParameters::iterator i = this->m_Parameters.find( name );
   if( i == this->m_Parameters.end( ) )
     return;
-  if( i->second.first != Self::String )
+  if( i->second.first != Self::String && force )
     return;
   i->second.second.second = v;
   this->Modified( );
@@ -426,6 +442,7 @@ cpPlugins_Parameters_Clear( Uint );
 cpPlugins_Parameters_Clear( Real );
 cpPlugins_Parameters_Clear( Index );
 cpPlugins_Parameters_Clear( Point );
+cpPlugins_Parameters_Clear( Vector );
 
 // -------------------------------------------------------------------------
 bool cpPlugins::Interface::Parameters::