blob: 0c02314733018dde770a70d3780fc69d5781171e [file] [log] [blame]
// Copyright 2014 PDFium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
#include "xfa/fwl/lightwidget/cfwl_scrollbar.h"
#include <memory>
#include "xfa/fwl/basewidget/ifwl_scrollbar.h"
CFWL_ScrollBar* CFWL_ScrollBar::Create() {
return new CFWL_ScrollBar;
}
CFWL_ScrollBar::CFWL_ScrollBar() {}
CFWL_ScrollBar::~CFWL_ScrollBar() {}
FWL_ERR CFWL_ScrollBar::Initialize(const CFWL_WidgetProperties* pProperties) {
if (m_pIface)
return FWL_ERR_Indefinite;
if (pProperties) {
*m_pProperties = *pProperties;
}
std::unique_ptr<IFWL_ScrollBar> pScrollBar(IFWL_ScrollBar::Create(
m_pProperties->MakeWidgetImpProperties(nullptr), nullptr));
FWL_ERR ret = pScrollBar->Initialize();
if (ret != FWL_ERR_Succeeded) {
return ret;
}
m_pIface = pScrollBar.release();
CFWL_Widget::Initialize();
return FWL_ERR_Succeeded;
}
FX_BOOL CFWL_ScrollBar::IsVertical() {
if (!m_pIface)
return FALSE;
return static_cast<IFWL_ScrollBar*>(m_pIface)->IsVertical();
}
FWL_ERR CFWL_ScrollBar::GetRange(FX_FLOAT& fMin, FX_FLOAT& fMax) {
if (!m_pIface)
return FWL_ERR_Indefinite;
return static_cast<IFWL_ScrollBar*>(m_pIface)->GetRange(fMin, fMax);
}
FWL_ERR CFWL_ScrollBar::SetRange(FX_FLOAT fMin, FX_FLOAT fMax) {
if (!m_pIface)
return FWL_ERR_Indefinite;
return static_cast<IFWL_ScrollBar*>(m_pIface)->SetRange(fMin, fMax);
}
FX_FLOAT CFWL_ScrollBar::GetPageSize() {
if (!m_pIface)
return 0;
return static_cast<IFWL_ScrollBar*>(m_pIface)->GetPageSize();
}
FWL_ERR CFWL_ScrollBar::SetPageSize(FX_FLOAT fPageSize) {
if (!m_pIface)
return FWL_ERR_Indefinite;
return static_cast<IFWL_ScrollBar*>(m_pIface)->SetPageSize(fPageSize);
}
FX_FLOAT CFWL_ScrollBar::GetStepSize() {
if (!m_pIface)
return 0;
return static_cast<IFWL_ScrollBar*>(m_pIface)->GetStepSize();
}
FWL_ERR CFWL_ScrollBar::SetStepSize(FX_FLOAT fStepSize) {
if (!m_pIface)
return FWL_ERR_Indefinite;
return static_cast<IFWL_ScrollBar*>(m_pIface)->SetStepSize(fStepSize);
}
FX_FLOAT CFWL_ScrollBar::GetPos() {
if (!m_pIface)
return -1;
return static_cast<IFWL_ScrollBar*>(m_pIface)->GetPos();
}
FWL_ERR CFWL_ScrollBar::SetPos(FX_FLOAT fPos) {
if (!m_pIface)
return FWL_ERR_Indefinite;
return static_cast<IFWL_ScrollBar*>(m_pIface)->SetPos(fPos);
}
FX_FLOAT CFWL_ScrollBar::GetTrackPos() {
if (!m_pIface)
return -1;
return static_cast<IFWL_ScrollBar*>(m_pIface)->GetTrackPos();
}
FWL_ERR CFWL_ScrollBar::SetTrackPos(FX_FLOAT fTrackPos) {
if (!m_pIface)
return FWL_ERR_Indefinite;
return static_cast<IFWL_ScrollBar*>(m_pIface)->SetTrackPos(fTrackPos);
}
FX_BOOL CFWL_ScrollBar::DoScroll(uint32_t dwCode, FX_FLOAT fPos) {
if (!m_pIface)
return FALSE;
return static_cast<IFWL_ScrollBar*>(m_pIface)->DoScroll(dwCode, fPos);
}