From 5d8e5aa882fe8d37d32b71137f039165581ddb82 Mon Sep 17 00:00:00 2001 From: weili Date: Mon, 8 Aug 2016 17:30:37 -0700 Subject: Use virtual function to retrieve interface pointer Use virtual function to return the actual interface type instead of the base interface type to avoid a lot of casts. Also tidy up CFWL_Widget by encapsulating variables, and use smart pointers for class owned member variables. Review-Url: https://codereview.chromium.org/2209153002 --- xfa/fwl/lightwidget/cfwl_picturebox.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'xfa/fwl/lightwidget/cfwl_picturebox.cpp') diff --git a/xfa/fwl/lightwidget/cfwl_picturebox.cpp b/xfa/fwl/lightwidget/cfwl_picturebox.cpp index 33b11cd8b5..8e0cc60b09 100644 --- a/xfa/fwl/lightwidget/cfwl_picturebox.cpp +++ b/xfa/fwl/lightwidget/cfwl_picturebox.cpp @@ -8,6 +8,14 @@ #include +IFWL_PictureBox* CFWL_PictureBox::GetWidget() { + return static_cast(m_pIface.get()); +} + +const IFWL_PictureBox* CFWL_PictureBox::GetWidget() const { + return static_cast(m_pIface.get()); +} + CFWL_PictureBox* CFWL_PictureBox::Create() { return new CFWL_PictureBox; } @@ -25,7 +33,7 @@ FWL_Error CFWL_PictureBox::Initialize( if (ret != FWL_Error::Succeeded) { return ret; } - m_pIface = pPictureBox.release(); + m_pIface = std::move(pPictureBox); CFWL_Widget::Initialize(); return FWL_Error::Succeeded; } @@ -49,7 +57,7 @@ FWL_Error CFWL_PictureBox::SetRotation(FX_FLOAT fRotation) { } int32_t CFWL_PictureBox::GetFlipMode() { - return m_PictureBoxDP.GetFlipMode(m_pIface); + return m_PictureBoxDP.GetFlipMode(m_pIface.get()); } FWL_Error CFWL_PictureBox::SetFlipMode(int32_t iFlipMode) { @@ -58,7 +66,7 @@ FWL_Error CFWL_PictureBox::SetFlipMode(int32_t iFlipMode) { } int32_t CFWL_PictureBox::GetOpacity() { - return m_PictureBoxDP.GetOpacity(m_pIface); + return m_PictureBoxDP.GetOpacity(m_pIface.get()); } FWL_Error CFWL_PictureBox::SetOpacity(int32_t iOpacity) { @@ -68,7 +76,7 @@ FWL_Error CFWL_PictureBox::SetOpacity(int32_t iOpacity) { FWL_Error CFWL_PictureBox::GetScale(FX_FLOAT& fScaleX, FX_FLOAT& fScaleY) { CFX_Matrix matrix; - m_PictureBoxDP.GetMatrix(m_pIface, matrix); + m_PictureBoxDP.GetMatrix(m_pIface.get(), matrix); matrix.Scale(fScaleX, fScaleY); return FWL_Error::Succeeded; } @@ -81,7 +89,7 @@ FWL_Error CFWL_PictureBox::SetScale(FX_FLOAT fScaleX, FX_FLOAT fScaleY) { FWL_Error CFWL_PictureBox::GetOffset(FX_FLOAT& fx, FX_FLOAT& fy) { CFX_Matrix matrix; - m_PictureBoxDP.GetMatrix(m_pIface, matrix); + m_PictureBoxDP.GetMatrix(m_pIface.get(), matrix); fx = matrix.e; fy = matrix.f; return FWL_Error::Succeeded; -- cgit v1.2.3