Make FWLTHEME_STATE and FWLTHEME_DIRECTION enum classes.
-- add a TODO() in one place where conflict discovered as a result.
Change-Id: If9481788f7cf6dd470d534ca6b09839d12fe5ed0
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/83590
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/xfa/fwl/theme/cfwl_comboboxtp.cpp b/xfa/fwl/theme/cfwl_comboboxtp.cpp
index 5ae8352..0d5695f 100644
--- a/xfa/fwl/theme/cfwl_comboboxtp.cpp
+++ b/xfa/fwl/theme/cfwl_comboboxtp.cpp
@@ -57,27 +57,24 @@
void CFWL_ComboBoxTP::DrawDropDownButton(const CFWL_ThemeBackground& pParams,
uint32_t dwStates,
const CFX_Matrix& matrix) {
- FWLTHEME_STATE eState = FWLTHEME_STATE_Normal;
+ FWLTHEME_STATE eState;
switch (dwStates) {
- case CFWL_PartState_Normal: {
- eState = FWLTHEME_STATE_Normal;
+ case CFWL_PartState_Normal:
+ eState = FWLTHEME_STATE::kNormal;
break;
- }
- case CFWL_PartState_Hovered: {
- eState = FWLTHEME_STATE_Hover;
+ case CFWL_PartState_Hovered:
+ eState = FWLTHEME_STATE::kHover;
break;
- }
- case CFWL_PartState_Pressed: {
- eState = FWLTHEME_STATE_Pressed;
+ case CFWL_PartState_Pressed:
+ eState = FWLTHEME_STATE::kPressed;
break;
- }
- case CFWL_PartState_Disabled: {
- eState = FWLTHEME_STATE_Disable;
+ case CFWL_PartState_Disabled:
+ eState = FWLTHEME_STATE::kDisable;
break;
- }
default:
+ eState = FWLTHEME_STATE::kNormal;
break;
}
DrawArrowBtn(pParams.GetGraphics(), pParams.m_PartRect,
- FWLTHEME_DIRECTION_Down, eState, pParams.m_matrix);
+ FWLTHEME_DIRECTION::kDown, eState, pParams.m_matrix);
}
diff --git a/xfa/fwl/theme/cfwl_datetimepickertp.cpp b/xfa/fwl/theme/cfwl_datetimepickertp.cpp
index d3a1cdf..c332b1b 100644
--- a/xfa/fwl/theme/cfwl_datetimepickertp.cpp
+++ b/xfa/fwl/theme/cfwl_datetimepickertp.cpp
@@ -32,27 +32,25 @@
const CFX_Matrix& matrix) {
uint32_t dwStates = pParams.m_dwStates;
dwStates &= 0x03;
- FWLTHEME_STATE eState = FWLTHEME_STATE_Normal;
- switch (eState & dwStates) {
- case CFWL_PartState_Normal: {
- eState = FWLTHEME_STATE_Normal;
+ FWLTHEME_STATE eState = FWLTHEME_STATE::kNormal;
+
+ // TODO(tsepez): enum mismatch, &ing with 1 makes no sense here.
+ switch (static_cast<uint32_t>(eState) & dwStates) {
+ case CFWL_PartState_Normal:
+ eState = FWLTHEME_STATE::kNormal;
break;
- }
- case CFWL_PartState_Hovered: {
- eState = FWLTHEME_STATE_Hover;
+ case CFWL_PartState_Hovered:
+ eState = FWLTHEME_STATE::kHover;
break;
- }
- case CFWL_PartState_Pressed: {
- eState = FWLTHEME_STATE_Pressed;
+ case CFWL_PartState_Pressed:
+ eState = FWLTHEME_STATE::kPressed;
break;
- }
- case CFWL_PartState_Disabled: {
- eState = FWLTHEME_STATE_Disable;
+ case CFWL_PartState_Disabled:
+ eState = FWLTHEME_STATE::kDisable;
break;
- }
default:
break;
}
DrawArrowBtn(pParams.GetGraphics(), pParams.m_PartRect,
- FWLTHEME_DIRECTION_Down, eState, matrix);
+ FWLTHEME_DIRECTION::kDown, eState, matrix);
}
diff --git a/xfa/fwl/theme/cfwl_monthcalendartp.cpp b/xfa/fwl/theme/cfwl_monthcalendartp.cpp
index de822b4..125119e 100644
--- a/xfa/fwl/theme/cfwl_monthcalendartp.cpp
+++ b/xfa/fwl/theme/cfwl_monthcalendartp.cpp
@@ -49,13 +49,13 @@
case CFWL_ThemePart::Part::kLBtn: {
FWLTHEME_STATE eState = GetState(pParams.m_dwStates);
DrawArrowBtn(pParams.GetGraphics(), pParams.m_PartRect,
- FWLTHEME_DIRECTION_Left, eState, pParams.m_matrix);
+ FWLTHEME_DIRECTION::kLeft, eState, pParams.m_matrix);
break;
}
case CFWL_ThemePart::Part::kRBtn: {
FWLTHEME_STATE eState = GetState(pParams.m_dwStates);
DrawArrowBtn(pParams.GetGraphics(), pParams.m_PartRect,
- FWLTHEME_DIRECTION_Right, eState, pParams.m_matrix);
+ FWLTHEME_DIRECTION::kRight, eState, pParams.m_matrix);
break;
}
case CFWL_ThemePart::Part::kHSeparator: {
@@ -268,8 +268,8 @@
FWLTHEME_STATE CFWL_MonthCalendarTP::GetState(uint32_t dwFWLStates) {
if (dwFWLStates & CFWL_PartState_Hovered)
- return FWLTHEME_STATE_Hover;
+ return FWLTHEME_STATE::kHover;
if (dwFWLStates & CFWL_PartState_Pressed)
- return FWLTHEME_STATE_Pressed;
- return FWLTHEME_STATE_Normal;
+ return FWLTHEME_STATE::kPressed;
+ return FWLTHEME_STATE::kNormal;
}
diff --git a/xfa/fwl/theme/cfwl_scrollbartp.cpp b/xfa/fwl/theme/cfwl_scrollbartp.cpp
index ff9e329..7e4cfcd 100644
--- a/xfa/fwl/theme/cfwl_scrollbartp.cpp
+++ b/xfa/fwl/theme/cfwl_scrollbartp.cpp
@@ -22,27 +22,28 @@
void CFWL_ScrollBarTP::DrawBackground(const CFWL_ThemeBackground& pParams) {
CFWL_Widget* pWidget = pParams.GetWidget();
- FWLTHEME_STATE eState = FWLTHEME_STATE_Normal;
+ FWLTHEME_STATE eState = FWLTHEME_STATE::kNormal;
if (pParams.m_dwStates & CFWL_PartState_Hovered)
- eState = FWLTHEME_STATE_Hover;
+ eState = FWLTHEME_STATE::kHover;
else if (pParams.m_dwStates & CFWL_PartState_Pressed)
- eState = FWLTHEME_STATE_Pressed;
+ eState = FWLTHEME_STATE::kPressed;
else if (pParams.m_dwStates & CFWL_PartState_Disabled)
- eState = FWLTHEME_STATE_Disable;
+ eState = FWLTHEME_STATE::kDisable;
CFGAS_GEGraphics* pGraphics = pParams.GetGraphics();
bool bVert = !!pWidget->GetStyleExts();
switch (pParams.m_iPart) {
case CFWL_ThemePart::Part::kForeArrow: {
DrawMaxMinBtn(pGraphics, pParams.m_PartRect,
- bVert ? FWLTHEME_DIRECTION_Up : FWLTHEME_DIRECTION_Left,
+ bVert ? FWLTHEME_DIRECTION::kUp : FWLTHEME_DIRECTION::kLeft,
eState, pParams.m_matrix);
break;
}
case CFWL_ThemePart::Part::kBackArrow: {
- DrawMaxMinBtn(pGraphics, pParams.m_PartRect,
- bVert ? FWLTHEME_DIRECTION_Down : FWLTHEME_DIRECTION_Right,
- eState, pParams.m_matrix);
+ DrawMaxMinBtn(
+ pGraphics, pParams.m_PartRect,
+ bVert ? FWLTHEME_DIRECTION::kDown : FWLTHEME_DIRECTION::kRight,
+ eState, pParams.m_matrix);
break;
}
case CFWL_ThemePart::Part::kThumb: {
@@ -70,7 +71,7 @@
bool bVert,
FWLTHEME_STATE eState,
const CFX_Matrix& matrix) {
- if (eState < FWLTHEME_STATE_Normal || eState > FWLTHEME_STATE_Disable)
+ if (eState < FWLTHEME_STATE::kNormal || eState > FWLTHEME_STATE::kDisable)
return;
CFX_RectF rect = input_rect;
@@ -82,14 +83,16 @@
if (rect.IsEmpty(0.1f))
return;
- FillSolidRect(pGraphics, m_pThemeData->clrBtnBK[eState - 1][1], rect, matrix);
+ FillSolidRect(pGraphics,
+ m_pThemeData->clrBtnBK[static_cast<size_t>(eState) - 1][1],
+ rect, matrix);
pGraphics->SaveGraphState();
CFGAS_GEPath path;
path.AddRectangle(rect.left, rect.top, rect.width, rect.height);
- pGraphics->SetStrokeColor(
- CFGAS_GEColor(m_pThemeData->clrBtnBorder[eState - 1]));
+ pGraphics->SetStrokeColor(CFGAS_GEColor(
+ m_pThemeData->clrBtnBorder[static_cast<size_t>(eState) - 1]));
pGraphics->StrokePath(path, matrix);
pGraphics->RestoreGraphState();
}
@@ -100,7 +103,7 @@
FWLTHEME_STATE eState,
bool bLowerTrack,
const CFX_Matrix& matrix) {
- if (eState < FWLTHEME_STATE_Normal || eState > FWLTHEME_STATE_Disable)
+ if (eState < FWLTHEME_STATE::kNormal || eState > FWLTHEME_STATE::kDisable)
return;
pGraphics->SaveGraphState();
@@ -127,9 +130,10 @@
FWLTHEME_DIRECTION eDict,
FWLTHEME_STATE eState,
const CFX_Matrix& matrix) {
- DrawTrack(pGraphics, rect,
- eDict == FWLTHEME_DIRECTION_Up || eDict == FWLTHEME_DIRECTION_Down,
- eState, true, matrix);
+ DrawTrack(
+ pGraphics, rect,
+ eDict == FWLTHEME_DIRECTION::kUp || eDict == FWLTHEME_DIRECTION::kDown,
+ eState, true, matrix);
CFX_RectF rtArrowBtn = rect;
rtArrowBtn.Deflate(1, 1, 1, 1);
DrawArrowBtn(pGraphics, rtArrowBtn, eDict, eState, matrix);
diff --git a/xfa/fwl/theme/cfwl_utils.h b/xfa/fwl/theme/cfwl_utils.h
index d9185c6..0e815f6 100644
--- a/xfa/fwl/theme/cfwl_utils.h
+++ b/xfa/fwl/theme/cfwl_utils.h
@@ -7,21 +7,14 @@
#ifndef XFA_FWL_THEME_CFWL_UTILS_H_
#define XFA_FWL_THEME_CFWL_UTILS_H_
+#include <stdint.h>
+
#include "core/fxge/dib/fx_dib.h"
-enum FWLTHEME_STATE {
- FWLTHEME_STATE_Normal = 1,
- FWLTHEME_STATE_Hover,
- FWLTHEME_STATE_Pressed,
- FWLTHEME_STATE_Disable
-};
+// Values matter, used for indexing.
+enum class FWLTHEME_STATE : uint8_t { kNormal = 1, kHover, kPressed, kDisable };
-enum FWLTHEME_DIRECTION {
- FWLTHEME_DIRECTION_Up = 0,
- FWLTHEME_DIRECTION_Down,
- FWLTHEME_DIRECTION_Left,
- FWLTHEME_DIRECTION_Right
-};
+enum class FWLTHEME_DIRECTION : uint8_t { kUp = 0, kDown, kLeft, kRight };
#define FWLTHEME_COLOR_EDGERB1 (ArgbEncode(255, 241, 239, 226))
#define FWLTHEME_COLOR_Background (ArgbEncode(255, 236, 233, 216))
diff --git a/xfa/fwl/theme/cfwl_widgettp.cpp b/xfa/fwl/theme/cfwl_widgettp.cpp
index 70f33ecb..55434e5 100644
--- a/xfa/fwl/theme/cfwl_widgettp.cpp
+++ b/xfa/fwl/theme/cfwl_widgettp.cpp
@@ -146,12 +146,12 @@
FX_ARGB argSign,
const CFX_Matrix& matrix) {
bool bVert =
- (eDict == FWLTHEME_DIRECTION_Up || eDict == FWLTHEME_DIRECTION_Down);
+ (eDict == FWLTHEME_DIRECTION::kUp || eDict == FWLTHEME_DIRECTION::kDown);
float fLeft = ((rect.width - (bVert ? 9 : 6)) / 2 + rect.left) + 0.5f;
float fTop = ((rect.height - (bVert ? 6 : 9)) / 2 + rect.top) + 0.5f;
CFGAS_GEPath path;
switch (eDict) {
- case FWLTHEME_DIRECTION_Down: {
+ case FWLTHEME_DIRECTION::kDown:
path.MoveTo(CFX_PointF(fLeft, fTop + 1));
path.LineTo(CFX_PointF(fLeft + 4, fTop + 5));
path.LineTo(CFX_PointF(fLeft + 8, fTop + 1));
@@ -159,8 +159,7 @@
path.LineTo(CFX_PointF(fLeft + 4, fTop + 3));
path.LineTo(CFX_PointF(fLeft + 1, fTop));
break;
- }
- case FWLTHEME_DIRECTION_Up: {
+ case FWLTHEME_DIRECTION::kUp:
path.MoveTo(CFX_PointF(fLeft, fTop + 4));
path.LineTo(CFX_PointF(fLeft + 4, fTop));
path.LineTo(CFX_PointF(fLeft + 8, fTop + 4));
@@ -168,8 +167,7 @@
path.LineTo(CFX_PointF(fLeft + 4, fTop + 2));
path.LineTo(CFX_PointF(fLeft + 1, fTop + 5));
break;
- }
- case FWLTHEME_DIRECTION_Right: {
+ case FWLTHEME_DIRECTION::kRight:
path.MoveTo(CFX_PointF(fLeft + 1, fTop));
path.LineTo(CFX_PointF(fLeft + 5, fTop + 4));
path.LineTo(CFX_PointF(fLeft + 1, fTop + 8));
@@ -177,8 +175,7 @@
path.LineTo(CFX_PointF(fLeft + 3, fTop + 4));
path.LineTo(CFX_PointF(fLeft, fTop + 1));
break;
- }
- case FWLTHEME_DIRECTION_Left: {
+ case FWLTHEME_DIRECTION::kLeft:
path.MoveTo(CFX_PointF(fLeft, fTop + 4));
path.LineTo(CFX_PointF(fLeft + 4, fTop));
path.LineTo(CFX_PointF(fLeft + 5, fTop + 1));
@@ -186,7 +183,6 @@
path.LineTo(CFX_PointF(fLeft + 5, fTop + 7));
path.LineTo(CFX_PointF(fLeft + 4, fTop + 8));
break;
- }
}
pGraphics->SetFillColor(CFGAS_GEColor(argSign));
pGraphics->FillPath(path, CFX_FillRenderOptions::FillType::kWinding, matrix);
@@ -197,11 +193,14 @@
FWLTHEME_STATE eState,
const CFX_Matrix& matrix) {
InitializeArrowColorData();
- FillSolidRect(pGraphics, m_pColorData->clrEnd[eState - 1], rect, matrix);
+ FillSolidRect(pGraphics,
+ m_pColorData->clrEnd[static_cast<size_t>(eState) - 1], rect,
+ matrix);
CFGAS_GEPath path;
path.AddRectangle(rect.left, rect.top, rect.width, rect.height);
- pGraphics->SetStrokeColor(CFGAS_GEColor(m_pColorData->clrBorder[eState - 1]));
+ pGraphics->SetStrokeColor(
+ CFGAS_GEColor(m_pColorData->clrBorder[static_cast<size_t>(eState) - 1]));
pGraphics->StrokePath(path, matrix);
}
@@ -212,5 +211,6 @@
const CFX_Matrix& matrix) {
DrawBtn(pGraphics, rect, eState, matrix);
InitializeArrowColorData();
- DrawArrow(pGraphics, rect, eDict, m_pColorData->clrSign[eState - 1], matrix);
+ DrawArrow(pGraphics, rect, eDict,
+ m_pColorData->clrSign[static_cast<size_t>(eState) - 1], matrix);
}
diff --git a/xfa/fwl/theme/cfwl_widgettp.h b/xfa/fwl/theme/cfwl_widgettp.h
index 95a7a28..b206d73 100644
--- a/xfa/fwl/theme/cfwl_widgettp.h
+++ b/xfa/fwl/theme/cfwl_widgettp.h
@@ -36,10 +36,10 @@
protected:
struct CColorData {
- FX_ARGB clrBorder[4];
- FX_ARGB clrStart[4];
- FX_ARGB clrEnd[4];
- FX_ARGB clrSign[4];
+ FX_ARGB clrBorder[4]; // Indexed by enum FWLTHEME_STATE - 1.
+ FX_ARGB clrStart[4]; // Indexed by enum FWLTHEME_STATE - 1.
+ FX_ARGB clrEnd[4]; // Indexed by enum FWLTHEME_STATE - 1.
+ FX_ARGB clrSign[4]; // Indexed by enum FWLTHEME_STATE - 1.
};
CFWL_WidgetTP();