summaryrefslogtreecommitdiff
path: root/fpdfsdk/pwl/cpwl_scroll_bar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/pwl/cpwl_scroll_bar.cpp')
-rw-r--r--fpdfsdk/pwl/cpwl_scroll_bar.cpp41
1 files changed, 16 insertions, 25 deletions
diff --git a/fpdfsdk/pwl/cpwl_scroll_bar.cpp b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
index ced049a175..4051d7be51 100644
--- a/fpdfsdk/pwl/cpwl_scroll_bar.cpp
+++ b/fpdfsdk/pwl/cpwl_scroll_bar.cpp
@@ -105,15 +105,14 @@ void PWL_SCROLL_PRIVATEDATA::SubBig() {
SetPos(ScrollRange.fMin);
}
-CPWL_SBButton::CPWL_SBButton(PWL_SCROLLBAR_TYPE eScrollBarType,
- PWL_SBBUTTON_TYPE eButtonType) {
- m_eScrollBarType = eScrollBarType;
- m_eSBButtonType = eButtonType;
+CPWL_SBButton::CPWL_SBButton(std::unique_ptr<PrivateData> pAttachedData,
+ PWL_SCROLLBAR_TYPE eScrollBarType,
+ PWL_SBBUTTON_TYPE eButtonType)
+ : CPWL_Wnd(std::move(pAttachedData)),
+ m_eScrollBarType(eScrollBarType),
+ m_eSBButtonType(eButtonType) {}
- m_bMouseDown = false;
-}
-
-CPWL_SBButton::~CPWL_SBButton() {}
+CPWL_SBButton::~CPWL_SBButton() = default;
void CPWL_SBButton::OnCreate(CreateParams* pParamsToAdjust) {
pParamsToAdjust->eCursorType = FXCT_ARROW;
@@ -299,16 +298,11 @@ bool CPWL_SBButton::OnMouseMove(const CFX_PointF& point, uint32_t nFlag) {
return true;
}
-CPWL_ScrollBar::CPWL_ScrollBar(PWL_SCROLLBAR_TYPE sbType)
- : m_sbType(sbType),
- m_pMinButton(nullptr),
- m_pMaxButton(nullptr),
- m_pPosButton(nullptr),
- m_bMouseDown(false),
- m_bMinOrMax(false),
- m_bNotifyForever(true) {}
+CPWL_ScrollBar::CPWL_ScrollBar(std::unique_ptr<PrivateData> pAttachedData,
+ PWL_SCROLLBAR_TYPE sbType)
+ : CPWL_Wnd(std::move(pAttachedData)), m_sbType(sbType) {}
-CPWL_ScrollBar::~CPWL_ScrollBar() {}
+CPWL_ScrollBar::~CPWL_ScrollBar() = default;
void CPWL_ScrollBar::OnCreate(CreateParams* pParamsToAdjust) {
pParamsToAdjust->eCursorType = FXCT_ARROW;
@@ -544,27 +538,24 @@ void CPWL_ScrollBar::CreateButtons(const CreateParams& cp) {
scp.pParentWnd = this;
scp.dwBorderWidth = 2;
scp.nBorderStyle = BorderStyle::BEVELED;
-
scp.dwFlags =
PWS_VISIBLE | PWS_CHILD | PWS_BORDER | PWS_BACKGROUND | PWS_NOREFRESHCLIP;
if (!m_pMinButton) {
- m_pMinButton = new CPWL_SBButton(m_sbType, PSBT_MIN);
+ m_pMinButton = new CPWL_SBButton(CloneAttachedData(), m_sbType, PSBT_MIN);
m_pMinButton->Create(scp);
}
if (!m_pMaxButton) {
- m_pMaxButton = new CPWL_SBButton(m_sbType, PSBT_MAX);
+ m_pMaxButton = new CPWL_SBButton(CloneAttachedData(), m_sbType, PSBT_MAX);
m_pMaxButton->Create(scp);
}
if (!m_pPosButton) {
- m_pPosButton = new CPWL_SBButton(m_sbType, PSBT_POS);
-
+ m_pPosButton = new CPWL_SBButton(CloneAttachedData(), m_sbType, PSBT_POS);
ObservedPtr thisObserved(this);
- if (!m_pPosButton->SetVisible(false) || !thisObserved)
- return;
- m_pPosButton->Create(scp);
+ if (m_pPosButton->SetVisible(false) && thisObserved)
+ m_pPosButton->Create(scp);
}
}