This commit is contained in:
dickelbeck 2008-02-19 00:35:45 +00:00
parent ce04867e84
commit 8eff8df94b
4 changed files with 613 additions and 545 deletions

View File

@ -277,7 +277,7 @@ wxString ReturnPcbLayerName( int layer_number, bool omitSpacePadding )
*/ */
{ {
#if 0 && defined(DEBUG) #if 1 && defined(DEBUG)
// Dick: this code is working fine, but we have no place to store the layer names yet. // Dick: this code is working fine, but we have no place to store the layer names yet.

View File

@ -270,7 +270,8 @@ void WinEDA_App::GetSettings()
wxString Line, Ident; wxString Line, Ident;
unsigned ii; unsigned ii;
m_HelpSize.x = 500; m_HelpSize.y = 400; m_HelpSize.x = 500;
m_HelpSize.y = 400;
if( m_EDA_CommonConfig ) if( m_EDA_CommonConfig )
{ {
@ -285,8 +286,11 @@ void WinEDA_App::GetSettings()
for( ii = 0; ii < 10; ii++ ) for( ii = 0; ii < 10; ii++ )
{ {
Ident = wxT( "LastProject" ); if( ii ) Ident = wxT( "LastProject" );
if( ii )
Ident << ii; Ident << ii;
if( m_EDA_Config->Read( Ident, &Line ) ) if( m_EDA_Config->Read( Ident, &Line ) )
m_LastProject.Add( Line ); m_LastProject.Add( Line );
} }
@ -299,6 +303,7 @@ void WinEDA_App::GetSettings()
Line = m_EDA_Config->Read( wxT( "SdtFontType" ), wxEmptyString ); Line = m_EDA_Config->Read( wxT( "SdtFontType" ), wxEmptyString );
if( !Line.IsEmpty() ) if( !Line.IsEmpty() )
g_StdFont->SetFaceName( Line ); g_StdFont->SetFaceName( Line );
ii = m_EDA_Config->Read( wxT( "SdtFontStyle" ), wxFONTFAMILY_ROMAN ); ii = m_EDA_Config->Read( wxT( "SdtFontStyle" ), wxFONTFAMILY_ROMAN );
g_StdFont->SetStyle( ii ); g_StdFont->SetStyle( ii );
ii = m_EDA_Config->Read( wxT( "SdtFontWeight" ), wxNORMAL ); ii = m_EDA_Config->Read( wxT( "SdtFontWeight" ), wxNORMAL );
@ -309,6 +314,7 @@ void WinEDA_App::GetSettings()
Line = m_EDA_Config->Read( wxT( "MsgFontType" ), wxEmptyString ); Line = m_EDA_Config->Read( wxT( "MsgFontType" ), wxEmptyString );
if( !Line.IsEmpty() ) if( !Line.IsEmpty() )
g_MsgFont->SetFaceName( Line ); g_MsgFont->SetFaceName( Line );
ii = m_EDA_Config->Read( wxT( "MsgFontStyle" ), wxFONTFAMILY_ROMAN ); ii = m_EDA_Config->Read( wxT( "MsgFontStyle" ), wxFONTFAMILY_ROMAN );
g_MsgFont->SetStyle( ii ); g_MsgFont->SetStyle( ii );
ii = m_EDA_Config->Read( wxT( "MsgFontWeight" ), wxNORMAL ); ii = m_EDA_Config->Read( wxT( "MsgFontWeight" ), wxNORMAL );
@ -318,6 +324,7 @@ void WinEDA_App::GetSettings()
Line = m_EDA_Config->Read( wxT( "DialogFontType" ), wxEmptyString ); Line = m_EDA_Config->Read( wxT( "DialogFontType" ), wxEmptyString );
if( !Line.IsEmpty() ) if( !Line.IsEmpty() )
g_DialogFont->SetFaceName( Line ); g_DialogFont->SetFaceName( Line );
ii = m_EDA_Config->Read( wxT( "DialogFontStyle" ), wxFONTFAMILY_ROMAN ); ii = m_EDA_Config->Read( wxT( "DialogFontStyle" ), wxFONTFAMILY_ROMAN );
g_DialogFont->SetStyle( ii ); g_DialogFont->SetStyle( ii );
ii = m_EDA_Config->Read( wxT( "DialogFontWeight" ), wxNORMAL ); ii = m_EDA_Config->Read( wxT( "DialogFontWeight" ), wxNORMAL );
@ -343,7 +350,6 @@ void WinEDA_App::SaveSettings()
{ {
unsigned int ii; unsigned int ii;
if( m_EDA_Config == NULL ) if( m_EDA_Config == NULL )
return; return;

View File

@ -16,23 +16,27 @@
static bool ReCreatePrjConfig( const wxString& local_config_filename, static bool ReCreatePrjConfig( const wxString& local_config_filename,
const wxString& GroupName, bool ForceUseLocalConfig ) const wxString& GroupName, bool ForceUseLocalConfig )
/*********************************************************************/ /*********************************************************************/
/* Cree ou recree la configuration locale de kicad (filename.pro) /* Cree ou recree la configuration locale de kicad (filename.pro)
initialise: * initialise:
g_Prj_Config * g_Prj_Config
g_Prj_Config_LocalFilename * g_Prj_Config_LocalFilename
g_Prj_Default_Config_FullFilename * g_Prj_Default_Config_FullFilename
return: * return:
TRUE si config locale * TRUE si config locale
FALSE si default config * FALSE si default config
*/ */
{ {
// free old config // free old config
if ( g_Prj_Config ) delete g_Prj_Config; if( g_Prj_Config )
delete g_Prj_Config;
g_Prj_Config = NULL; g_Prj_Config = NULL;
// Init local Config filename // Init local Config filename
if ( local_config_filename.IsEmpty() ) g_Prj_Config_LocalFilename = wxT("kicad"); if( local_config_filename.IsEmpty() )
else g_Prj_Config_LocalFilename = local_config_filename; g_Prj_Config_LocalFilename = wxT( "kicad" );
else
g_Prj_Config_LocalFilename = local_config_filename;
ChangeFileNameExt( g_Prj_Config_LocalFilename, g_Prj_Config_Filename_ext ); ChangeFileNameExt( g_Prj_Config_LocalFilename, g_Prj_Config_Filename_ext );
@ -43,17 +47,21 @@ static bool ReCreatePrjConfig(const wxString & local_config_filename,
g_Prj_Config = new wxFileConfig( wxEmptyString, wxEmptyString, g_Prj_Config = new wxFileConfig( wxEmptyString, wxEmptyString,
g_Prj_Config_LocalFilename, wxEmptyString, g_Prj_Config_LocalFilename, wxEmptyString,
wxCONFIG_USE_RELATIVE_PATH ); wxCONFIG_USE_RELATIVE_PATH );
g_Prj_Config->DontCreateOnDemand(); g_Prj_Config->DontCreateOnDemand();
if ( ForceUseLocalConfig ) return TRUE; if( ForceUseLocalConfig )
return TRUE;
// Test de la bonne version du fichier (ou groupe) de configuration // Test de la bonne version du fichier (ou groupe) de configuration
int version = -1, def_version = 0; int version = -1, def_version = 0;
g_Prj_Config->SetPath( GroupName ); g_Prj_Config->SetPath( GroupName );
version = g_Prj_Config->Read( wxT( "version" ), def_version ); version = g_Prj_Config->Read( wxT( "version" ), def_version );
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP ); g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
if ( version > 0 ) return TRUE; if( version > 0 )
else delete g_Prj_Config; // Version incorrecte return TRUE;
else
delete g_Prj_Config; // Version incorrecte
} }
@ -68,6 +76,7 @@ static bool ReCreatePrjConfig(const wxString & local_config_filename,
g_Prj_Config = new wxFileConfig( wxEmptyString, wxEmptyString, g_Prj_Config = new wxFileConfig( wxEmptyString, wxEmptyString,
wxEmptyString, g_Prj_Default_Config_FullFilename, wxEmptyString, g_Prj_Default_Config_FullFilename,
wxCONFIG_USE_RELATIVE_PATH ); wxCONFIG_USE_RELATIVE_PATH );
g_Prj_Config->DontCreateOnDemand(); g_Prj_Config->DontCreateOnDemand();
return FALSE; return FALSE;
@ -85,13 +94,16 @@ wxString msg;
ReCreatePrjConfig( local_config_filename, GroupName, ReCreatePrjConfig( local_config_filename, GroupName,
FORCE_LOCAL_CONFIG ); FORCE_LOCAL_CONFIG );
/* Write date ( surtout pour eviter bug de wxFileConfig /* Write date ( surtout pour eviter bug de wxFileConfig
qui se trompe de rubrique si declaration [xx] en premiere ligne * qui se trompe de rubrique si declaration [xx] en premiere ligne
(en fait si groupe vide) */ * (en fait si groupe vide) */
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP ); g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
msg = DateAndTime(); msg = DateAndTime();
g_Prj_Config->Write( wxT( "update" ), msg ); g_Prj_Config->Write( wxT( "update" ), msg );
msg = GetAppName(); msg = GetAppName();
g_Prj_Config->Write( wxT( "last_client" ), msg ); g_Prj_Config->Write( wxT( "last_client" ), msg );
/* ecriture de la configuration */ /* ecriture de la configuration */
@ -105,15 +117,19 @@ wxString msg;
for( ; *List != NULL; List++ ) for( ; *List != NULL; List++ )
{ {
pt_cfg = *List; pt_cfg = *List;
if ( pt_cfg->m_Group ) g_Prj_Config->SetPath(pt_cfg->m_Group); if( pt_cfg->m_Group )
else g_Prj_Config->SetPath(GroupName); g_Prj_Config->SetPath( pt_cfg->m_Group );
else
g_Prj_Config->SetPath( GroupName );
switch( pt_cfg->m_Type ) switch( pt_cfg->m_Type )
{ {
case PARAM_INT: case PARAM_INT:
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_INT*) pt_cfg ) #define PTCFG ( (PARAM_CFG_INT*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
if( pt_cfg->m_Setup ) if( pt_cfg->m_Setup )
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param ); m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
else else
@ -123,7 +139,9 @@ wxString msg;
case PARAM_SETCOLOR: case PARAM_SETCOLOR:
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_SETCOLOR*) pt_cfg ) #define PTCFG ( (PARAM_CFG_SETCOLOR*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
if( pt_cfg->m_Setup ) if( pt_cfg->m_Setup )
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param ); m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
else else
@ -133,7 +151,9 @@ wxString msg;
case PARAM_DOUBLE: case PARAM_DOUBLE:
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_DOUBLE*) pt_cfg ) #define PTCFG ( (PARAM_CFG_DOUBLE*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
if( pt_cfg->m_Setup ) if( pt_cfg->m_Setup )
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param ); m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
else else
@ -143,7 +163,9 @@ wxString msg;
case PARAM_BOOL: case PARAM_BOOL:
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_BOOL*) pt_cfg ) #define PTCFG ( (PARAM_CFG_BOOL*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
if( pt_cfg->m_Setup ) if( pt_cfg->m_Setup )
m_EDA_Config->Write( pt_cfg->m_Ident, (int) *PTCFG->m_Pt_param ); m_EDA_Config->Write( pt_cfg->m_Ident, (int) *PTCFG->m_Pt_param );
else else
@ -153,7 +175,9 @@ wxString msg;
case PARAM_WXSTRING: case PARAM_WXSTRING:
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_WXSTRING*) pt_cfg ) #define PTCFG ( (PARAM_CFG_WXSTRING*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
if( pt_cfg->m_Setup ) if( pt_cfg->m_Setup )
m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param ); m_EDA_Config->Write( pt_cfg->m_Ident, *PTCFG->m_Pt_param );
else else
@ -164,18 +188,24 @@ wxString msg;
{ {
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_LIBNAME_LIST*) pt_cfg ) #define PTCFG ( (PARAM_CFG_LIBNAME_LIST*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
wxArrayString* libname_list = PTCFG->m_Pt_param; wxArrayString* libname_list = PTCFG->m_Pt_param;
if ( libname_list == NULL ) break; if( libname_list == NULL )
break;
unsigned indexlib = 0; unsigned indexlib = 0;
wxString cle_config; wxString cle_config;
for( ; indexlib < libname_list->GetCount(); indexlib++ ) for( ; indexlib < libname_list->GetCount(); indexlib++ )
{ {
cle_config = pt_cfg->m_Ident; cle_config = pt_cfg->m_Ident;
// We use indexlib+1 because first lib name is LibName1 // We use indexlib+1 because first lib name is LibName1
cle_config << (indexlib + 1); cle_config << (indexlib + 1);
g_Prj_Config->Write( cle_config, libname_list->Item( indexlib ) ); g_Prj_Config->Write( cle_config, libname_list->Item( indexlib ) );
} }
break; break;
} }
@ -200,28 +230,30 @@ bool WinEDA_App::ReadProjectConfig(const wxString & local_config_filename,
const wxString& GroupName, PARAM_CFG_BASE** List, const wxString& GroupName, PARAM_CFG_BASE** List,
bool Load_Only_if_New ) bool Load_Only_if_New )
/***************************************************************************************/ /***************************************************************************************/
/* Lecture de la config "projet" /* Lecture de la config "projet"
*** si Load_Only_if_New == TRUE, elle n'est lue que si elle *** si Load_Only_if_New == TRUE, elle n'est lue que si elle
*** est differente de la config actuelle (dates differentes) *** est differente de la config actuelle (dates differentes)
*
return: * return:
TRUE si lue. * TRUE si lue.
Met a jour en plus: * Met a jour en plus:
g_EDA_Appl->m_CurrentOptionFileDateAndTime * g_EDA_Appl->m_CurrentOptionFileDateAndTime
g_EDA_Appl->m_CurrentOptionFile * g_EDA_Appl->m_CurrentOptionFile
*/ */
{ {
const PARAM_CFG_BASE* pt_cfg; const PARAM_CFG_BASE* pt_cfg;
wxString timestamp; wxString timestamp;
if ( List == NULL )return FALSE; if( List == NULL )
return FALSE;
ReCreatePrjConfig( local_config_filename, GroupName, FALSE ); ReCreatePrjConfig( local_config_filename, GroupName, FALSE );
g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP ); g_Prj_Config->SetPath( UNIX_STRING_DIR_SEP );
timestamp = g_Prj_Config->Read( wxT( "update" ) ); timestamp = g_Prj_Config->Read( wxT( "update" ) );
if ( Load_Only_if_New && ( !timestamp.IsEmpty() ) && if( Load_Only_if_New && ( !timestamp.IsEmpty() )
(timestamp == g_EDA_Appl->m_CurrentOptionFileDateAndTime) ) && (timestamp == g_EDA_Appl->m_CurrentOptionFileDateAndTime) )
{ {
return FALSE; return FALSE;
} }
@ -242,8 +274,11 @@ wxString timestamp;
for( ; *List != NULL; List++ ) for( ; *List != NULL; List++ )
{ {
pt_cfg = *List; pt_cfg = *List;
if ( pt_cfg->m_Group ) g_Prj_Config->SetPath(pt_cfg->m_Group); if( pt_cfg->m_Group )
else g_Prj_Config->SetPath(GroupName); g_Prj_Config->SetPath( pt_cfg->m_Group );
else
g_Prj_Config->SetPath( GroupName );
switch( pt_cfg->m_Type ) switch( pt_cfg->m_Type )
{ {
case PARAM_INT: case PARAM_INT:
@ -255,8 +290,10 @@ wxString timestamp;
itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default ); itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
else else
itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default ); itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
if( (itmp < PTCFG->m_Min) || (itmp > PTCFG->m_Max) ) if( (itmp < PTCFG->m_Min) || (itmp > PTCFG->m_Max) )
itmp = PTCFG->m_Default; itmp = PTCFG->m_Default;
*PTCFG->m_Pt_param = itmp; *PTCFG->m_Pt_param = itmp;
break; break;
} }
@ -270,8 +307,10 @@ wxString timestamp;
itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default ); itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
else else
itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default ); itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
if( (itmp < 0) || (itmp > MAX_COLOR) ) if( (itmp < 0) || (itmp > MAX_COLOR) )
itmp = PTCFG->m_Default; itmp = PTCFG->m_Default;
*PTCFG->m_Pt_param = itmp; *PTCFG->m_Pt_param = itmp;
break; break;
} }
@ -286,7 +325,8 @@ wxString timestamp;
else else
msg = g_Prj_Config->Read( pt_cfg->m_Ident, wxT( "" ) ); msg = g_Prj_Config->Read( pt_cfg->m_Ident, wxT( "" ) );
if ( msg.IsEmpty() ) ftmp = PTCFG->m_Default; if( msg.IsEmpty() )
ftmp = PTCFG->m_Default;
else else
{ {
msg.ToDouble( &ftmp ); msg.ToDouble( &ftmp );
@ -306,6 +346,7 @@ wxString timestamp;
itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default ); itmp = m_EDA_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
else else
itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default ); itmp = g_Prj_Config->Read( pt_cfg->m_Ident, PTCFG->m_Default );
*PTCFG->m_Pt_param = itmp ? TRUE : FALSE; *PTCFG->m_Pt_param = itmp ? TRUE : FALSE;
break; break;
} }
@ -314,7 +355,9 @@ wxString timestamp;
{ {
#undef PTCFG #undef PTCFG
#define PTCFG ( (PARAM_CFG_WXSTRING*) pt_cfg ) #define PTCFG ( (PARAM_CFG_WXSTRING*) pt_cfg )
if (PTCFG->m_Pt_param == NULL) break; if( PTCFG->m_Pt_param == NULL )
break;
if( pt_cfg->m_Setup ) if( pt_cfg->m_Setup )
*PTCFG->m_Pt_param = m_EDA_Config->Read( pt_cfg->m_Ident ); *PTCFG->m_Pt_param = m_EDA_Config->Read( pt_cfg->m_Ident );
else else
@ -333,9 +376,11 @@ wxString timestamp;
{ {
id_lib = pt_cfg->m_Ident; id_lib << indexlib; indexlib++; id_lib = pt_cfg->m_Ident; id_lib << indexlib; indexlib++;
libname = g_Prj_Config->Read( id_lib, wxT( "" ) ); libname = g_Prj_Config->Read( id_lib, wxT( "" ) );
if( libname.IsEmpty() ) break; if( libname.IsEmpty() )
break;
libname_list->Add( libname ); libname_list->Add( libname );
} }
break; break;
} }
@ -367,8 +412,8 @@ PARAM_CFG_BASE::PARAM_CFG_BASE(const wxChar * ident, const paramcfg_id type,
PARAM_CFG_INT::PARAM_CFG_INT( const wxChar* ident, int* ptparam, PARAM_CFG_INT::PARAM_CFG_INT( const wxChar* ident, int* ptparam,
int default_val, int min, int max, int default_val, int min, int max,
const wxChar * group) const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_INT, group) PARAM_CFG_BASE( ident, PARAM_INT, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val; m_Default = default_val;
@ -376,10 +421,11 @@ PARAM_CFG_INT::PARAM_CFG_INT(const wxChar * ident, int * ptparam,
m_Max = max; m_Max = max;
} }
PARAM_CFG_INT::PARAM_CFG_INT( bool Insetup, const wxChar* ident, int* ptparam, PARAM_CFG_INT::PARAM_CFG_INT( bool Insetup, const wxChar* ident, int* ptparam,
int default_val, int min, int max, int default_val, int min, int max,
const wxChar * group) const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_INT, group) PARAM_CFG_BASE( ident, PARAM_INT, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val; m_Default = default_val;
@ -388,37 +434,42 @@ PARAM_CFG_INT::PARAM_CFG_INT(bool Insetup, const wxChar * ident, int * ptparam,
m_Setup = Insetup; m_Setup = Insetup;
} }
PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( const wxChar* ident, int* ptparam, PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( const wxChar* ident, int* ptparam,
int default_val, const wxChar * group) int default_val, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_SETCOLOR, group) PARAM_CFG_BASE( ident, PARAM_SETCOLOR, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val; m_Default = default_val;
} }
PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( bool Insetup, const wxChar* ident, int* ptparam, PARAM_CFG_SETCOLOR::PARAM_CFG_SETCOLOR( bool Insetup, const wxChar* ident, int* ptparam,
int default_val, const wxChar * group) int default_val, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_SETCOLOR, group) PARAM_CFG_BASE( ident, PARAM_SETCOLOR, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val; m_Default = default_val;
m_Setup = Insetup; m_Setup = Insetup;
} }
PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE( const wxChar* ident, double* ptparam, PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE( const wxChar* ident, double* ptparam,
double default_val, double min, double max, double default_val, double min, double max,
const wxChar * group) const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_DOUBLE, group) PARAM_CFG_BASE( ident, PARAM_DOUBLE, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val; m_Default = default_val;
m_Min = min; m_Min = min;
m_Max = max; m_Max = max;
} }
PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE( bool Insetup, const wxChar* ident, double* ptparam, PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE( bool Insetup, const wxChar* ident, double* ptparam,
double default_val, double min, double max, double default_val, double min, double max,
const wxChar * group) const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_DOUBLE, group) PARAM_CFG_BASE( ident, PARAM_DOUBLE, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val; m_Default = default_val;
@ -427,42 +478,46 @@ PARAM_CFG_DOUBLE::PARAM_CFG_DOUBLE(bool Insetup, const wxChar * ident, double *
m_Setup = Insetup; m_Setup = Insetup;
} }
PARAM_CFG_BOOL::PARAM_CFG_BOOL( const wxChar* ident, bool* ptparam, PARAM_CFG_BOOL::PARAM_CFG_BOOL( const wxChar* ident, bool* ptparam,
int default_val, const wxChar * group) int default_val, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_BOOL, group) PARAM_CFG_BASE( ident, PARAM_BOOL, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val ? TRUE : FALSE; m_Default = default_val ? TRUE : FALSE;
} }
PARAM_CFG_BOOL::PARAM_CFG_BOOL( bool Insetup, const wxChar* ident, bool* ptparam, PARAM_CFG_BOOL::PARAM_CFG_BOOL( bool Insetup, const wxChar* ident, bool* ptparam,
int default_val, const wxChar * group) int default_val, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_BOOL, group) PARAM_CFG_BASE( ident, PARAM_BOOL, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Default = default_val ? TRUE : FALSE; m_Default = default_val ? TRUE : FALSE;
m_Setup = Insetup; m_Setup = Insetup;
} }
PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING( const wxChar* ident, PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING( const wxChar* ident,
wxString * ptparam, const wxChar * group) wxString* ptparam, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_WXSTRING, group) PARAM_CFG_BASE( ident, PARAM_WXSTRING, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
} }
PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING( bool Insetup, const wxChar* ident, PARAM_CFG_WXSTRING::PARAM_CFG_WXSTRING( bool Insetup, const wxChar* ident,
wxString * ptparam, const wxChar * group) wxString* ptparam, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_WXSTRING, group) PARAM_CFG_BASE( ident, PARAM_WXSTRING, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
m_Setup = Insetup; m_Setup = Insetup;
} }
PARAM_CFG_LIBNAME_LIST::PARAM_CFG_LIBNAME_LIST( const wxChar* ident, PARAM_CFG_LIBNAME_LIST::PARAM_CFG_LIBNAME_LIST( const wxChar* ident,
wxArrayString * ptparam, const wxChar * group) wxArrayString* ptparam, const wxChar* group ) :
: PARAM_CFG_BASE(ident, PARAM_LIBNAME_LIST, group) PARAM_CFG_BASE( ident, PARAM_LIBNAME_LIST, group )
{ {
m_Pt_param = ptparam; m_Pt_param = ptparam;
} }

