diff options
Diffstat (limited to 'xfa/fwl/cfwl_picturebox.cpp')
-rw-r--r-- | xfa/fwl/cfwl_picturebox.cpp | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/xfa/fwl/cfwl_picturebox.cpp b/xfa/fwl/cfwl_picturebox.cpp new file mode 100644 index 0000000000..b62aac942e --- /dev/null +++ b/xfa/fwl/cfwl_picturebox.cpp @@ -0,0 +1,52 @@ +// 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/cfwl_picturebox.h" + +#include <memory> + +#include "third_party/base/ptr_util.h" + +CFWL_PictureBox::CFWL_PictureBox(const CFWL_App* app) + : CFWL_Widget(app, pdfium::MakeUnique<CFWL_WidgetProperties>(), nullptr) { + m_rtClient.Reset(); + m_rtImage.Reset(); + m_matrix.SetIdentity(); +} + +CFWL_PictureBox::~CFWL_PictureBox() {} + +FWL_Type CFWL_PictureBox::GetClassID() const { + return FWL_Type::PictureBox; +} + +void CFWL_PictureBox::Update() { + if (IsLocked()) + return; + if (!m_pProperties->m_pThemeProvider) + m_pProperties->m_pThemeProvider = GetAvailableTheme(); + + GetClientRect(m_rtClient); +} + +void CFWL_PictureBox::DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix) { + if (!pGraphics) + return; + if (!m_pProperties->m_pThemeProvider) + return; + + IFWL_ThemeProvider* pTheme = GetAvailableTheme(); + if (HasBorder()) + DrawBorder(pGraphics, CFWL_Part::Border, pTheme, pMatrix); + if (HasEdge()) + DrawEdge(pGraphics, CFWL_Part::Edge, pTheme, pMatrix); +} + +void CFWL_PictureBox::OnDrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix) { + DrawWidget(pGraphics, pMatrix); +} |