KiCad PCB EDA Suite
COLOR_MAP_PARAM Class Reference

#include <color_settings.h>

Inheritance diagram for COLOR_MAP_PARAM:
PARAM_BASE

Public Member Functions

 COLOR_MAP_PARAM (const std::string &aJsonPath, int aMapKey, COLOR4D aDefault, std::unordered_map< int, COLOR4D > *aMap, bool aReadOnly=false)
 
void Load (JSON_SETTINGS *aSettings, bool aResetIfMissing=true) const override
 Loads the value of this parameter from JSON to the underlying storage. More...
 
void Store (JSON_SETTINGS *aSettings) const override
 Stores the value of this parameter to the given JSON_SETTINGS object. More...
 
int GetKey () const
 
COLOR4D GetDefault () const
 
void SetDefault () override
 
bool MatchesFile (JSON_SETTINGS *aSettings) const override
 Checks whether the parameter in memory matches the one in a given JSON file. More...
 
const std::string & GetJsonPath () const
 

Protected Attributes

std::string m_path
 the string used to store the param in json files More...
 
bool m_readOnly
 ! True if the parameter pointer should never be overwritten More...
 

Private Attributes

int m_key
 
COLOR4D m_default
 
std::unordered_map< int, COLOR4D > * m_map
 

Detailed Description

Definition at line 118 of file color_settings.h.

Constructor & Destructor Documentation

◆ COLOR_MAP_PARAM()

COLOR_MAP_PARAM::COLOR_MAP_PARAM ( const std::string &  aJsonPath,
int  aMapKey,
COLOR4D  aDefault,
std::unordered_map< int, COLOR4D > *  aMap,
bool  aReadOnly = false 
)
inline

Definition at line 121 of file color_settings.h.

122  :
123  PARAM_BASE( aJsonPath, aReadOnly ), m_key( aMapKey ), m_default( aDefault ),
124  m_map( aMap )
125  {}
PARAM_BASE(std::string aJsonPath, bool aReadOnly)
Definition: parameters.h:35
std::unordered_map< int, COLOR4D > * m_map

Member Function Documentation

◆ GetDefault()

COLOR4D COLOR_MAP_PARAM::GetDefault ( ) const
inline

Definition at line 148 of file color_settings.h.

149  {
150  return m_default;
151  }

References m_default.

Referenced by COLOR_SETTINGS::GetDefaultColor().

◆ GetJsonPath()

const std::string& PARAM_BASE::GetJsonPath ( ) const
inlineinherited
Returns
the path name of the parameter used to store it in the json file mainly useful in error messages

Definition at line 68 of file parameters.h.

68 { return m_path; }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:74

References PARAM_BASE::m_path.

◆ GetKey()

int COLOR_MAP_PARAM::GetKey ( ) const
inline

Definition at line 143 of file color_settings.h.

144  {
145  return m_key;
146  }

References m_key.

Referenced by COLOR_SETTINGS::GetDefaultColor().

◆ Load()

void COLOR_MAP_PARAM::Load ( JSON_SETTINGS aSettings,
bool  aResetIfMissing = true 
) const
inlineoverridevirtual

Loads the value of this parameter from JSON to the underlying storage.

Parameters
aSettingsis the JSON_SETTINGS object to load from.
aResetIfMissingif true will set the parameter to its default value if load fails

Implements PARAM_BASE.

Definition at line 127 of file color_settings.h.

128  {
129  if( m_readOnly )
130  return;
131 
132  if( OPT<COLOR4D> optval = aSettings->Get<COLOR4D>( m_path ) )
133  ( *m_map )[ m_key ] = *optval;
134  else if( aResetIfMissing )
135  ( *m_map )[ m_key ] = m_default;
136  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:74
OPT< ValueType > Get(const std::string &aPath) const
Fetches a value from within the JSON document.
bool m_readOnly
! True if the parameter pointer should never be overwritten
Definition: parameters.h:77
boost::optional< T > OPT
Definition: optional.h:7
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:103

References JSON_SETTINGS::Get(), m_default, m_key, PARAM_BASE::m_path, and PARAM_BASE::m_readOnly.

◆ MatchesFile()

bool COLOR_MAP_PARAM::MatchesFile ( JSON_SETTINGS aSettings) const
inlineoverridevirtual

Checks whether the parameter in memory matches the one in a given JSON file.

Parameters
aSettingsis a JSON_SETTINGS to check the JSON file contents of
Returns
true if the parameter in memory matches its value in the file

Implements PARAM_BASE.

Definition at line 158 of file color_settings.h.

159  {
160  if( OPT<COLOR4D> optval = aSettings->Get<COLOR4D>( m_path ) )
161  return m_map->count( m_key ) && ( *optval == m_map->at( m_key ) );
162 
163  // If the JSON doesn't exist, the map shouldn't exist either
164  return !m_map->count( m_key );
165  }
std::string m_path
the string used to store the param in json files
Definition: parameters.h:74
OPT< ValueType > Get(const std::string &aPath) const
Fetches a value from within the JSON document.
std::unordered_map< int, COLOR4D > * m_map
boost::optional< T > OPT
Definition: optional.h:7
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:103

References JSON_SETTINGS::Get(), m_key, m_map, and PARAM_BASE::m_path.

◆ SetDefault()

void COLOR_MAP_PARAM::SetDefault ( )
inlineoverridevirtual

Implements PARAM_BASE.

Definition at line 153 of file color_settings.h.

154  {
155  ( *m_map )[ m_key ] = m_default;
156  }

References m_default, and m_key.

◆ Store()

void COLOR_MAP_PARAM::Store ( JSON_SETTINGS aSettings) const
inlineoverridevirtual

Stores the value of this parameter to the given JSON_SETTINGS object.

Parameters
aSettingsis the JSON_SETTINGS object to store into.

Implements PARAM_BASE.

Definition at line 138 of file color_settings.h.

139  {
140  aSettings->Set<COLOR4D>( m_path, ( *m_map )[ m_key ] );
141  }
void Set(const std::string &aPath, ValueType aVal)
Stores a value into the JSON document Will throw an exception if ValueType isn't something that the l...
std::string m_path
the string used to store the param in json files
Definition: parameters.h:74
A color representation with 4 components: red, green, blue, alpha.
Definition: color4d.h:103

References m_key, PARAM_BASE::m_path, and JSON_SETTINGS::Set().

Member Data Documentation

◆ m_default

COLOR4D COLOR_MAP_PARAM::m_default
private

Definition at line 170 of file color_settings.h.

Referenced by GetDefault(), Load(), and SetDefault().

◆ m_key

int COLOR_MAP_PARAM::m_key
private

Definition at line 168 of file color_settings.h.

Referenced by GetKey(), Load(), MatchesFile(), SetDefault(), and Store().

◆ m_map

std::unordered_map<int, COLOR4D>* COLOR_MAP_PARAM::m_map
private

Definition at line 172 of file color_settings.h.

Referenced by MatchesFile().

◆ m_path

◆ m_readOnly

bool PARAM_BASE::m_readOnly
protectedinherited

! True if the parameter pointer should never be overwritten

Definition at line 77 of file parameters.h.

Referenced by PARAM< wxString >::Load(), Load(), PARAM_PATH::Load(), PARAM_ENUM< EnumType >::Load(), PARAM_SCALED< ValueType >::Load(), PARAM_PATH_LIST::Load(), and PARAM_WXSTRING_MAP::Load().


The documentation for this class was generated from the following file: