| Index: xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp
|
| diff --git a/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp
|
| index 9567fc58d56819973914595acd7fb0a2952acf4a..583b2930786b43250da176581b73fd5c6734b7f6 100644
|
| --- a/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp
|
| +++ b/xfa/src/fwl/src/basewidget/fwl_pictureboximp.cpp
|
| @@ -1,150 +1,150 @@
|
| -// 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/src/foxitlib.h"
|
| -#include "xfa/src/fwl/src/core/include/fwl_targetimp.h"
|
| -#include "xfa/src/fwl/src/core/include/fwl_noteimp.h"
|
| -#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h"
|
| -#include "xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h"
|
| -
|
| -// static
|
| -IFWL_PictureBox* IFWL_PictureBox::Create(
|
| - const CFWL_WidgetImpProperties& properties,
|
| - IFWL_Widget* pOuter) {
|
| - IFWL_PictureBox* pPictureBox = new IFWL_PictureBox;
|
| - CFWL_PictureBoxImp* pPictureBoxImpl =
|
| - new CFWL_PictureBoxImp(properties, pOuter);
|
| - pPictureBox->SetImpl(pPictureBoxImpl);
|
| - pPictureBoxImpl->SetInterface(pPictureBox);
|
| - return pPictureBox;
|
| -}
|
| -IFWL_PictureBox::IFWL_PictureBox() {}
|
| -
|
| -CFWL_PictureBoxImp::CFWL_PictureBoxImp(
|
| - const CFWL_WidgetImpProperties& properties,
|
| - IFWL_Widget* pOuter)
|
| - : CFWL_WidgetImp(properties, pOuter),
|
| - m_bTop(FALSE),
|
| - m_bVCenter(FALSE),
|
| - m_bButton(FALSE) {
|
| - m_rtClient.Reset();
|
| - m_rtImage.Reset();
|
| - m_matrix.SetIdentity();
|
| -}
|
| -CFWL_PictureBoxImp::~CFWL_PictureBoxImp() {}
|
| -FWL_ERR CFWL_PictureBoxImp::GetClassName(CFX_WideString& wsClass) const {
|
| - wsClass = FWL_CLASS_PictureBox;
|
| - return FWL_ERR_Succeeded;
|
| -}
|
| -FX_DWORD CFWL_PictureBoxImp::GetClassID() const {
|
| - return FWL_CLASSHASH_PictureBox;
|
| -}
|
| -FWL_ERR CFWL_PictureBoxImp::Initialize() {
|
| - if (CFWL_WidgetImp::Initialize() != FWL_ERR_Succeeded)
|
| - return FWL_ERR_Indefinite;
|
| - m_pDelegate = new CFWL_PictureBoxImpDelegate(this);
|
| - return FWL_ERR_Succeeded;
|
| -}
|
| -FWL_ERR CFWL_PictureBoxImp::Finalize() {
|
| - delete m_pDelegate;
|
| - m_pDelegate = nullptr;
|
| - return CFWL_WidgetImp::Finalize();
|
| -}
|
| -FWL_ERR CFWL_PictureBoxImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
|
| - if (bAutoSize) {
|
| - rect.Set(0, 0, 0, 0);
|
| - if (!m_pProperties->m_pDataProvider)
|
| - return FWL_ERR_Indefinite;
|
| - CFX_DIBitmap* pBitmap =
|
| - static_cast<IFWL_PictureBoxDP*>(m_pProperties->m_pDataProvider)
|
| - ->GetPicture(m_pInterface);
|
| - if (pBitmap) {
|
| - rect.Set(0, 0, (FX_FLOAT)pBitmap->GetWidth(),
|
| - (FX_FLOAT)pBitmap->GetHeight());
|
| - }
|
| - CFWL_WidgetImp::GetWidgetRect(rect, TRUE);
|
| - } else {
|
| - rect = m_pProperties->m_rtWidget;
|
| - }
|
| - return FWL_ERR_Succeeded;
|
| -}
|
| -FWL_ERR CFWL_PictureBoxImp::Update() {
|
| - if (IsLocked()) {
|
| - return FWL_ERR_Succeeded;
|
| - }
|
| - if (!m_pProperties->m_pThemeProvider) {
|
| - m_pProperties->m_pThemeProvider = GetAvailableTheme();
|
| - }
|
| - GetClientRect(m_rtClient);
|
| - return FWL_ERR_Succeeded;
|
| -}
|
| -FWL_ERR CFWL_PictureBoxImp::DrawWidget(CFX_Graphics* pGraphics,
|
| - const CFX_Matrix* pMatrix) {
|
| - if (!pGraphics)
|
| - return FWL_ERR_Indefinite;
|
| - if (!m_pProperties->m_pThemeProvider)
|
| - return FWL_ERR_Indefinite;
|
| - IFWL_ThemeProvider* pTheme = GetAvailableTheme();
|
| - if (HasBorder()) {
|
| - DrawBorder(pGraphics, FWL_PART_PTB_Border, pTheme, pMatrix);
|
| - }
|
| - if (HasEdge()) {
|
| - DrawEdge(pGraphics, FWL_PART_PTB_Edge, pTheme, pMatrix);
|
| - }
|
| - DrawBkground(pGraphics, pTheme, pMatrix);
|
| - return FWL_ERR_Succeeded;
|
| -}
|
| -void CFWL_PictureBoxImp::DrawBkground(CFX_Graphics* pGraphics,
|
| - IFWL_ThemeProvider* pTheme,
|
| - const CFX_Matrix* pMatrix) {
|
| - IFWL_PictureBoxDP* pPictureDP =
|
| - static_cast<IFWL_PictureBoxDP*>(m_pProperties->m_pDataProvider);
|
| - if (!pPictureDP)
|
| - return;
|
| -
|
| - CFX_DIBitmap* pPicture = pPictureDP->GetPicture(m_pInterface);
|
| - CFX_Matrix matrix;
|
| - pPictureDP->GetMatrix(m_pInterface, matrix);
|
| - if (!pPicture)
|
| - return;
|
| -
|
| - matrix.Concat(*pMatrix);
|
| - FX_FLOAT fx = (FX_FLOAT)pPicture->GetWidth();
|
| - FX_FLOAT fy = (FX_FLOAT)pPicture->GetHeight();
|
| - if (fx > m_rtClient.width) {
|
| - fx = m_rtClient.width;
|
| - }
|
| - if (fy > m_rtClient.height) {
|
| - fy = m_rtClient.height;
|
| - }
|
| - CFX_PointF pt;
|
| - pt.Set((m_rtClient.width - fx) / 2, (m_rtClient.height - fy) / 2);
|
| - pGraphics->DrawImage(pPicture, pt, &matrix);
|
| -}
|
| -FX_BOOL CFWL_PictureBoxImp::VStyle(FX_BOOL dwStyle) {
|
| - switch (dwStyle & FWL_STYLEEXT_PTB_VAlignMask) {
|
| - case FWL_STYLEEXT_PTB_Top: {
|
| - return m_bTop = TRUE;
|
| - break;
|
| - }
|
| - case FWL_STYLEEXT_PTB_Vcenter: {
|
| - return m_bVCenter = TRUE;
|
| - break;
|
| - }
|
| - case FWL_STYLEEXT_PTB_Bottom: {
|
| - return m_bButton = TRUE;
|
| - break;
|
| - }
|
| - }
|
| - return FALSE;
|
| -}
|
| -CFWL_PictureBoxImpDelegate::CFWL_PictureBoxImpDelegate(
|
| - CFWL_PictureBoxImp* pOwner)
|
| - : m_pOwner(pOwner) {}
|
| -FWL_ERR CFWL_PictureBoxImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
|
| - const CFX_Matrix* pMatrix) {
|
| - return m_pOwner->DrawWidget(pGraphics, pMatrix);
|
| -}
|
| +// 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/src/foxitlib.h"
|
| +#include "xfa/src/fwl/src/core/include/fwl_targetimp.h"
|
| +#include "xfa/src/fwl/src/core/include/fwl_noteimp.h"
|
| +#include "xfa/src/fwl/src/core/include/fwl_widgetimp.h"
|
| +#include "xfa/src/fwl/src/basewidget/include/fwl_pictureboximp.h"
|
| +
|
| +// static
|
| +IFWL_PictureBox* IFWL_PictureBox::Create(
|
| + const CFWL_WidgetImpProperties& properties,
|
| + IFWL_Widget* pOuter) {
|
| + IFWL_PictureBox* pPictureBox = new IFWL_PictureBox;
|
| + CFWL_PictureBoxImp* pPictureBoxImpl =
|
| + new CFWL_PictureBoxImp(properties, pOuter);
|
| + pPictureBox->SetImpl(pPictureBoxImpl);
|
| + pPictureBoxImpl->SetInterface(pPictureBox);
|
| + return pPictureBox;
|
| +}
|
| +IFWL_PictureBox::IFWL_PictureBox() {}
|
| +
|
| +CFWL_PictureBoxImp::CFWL_PictureBoxImp(
|
| + const CFWL_WidgetImpProperties& properties,
|
| + IFWL_Widget* pOuter)
|
| + : CFWL_WidgetImp(properties, pOuter),
|
| + m_bTop(FALSE),
|
| + m_bVCenter(FALSE),
|
| + m_bButton(FALSE) {
|
| + m_rtClient.Reset();
|
| + m_rtImage.Reset();
|
| + m_matrix.SetIdentity();
|
| +}
|
| +CFWL_PictureBoxImp::~CFWL_PictureBoxImp() {}
|
| +FWL_ERR CFWL_PictureBoxImp::GetClassName(CFX_WideString& wsClass) const {
|
| + wsClass = FWL_CLASS_PictureBox;
|
| + return FWL_ERR_Succeeded;
|
| +}
|
| +FX_DWORD CFWL_PictureBoxImp::GetClassID() const {
|
| + return FWL_CLASSHASH_PictureBox;
|
| +}
|
| +FWL_ERR CFWL_PictureBoxImp::Initialize() {
|
| + if (CFWL_WidgetImp::Initialize() != FWL_ERR_Succeeded)
|
| + return FWL_ERR_Indefinite;
|
| + m_pDelegate = new CFWL_PictureBoxImpDelegate(this);
|
| + return FWL_ERR_Succeeded;
|
| +}
|
| +FWL_ERR CFWL_PictureBoxImp::Finalize() {
|
| + delete m_pDelegate;
|
| + m_pDelegate = nullptr;
|
| + return CFWL_WidgetImp::Finalize();
|
| +}
|
| +FWL_ERR CFWL_PictureBoxImp::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) {
|
| + if (bAutoSize) {
|
| + rect.Set(0, 0, 0, 0);
|
| + if (!m_pProperties->m_pDataProvider)
|
| + return FWL_ERR_Indefinite;
|
| + CFX_DIBitmap* pBitmap =
|
| + static_cast<IFWL_PictureBoxDP*>(m_pProperties->m_pDataProvider)
|
| + ->GetPicture(m_pInterface);
|
| + if (pBitmap) {
|
| + rect.Set(0, 0, (FX_FLOAT)pBitmap->GetWidth(),
|
| + (FX_FLOAT)pBitmap->GetHeight());
|
| + }
|
| + CFWL_WidgetImp::GetWidgetRect(rect, TRUE);
|
| + } else {
|
| + rect = m_pProperties->m_rtWidget;
|
| + }
|
| + return FWL_ERR_Succeeded;
|
| +}
|
| +FWL_ERR CFWL_PictureBoxImp::Update() {
|
| + if (IsLocked()) {
|
| + return FWL_ERR_Succeeded;
|
| + }
|
| + if (!m_pProperties->m_pThemeProvider) {
|
| + m_pProperties->m_pThemeProvider = GetAvailableTheme();
|
| + }
|
| + GetClientRect(m_rtClient);
|
| + return FWL_ERR_Succeeded;
|
| +}
|
| +FWL_ERR CFWL_PictureBoxImp::DrawWidget(CFX_Graphics* pGraphics,
|
| + const CFX_Matrix* pMatrix) {
|
| + if (!pGraphics)
|
| + return FWL_ERR_Indefinite;
|
| + if (!m_pProperties->m_pThemeProvider)
|
| + return FWL_ERR_Indefinite;
|
| + IFWL_ThemeProvider* pTheme = GetAvailableTheme();
|
| + if (HasBorder()) {
|
| + DrawBorder(pGraphics, FWL_PART_PTB_Border, pTheme, pMatrix);
|
| + }
|
| + if (HasEdge()) {
|
| + DrawEdge(pGraphics, FWL_PART_PTB_Edge, pTheme, pMatrix);
|
| + }
|
| + DrawBkground(pGraphics, pTheme, pMatrix);
|
| + return FWL_ERR_Succeeded;
|
| +}
|
| +void CFWL_PictureBoxImp::DrawBkground(CFX_Graphics* pGraphics,
|
| + IFWL_ThemeProvider* pTheme,
|
| + const CFX_Matrix* pMatrix) {
|
| + IFWL_PictureBoxDP* pPictureDP =
|
| + static_cast<IFWL_PictureBoxDP*>(m_pProperties->m_pDataProvider);
|
| + if (!pPictureDP)
|
| + return;
|
| +
|
| + CFX_DIBitmap* pPicture = pPictureDP->GetPicture(m_pInterface);
|
| + CFX_Matrix matrix;
|
| + pPictureDP->GetMatrix(m_pInterface, matrix);
|
| + if (!pPicture)
|
| + return;
|
| +
|
| + matrix.Concat(*pMatrix);
|
| + FX_FLOAT fx = (FX_FLOAT)pPicture->GetWidth();
|
| + FX_FLOAT fy = (FX_FLOAT)pPicture->GetHeight();
|
| + if (fx > m_rtClient.width) {
|
| + fx = m_rtClient.width;
|
| + }
|
| + if (fy > m_rtClient.height) {
|
| + fy = m_rtClient.height;
|
| + }
|
| + CFX_PointF pt;
|
| + pt.Set((m_rtClient.width - fx) / 2, (m_rtClient.height - fy) / 2);
|
| + pGraphics->DrawImage(pPicture, pt, &matrix);
|
| +}
|
| +FX_BOOL CFWL_PictureBoxImp::VStyle(FX_BOOL dwStyle) {
|
| + switch (dwStyle & FWL_STYLEEXT_PTB_VAlignMask) {
|
| + case FWL_STYLEEXT_PTB_Top: {
|
| + return m_bTop = TRUE;
|
| + break;
|
| + }
|
| + case FWL_STYLEEXT_PTB_Vcenter: {
|
| + return m_bVCenter = TRUE;
|
| + break;
|
| + }
|
| + case FWL_STYLEEXT_PTB_Bottom: {
|
| + return m_bButton = TRUE;
|
| + break;
|
| + }
|
| + }
|
| + return FALSE;
|
| +}
|
| +CFWL_PictureBoxImpDelegate::CFWL_PictureBoxImpDelegate(
|
| + CFWL_PictureBoxImp* pOwner)
|
| + : m_pOwner(pOwner) {}
|
| +FWL_ERR CFWL_PictureBoxImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics,
|
| + const CFX_Matrix* pMatrix) {
|
| + return m_pOwner->DrawWidget(pGraphics, pMatrix);
|
| +}
|
|
|