1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #include <memory>
8
9 #include "xfa/src/foxitlib.h"
10
Create()11 CFWL_ScrollBar* CFWL_ScrollBar::Create() {
12 return new CFWL_ScrollBar;
13 }
Initialize(const CFWL_WidgetProperties * pProperties)14 FWL_ERR CFWL_ScrollBar::Initialize(const CFWL_WidgetProperties* pProperties) {
15 if (m_pIface)
16 return FWL_ERR_Indefinite;
17 if (pProperties) {
18 *m_pProperties = *pProperties;
19 }
20 std::unique_ptr<IFWL_ScrollBar> pScrollBar(IFWL_ScrollBar::Create(
21 m_pProperties->MakeWidgetImpProperties(nullptr), nullptr));
22 FWL_ERR ret = pScrollBar->Initialize();
23 if (ret != FWL_ERR_Succeeded) {
24 return ret;
25 }
26 m_pIface = pScrollBar.release();
27 CFWL_Widget::Initialize();
28 return FWL_ERR_Succeeded;
29 }
IsVertical()30 FX_BOOL CFWL_ScrollBar::IsVertical() {
31 if (!m_pIface)
32 return FALSE;
33 return static_cast<IFWL_ScrollBar*>(m_pIface)->IsVertical();
34 }
GetRange(FX_FLOAT & fMin,FX_FLOAT & fMax)35 FWL_ERR CFWL_ScrollBar::GetRange(FX_FLOAT& fMin, FX_FLOAT& fMax) {
36 if (!m_pIface)
37 return FWL_ERR_Indefinite;
38 return static_cast<IFWL_ScrollBar*>(m_pIface)->GetRange(fMin, fMax);
39 }
SetRange(FX_FLOAT fMin,FX_FLOAT fMax)40 FWL_ERR CFWL_ScrollBar::SetRange(FX_FLOAT fMin, FX_FLOAT fMax) {
41 if (!m_pIface)
42 return FWL_ERR_Indefinite;
43 return static_cast<IFWL_ScrollBar*>(m_pIface)->SetRange(fMin, fMax);
44 }
GetPageSize()45 FX_FLOAT CFWL_ScrollBar::GetPageSize() {
46 if (!m_pIface)
47 return 0;
48 return static_cast<IFWL_ScrollBar*>(m_pIface)->GetPageSize();
49 }
SetPageSize(FX_FLOAT fPageSize)50 FWL_ERR CFWL_ScrollBar::SetPageSize(FX_FLOAT fPageSize) {
51 if (!m_pIface)
52 return FWL_ERR_Indefinite;
53 return static_cast<IFWL_ScrollBar*>(m_pIface)->SetPageSize(fPageSize);
54 }
GetStepSize()55 FX_FLOAT CFWL_ScrollBar::GetStepSize() {
56 if (!m_pIface)
57 return 0;
58 return static_cast<IFWL_ScrollBar*>(m_pIface)->GetStepSize();
59 }
SetStepSize(FX_FLOAT fStepSize)60 FWL_ERR CFWL_ScrollBar::SetStepSize(FX_FLOAT fStepSize) {
61 if (!m_pIface)
62 return FWL_ERR_Indefinite;
63 return static_cast<IFWL_ScrollBar*>(m_pIface)->SetStepSize(fStepSize);
64 }
GetPos()65 FX_FLOAT CFWL_ScrollBar::GetPos() {
66 if (!m_pIface)
67 return -1;
68 return static_cast<IFWL_ScrollBar*>(m_pIface)->GetPos();
69 }
SetPos(FX_FLOAT fPos)70 FWL_ERR CFWL_ScrollBar::SetPos(FX_FLOAT fPos) {
71 if (!m_pIface)
72 return FWL_ERR_Indefinite;
73 return static_cast<IFWL_ScrollBar*>(m_pIface)->SetPos(fPos);
74 }
GetTrackPos()75 FX_FLOAT CFWL_ScrollBar::GetTrackPos() {
76 if (!m_pIface)
77 return -1;
78 return static_cast<IFWL_ScrollBar*>(m_pIface)->GetTrackPos();
79 }
SetTrackPos(FX_FLOAT fTrackPos)80 FWL_ERR CFWL_ScrollBar::SetTrackPos(FX_FLOAT fTrackPos) {
81 if (!m_pIface)
82 return FWL_ERR_Indefinite;
83 return static_cast<IFWL_ScrollBar*>(m_pIface)->SetTrackPos(fTrackPos);
84 }
DoScroll(FX_DWORD dwCode,FX_FLOAT fPos)85 FX_BOOL CFWL_ScrollBar::DoScroll(FX_DWORD dwCode, FX_FLOAT fPos) {
86 if (!m_pIface)
87 return FALSE;
88 return static_cast<IFWL_ScrollBar*>(m_pIface)->DoScroll(dwCode, fPos);
89 }
CFWL_ScrollBar()90 CFWL_ScrollBar::CFWL_ScrollBar() {}
~CFWL_ScrollBar()91 CFWL_ScrollBar::~CFWL_ScrollBar() {}
92