22#ifndef CONFIG_PARAMS_H_
23#define CONFIG_PARAMS_H_
29#include <wx/confbase.h>
30#include <wx/fileconf.h>
31#include <boost/ptr_container/ptr_vector.hpp>
79 const wxString& legacy_ident = wxEmptyString );
87 virtual void ReadParam( wxConfigBase* aConfig )
const {};
94 virtual void SaveParam( wxConfigBase* aConfig )
const {};
113 PARAM_CFG_INT(
const wxString& ident,
int* ptparam,
int default_val = 0,
114 int min = std::numeric_limits<int>::min(),
115 int max = std::numeric_limits<int>::max(),
116 const wxChar*
group =
nullptr,
117 const wxString& legacy_ident = wxEmptyString );
118 PARAM_CFG_INT(
bool Insetup,
const wxString& ident,
int* ptparam,
int default_val = 0,
119 int min = std::numeric_limits<int>::min(),
120 int max = std::numeric_limits<int>::max(),
121 const wxChar*
group =
nullptr,
122 const wxString& legacy_ident = wxEmptyString );
124 virtual void ReadParam( wxConfigBase* aConfig )
const override;
125 virtual void SaveParam( wxConfigBase* aConfig )
const override;
142 int min = std::numeric_limits<int>::min(),
143 int max = std::numeric_limits<int>::max(),
144 const wxChar*
group =
nullptr,
double aBiu2cfgunit = 1.0,
145 const wxString& legacy_ident = wxEmptyString );
148 int min = std::numeric_limits<int>::min(),
149 int max = std::numeric_limits<int>::max(),
150 const wxChar*
group =
nullptr,
double aBiu2cfgunit = 1.0,
151 const wxString& legacy_ident = wxEmptyString );
153 virtual void ReadParam( wxConfigBase* aConfig )
const override;
154 virtual void SaveParam( wxConfigBase* aConfig )
const override;
168 double default_val = 0.0,
double min = 0.0,
double max = 10000.0,
169 const wxChar*
group =
nullptr );
171 double default_val = 0.0,
double min = 0.0,
double max = 10000.0,
172 const wxChar*
group =
nullptr );
174 virtual void ReadParam( wxConfigBase* aConfig )
const override;
175 virtual void SaveParam( wxConfigBase* aConfig )
const override;
190 int default_val =
false,
const wxChar*
group =
nullptr,
191 const wxString& legacy_ident = wxEmptyString );
192 PARAM_CFG_BOOL(
bool Insetup,
const wxString& ident,
bool* ptparam,
193 int default_val =
false,
const wxChar*
group =
nullptr,
194 const wxString& legacy_ident = wxEmptyString );
196 virtual void ReadParam( wxConfigBase* aConfig )
const override;
197 virtual void SaveParam( wxConfigBase* aConfig )
const override;
213 const wxString& ident,
215 const wxString& default_val = wxEmptyString,
216 const wxChar*
group =
nullptr );
218 virtual void ReadParam( wxConfigBase* aConfig )
const override;
219 virtual void SaveParam( wxConfigBase* aConfig )
const override;
234 const wxChar*
group =
nullptr );
237 const wxString& ident,
238 std::set<wxString>* ptparam,
239 const wxChar*
group =
nullptr );
241 virtual void ReadParam( wxConfigBase* aConfig )
const override;
242 virtual void SaveParam( wxConfigBase* aConfig )
const override;
257 const wxChar*
group =
nullptr );
258 virtual void ReadParam( wxConfigBase* aConfig )
const override;
259 virtual void SaveParam( wxConfigBase* aConfig )
const override;
272 const wxChar*
group =
nullptr );
274 virtual void ReadParam( wxConfigBase* aConfig )
const override;
275 virtual void SaveParam( wxConfigBase* aConfig )
const override;
300 const wxString& aGroup );
322 const wxString& aGroup );
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
bool * m_Pt_param
Pointer to the parameter value.
PARAM_CFG_BOOL(const wxString &ident, bool *ptparam, int default_val=false, const wxChar *group=nullptr, const wxString &legacy_ident=wxEmptyString)
int m_Default
The default value of the parameter.
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
double m_Max
Minimum and maximum values of the param type.
PARAM_CFG_DOUBLE(const wxString &ident, double *ptparam, double default_val=0.0, double min=0.0, double max=10000.0, const wxChar *group=nullptr)
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
double * m_Pt_param
Pointer to the parameter value.
double m_Default
The default value of the parameter.
wxString * m_Pt_param
Pointer to the parameter value.
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
PARAM_CFG_FILENAME(const wxString &ident, wxString *ptparam, const wxChar *group=nullptr)
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
PARAM_CFG_INT_WITH_SCALE(const wxString &ident, int *ptparam, int default_val=0, int min=std::numeric_limits< int >::min(), int max=std::numeric_limits< int >::max(), const wxChar *group=nullptr, double aBiu2cfgunit=1.0, const wxString &legacy_ident=wxEmptyString)
double m_BIU_to_cfgunit
the factor to convert the saved value in internal value
int m_Max
Minimum and maximum values of the param type.
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
PARAM_CFG_INT(const wxString &ident, int *ptparam, int default_val=0, int min=std::numeric_limits< int >::min(), int max=std::numeric_limits< int >::max(), const wxChar *group=nullptr, const wxString &legacy_ident=wxEmptyString)
int m_Default
The default value of the parameter.
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
int * m_Pt_param
Pointer to the parameter value.
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
wxArrayString * m_Pt_param
Pointer to the parameter value.
PARAM_CFG_LIBNAME_LIST(const wxChar *ident, wxArrayString *ptparam, const wxChar *group=nullptr)
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
std::set< wxString > * m_Pt_param
Pointer to the parameter value.
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
PARAM_CFG_WXSTRING_SET(const wxString &ident, std::set< wxString > *ptparam, const wxChar *group=nullptr)
virtual void ReadParam(wxConfigBase *aConfig) const override
Read the value of the parameter stored in aConfig.
wxString * m_Pt_param
Pointer to the parameter value.
virtual void SaveParam(wxConfigBase *aConfig) const override
Save the value of the parameter stored in aConfig.
PARAM_CFG_WXSTRING(const wxString &ident, wxString *ptparam, const wxChar *group=nullptr)
wxString m_default
The default value of the parameter.
virtual void ReadParam(wxConfigBase *aConfig) const
Read the value of the parameter stored in aConfig.
paramcfg_id m_Type
Type of parameter.
wxString m_Ident
Keyword in config data.
wxString m_Group
Group name (this is like a path in the config data)
PARAM_CFG(const wxString &ident, const paramcfg_id type, const wxChar *group=nullptr, const wxString &legacy_ident=wxEmptyString)
virtual void SaveParam(wxConfigBase *aConfig) const
Save the value of the parameter stored in aConfig.
bool m_Setup
Install or Project based parameter, true == install.
KICOMMON_API void wxConfigLoadSetups(wxConfigBase *aCfg, const std::vector< std::unique_ptr< PARAM_CFG > > &aList)
Use aList of PARAM_CFG object to load configuration values from aCfg.
KICOMMON_API void wxConfigLoadParams(wxConfigBase *aCfg, const std::vector< std::unique_ptr< PARAM_CFG > > &aList, const wxString &aGroup)
Use aList of PARAM_CFG objects to load configuration values from aCfg.
KICOMMON_API void ConfigBaseWriteDouble(wxConfigBase *aConfig, const wxString &aKey, double aValue)
A helper function to write doubles in configuration file.
KICOMMON_API void wxConfigSaveSetups(wxConfigBase *aCfg, const std::vector< std::unique_ptr< PARAM_CFG > > &aList)
Writes aList of PARAM_CFG objects to aCfg.
paramcfg_id
Type of parameter in the configuration file.
@ PARAM_DIFFPAIRDIMENSIONS
KICOMMON_API void wxConfigSaveParams(wxConfigBase *aCfg, const std::vector< std::unique_ptr< PARAM_CFG > > &aList, const wxString &aGroup)
Write aList of PARAM_CFG objects aCfg.