Make enum type for FWL_SCROLLBAR_TYPE.
Show that the only value we ever use is VSCROLL (enum class prevents
games from integers without introducing casts).
Change-Id: I92cde211f9209040cadfb103b8942c74062aae2a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79111
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.cpp b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
index fcd0979..e8fe0dc 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.cpp
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
@@ -131,7 +131,7 @@
CFX_PointF ptCenter = GetCenterPoint();
int32_t nTransparency = GetTransparency();
- if (m_eScrollBarType == SBT_HSCROLL) {
+ if (m_eScrollBarType == PWL_SCROLLBAR_TYPE::HSCROLL) {
CPWL_Wnd::DrawThisAppearance(pDevice, mtUser2Device);
CFX_PointF pt1;
@@ -309,7 +309,7 @@
float fBWidth = 0;
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
if (rcClient.right - rcClient.left >
kButtonWidth * 2 + kPosButtonMinWidth + 2) {
rcMinButton = CFX_FloatRect(rcClient.left, rcClient.bottom,
@@ -331,7 +331,7 @@
}
}
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
if (IsFloatBigger(rcClient.top - rcClient.bottom,
kButtonWidth * 2 + kPosButtonMinWidth + 2)) {
rcMinButton = CFX_FloatRect(rcClient.left, rcClient.top - kButtonWidth,
@@ -411,14 +411,14 @@
CFX_FloatRect rcPosButton = m_pPosButton->GetWindowRect();
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
rcMinArea = CFX_FloatRect(rcClient.left + kButtonWidth, rcClient.bottom,
rcPosButton.left, rcClient.top);
rcMaxArea = CFX_FloatRect(rcPosButton.right, rcClient.bottom,
rcClient.right - kButtonWidth, rcClient.top);
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
rcMinArea = CFX_FloatRect(rcClient.left, rcPosButton.top,
rcClient.right, rcClient.top - kButtonWidth);
rcMaxArea = CFX_FloatRect(rcClient.left, rcClient.bottom + kButtonWidth,
@@ -476,10 +476,10 @@
void CPWL_ScrollBar::SetScrollPosition(float pos) {
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
pos = pos - m_OriginInfo.fContentMin;
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
pos = m_OriginInfo.fContentMax - pos;
break;
}
@@ -609,7 +609,7 @@
float fLeft, fRight, fTop, fBottom;
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
fLeft = TrueToFace(m_sData.fScrollPos);
fRight = TrueToFace(m_sData.fScrollPos + m_sData.fClientWidth);
@@ -625,7 +625,7 @@
CFX_FloatRect(fLeft, rcPosArea.bottom, fRight, rcPosArea.top);
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
fBottom = TrueToFace(m_sData.fScrollPos + m_sData.fClientWidth);
fTop = TrueToFace(m_sData.fScrollPos);
@@ -687,11 +687,11 @@
CFX_FloatRect rcPosButton = m_pPosButton->GetWindowRect();
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
m_nOldPos = point.x;
m_fOldPosButton = rcPosButton.left;
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
m_nOldPos = point.y;
m_fOldPosButton = rcPosButton.top;
break;
@@ -713,12 +713,12 @@
float fNewPos = 0;
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
if (fabs(point.x - m_nOldPos) < 1)
return;
fNewPos = FaceToTrue(m_fOldPosButton + point.x - m_nOldPos);
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
if (fabs(point.y - m_nOldPos) < 1)
return;
fNewPos = FaceToTrue(m_fOldPosButton + point.y - m_nOldPos);
@@ -727,7 +727,7 @@
if (m_bMouseDown) {
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
if (IsFloatSmaller(fNewPos, m_sData.ScrollRange.fMin)) {
fNewPos = m_sData.ScrollRange.fMin;
@@ -740,7 +740,7 @@
m_sData.SetPos(fNewPos);
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
if (IsFloatSmaller(fNewPos, m_sData.ScrollRange.fMin)) {
fNewPos = m_sData.ScrollRange.fMin;
@@ -767,7 +767,7 @@
void CPWL_ScrollBar::NotifyScrollWindow() {
CPWL_Wnd* pParent = GetParentWindow();
- if (!pParent || m_sbType != SBT_VSCROLL)
+ if (!pParent || m_sbType != PWL_SCROLLBAR_TYPE::VSCROLL)
return;
pParent->ScrollWindowVertically(m_OriginInfo.fContentMax -
@@ -790,7 +790,7 @@
float fMaxHeight = rcMax.Height();
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
if (rcClient.right - rcClient.left > fMinWidth + fMaxWidth + 2) {
rcArea = CFX_FloatRect(rcClient.left + fMinWidth + 1, rcClient.bottom,
rcClient.right - fMaxWidth - 1, rcClient.top);
@@ -799,7 +799,7 @@
rcClient.left + fMinWidth + 1, rcClient.top);
}
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
if (rcClient.top - rcClient.bottom > fMinHeight + fMaxHeight + 2) {
rcArea = CFX_FloatRect(rcClient.left, rcClient.bottom + fMinHeight + 1,
rcClient.right, rcClient.top - fMaxHeight - 1);
@@ -826,11 +826,11 @@
float fFace = 0;
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
fFace = rcPosArea.left +
fTrue * (rcPosArea.right - rcPosArea.left) / fFactWidth;
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
fFace = rcPosArea.top -
fTrue * (rcPosArea.top - rcPosArea.bottom) / fFactWidth;
break;
@@ -849,11 +849,11 @@
float fTrue = 0;
switch (m_sbType) {
- case SBT_HSCROLL:
+ case PWL_SCROLLBAR_TYPE::HSCROLL:
fTrue = (fFace - rcPosArea.left) * fFactWidth /
(rcPosArea.right - rcPosArea.left);
break;
- case SBT_VSCROLL:
+ case PWL_SCROLLBAR_TYPE::VSCROLL:
fTrue = (rcPosArea.top - fFace) * fFactWidth /
(rcPosArea.top - rcPosArea.bottom);
break;
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.h b/fpdfsdk/pwl/cpwl_scroll_bar.h
index f04c12b..879646f 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.h
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.h
@@ -38,7 +38,7 @@
float fSmallStep;
};
-enum PWL_SCROLLBAR_TYPE { SBT_HSCROLL, SBT_VSCROLL };
+enum class PWL_SCROLLBAR_TYPE { HSCROLL, VSCROLL };
enum PWL_SBBUTTON_TYPE { PSBT_MIN, PSBT_MAX, PSBT_POS };
diff --git a/fpdfsdk/pwl/cpwl_wnd.cpp b/fpdfsdk/pwl/cpwl_wnd.cpp
index 58095a9..8924349 100644
--- a/fpdfsdk/pwl/cpwl_wnd.cpp
+++ b/fpdfsdk/pwl/cpwl_wnd.cpp
@@ -491,8 +491,8 @@
scp.eCursorType = FXCT_ARROW;
scp.nTransparency = PWL_SCROLLBAR_TRANSPARENCY;
- auto pBar =
- std::make_unique<CPWL_ScrollBar>(scp, CloneAttachedData(), SBT_VSCROLL);
+ auto pBar = std::make_unique<CPWL_ScrollBar>(scp, CloneAttachedData(),
+ PWL_SCROLLBAR_TYPE::VSCROLL);
m_pVScrollBar = pBar.get();
AddChild(std::move(pBar));
m_pVScrollBar->Realize();