Replace XFA_VT_* defines with enum class.
Turns out they aren't bitfields.
Bug: pdfium:1085
Change-Id: I9a3559172bdb4001ef47e2205146133eee414283
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/80717
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fxjs/xfa/cfxjse_formcalc_context.cpp b/fxjs/xfa/cfxjse_formcalc_context.cpp
index f42859d..e6e080a 100644
--- a/fxjs/xfa/cfxjse_formcalc_context.cpp
+++ b/fxjs/xfa/cfxjse_formcalc_context.cpp
@@ -328,37 +328,40 @@
}
}
-std::pair<bool, uint32_t> PatternStringType(ByteStringView bsPattern) {
+std::pair<bool, CXFA_LocaleValue::ValueType> PatternStringType(
+ ByteStringView bsPattern) {
WideString wsPattern = WideString::FromUTF8(bsPattern);
if (L"datetime" == wsPattern.First(8))
- return {true, XFA_VT_DATETIME};
+ return {true, CXFA_LocaleValue::ValueType::kDateTime};
if (L"date" == wsPattern.First(4)) {
auto pos = wsPattern.Find(L"time");
- uint32_t type =
- pos.has_value() && pos.value() != 0 ? XFA_VT_DATETIME : XFA_VT_DATE;
+ CXFA_LocaleValue::ValueType type =
+ pos.has_value() && pos.value() != 0
+ ? CXFA_LocaleValue::ValueType::kDateTime
+ : CXFA_LocaleValue::ValueType::kDate;
return {true, type};
}
if (L"time" == wsPattern.First(4))
- return {true, XFA_VT_TIME};
+ return {true, CXFA_LocaleValue::ValueType::kTime};
if (L"text" == wsPattern.First(4))
- return {true, XFA_VT_TEXT};
+ return {true, CXFA_LocaleValue::ValueType::kText};
if (L"num" == wsPattern.First(3)) {
- uint32_t type;
+ CXFA_LocaleValue::ValueType type;
if (L"integer" == wsPattern.Substr(4, 7)) {
- type = XFA_VT_INTEGER;
+ type = CXFA_LocaleValue::ValueType::kInteger;
} else if (L"decimal" == wsPattern.Substr(4, 7)) {
- type = XFA_VT_DECIMAL;
+ type = CXFA_LocaleValue::ValueType::kDecimal;
} else if (L"currency" == wsPattern.Substr(4, 8)) {
- type = XFA_VT_FLOAT;
+ type = CXFA_LocaleValue::ValueType::kFloat;
} else if (L"percent" == wsPattern.Substr(4, 7)) {
- type = XFA_VT_FLOAT;
+ type = CXFA_LocaleValue::ValueType::kFloat;
} else {
- type = XFA_VT_FLOAT;
+ type = CXFA_LocaleValue::ValueType::kFloat;
}
return {true, type};
}
- uint32_t type = XFA_VT_NULL;
+ CXFA_LocaleValue::ValueType type = CXFA_LocaleValue::ValueType::kNull;
wsPattern.MakeLower();
const wchar_t* pData = wsPattern.c_str();
int32_t iLength = wsPattern.GetLength();
@@ -377,11 +380,11 @@
}
if (wsPatternChar == 'h' || wsPatternChar == 'k')
- return {false, XFA_VT_TIME};
+ return {false, CXFA_LocaleValue::ValueType::kTime};
if (wsPatternChar == 'x' || wsPatternChar == 'o' || wsPatternChar == '0')
- return {false, XFA_VT_TEXT};
+ return {false, CXFA_LocaleValue::ValueType::kText};
if (wsPatternChar == 'v' || wsPatternChar == '8' || wsPatternChar == '$')
- return {false, XFA_VT_FLOAT};
+ return {false, CXFA_LocaleValue::ValueType::kFloat};
if (wsPatternChar == 'y' || wsPatternChar == 'j') {
iIndex++;
wchar_t timePatternChar;
@@ -393,18 +396,18 @@
continue;
}
if (!bSingleQuotation && timePatternChar == 't')
- return {false, XFA_VT_DATETIME};
+ return {false, CXFA_LocaleValue::ValueType::kDateTime};
iIndex++;
}
- return {false, XFA_VT_DATE};
+ return {false, CXFA_LocaleValue::ValueType::kDate};
}
if (wsPatternChar == 'a') {
- type = XFA_VT_TEXT;
+ type = CXFA_LocaleValue::ValueType::kText;
} else if (wsPatternChar == 'z' || wsPatternChar == 's' ||
wsPatternChar == 'e' || wsPatternChar == ',' ||
wsPatternChar == '.') {
- type = XFA_VT_FLOAT;
+ type = CXFA_LocaleValue::ValueType::kFloat;
}
iIndex++;
}
@@ -2049,7 +2052,7 @@
}
bsArg = bsArg.Last(bsArg.GetLength() - (pos.value() + 1));
- CXFA_LocaleValue timeValue(XFA_VT_TIME,
+ CXFA_LocaleValue timeValue(CXFA_LocaleValue::ValueType::kTime,
WideString::FromUTF8(bsArg.AsStringView()), pMgr);
if (!timeValue.IsValid()) {
info.GetReturnValue().Set(0);
@@ -2465,7 +2468,7 @@
wsFormat = WideString::FromUTF8(bsFormat.AsStringView());
}
wsFormat = L"time{" + wsFormat + L"}";
- CXFA_LocaleValue localeValue(XFA_VT_TIME,
+ CXFA_LocaleValue localeValue(CXFA_LocaleValue::ValueType::kTime,
WideString::FromUTF8(bsTime.AsStringView()),
wsFormat, pLocale, pMgr);
if (!localeValue.IsValid()) {
@@ -2545,9 +2548,10 @@
return ByteString();
WideString wsFormat = FormatFromString(pLocale, bsFormat);
- CFX_DateTime dt = CXFA_LocaleValue(XFA_VT_DATE, WideString::FromUTF8(bsDate),
- wsFormat, pLocale, pMgr)
- .GetDate();
+ CFX_DateTime dt =
+ CXFA_LocaleValue(CXFA_LocaleValue::ValueType::kDate,
+ WideString::FromUTF8(bsDate), wsFormat, pLocale, pMgr)
+ .GetDate();
return ByteString::Format("%4d-%02d-%02d", dt.GetYear(), dt.GetMonth(),
dt.GetDay());
@@ -2569,7 +2573,8 @@
WideString wsFormat = FormatFromString(pLocale, bsFormat);
WideString wsRet;
- CXFA_LocaleValue(XFA_VT_DATE, WideString::FromUTF8(bsDate), pMgr)
+ CXFA_LocaleValue(CXFA_LocaleValue::ValueType::kDate,
+ WideString::FromUTF8(bsDate), pMgr)
.FormatPatterns(wsRet, wsFormat, pLocale, XFA_ValuePicture::kDisplay);
return wsRet.ToUTF8();
}
@@ -2590,7 +2595,8 @@
WideString wsFormat = {
L"time{", FormatFromString(pLocale, bsFormat).AsStringView(), L"}"};
- CXFA_LocaleValue widgetValue(XFA_VT_TIME, WideString::FromUTF8(bsTime), pMgr);
+ CXFA_LocaleValue widgetValue(CXFA_LocaleValue::ValueType::kTime,
+ WideString::FromUTF8(bsTime), pMgr);
WideString wsRet;
widgetValue.FormatPatterns(wsRet, wsFormat, pLocale,
XFA_ValuePicture::kDisplay);
@@ -3781,12 +3787,12 @@
WideString wsPattern = WideString::FromUTF8(bsPattern.AsStringView());
WideString wsValue = WideString::FromUTF8(bsValue.AsStringView());
bool bPatternIsString;
- uint32_t dwPatternType;
+ CXFA_LocaleValue::ValueType dwPatternType;
std::tie(bPatternIsString, dwPatternType) =
PatternStringType(bsPattern.AsStringView());
if (!bPatternIsString) {
switch (dwPatternType) {
- case XFA_VT_DATETIME: {
+ case CXFA_LocaleValue::ValueType::kDateTime: {
auto iTChar = wsPattern.Find(L'T');
if (!iTChar.has_value()) {
info.GetReturnValue().SetEmptyString();
@@ -3800,28 +3806,28 @@
wsPattern.Last(wsPattern.GetLength() - (iTChar.value() + 1)) + L"}";
wsPattern = wsDatePattern + wsTimePattern;
} break;
- case XFA_VT_DATE: {
+ case CXFA_LocaleValue::ValueType::kDate: {
wsPattern = L"date{" + wsPattern + L"}";
} break;
- case XFA_VT_TIME: {
+ case CXFA_LocaleValue::ValueType::kTime: {
wsPattern = L"time{" + wsPattern + L"}";
} break;
- case XFA_VT_TEXT: {
+ case CXFA_LocaleValue::ValueType::kText: {
wsPattern = L"text{" + wsPattern + L"}";
} break;
- case XFA_VT_FLOAT: {
+ case CXFA_LocaleValue::ValueType::kFloat: {
wsPattern = L"num{" + wsPattern + L"}";
} break;
default: {
WideString wsTestPattern = L"num{" + wsPattern + L"}";
- CXFA_LocaleValue tempLocaleValue(XFA_VT_FLOAT, wsValue, wsTestPattern,
- pLocale, pMgr);
+ CXFA_LocaleValue tempLocaleValue(CXFA_LocaleValue::ValueType::kFloat,
+ wsValue, wsTestPattern, pLocale, pMgr);
if (tempLocaleValue.IsValid()) {
wsPattern = std::move(wsTestPattern);
- dwPatternType = XFA_VT_FLOAT;
+ dwPatternType = CXFA_LocaleValue::ValueType::kFloat;
} else {
wsPattern = L"text{" + wsPattern + L"}";
- dwPatternType = XFA_VT_TEXT;
+ dwPatternType = CXFA_LocaleValue::ValueType::kText;
}
} break;
}
@@ -3958,7 +3964,7 @@
WideString wsPattern = WideString::FromUTF8(bsPattern.AsStringView());
WideString wsValue = WideString::FromUTF8(bsValue.AsStringView());
bool bPatternIsString;
- uint32_t dwPatternType;
+ CXFA_LocaleValue::ValueType dwPatternType;
std::tie(bPatternIsString, dwPatternType) =
PatternStringType(bsPattern.AsStringView());
if (bPatternIsString) {
@@ -3975,7 +3981,7 @@
}
switch (dwPatternType) {
- case XFA_VT_DATETIME: {
+ case CXFA_LocaleValue::ValueType::kDateTime: {
auto iTChar = wsPattern.Find(L'T');
if (!iTChar.has_value()) {
info.GetReturnValue().SetEmptyString();
@@ -3998,7 +4004,7 @@
fxv8::NewStringHelper(info.GetIsolate(), result.AsStringView()));
return;
}
- case XFA_VT_DATE: {
+ case CXFA_LocaleValue::ValueType::kDate: {
wsPattern = L"date{" + wsPattern + L"}";
CXFA_LocaleValue localeValue(dwPatternType, wsValue, wsPattern, pLocale,
pMgr);
@@ -4011,7 +4017,7 @@
fxv8::NewStringHelper(info.GetIsolate(), result.AsStringView()));
return;
}
- case XFA_VT_TIME: {
+ case CXFA_LocaleValue::ValueType::kTime: {
wsPattern = L"time{" + wsPattern + L"}";
CXFA_LocaleValue localeValue(dwPatternType, wsValue, wsPattern, pLocale,
pMgr);
@@ -4024,10 +4030,10 @@
fxv8::NewStringHelper(info.GetIsolate(), result.AsStringView()));
return;
}
- case XFA_VT_TEXT: {
+ case CXFA_LocaleValue::ValueType::kText: {
wsPattern = L"text{" + wsPattern + L"}";
- CXFA_LocaleValue localeValue(XFA_VT_TEXT, wsValue, wsPattern, pLocale,
- pMgr);
+ CXFA_LocaleValue localeValue(CXFA_LocaleValue::ValueType::kText, wsValue,
+ wsPattern, pLocale, pMgr);
if (!localeValue.IsValid()) {
info.GetReturnValue().SetEmptyString();
return;
@@ -4037,10 +4043,10 @@
fxv8::NewStringHelper(info.GetIsolate(), result.AsStringView()));
return;
}
- case XFA_VT_FLOAT: {
+ case CXFA_LocaleValue::ValueType::kFloat: {
wsPattern = L"num{" + wsPattern + L"}";
- CXFA_LocaleValue localeValue(XFA_VT_FLOAT, wsValue, wsPattern, pLocale,
- pMgr);
+ CXFA_LocaleValue localeValue(CXFA_LocaleValue::ValueType::kFloat, wsValue,
+ wsPattern, pLocale, pMgr);
if (!localeValue.IsValid()) {
info.GetReturnValue().SetEmptyString();
return;
@@ -4051,8 +4057,8 @@
default: {
{
WideString wsTestPattern = L"num{" + wsPattern + L"}";
- CXFA_LocaleValue localeValue(XFA_VT_FLOAT, wsValue, wsTestPattern,
- pLocale, pMgr);
+ CXFA_LocaleValue localeValue(CXFA_LocaleValue::ValueType::kFloat,
+ wsValue, wsTestPattern, pLocale, pMgr);
if (localeValue.IsValid()) {
info.GetReturnValue().Set(localeValue.GetDoubleNum());
return;
@@ -4061,8 +4067,8 @@
{
WideString wsTestPattern = L"text{" + wsPattern + L"}";
- CXFA_LocaleValue localeValue(XFA_VT_TEXT, wsValue, wsTestPattern,
- pLocale, pMgr);
+ CXFA_LocaleValue localeValue(CXFA_LocaleValue::ValueType::kText,
+ wsValue, wsTestPattern, pLocale, pMgr);
if (localeValue.IsValid()) {
auto result = localeValue.GetValue().ToUTF8();
info.GetReturnValue().Set(
diff --git a/xfa/fxfa/cxfa_ffdatetimeedit.cpp b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
index e6b1806..a8b5f7d 100644
--- a/xfa/fxfa/cxfa_ffdatetimeedit.cpp
+++ b/xfa/fxfa/cxfa_ffdatetimeedit.cpp
@@ -188,7 +188,8 @@
int32_t iMonth,
int32_t iDay) {
WideString wsPicture = m_pNode->GetPictureContent(XFA_ValuePicture::kEdit);
- CXFA_LocaleValue date(XFA_VT_DATE, GetDoc()->GetXFADoc()->GetLocaleMgr());
+ CXFA_LocaleValue date(CXFA_LocaleValue::ValueType::kDate,
+ GetDoc()->GetXFADoc()->GetLocaleMgr());
date.SetDate(CFX_DateTime(iYear, iMonth, iDay, 0, 0, 0, 0));
WideString wsDate;
diff --git a/xfa/fxfa/parser/cxfa_localevalue.cpp b/xfa/fxfa/parser/cxfa_localevalue.cpp
index 09bf72a..6db92f1 100644
--- a/xfa/fxfa/parser/cxfa_localevalue.cpp
+++ b/xfa/fxfa/parser/cxfa_localevalue.cpp
@@ -25,26 +25,27 @@
CFGAS_StringFormatter::Category ValueCategory(
CFGAS_StringFormatter::Category eCategory,
- uint32_t dwValueType) {
+ CXFA_LocaleValue::ValueType eValueType) {
if (eCategory != CFGAS_StringFormatter::Category::kUnknown)
return eCategory;
- switch (dwValueType) {
- case XFA_VT_BOOLEAN:
- case XFA_VT_INTEGER:
- case XFA_VT_DECIMAL:
- case XFA_VT_FLOAT:
+ switch (eValueType) {
+ case CXFA_LocaleValue::ValueType::kBoolean:
+ case CXFA_LocaleValue::ValueType::kInteger:
+ case CXFA_LocaleValue::ValueType::kDecimal:
+ case CXFA_LocaleValue::ValueType::kFloat:
return CFGAS_StringFormatter::Category::kNum;
- case XFA_VT_TEXT:
+ case CXFA_LocaleValue::ValueType::kText:
return CFGAS_StringFormatter::Category::kText;
- case XFA_VT_DATE:
+ case CXFA_LocaleValue::ValueType::kDate:
return CFGAS_StringFormatter::Category::kDate;
- case XFA_VT_TIME:
+ case CXFA_LocaleValue::ValueType::kTime:
return CFGAS_StringFormatter::Category::kTime;
- case XFA_VT_DATETIME:
+ case CXFA_LocaleValue::ValueType::kDateTime:
return CFGAS_StringFormatter::Category::kDateTime;
+ default:
+ return CFGAS_StringFormatter::Category::kUnknown;
}
- return CFGAS_StringFormatter::Category::kUnknown;
}
bool ValueSplitDateTime(const WideString& wsDateTime,
@@ -96,26 +97,26 @@
CXFA_LocaleValue::CXFA_LocaleValue() = default;
-CXFA_LocaleValue::CXFA_LocaleValue(uint32_t dwType, CXFA_LocaleMgr* pLocaleMgr)
+CXFA_LocaleValue::CXFA_LocaleValue(ValueType eType, CXFA_LocaleMgr* pLocaleMgr)
: m_pLocaleMgr(pLocaleMgr),
- m_dwType(dwType),
- m_bValid(m_dwType != XFA_VT_NULL) {}
+ m_eType(eType),
+ m_bValid(m_eType != ValueType::kNull) {}
-CXFA_LocaleValue::CXFA_LocaleValue(uint32_t dwType,
+CXFA_LocaleValue::CXFA_LocaleValue(ValueType eType,
const WideString& wsValue,
CXFA_LocaleMgr* pLocaleMgr)
: m_pLocaleMgr(pLocaleMgr),
m_wsValue(wsValue),
- m_dwType(dwType),
- m_bValid(ValidateCanonicalValue(wsValue, dwType)) {}
+ m_eType(eType),
+ m_bValid(ValidateCanonicalValue(wsValue, eType)) {}
-CXFA_LocaleValue::CXFA_LocaleValue(uint32_t dwType,
+CXFA_LocaleValue::CXFA_LocaleValue(ValueType eType,
const WideString& wsValue,
const WideString& wsFormat,
GCedLocaleIface* pLocale,
CXFA_LocaleMgr* pLocaleMgr)
: m_pLocaleMgr(pLocaleMgr),
- m_dwType(dwType),
+ m_eType(eType),
m_bValid(ParsePatternValue(wsValue, wsFormat, pLocale)) {}
CXFA_LocaleValue::CXFA_LocaleValue(const CXFA_LocaleValue& that) = default;
@@ -142,7 +143,7 @@
for (; !bRet && i < wsPatterns.size(); i++) {
const WideString& wsFormat = wsPatterns[i];
auto pFormat = std::make_unique<CFGAS_StringFormatter>(wsFormat);
- switch (ValueCategory(pFormat->GetCategory(), m_dwType)) {
+ switch (ValueCategory(pFormat->GetCategory(), m_eType)) {
case CFGAS_StringFormatter::Category::kNull:
bRet = pFormat->ParseNull(wsValue);
if (!bRet)
@@ -216,8 +217,10 @@
}
double CXFA_LocaleValue::GetDoubleNum() const {
- if (!m_bValid || (m_dwType != XFA_VT_BOOLEAN && m_dwType != XFA_VT_INTEGER &&
- m_dwType != XFA_VT_DECIMAL && m_dwType != XFA_VT_FLOAT)) {
+ if (!m_bValid || (m_eType != CXFA_LocaleValue::ValueType::kBoolean &&
+ m_eType != CXFA_LocaleValue::ValueType::kInteger &&
+ m_eType != CXFA_LocaleValue::ValueType::kDecimal &&
+ m_eType != CXFA_LocaleValue::ValueType::kFloat)) {
return 0;
}
@@ -225,7 +228,7 @@
}
CFX_DateTime CXFA_LocaleValue::GetDate() const {
- if (!m_bValid || m_dwType != XFA_VT_DATE)
+ if (!m_bValid || m_eType != CXFA_LocaleValue::ValueType::kDate)
return CFX_DateTime();
CFX_DateTime dt;
@@ -234,7 +237,7 @@
}
CFX_DateTime CXFA_LocaleValue::GetTime() const {
- if (!m_bValid || m_dwType != XFA_VT_TIME)
+ if (!m_bValid || m_eType != CXFA_LocaleValue::ValueType::kTime)
return CFX_DateTime();
CFX_DateTime dt;
@@ -243,14 +246,14 @@
}
bool CXFA_LocaleValue::SetDate(const CFX_DateTime& d) {
- m_dwType = XFA_VT_DATE;
+ m_eType = CXFA_LocaleValue::ValueType::kDate;
m_wsValue = WideString::Format(L"%04d-%02d-%02d", d.GetYear(), d.GetMonth(),
d.GetDay());
return true;
}
bool CXFA_LocaleValue::SetTime(const CFX_DateTime& t) {
- m_dwType = XFA_VT_TIME;
+ m_eType = CXFA_LocaleValue::ValueType::kTime;
m_wsValue = WideString::Format(L"%02d:%02d:%02d", t.GetHour(), t.GetMinute(),
t.GetSecond());
if (t.GetMillisecond() > 0)
@@ -259,7 +262,7 @@
}
bool CXFA_LocaleValue::SetDateTime(const CFX_DateTime& dt) {
- m_dwType = XFA_VT_DATETIME;
+ m_eType = CXFA_LocaleValue::ValueType::kDateTime;
m_wsValue = WideString::Format(L"%04d-%02d-%02dT%02d:%02d:%02d", dt.GetYear(),
dt.GetMonth(), dt.GetDay(), dt.GetHour(),
dt.GetMinute(), dt.GetSecond());
@@ -293,7 +296,7 @@
bool bRet = false;
auto pFormat = std::make_unique<CFGAS_StringFormatter>(wsFormat);
CFGAS_StringFormatter::Category eCategory =
- ValueCategory(pFormat->GetCategory(), m_dwType);
+ ValueCategory(pFormat->GetCategory(), m_eType);
switch (eCategory) {
case CFGAS_StringFormatter::Category::kNull:
if (m_wsValue.IsEmpty())
@@ -337,13 +340,13 @@
}
bool CXFA_LocaleValue::ValidateCanonicalValue(const WideString& wsValue,
- uint32_t dwVType) {
+ ValueType eType) {
if (wsValue.IsEmpty())
return true;
CFX_DateTime dt;
- switch (dwVType) {
- case XFA_VT_DATE: {
+ switch (eType) {
+ case ValueType::kDate: {
if (ValidateCanonicalDate(wsValue, &dt))
return true;
@@ -355,7 +358,7 @@
}
return false;
}
- case XFA_VT_TIME: {
+ case ValueType::kTime: {
if (ValidateCanonicalTime(wsValue))
return true;
@@ -367,13 +370,16 @@
}
return false;
}
- case XFA_VT_DATETIME: {
+ case ValueType::kDateTime: {
WideString wsDate, wsTime;
if (ValueSplitDateTime(wsValue, wsDate, wsTime) &&
ValidateCanonicalDate(wsDate, &dt) && ValidateCanonicalTime(wsTime)) {
return true;
}
} break;
+ default: {
+ break;
+ }
}
return true;
}
@@ -570,7 +576,7 @@
for (size_t i = 0; !bRet && i < wsPatterns.size(); i++) {
const WideString& wsFormat = wsPatterns[i];
auto pFormat = std::make_unique<CFGAS_StringFormatter>(wsFormat);
- switch (ValueCategory(pFormat->GetCategory(), m_dwType)) {
+ switch (ValueCategory(pFormat->GetCategory(), m_eType)) {
case CFGAS_StringFormatter::Category::kNull:
bRet = pFormat->ParseNull(wsValue);
if (bRet)
diff --git a/xfa/fxfa/parser/cxfa_localevalue.h b/xfa/fxfa/parser/cxfa_localevalue.h
index 94a925e..bad3627 100644
--- a/xfa/fxfa/parser/cxfa_localevalue.h
+++ b/xfa/fxfa/parser/cxfa_localevalue.h
@@ -17,26 +17,28 @@
class CXFA_LocaleMgr;
class GCedLocaleIface;
-#define XFA_VT_NULL 0
-#define XFA_VT_BOOLEAN 1
-#define XFA_VT_INTEGER 2
-#define XFA_VT_DECIMAL 4
-#define XFA_VT_FLOAT 8
-#define XFA_VT_TEXT 16
-#define XFA_VT_DATE 32
-#define XFA_VT_TIME 64
-#define XFA_VT_DATETIME 128
-
class CXFA_LocaleValue {
CPPGC_STACK_ALLOCATED(); // Raw/Unowned pointers allowed.
public:
+ enum class ValueType : uint8_t {
+ kNull = 0,
+ kBoolean,
+ kInteger,
+ kDecimal,
+ kFloat,
+ kText,
+ kDate,
+ kTime,
+ kDateTime,
+ };
+
CXFA_LocaleValue();
- CXFA_LocaleValue(uint32_t dwType, CXFA_LocaleMgr* pLocaleMgr);
- CXFA_LocaleValue(uint32_t dwType,
+ CXFA_LocaleValue(ValueType eType, CXFA_LocaleMgr* pLocaleMgr);
+ CXFA_LocaleValue(ValueType eType,
const WideString& wsValue,
CXFA_LocaleMgr* pLocaleMgr);
- CXFA_LocaleValue(uint32_t dwType,
+ CXFA_LocaleValue(ValueType dwType,
const WideString& wsValue,
const WideString& wsFormat,
GCedLocaleIface* pLocale,
@@ -63,7 +65,7 @@
bool IsValid() const { return m_bValid; }
const WideString& GetValue() const { return m_wsValue; }
- uint32_t GetType() const { return m_dwType; }
+ ValueType GetType() const { return m_eType; }
double GetDoubleNum() const;
bool SetDate(const CFX_DateTime& d);
CFX_DateTime GetDate() const;
@@ -74,7 +76,7 @@
const WideString& wsFormat,
GCedLocaleIface* pLocale,
XFA_ValuePicture eValueType) const;
- bool ValidateCanonicalValue(const WideString& wsValue, uint32_t dwVType);
+ bool ValidateCanonicalValue(const WideString& wsValue, ValueType eType);
bool ValidateCanonicalDate(const WideString& wsDate, CFX_DateTime* unDate);
bool ValidateCanonicalTime(const WideString& wsTime);
@@ -87,7 +89,7 @@
UnownedPtr<CXFA_LocaleMgr> m_pLocaleMgr; // Ok, stack-only.
WideString m_wsValue;
- uint32_t m_dwType = XFA_VT_NULL;
+ ValueType m_eType = ValueType::kNull;
bool m_bValid = true;
};
diff --git a/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp b/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp
index e69b058..8357431 100644
--- a/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp
+++ b/xfa/fxfa/parser/cxfa_localevalue_unittest.cpp
@@ -11,7 +11,8 @@
// We don't expect more precision than a float's worth from this code.
float MakeDoubleNumAsFloat(const wchar_t* str) {
return static_cast<float>(
- CXFA_LocaleValue(XFA_VT_FLOAT, str, nullptr).GetDoubleNum());
+ CXFA_LocaleValue(CXFA_LocaleValue::ValueType::kFloat, str, nullptr)
+ .GetDoubleNum());
}
} // namespace
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index f35db20..16335e0 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -4726,22 +4726,21 @@
if (!pLocale)
return WideString();
- uint32_t dwType = widgetValue.GetType();
- switch (dwType) {
- case XFA_VT_DATE:
+ switch (widgetValue.GetType()) {
+ case CXFA_LocaleValue::ValueType::kDate:
return pLocale->GetDatePattern(
LocaleIface::DateTimeSubcategory::kMedium);
- case XFA_VT_TIME:
+ case CXFA_LocaleValue::ValueType::kTime:
return pLocale->GetTimePattern(
LocaleIface::DateTimeSubcategory::kMedium);
- case XFA_VT_DATETIME:
+ case CXFA_LocaleValue::ValueType::kDateTime:
return pLocale->GetDatePattern(
LocaleIface::DateTimeSubcategory::kMedium) +
L"T" +
pLocale->GetTimePattern(
LocaleIface::DateTimeSubcategory::kMedium);
- case XFA_VT_DECIMAL:
- case XFA_VT_FLOAT:
+ case CXFA_LocaleValue::ValueType::kDecimal:
+ case CXFA_LocaleValue::ValueType::kFloat:
default:
return WideString();
}
@@ -4762,15 +4761,14 @@
if (!pLocale)
return WideString();
- uint32_t dwType = widgetValue.GetType();
- switch (dwType) {
- case XFA_VT_DATE:
+ switch (widgetValue.GetType()) {
+ case CXFA_LocaleValue::ValueType::kDate:
return pLocale->GetDatePattern(
LocaleIface::DateTimeSubcategory::kShort);
- case XFA_VT_TIME:
+ case CXFA_LocaleValue::ValueType::kTime:
return pLocale->GetTimePattern(
LocaleIface::DateTimeSubcategory::kShort);
- case XFA_VT_DATETIME:
+ case CXFA_LocaleValue::ValueType::kDateTime:
return pLocale->GetDatePattern(
LocaleIface::DateTimeSubcategory::kShort) +
L"T" +
@@ -4833,19 +4831,21 @@
CXFA_LocaleValue widgetValue = XFA_GetLocaleValue(this);
CXFA_LocaleMgr* pLocaleMgr = GetDocument()->GetLocaleMgr();
switch (widgetValue.GetType()) {
- case XFA_VT_DATE: {
+ case CXFA_LocaleValue::ValueType::kDate: {
WideString wsDate, wsTime;
if (SplitDateTime(wsValue, wsDate, wsTime)) {
- CXFA_LocaleValue date(XFA_VT_DATE, wsDate, pLocaleMgr);
+ CXFA_LocaleValue date(CXFA_LocaleValue::ValueType::kDate, wsDate,
+ pLocaleMgr);
if (date.FormatPatterns(wsValue, wsPicture, pLocale, eValueType))
return wsValue;
}
break;
}
- case XFA_VT_TIME: {
+ case CXFA_LocaleValue::ValueType::kTime: {
WideString wsDate, wsTime;
if (SplitDateTime(wsValue, wsDate, wsTime)) {
- CXFA_LocaleValue time(XFA_VT_TIME, wsTime, pLocaleMgr);
+ CXFA_LocaleValue time(CXFA_LocaleValue::ValueType::kTime, wsTime,
+ pLocaleMgr);
if (time.FormatPatterns(wsValue, wsPicture, pLocale, eValueType))
return wsValue;
}
@@ -4897,43 +4897,44 @@
if (!pValueChild)
return wsValue;
- int32_t iVTType = XFA_VT_NULL;
+ CXFA_LocaleValue::ValueType iVTType;
switch (pValueChild->GetElementType()) {
case XFA_Element::Decimal:
- iVTType = XFA_VT_DECIMAL;
+ iVTType = CXFA_LocaleValue::ValueType::kDecimal;
break;
case XFA_Element::Float:
- iVTType = XFA_VT_FLOAT;
+ iVTType = CXFA_LocaleValue::ValueType::kFloat;
break;
case XFA_Element::Date:
- iVTType = XFA_VT_DATE;
+ iVTType = CXFA_LocaleValue::ValueType::kDate;
break;
case XFA_Element::Time:
- iVTType = XFA_VT_TIME;
+ iVTType = CXFA_LocaleValue::ValueType::kTime;
break;
case XFA_Element::DateTime:
- iVTType = XFA_VT_DATETIME;
+ iVTType = CXFA_LocaleValue::ValueType::kDateTime;
break;
case XFA_Element::Boolean:
- iVTType = XFA_VT_BOOLEAN;
+ iVTType = CXFA_LocaleValue::ValueType::kBoolean;
break;
case XFA_Element::Integer:
- iVTType = XFA_VT_INTEGER;
+ iVTType = CXFA_LocaleValue::ValueType::kInteger;
break;
case XFA_Element::Text:
- iVTType = XFA_VT_TEXT;
+ iVTType = CXFA_LocaleValue::ValueType::kText;
break;
default:
- iVTType = XFA_VT_NULL;
+ iVTType = CXFA_LocaleValue::ValueType::kNull;
break;
}
CXFA_LocaleMgr* pLocaleMgr = GetDocument()->GetLocaleMgr();
CXFA_LocaleValue widgetValue(iVTType, wsValue, pLocaleMgr);
switch (widgetValue.GetType()) {
- case XFA_VT_DATE: {
+ case CXFA_LocaleValue::ValueType::kDate: {
WideString wsDate, wsTime;
if (SplitDateTime(wsValue, wsDate, wsTime)) {
- CXFA_LocaleValue date(XFA_VT_DATE, wsDate, pLocaleMgr);
+ CXFA_LocaleValue date(CXFA_LocaleValue::ValueType::kDate, wsDate,
+ pLocaleMgr);
if (date.FormatPatterns(wsFormattedValue, wsPicture, pLocale,
XFA_ValuePicture::kDataBind)) {
return wsFormattedValue;
@@ -4941,10 +4942,11 @@
}
break;
}
- case XFA_VT_TIME: {
+ case CXFA_LocaleValue::ValueType::kTime: {
WideString wsDate, wsTime;
if (SplitDateTime(wsValue, wsDate, wsTime)) {
- CXFA_LocaleValue time(XFA_VT_TIME, wsTime, pLocaleMgr);
+ CXFA_LocaleValue time(CXFA_LocaleValue::ValueType::kTime, wsTime,
+ pLocaleMgr);
if (time.FormatPatterns(wsFormattedValue, wsPicture, pLocale,
XFA_ValuePicture::kDataBind)) {
return wsFormattedValue;
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp
index 098b662..451060a 100644
--- a/xfa/fxfa/parser/xfa_utils.cpp
+++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -386,34 +386,34 @@
if (!pValueChild)
return CXFA_LocaleValue();
- int32_t iVTType = XFA_VT_NULL;
+ CXFA_LocaleValue::ValueType iVTType;
switch (pValueChild->GetElementType()) {
case XFA_Element::Decimal:
- iVTType = XFA_VT_DECIMAL;
+ iVTType = CXFA_LocaleValue::ValueType::kDecimal;
break;
case XFA_Element::Float:
- iVTType = XFA_VT_FLOAT;
+ iVTType = CXFA_LocaleValue::ValueType::kFloat;
break;
case XFA_Element::Date:
- iVTType = XFA_VT_DATE;
+ iVTType = CXFA_LocaleValue::ValueType::kDate;
break;
case XFA_Element::Time:
- iVTType = XFA_VT_TIME;
+ iVTType = CXFA_LocaleValue::ValueType::kTime;
break;
case XFA_Element::DateTime:
- iVTType = XFA_VT_DATETIME;
+ iVTType = CXFA_LocaleValue::ValueType::kDateTime;
break;
case XFA_Element::Boolean:
- iVTType = XFA_VT_BOOLEAN;
+ iVTType = CXFA_LocaleValue::ValueType::kBoolean;
break;
case XFA_Element::Integer:
- iVTType = XFA_VT_INTEGER;
+ iVTType = CXFA_LocaleValue::ValueType::kInteger;
break;
case XFA_Element::Text:
- iVTType = XFA_VT_TEXT;
+ iVTType = CXFA_LocaleValue::ValueType::kText;
break;
default:
- iVTType = XFA_VT_NULL;
+ iVTType = CXFA_LocaleValue::ValueType::kNull;
break;
}
return CXFA_LocaleValue(iVTType, pNode->GetRawValue(),