Make CFX_CSSVALUETYPE an enum class
Change-Id: Iefe56727ff3ac6aa9f8ef4ff1b93a4e181c58455
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84077
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fxcrt/css/cfx_css.h b/core/fxcrt/css/cfx_css.h
index b2b0121..a6e3109 100644
--- a/core/fxcrt/css/cfx_css.h
+++ b/core/fxcrt/css/cfx_css.h
@@ -164,13 +164,13 @@
SmallCaps,
};
-enum CFX_CSSTEXTDECORATION {
- CFX_CSSTEXTDECORATION_None = 0,
- CFX_CSSTEXTDECORATION_Underline = 1 << 0,
- CFX_CSSTEXTDECORATION_Overline = 1 << 1,
- CFX_CSSTEXTDECORATION_LineThrough = 1 << 2,
- CFX_CSSTEXTDECORATION_Blink = 1 << 3,
- CFX_CSSTEXTDECORATION_Double = 1 << 4,
+enum class CFX_CSSTEXTDECORATION : uint8_t {
+ kNone = 0,
+ kUnderline = 1 << 0,
+ kOverline = 1 << 1,
+ kLineThrough = 1 << 2,
+ kBlink = 1 << 3,
+ kDouble = 1 << 4,
};
class CFX_CSSLength {
diff --git a/core/fxcrt/css/cfx_csscomputedstyle.cpp b/core/fxcrt/css/cfx_csscomputedstyle.cpp
index dcd7cc1..87cf08a 100644
--- a/core/fxcrt/css/cfx_csscomputedstyle.cpp
+++ b/core/fxcrt/css/cfx_csscomputedstyle.cpp
@@ -126,7 +126,7 @@
return m_NonInheritedData.m_fVerticalAlign;
}
-uint32_t CFX_CSSComputedStyle::GetTextDecoration() const {
+Mask<CFX_CSSTEXTDECORATION> CFX_CSSComputedStyle::GetTextDecoration() const {
return m_NonInheritedData.m_dwTextDecoration;
}
@@ -151,7 +151,8 @@
m_NonInheritedData.m_fVerticalAlign = fAlign;
}
-void CFX_CSSComputedStyle::SetTextDecoration(uint32_t dwTextDecoration) {
+void CFX_CSSComputedStyle::SetTextDecoration(
+ Mask<CFX_CSSTEXTDECORATION> dwTextDecoration) {
m_NonInheritedData.m_dwTextDecoration = dwTextDecoration;
}
diff --git a/core/fxcrt/css/cfx_csscomputedstyle.h b/core/fxcrt/css/cfx_csscomputedstyle.h
index 4da15a7..921c66c 100644
--- a/core/fxcrt/css/cfx_csscomputedstyle.h
+++ b/core/fxcrt/css/cfx_csscomputedstyle.h
@@ -12,6 +12,7 @@
#include "core/fxcrt/css/cfx_css.h"
#include "core/fxcrt/css/cfx_csscustomproperty.h"
#include "core/fxcrt/fx_string.h"
+#include "core/fxcrt/mask.h"
#include "core/fxcrt/retain_ptr.h"
#include "core/fxge/dib/fx_dib.h"
#include "third_party/base/optional.h"
@@ -52,7 +53,7 @@
float m_fVerticalAlign = 0.0f;
CFX_CSSDisplay m_eDisplay = CFX_CSSDisplay::Inline;
CFX_CSSVerticalAlign m_eVerticalAlignType = CFX_CSSVerticalAlign::Baseline;
- uint8_t m_dwTextDecoration = 0;
+ Mask<CFX_CSSTEXTDECORATION> m_dwTextDecoration;
bool m_bHasMargin = false;
bool m_bHasBorder = false;
bool m_bHasPadding = false;
@@ -85,13 +86,13 @@
CFX_CSSTextAlign GetTextAlign() const;
CFX_CSSVerticalAlign GetVerticalAlign() const;
float GetNumberVerticalAlign() const;
- uint32_t GetTextDecoration() const;
+ Mask<CFX_CSSTEXTDECORATION> GetTextDecoration() const;
const CFX_CSSLength& GetLetterSpacing() const;
void SetLineHeight(float fLineHeight);
void SetTextIndent(const CFX_CSSLength& textIndent);
void SetTextAlign(CFX_CSSTextAlign eTextAlign);
void SetNumberVerticalAlign(float fAlign);
- void SetTextDecoration(uint32_t dwTextDecoration);
+ void SetTextDecoration(Mask<CFX_CSSTEXTDECORATION> dwTextDecoration);
void SetLetterSpacing(const CFX_CSSLength& letterSpacing);
void AddCustomStyle(const CFX_CSSCustomProperty& prop);
diff --git a/core/fxcrt/css/cfx_cssstyleselector.cpp b/core/fxcrt/css/cfx_cssstyleselector.cpp
index 8c7dcb0..a60d131 100644
--- a/core/fxcrt/css/cfx_cssstyleselector.cpp
+++ b/core/fxcrt/css/cfx_cssstyleselector.cpp
@@ -560,9 +560,9 @@
}
}
-uint32_t CFX_CSSStyleSelector::ToTextDecoration(
+Mask<CFX_CSSTEXTDECORATION> CFX_CSSStyleSelector::ToTextDecoration(
const RetainPtr<CFX_CSSValueList>& pValue) {
- uint32_t dwDecoration = 0;
+ Mask<CFX_CSSTEXTDECORATION> dwDecoration;
for (const RetainPtr<CFX_CSSValue>& val :
pdfium::base::Reversed(pValue->values())) {
if (val->GetType() != CFX_CSSValue::PrimitiveType::kEnum)
@@ -570,19 +570,19 @@
switch (val.As<CFX_CSSEnumValue>()->Value()) {
case CFX_CSSPropertyValue::Underline:
- dwDecoration |= CFX_CSSTEXTDECORATION_Underline;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kUnderline;
break;
case CFX_CSSPropertyValue::LineThrough:
- dwDecoration |= CFX_CSSTEXTDECORATION_LineThrough;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kLineThrough;
break;
case CFX_CSSPropertyValue::Overline:
- dwDecoration |= CFX_CSSTEXTDECORATION_Overline;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kOverline;
break;
case CFX_CSSPropertyValue::Blink:
- dwDecoration |= CFX_CSSTEXTDECORATION_Blink;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kBlink;
break;
case CFX_CSSPropertyValue::Double:
- dwDecoration |= CFX_CSSTEXTDECORATION_Double;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kDouble;
break;
default:
break;
diff --git a/core/fxcrt/css/cfx_cssstyleselector.h b/core/fxcrt/css/cfx_cssstyleselector.h
index 94a0b8d..eebfc3d 100644
--- a/core/fxcrt/css/cfx_cssstyleselector.h
+++ b/core/fxcrt/css/cfx_cssstyleselector.h
@@ -15,6 +15,7 @@
#include "core/fxcrt/css/cfx_css.h"
#include "core/fxcrt/css/cfx_cssrulecollection.h"
#include "core/fxcrt/css/cfx_cssvalue.h"
+#include "core/fxcrt/mask.h"
#include "core/fxcrt/retain_ptr.h"
class CFX_CSSComputedStyle;
@@ -74,7 +75,8 @@
uint16_t ToFontWeight(CFX_CSSPropertyValue eValue);
CFX_CSSFontStyle ToFontStyle(CFX_CSSPropertyValue eValue);
CFX_CSSVerticalAlign ToVerticalAlign(CFX_CSSPropertyValue eValue);
- uint32_t ToTextDecoration(const RetainPtr<CFX_CSSValueList>& pList);
+ Mask<CFX_CSSTEXTDECORATION> ToTextDecoration(
+ const RetainPtr<CFX_CSSValueList>& pList);
CFX_CSSFontVariant ToFontVariant(CFX_CSSPropertyValue eValue);
float m_fDefaultFontSize = 12.0f;
diff --git a/xfa/fxfa/cxfa_textparser.cpp b/xfa/fxfa/cxfa_textparser.cpp
index 40d8134..227c044 100644
--- a/xfa/fxfa/cxfa_textparser.cpp
+++ b/xfa/fxfa/cxfa_textparser.cpp
@@ -158,13 +158,13 @@
CFX_CSSLength letterSpacing;
letterSpacing.Set(CFX_CSSLengthUnit::Point, font->GetLetterSpacing());
pStyle->SetLetterSpacing(letterSpacing);
- uint32_t dwDecoration = 0;
+ Mask<CFX_CSSTEXTDECORATION> dwDecoration;
if (font->GetLineThrough() > 0)
- dwDecoration |= CFX_CSSTEXTDECORATION_LineThrough;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kLineThrough;
if (font->GetUnderline() > 1)
- dwDecoration |= CFX_CSSTEXTDECORATION_Double;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kDouble;
else if (font->GetUnderline() > 0)
- dwDecoration |= CFX_CSSTEXTDECORATION_Underline;
+ dwDecoration |= CFX_CSSTEXTDECORATION::kUnderline;
pStyle->SetTextDecoration(dwDecoration);
}
@@ -180,7 +180,7 @@
if (!pParentStyle)
return pNewStyle;
- uint32_t dwDecoration = pParentStyle->GetTextDecoration();
+ Mask<CFX_CSSTEXTDECORATION> dwDecoration = pParentStyle->GetTextDecoration();
float fBaseLine = 0;
if (pParentStyle->GetVerticalAlign() == CFX_CSSVerticalAlign::Number)
fBaseLine = pParentStyle->GetNumberVerticalAlign();
@@ -420,10 +420,10 @@
if (!pStyle)
return font ? font->GetUnderline() : 0;
- const uint32_t dwDecoration = pStyle->GetTextDecoration();
- if (dwDecoration & CFX_CSSTEXTDECORATION_Double)
+ const Mask<CFX_CSSTEXTDECORATION> dwDecoration = pStyle->GetTextDecoration();
+ if (dwDecoration & CFX_CSSTEXTDECORATION::kDouble)
return 2;
- if (dwDecoration & CFX_CSSTEXTDECORATION_Underline)
+ if (dwDecoration & CFX_CSSTEXTDECORATION::kUnderline)
return 1;
return 0;
}
@@ -444,8 +444,9 @@
CXFA_TextProvider* pTextProvider,
const CFX_CSSComputedStyle* pStyle) const {
if (pStyle) {
- const uint32_t dwDecoration = pStyle->GetTextDecoration();
- return (dwDecoration & CFX_CSSTEXTDECORATION_LineThrough) ? 1 : 0;
+ const Mask<CFX_CSSTEXTDECORATION> dwDecoration =
+ pStyle->GetTextDecoration();
+ return (dwDecoration & CFX_CSSTEXTDECORATION::kLineThrough) ? 1 : 0;
}
CXFA_Font* font = pTextProvider->GetFontIfExists();
return font ? font->GetLineThrough() : 0;