7#include "xfa/fxfa/parser/cxfa_measurement.h"
11#include "core/fxcrt/compiler_specific.h"
12#include "core/fxcrt/fx_extension.h"
13#include "core/fxcrt/notreached.h"
17constexpr float kPtToInch = 72;
18constexpr float kPtToCm = kPtToInch / 2.54f;
19constexpr float kPtToMm = kPtToCm / 10;
20constexpr float kPtToMp = 0.001f;
21constexpr float kPtToPc = 12;
38 if (wsMeasure.Front() == L'=')
39 wsMeasure = wsMeasure.Substr(1);
41 if (wsMeasure.IsEmpty()) {
47 float fValue = FXSYS_wcstof(wsMeasure, &nUsedLen);
48 if (!isfinite(fValue)) {
80 return ToUnitInternal(eUnit, &f) ? f : 0;
118 *fValue /= kPtToInch;
136 if (wsUnit.EqualsASCII(
"mm"))
138 if (wsUnit.EqualsASCII(
"pt"))
140 if (wsUnit.EqualsASCII(
"in"))
142 if (wsUnit.EqualsASCII(
"cm"))
144 if (wsUnit.EqualsASCII(
"pc"))
146 if (wsUnit.EqualsASCII(
"mp"))
148 if (wsUnit.EqualsASCII(
"em"))
150 if (wsUnit.EqualsASCII(
"%"))
CXFA_Measurement(float fValue, XFA_Unit eUnit)
void Set(float fValue, XFA_Unit eUnit)
CXFA_Measurement(WideStringView wsMeasure)
float ToUnit(XFA_Unit eUnit) const
static XFA_Unit GetUnitFromString(WideStringView wsUnit)
WideString ToString() const
static WideString Format(const wchar_t *pFormat,...)
#define NOTREACHED_NORETURN()
fxcrt::WideStringView WideStringView
fxcrt::WideString WideString