7#include "fpdfsdk/formfiller/cffl_radiobutton.h"
11#include "constants/ascii.h"
12#include "core/fpdfdoc/cpdf_formcontrol.h"
13#include "fpdfsdk/cpdfsdk_widget.h"
14#include "fpdfsdk/formfiller/cffl_formfield.h"
15#include "fpdfsdk/pwl/cpwl_special_button.h"
16#include "public/fpdf_fwlevent.h"
17#include "third_party/base/check.h"
20 CPDFSDK_Widget* pWidget)
27 std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData) {
28 auto pWnd =
std::make_unique<CPWL_RadioButton>(cp,
std::move(pAttachedData));
30 pWnd->SetCheck(m_pWidget->IsChecked());
31 return std::move(pWnd);
34bool CFFL_RadioButton::
OnKeyDown(FWL_VKEYCODE nKeyCode,
35 Mask<FWL_EVENTFLAG> nFlags) {
45bool CFFL_RadioButton::
OnChar(CPDFSDK_Widget* pWidget,
47 Mask<FWL_EVENTFLAG> nFlags) {
54 ObservedPtr<CPDFSDK_Widget> pObserved(m_pWidget);
55 if (m_pFormFiller->OnButtonUp(pObserved, pPageView, nFlags) ||
61 CPWL_RadioButton* pWnd = CreateOrUpdatePWLRadioButton(pPageView);
71bool CFFL_RadioButton::
OnLButtonUp(CPDFSDK_PageView* pPageView,
72 CPDFSDK_Widget* pWidget,
73 Mask<FWL_EVENTFLAG> nFlags,
74 const CFX_PointF& point) {
80 CPWL_RadioButton* pWnd = CreateOrUpdatePWLRadioButton(pPageView);
87bool CFFL_RadioButton::
IsDataChanged(
const CPDFSDK_PageView* pPageView) {
88 CPWL_RadioButton* pWnd = GetPWLRadioButton(pPageView);
89 return pWnd && pWnd->IsChecked() != m_pWidget->IsChecked();
92void CFFL_RadioButton::
SaveData(
const CPDFSDK_PageView* pPageView) {
93 CPWL_RadioButton* pWnd = GetPWLRadioButton(pPageView);
98 ObservedPtr<CPDFSDK_Widget> observed_widget(m_pWidget);
99 ObservedPtr<CFFL_RadioButton> observed_this(
this);
100 m_pWidget->SetCheck(bNewChecked);
101 if (!observed_widget)
104 m_pWidget->UpdateField();
105 if (!observed_widget || !observed_this)
111CPWL_RadioButton* CFFL_RadioButton::GetPWLRadioButton(
112 const CPDFSDK_PageView* pPageView)
const {
113 return static_cast<CPWL_RadioButton*>(
GetPWLWindow(pPageView));
116CPWL_RadioButton* CFFL_RadioButton::CreateOrUpdatePWLRadioButton(
117 const CPDFSDK_PageView* pPageView) {
CPDFSDK_PageView * GetPageView() const
constexpr uint8_t kReturn