| Index: xfa/fxfa/app/xfa_ffpushbutton.cpp
|
| diff --git a/xfa/fxfa/app/xfa_ffpushbutton.cpp b/xfa/fxfa/app/xfa_ffpushbutton.cpp
|
| index e64858101117f21861ad3e2a87218a3867398825..d5ad72cf3ba18910798ad7f2db955f6dae4ca0d8 100644
|
| --- a/xfa/fxfa/app/xfa_ffpushbutton.cpp
|
| +++ b/xfa/fxfa/app/xfa_ffpushbutton.cpp
|
| @@ -6,9 +6,11 @@
|
|
|
| #include "xfa/fxfa/app/xfa_ffpushbutton.h"
|
|
|
| +#include "third_party/base/ptr_util.h"
|
| #include "xfa/fwl/core/cfwl_pushbutton.h"
|
| #include "xfa/fwl/core/cfwl_widgetmgr.h"
|
| #include "xfa/fwl/core/fwl_noteimp.h"
|
| +#include "xfa/fxfa/app/cxfa_ffpushbuttondelegate.h"
|
| #include "xfa/fxfa/app/xfa_fffield.h"
|
| #include "xfa/fxfa/app/xfa_ffwidgetacc.h"
|
| #include "xfa/fxfa/app/xfa_textlayout.h"
|
| @@ -24,11 +26,12 @@ CXFA_FFPushButton::CXFA_FFPushButton(CXFA_FFPageView* pPageView,
|
| m_pRolloverTextLayout(nullptr),
|
| m_pDownTextLayout(nullptr),
|
| m_pDownProvider(nullptr),
|
| - m_pRollProvider(nullptr),
|
| - m_pOldDelegate(nullptr) {}
|
| + m_pRollProvider(nullptr) {}
|
| +
|
| CXFA_FFPushButton::~CXFA_FFPushButton() {
|
| CXFA_FFPushButton::UnloadWidget();
|
| }
|
| +
|
| void CXFA_FFPushButton::RenderWidget(CFX_Graphics* pGS,
|
| CFX_Matrix* pMatrix,
|
| uint32_t dwStatus) {
|
| @@ -55,8 +58,8 @@ FX_BOOL CXFA_FFPushButton::LoadWidget() {
|
| CFWL_PushButton* pPushButton = new CFWL_PushButton(GetFWLApp());
|
| pPushButton->Initialize();
|
|
|
| - m_pOldDelegate = pPushButton->GetCurrentDelegate();
|
| - pPushButton->SetCurrentDelegate(this);
|
| + pPushButton->SetDelegate(pdfium::MakeUnique<CXFA_FFPushButtonDelegate>(
|
| + pPushButton->ReleaseDelegate(), this));
|
|
|
| m_pNormalWidget = pPushButton;
|
| m_pNormalWidget->SetLayoutItem(this);
|
| @@ -201,47 +204,3 @@ void CXFA_FFPushButton::RenderHighlightCaption(CFX_Graphics* pGS,
|
| }
|
| }
|
| }
|
| -
|
| -void CXFA_FFPushButton::OnProcessMessage(CFWL_Message* pMessage) {
|
| - m_pOldDelegate->OnProcessMessage(pMessage);
|
| -}
|
| -
|
| -void CXFA_FFPushButton::OnProcessEvent(CFWL_Event* pEvent) {
|
| - m_pOldDelegate->OnProcessEvent(pEvent);
|
| - CXFA_FFField::OnProcessEvent(pEvent);
|
| -}
|
| -
|
| -void CXFA_FFPushButton::OnDrawWidget(CFX_Graphics* pGraphics,
|
| - const CFX_Matrix* pMatrix) {
|
| - if (m_pNormalWidget->GetStylesEx() & XFA_FWL_PSBSTYLEEXT_HiliteInverted) {
|
| - if ((m_pNormalWidget->GetStates() & FWL_STATE_PSB_Pressed) &&
|
| - (m_pNormalWidget->GetStates() & FWL_STATE_PSB_Hovered)) {
|
| - CFX_RectF rtFill;
|
| - m_pNormalWidget->GetWidgetRect(rtFill);
|
| - rtFill.left = rtFill.top = 0;
|
| - FX_FLOAT fLineWith = GetLineWidth();
|
| - rtFill.Deflate(fLineWith, fLineWith);
|
| - CFX_Color cr(FXARGB_MAKE(128, 128, 255, 255));
|
| - pGraphics->SetFillColor(&cr);
|
| - CFX_Path path;
|
| - path.Create();
|
| - path.AddRectangle(rtFill.left, rtFill.top, rtFill.width, rtFill.height);
|
| - pGraphics->FillPath(&path, FXFILL_WINDING, (CFX_Matrix*)pMatrix);
|
| - }
|
| - } else if (m_pNormalWidget->GetStylesEx() &
|
| - XFA_FWL_PSBSTYLEEXT_HiliteOutLine) {
|
| - if ((m_pNormalWidget->GetStates() & FWL_STATE_PSB_Pressed) &&
|
| - (m_pNormalWidget->GetStates() & FWL_STATE_PSB_Hovered)) {
|
| - FX_FLOAT fLineWidth = GetLineWidth();
|
| - CFX_Color cr(FXARGB_MAKE(255, 128, 255, 255));
|
| - pGraphics->SetStrokeColor(&cr);
|
| - pGraphics->SetLineWidth(fLineWidth);
|
| - CFX_Path path;
|
| - path.Create();
|
| - CFX_RectF rect;
|
| - m_pNormalWidget->GetWidgetRect(rect);
|
| - path.AddRectangle(0, 0, rect.width, rect.height);
|
| - pGraphics->StrokePath(&path, (CFX_Matrix*)pMatrix);
|
| - }
|
| - }
|
| -}
|
|
|