diff options
author | dsinclair <dsinclair@chromium.org> | 2016-11-23 16:17:20 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-11-23 16:17:21 -0800 |
commit | 2c489cc41023a40648dfde988d11b8ec2b66c7d0 (patch) | |
tree | 78255c80c547a5954ed5778f1a809d3166a5f3e2 /xfa/fwl/core/cfwl_picturebox.cpp | |
parent | 0ce11eef157b791c661d7e82e1c5641605b9f03d (diff) | |
download | pdfium-2c489cc41023a40648dfde988d11b8ec2b66c7d0.tar.xz |
Merge IFWL and CFWL classes.
This CL merges the IFWL hierarchy into the CFWL hierachy. All CFWL proxy methods
have been replaced by the IFWL implementations.
Review-Url: https://codereview.chromium.org/2524173002
Diffstat (limited to 'xfa/fwl/core/cfwl_picturebox.cpp')
-rw-r--r-- | xfa/fwl/core/cfwl_picturebox.cpp | 50 |
1 files changed, 44 insertions, 6 deletions
diff --git a/xfa/fwl/core/cfwl_picturebox.cpp b/xfa/fwl/core/cfwl_picturebox.cpp index af0cb86514..cb4cff35d1 100644 --- a/xfa/fwl/core/cfwl_picturebox.cpp +++ b/xfa/fwl/core/cfwl_picturebox.cpp @@ -10,16 +10,54 @@ #include "third_party/base/ptr_util.h" -CFWL_PictureBox::CFWL_PictureBox(const CFWL_App* app) : CFWL_Widget(app) {} +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() {} -void CFWL_PictureBox::Initialize() { - ASSERT(!m_pIface); +FWL_Type CFWL_PictureBox::GetClassID() const { + return FWL_Type::PictureBox; +} + +void CFWL_PictureBox::GetWidgetRect(CFX_RectF& rect, bool bAutoSize) { + if (!bAutoSize) { + rect = m_pProperties->m_rtWidget; + return; + } - m_pIface = pdfium::MakeUnique<IFWL_PictureBox>( - m_pApp, pdfium::MakeUnique<CFWL_WidgetProperties>()); + rect.Set(0, 0, 0, 0); - CFWL_Widget::Initialize(); + CFWL_Widget::GetWidgetRect(rect, true); } +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); +} |