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);
}