View File

@ -29,13 +29,16 @@ void WinEDA_PcbFrame::Process_Config(wxCommandEvent& event)
{ {
int id = event.GetId(); int id = event.GetId();
wxPoint pos; wxPoint pos;
wxClientDC dc( DrawPanel ); wxClientDC dc( DrawPanel );
wxString FullFileName; wxString FullFileName;
DrawPanel->PrepareGraphicContext( &dc ); DrawPanel->PrepareGraphicContext( &dc );
pos = GetPosition(); pos = GetPosition();
pos.x += 20; pos.y += 20; pos.x += 20;
pos.y += 20;
switch( id ) switch( id )
{ {
@ -74,7 +77,8 @@ wxString FullFileName;
wxFD_OPEN, wxFD_OPEN,
TRUE /* ne change pas de repertoire courant */ TRUE /* ne change pas de repertoire courant */
); );
if ( FullFileName.IsEmpty()) break; if( FullFileName.IsEmpty() )
break;
if( !wxFileExists( FullFileName ) ) if( !wxFileExists( FullFileName ) )
{ {
wxString msg; wxString msg;
@ -124,11 +128,13 @@ wxString FullFileName;
/***************************************************************/ /***************************************************************/
bool Read_Hotkey_Config( WinEDA_DrawFrame* frame, bool verbose ) bool Read_Hotkey_Config( WinEDA_DrawFrame* frame, bool verbose )
/***************************************************************/ /***************************************************************/
/* /*
* Read the hotkey files config for pcbnew and module_edit * Read the hotkey files config for pcbnew and module_edit
*/ */
{ {
wxString FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice ); wxString FullFileName = ReturnHotkeyConfigFilePath( g_ConfigFileLocationChoice );
FullFileName += HOTKEY_FILENAME; FullFileName += HOTKEY_FILENAME;
FullFileName += DEFAULT_HOTKEY_FILENAME_EXT; FullFileName += DEFAULT_HOTKEY_FILENAME_EXT;
return frame->ReadHotkeyConfigFile( FullFileName, s_Pcbnew_Editor_Hokeys_Descr, verbose ); return frame->ReadHotkeyConfigFile( FullFileName, s_Pcbnew_Editor_Hokeys_Descr, verbose );
@ -138,12 +144,13 @@ bool Read_Hotkey_Config( WinEDA_DrawFrame * frame, bool verbose )
/**************************************************************************/ /**************************************************************************/
bool Read_Config( const wxString& project_name ) bool Read_Config( const wxString& project_name )
/*************************************************************************/ /*************************************************************************/
/* lit la configuration, si elle n'a pas deja ete lue
1 - lit <nom fichier brd>.pro
2 - si non trouve lit <chemin de *.exe>/kicad.pro
3 - si non trouve: init des variables aux valeurs par defaut
Retourne TRUE si lu, FALSE si config non lue ou non modifiée /* lit la configuration, si elle n'a pas deja ete lue
* 1 - lit <nom fichier brd>.pro
* 2 - si non trouve lit <chemin de *.exe>/kicad.pro
* 3 - si non trouve: init des variables aux valeurs par defaut
*
* Retourne TRUE si lu, FALSE si config non lue ou non modifiée
*/ */
{ {
wxString FullFileName; wxString FullFileName;
@ -181,6 +188,7 @@ int ii;
return TRUE; return TRUE;
} }
/**********************************************************/ /**********************************************************/
void WinEDA_PcbFrame::Update_config( wxWindow* displayframe ) void WinEDA_PcbFrame::Update_config( wxWindow* displayframe )
/***********************************************************/ /***********************************************************/
@ -202,12 +210,11 @@ wxString mask;
wxFD_SAVE, wxFD_SAVE,
TRUE TRUE
); );
if ( FullFileName.IsEmpty() ) return; if( FullFileName.IsEmpty() )
return;
Pcbdiv_grille = GetScreen()->m_Diviseur_Grille; Pcbdiv_grille = GetScreen()->m_Diviseur_Grille;
/* ecriture de la configuration */ /* ecriture de la configuration */
g_EDA_Appl->WriteProjectConfig( FullFileName, wxT( "/pcbnew" ), ParamCfgList ); g_EDA_Appl->WriteProjectConfig( FullFileName, wxT( "/pcbnew" ), ParamCfgList );
} }