24#ifndef  UNITS_PROVIDER_H 
   25#define  UNITS_PROVIDER_H 
   62        return identityTransform;
 
 
   83                                                    aAddUnitLabel, aType );
 
 
  110                                                        aValue.value(), aAddUnitLabel, aType );
 
 
  131                                                         aValue, aAddUnitLabel, aType );
 
 
  244        wxString msg = wxString::Format( wxT( 
"Unhandled unit data type %d" ), 
static_cast<int>( aUnits ) );
 
 
 
constexpr EDA_IU_SCALE unityScale
 
constexpr BOX2I KiROUND(const BOX2D &aBoxD)
 
wxString MessageTextFromValue(const EDA_ANGLE &aValue, bool aAddUnitLabel=true) const
 
EDA_ANGLE AngleValueFromString(const wxString &aTextValue) const
 
const EDA_IU_SCALE & m_iuScale
 
const EDA_IU_SCALE & GetIuScale() const
 
virtual void GetUnitPair(EDA_UNITS &aPrimaryUnit, EDA_UNITS &aSecondaryUnits)
 
EDA_UNITS GetUnitsFromType(EDA_DATA_TYPE aType) const
Gets the units to use in the conversion based on the underlying user units.
 
static const wxString NullUiString
The string that is used in the UI to represent a null value.
 
virtual ~UNITS_PROVIDER()
 
std::optional< int > OptionalValueFromString(const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
Converts aTextValue in aUnits to internal units used by the frame.
 
virtual ORIGIN_TRANSFORMS & GetOriginTransforms()
 
UNITS_PROVIDER(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits)
 
wxString StringFromOptionalValue(std::optional< int > aValue, bool aAddUnitLabel=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
Converts an optional aValue in internal units into a united string.
 
wxString MessageTextFromValue(double aValue, bool aAddUnitLabel=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
A lower-precision version of StringFromValue().
 
wxString MessageTextFromMinOptMax(const MINOPTMAX< int > &aValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
 
EDA_UNITS GetUserUnits() const
 
void SetUserUnits(EDA_UNITS aUnits)
 
static EDA_DATA_TYPE GetTypeFromUnits(const EDA_UNITS aUnits)
Gets the inferred type from the given units.
 
wxString StringFromValue(double aValue, bool aAddUnitLabel=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
Converts aValue in internal units into a united string.
 
wxString StringFromValue(const EDA_ANGLE &aValue, bool aAddUnitLabel=false) const
 
int ValueFromString(const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE) const
Converts aTextValue in aUnits to internal units used by the frame.
 
EDA_DATA_TYPE
The type of unit.
 
KICOMMON_API wxString MessageTextFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=true, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
A helper to convert the double length aValue to a string in inches, millimeters, or unscaled units.
 
KICOMMON_API wxString StringFromValue(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, double aValue, bool aAddUnitsText=false, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Return the string from aValue according to aUnits (inch, mm ...) for display.
 
KICOMMON_API wxString MessageTextFromMinOptMax(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, const MINOPTMAX< int > &aValue)
 
KICOMMON_API double DoubleValueFromString(const EDA_IU_SCALE &aIuScale, EDA_UNITS aUnits, const wxString &aTextValue, EDA_DATA_TYPE aType=EDA_DATA_TYPE::DISTANCE)
Convert aTextValue to a double.
 
KICOMMON_API bool IsImperialUnit(EDA_UNITS aUnit)
 
KICOMMON_API bool IsMetricUnit(EDA_UNITS aUnit)