| Index: xfa/fxfa/app/xfa_ffcheckbutton.cpp
|
| diff --git a/xfa/fxfa/app/xfa_ffcheckbutton.cpp b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
|
| index 9dfb12fa789a30186a4a0bc41617e7f9573c9420..83d068e858801172f25d00ce0b4b995f2ebcbac1 100644
|
| --- a/xfa/fxfa/app/xfa_ffcheckbutton.cpp
|
| +++ b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
|
| @@ -6,10 +6,12 @@
|
|
|
| #include "xfa/fxfa/app/xfa_ffcheckbutton.h"
|
|
|
| +#include "third_party/base/ptr_util.h"
|
| #include "xfa/fwl/core/cfwl_checkbox.h"
|
| #include "xfa/fwl/core/cfwl_message.h"
|
| #include "xfa/fwl/core/cfwl_widgetmgr.h"
|
| #include "xfa/fwl/core/fwl_noteimp.h"
|
| +#include "xfa/fxfa/app/cxfa_ffcheckbuttondelegate.h"
|
| #include "xfa/fxfa/app/xfa_ffexclgroup.h"
|
| #include "xfa/fxfa/app/xfa_fffield.h"
|
| #include "xfa/fxfa/xfa_ffapp.h"
|
| @@ -20,7 +22,7 @@
|
|
|
| CXFA_FFCheckButton::CXFA_FFCheckButton(CXFA_FFPageView* pPageView,
|
| CXFA_WidgetAcc* pDataAcc)
|
| - : CXFA_FFField(pPageView, pDataAcc), m_pOldDelegate(nullptr) {
|
| + : CXFA_FFField(pPageView, pDataAcc) {
|
| m_rtCheckBox.Set(0, 0, 0, 0);
|
| }
|
|
|
| @@ -36,8 +38,8 @@ FX_BOOL CXFA_FFCheckButton::LoadWidget() {
|
| CFWL_NoteDriver* pNoteDriver = pWidget->GetOwnerApp()->GetNoteDriver();
|
| pNoteDriver->RegisterEventTarget(pWidget, pWidget);
|
|
|
| - m_pOldDelegate = m_pNormalWidget->GetCurrentDelegate();
|
| - m_pNormalWidget->SetCurrentDelegate(this);
|
| + m_pNormalWidget->SetDelegate(pdfium::MakeUnique<CXFA_FFCheckButtonDelegate>(
|
| + m_pNormalWidget->ReleaseDelegate(), this));
|
|
|
| if (m_pDataAcc->IsRadioButton())
|
| pCheckBox->ModifyStylesEx(FWL_STYLEEXT_CKB_RadioButton, 0xFFFFFFFF);
|
| @@ -295,46 +297,3 @@ FX_BOOL CXFA_FFCheckButton::UpdateFWLData() {
|
| m_pNormalWidget->Update();
|
| return TRUE;
|
| }
|
| -
|
| -void CXFA_FFCheckButton::OnProcessMessage(CFWL_Message* pMessage) {
|
| - m_pOldDelegate->OnProcessMessage(pMessage);
|
| -}
|
| -
|
| -void CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) {
|
| - CXFA_FFField::OnProcessEvent(pEvent);
|
| - switch (pEvent->GetClassID()) {
|
| - case CFWL_EventType::CheckStateChanged: {
|
| - CXFA_EventParam eParam;
|
| - eParam.m_eType = XFA_EVENT_Change;
|
| - m_pDataAcc->GetValue(eParam.m_wsNewText, XFA_VALUEPICTURE_Raw);
|
| - CXFA_WidgetAcc* pFFExclGroup = m_pDataAcc->GetExclGroup();
|
| - if (ProcessCommittedData()) {
|
| - eParam.m_pTarget = pFFExclGroup;
|
| - if (pFFExclGroup) {
|
| - m_pDocView->AddValidateWidget(pFFExclGroup);
|
| - m_pDocView->AddCalculateWidgetAcc(pFFExclGroup);
|
| - pFFExclGroup->ProcessEvent(XFA_ATTRIBUTEENUM_Change, &eParam);
|
| - }
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Change, &eParam);
|
| - } else {
|
| - SetFWLCheckState(m_pDataAcc->GetCheckState());
|
| - }
|
| - if (pFFExclGroup) {
|
| - eParam.m_pTarget = pFFExclGroup;
|
| - pFFExclGroup->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
|
| - }
|
| - eParam.m_pTarget = m_pDataAcc;
|
| - m_pDataAcc->ProcessEvent(XFA_ATTRIBUTEENUM_Click, &eParam);
|
| - break;
|
| - }
|
| - default:
|
| - break;
|
| - }
|
| - m_pOldDelegate->OnProcessEvent(pEvent);
|
| -}
|
| -
|
| -void CXFA_FFCheckButton::OnDrawWidget(CFX_Graphics* pGraphics,
|
| - const CFX_Matrix* pMatrix) {
|
| - m_pOldDelegate->OnDrawWidget(pGraphics, pMatrix);
|
| -}
|
|
|