Replace a std::pair with struct CFX_Color::TypeAndARGB. The struct has members with more meaningful names. Change-Id: Ieeb4238de1353e56cbd62bae94ba24c2d2c9a9fb Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/81510 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfdoc/cpdf_apsettings.cpp b/core/fpdfdoc/cpdf_apsettings.cpp index 0374e93..121d516 100644 --- a/core/fpdfdoc/cpdf_apsettings.cpp +++ b/core/fpdfdoc/cpdf_apsettings.cpp
@@ -26,7 +26,7 @@ return m_pDict ? m_pDict->GetIntegerFor("R") : 0; } -std::pair<CFX_Color::Type, FX_ARGB> CPDF_ApSettings::GetColorARGB( +CFX_Color::TypeAndARGB CPDF_ApSettings::GetColorARGB( const ByteString& csEntry) const { if (!m_pDict) return {CFX_Color::Type::kTransparent, 0};
diff --git a/core/fpdfdoc/cpdf_apsettings.h b/core/fpdfdoc/cpdf_apsettings.h index b96ffe6..e141366 100644 --- a/core/fpdfdoc/cpdf_apsettings.h +++ b/core/fpdfdoc/cpdf_apsettings.h
@@ -7,8 +7,6 @@ #ifndef CORE_FPDFDOC_CPDF_APSETTINGS_H_ #define CORE_FPDFDOC_CPDF_APSETTINGS_H_ -#include <utility> - #include "core/fpdfdoc/cpdf_iconfit.h" #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" @@ -43,8 +41,7 @@ // Returns one of the TEXTPOS_* values above. int GetTextPosition() const; - std::pair<CFX_Color::Type, FX_ARGB> GetColorARGB( - const ByteString& csEntry) const; + CFX_Color::TypeAndARGB GetColorARGB(const ByteString& csEntry) const; float GetOriginalColorComponent(int index, const ByteString& csEntry) const; CFX_Color GetOriginalColor(const ByteString& csEntry) const;
diff --git a/core/fpdfdoc/cpdf_defaultappearance.cpp b/core/fpdfdoc/cpdf_defaultappearance.cpp index 95763d9..f5b4356 100644 --- a/core/fpdfdoc/cpdf_defaultappearance.cpp +++ b/core/fpdfdoc/cpdf_defaultappearance.cpp
@@ -105,8 +105,7 @@ return pdfium::nullopt; } -Optional<std::pair<CFX_Color::Type, FX_ARGB>> -CPDF_DefaultAppearance::GetColorARGB() const { +Optional<CFX_Color::TypeAndARGB> CPDF_DefaultAppearance::GetColorARGB() const { Optional<CFX_Color> maybe_color = GetColor(); if (!maybe_color.has_value()) return pdfium::nullopt; @@ -114,21 +113,21 @@ const CFX_Color& color = maybe_color.value(); if (color.nColorType == CFX_Color::Type::kGray) { int g = static_cast<int>(color.fColor1 * 255 + 0.5f); - return std::pair<CFX_Color::Type, FX_ARGB>(CFX_Color::Type::kGray, - ArgbEncode(255, g, g, g)); + return CFX_Color::TypeAndARGB(CFX_Color::Type::kGray, + ArgbEncode(255, g, g, g)); } if (color.nColorType == CFX_Color::Type::kRGB) { int r = static_cast<int>(color.fColor1 * 255 + 0.5f); int g = static_cast<int>(color.fColor2 * 255 + 0.5f); int b = static_cast<int>(color.fColor3 * 255 + 0.5f); - return std::pair<CFX_Color::Type, FX_ARGB>(CFX_Color::Type::kRGB, - ArgbEncode(255, r, g, b)); + return CFX_Color::TypeAndARGB(CFX_Color::Type::kRGB, + ArgbEncode(255, r, g, b)); } if (color.nColorType == CFX_Color::Type::kCMYK) { float r = 1.0f - std::min(1.0f, color.fColor1 + color.fColor4); float g = 1.0f - std::min(1.0f, color.fColor2 + color.fColor4); float b = 1.0f - std::min(1.0f, color.fColor3 + color.fColor4); - return std::pair<CFX_Color::Type, FX_ARGB>( + return CFX_Color::TypeAndARGB( CFX_Color::Type::kCMYK, ArgbEncode(255, static_cast<int>(r * 255 + 0.5f), static_cast<int>(g * 255 + 0.5f),
diff --git a/core/fpdfdoc/cpdf_defaultappearance.h b/core/fpdfdoc/cpdf_defaultappearance.h index 319da71..7c30d2b 100644 --- a/core/fpdfdoc/cpdf_defaultappearance.h +++ b/core/fpdfdoc/cpdf_defaultappearance.h
@@ -25,7 +25,7 @@ Optional<ByteString> GetFont(float* fFontSize); Optional<CFX_Color> GetColor() const; - Optional<std::pair<CFX_Color::Type, FX_ARGB>> GetColorARGB() const; + Optional<CFX_Color::TypeAndARGB> GetColorARGB() const; bool FindTagParamFromStartForTesting(CPDF_SimpleParser* parser, ByteStringView token,
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp index 699d439..d181bab 100644 --- a/core/fpdfdoc/cpdf_formcontrol.cpp +++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -147,7 +147,7 @@ return GetMK().GetRotation(); } -std::pair<CFX_Color::Type, FX_ARGB> CPDF_FormControl::GetColorARGB( +CFX_Color::TypeAndARGB CPDF_FormControl::GetColorARGB( const ByteString& csEntry) { return GetMK().GetColorARGB(csEntry); }
diff --git a/core/fpdfdoc/cpdf_formcontrol.h b/core/fpdfdoc/cpdf_formcontrol.h index 1e82e36..a9c1706 100644 --- a/core/fpdfdoc/cpdf_formcontrol.h +++ b/core/fpdfdoc/cpdf_formcontrol.h
@@ -7,8 +7,6 @@ #ifndef CORE_FPDFDOC_CPDF_FORMCONTROL_H_ #define CORE_FPDFDOC_CPDF_FORMCONTROL_H_ -#include <utility> - #include "core/fpdfdoc/cpdf_aaction.h" #include "core/fpdfdoc/cpdf_action.h" #include "core/fpdfdoc/cpdf_annot.h" @@ -56,9 +54,7 @@ bool HasMKEntry(const ByteString& csEntry) const; int GetRotation() const; - std::pair<CFX_Color::Type, FX_ARGB> GetBorderColorARGB() { - return GetColorARGB("BC"); - } + CFX_Color::TypeAndARGB GetBorderColorARGB() { return GetColorARGB("BC"); } float GetOriginalBorderColorComponent(int index) { return GetOriginalColorComponent(index, "BC"); @@ -66,9 +62,7 @@ CFX_Color GetOriginalBorderColor() { return GetOriginalColor("BC"); } - std::pair<CFX_Color::Type, FX_ARGB> GetBackgroundColor() { - return GetColorARGB("BG"); - } + CFX_Color::TypeAndARGB GetBackgroundColor() { return GetColorARGB("BG"); } float GetOriginalBackgroundColorComponent(int index) { return GetOriginalColorComponent(index, "BG"); @@ -96,7 +90,7 @@ private: RetainPtr<CPDF_Font> GetDefaultControlFont() const; - std::pair<CFX_Color::Type, FX_ARGB> GetColorARGB(const ByteString& csEntry); + CFX_Color::TypeAndARGB GetColorARGB(const ByteString& csEntry); float GetOriginalColorComponent(int index, const ByteString& csEntry); CFX_Color GetOriginalColor(const ByteString& csEntry);
diff --git a/core/fxge/cfx_color.h b/core/fxge/cfx_color.h index a386d2b..01dd5d7 100644 --- a/core/fxge/cfx_color.h +++ b/core/fxge/cfx_color.h
@@ -13,6 +13,14 @@ // Ordered by increasing number of components. enum class Type { kTransparent = 0, kGray, kRGB, kCMYK }; + struct TypeAndARGB { + TypeAndARGB(CFX_Color::Type type_in, FX_ARGB argb_in) + : color_type(type_in), argb(argb_in) {} + + CFX_Color::Type color_type; + FX_ARGB argb; + }; + explicit CFX_Color(FX_COLORREF ref) : CFX_Color(FXARGB_R(ref), FXARGB_G(ref), FXARGB_B(ref)) {}
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp index efc56df..4934fc3 100644 --- a/fpdfsdk/cpdfsdk_widget.cpp +++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -427,36 +427,35 @@ #endif // PDF_ENABLE_XFA Optional<FX_COLORREF> CPDFSDK_Widget::GetFillColor() const { - std::pair<CFX_Color::Type, FX_ARGB> type_argb_pair = + CFX_Color::TypeAndARGB type_argb_pair = GetFormControl()->GetBackgroundColor(); - if (type_argb_pair.first == CFX_Color::Type::kTransparent) + if (type_argb_pair.color_type == CFX_Color::Type::kTransparent) return pdfium::nullopt; - return ArgbToColorRef(type_argb_pair.second); + return ArgbToColorRef(type_argb_pair.argb); } Optional<FX_COLORREF> CPDFSDK_Widget::GetBorderColor() const { - std::pair<CFX_Color::Type, FX_ARGB> type_argb_pair = + CFX_Color::TypeAndARGB type_argb_pair = GetFormControl()->GetBorderColorARGB(); - if (type_argb_pair.first == CFX_Color::Type::kTransparent) + if (type_argb_pair.color_type == CFX_Color::Type::kTransparent) return pdfium::nullopt; - return ArgbToColorRef(type_argb_pair.second); + return ArgbToColorRef(type_argb_pair.argb); } Optional<FX_COLORREF> CPDFSDK_Widget::GetTextColor() const { CPDF_DefaultAppearance da = GetFormControl()->GetDefaultAppearance(); - Optional<std::pair<CFX_Color::Type, FX_ARGB>> maybe_type_argb_pair = - da.GetColorARGB(); + Optional<CFX_Color::TypeAndARGB> maybe_type_argb_pair = da.GetColorARGB(); if (!maybe_type_argb_pair.has_value()) return pdfium::nullopt; - if (maybe_type_argb_pair.value().first == CFX_Color::Type::kTransparent) + if (maybe_type_argb_pair.value().color_type == CFX_Color::Type::kTransparent) return pdfium::nullopt; - return ArgbToColorRef(maybe_type_argb_pair.value().second); + return ArgbToColorRef(maybe_type_argb_pair.value().argb); } float CPDFSDK_Widget::GetFontSize() const {
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp index aea1dd8..d0bfc76 100644 --- a/fxjs/cjs_field.cpp +++ b/fxjs/cjs_field.cpp
@@ -1293,7 +1293,7 @@ return CJS_Result::Failure(JSMessage::kBadObjectError); CFX_Color color; - CFX_Color::Type iColorType = pFormControl->GetBackgroundColor().first; + CFX_Color::Type iColorType = pFormControl->GetBackgroundColor().color_type; if (iColorType == CFX_Color::Type::kTransparent) { color = CFX_Color(CFX_Color::Type::kTransparent); } else if (iColorType == CFX_Color::Type::kGray) { @@ -1830,7 +1830,7 @@ return CJS_Result::Failure(JSMessage::kBadObjectError); CFX_Color color; - CFX_Color::Type iColorType = pFormControl->GetBorderColorARGB().first; + CFX_Color::Type iColorType = pFormControl->GetBorderColorARGB().color_type; if (iColorType == CFX_Color::Type::kTransparent) { color = CFX_Color(CFX_Color::Type::kTransparent); } else if (iColorType == CFX_Color::Type::kGray) { @@ -1936,17 +1936,18 @@ return CJS_Result::Failure(JSMessage::kBadObjectError); CPDF_DefaultAppearance FieldAppearance = pFormControl->GetDefaultAppearance(); - Optional<std::pair<CFX_Color::Type, FX_ARGB>> maybe_type_argb_pair = + Optional<CFX_Color::TypeAndARGB> maybe_type_argb_pair = FieldAppearance.GetColorARGB(); CFX_Color crRet; if (maybe_type_argb_pair.has_value() && - maybe_type_argb_pair.value().first != CFX_Color::Type::kTransparent) { + maybe_type_argb_pair.value().color_type != + CFX_Color::Type::kTransparent) { int32_t a; int32_t r; int32_t g; int32_t b; - std::tie(a, r, g, b) = ArgbDecode(maybe_type_argb_pair.value().second); + std::tie(a, r, g, b) = ArgbDecode(maybe_type_argb_pair.value().argb); crRet = CFX_Color(CFX_Color::Type::kRGB, r / 255.0f, g / 255.0f, b / 255.0f); }