xref: /aosp_15_r20/external/pdfium/fpdfsdk/pwl/cpwl_special_button.cpp (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2014 The PDFium Authors
2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be
3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file.
4*3ac0a46fSAndroid Build Coastguard Worker 
5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6*3ac0a46fSAndroid Build Coastguard Worker 
7*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfsdk/pwl/cpwl_special_button.h"
8*3ac0a46fSAndroid Build Coastguard Worker 
9*3ac0a46fSAndroid Build Coastguard Worker #include <utility>
10*3ac0a46fSAndroid Build Coastguard Worker 
11*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfsdk/pwl/cpwl_button.h"
12*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfsdk/pwl/cpwl_wnd.h"
13*3ac0a46fSAndroid Build Coastguard Worker 
CPWL_PushButton(const CreateParams & cp,std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData)14*3ac0a46fSAndroid Build Coastguard Worker CPWL_PushButton::CPWL_PushButton(
15*3ac0a46fSAndroid Build Coastguard Worker     const CreateParams& cp,
16*3ac0a46fSAndroid Build Coastguard Worker     std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData)
17*3ac0a46fSAndroid Build Coastguard Worker     : CPWL_Button(cp, std::move(pAttachedData)) {}
18*3ac0a46fSAndroid Build Coastguard Worker 
19*3ac0a46fSAndroid Build Coastguard Worker CPWL_PushButton::~CPWL_PushButton() = default;
20*3ac0a46fSAndroid Build Coastguard Worker 
GetFocusRect() const21*3ac0a46fSAndroid Build Coastguard Worker CFX_FloatRect CPWL_PushButton::GetFocusRect() const {
22*3ac0a46fSAndroid Build Coastguard Worker   return GetWindowRect().GetDeflated(static_cast<float>(GetBorderWidth()),
23*3ac0a46fSAndroid Build Coastguard Worker                                      static_cast<float>(GetBorderWidth()));
24*3ac0a46fSAndroid Build Coastguard Worker }
25*3ac0a46fSAndroid Build Coastguard Worker 
CPWL_CheckBox(const CreateParams & cp,std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData)26*3ac0a46fSAndroid Build Coastguard Worker CPWL_CheckBox::CPWL_CheckBox(
27*3ac0a46fSAndroid Build Coastguard Worker     const CreateParams& cp,
28*3ac0a46fSAndroid Build Coastguard Worker     std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData)
29*3ac0a46fSAndroid Build Coastguard Worker     : CPWL_Button(cp, std::move(pAttachedData)) {}
30*3ac0a46fSAndroid Build Coastguard Worker 
31*3ac0a46fSAndroid Build Coastguard Worker CPWL_CheckBox::~CPWL_CheckBox() = default;
32*3ac0a46fSAndroid Build Coastguard Worker 
OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag,const CFX_PointF & point)33*3ac0a46fSAndroid Build Coastguard Worker bool CPWL_CheckBox::OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag,
34*3ac0a46fSAndroid Build Coastguard Worker                                 const CFX_PointF& point) {
35*3ac0a46fSAndroid Build Coastguard Worker   if (IsReadOnly())
36*3ac0a46fSAndroid Build Coastguard Worker     return false;
37*3ac0a46fSAndroid Build Coastguard Worker 
38*3ac0a46fSAndroid Build Coastguard Worker   SetCheck(!IsChecked());
39*3ac0a46fSAndroid Build Coastguard Worker   return true;
40*3ac0a46fSAndroid Build Coastguard Worker }
41*3ac0a46fSAndroid Build Coastguard Worker 
OnChar(uint16_t nChar,Mask<FWL_EVENTFLAG> nFlag)42*3ac0a46fSAndroid Build Coastguard Worker bool CPWL_CheckBox::OnChar(uint16_t nChar, Mask<FWL_EVENTFLAG> nFlag) {
43*3ac0a46fSAndroid Build Coastguard Worker   if (IsReadOnly())
44*3ac0a46fSAndroid Build Coastguard Worker     return false;
45*3ac0a46fSAndroid Build Coastguard Worker 
46*3ac0a46fSAndroid Build Coastguard Worker   SetCheck(!IsChecked());
47*3ac0a46fSAndroid Build Coastguard Worker   return true;
48*3ac0a46fSAndroid Build Coastguard Worker }
49*3ac0a46fSAndroid Build Coastguard Worker 
CPWL_RadioButton(const CreateParams & cp,std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData)50*3ac0a46fSAndroid Build Coastguard Worker CPWL_RadioButton::CPWL_RadioButton(
51*3ac0a46fSAndroid Build Coastguard Worker     const CreateParams& cp,
52*3ac0a46fSAndroid Build Coastguard Worker     std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData)
53*3ac0a46fSAndroid Build Coastguard Worker     : CPWL_Button(cp, std::move(pAttachedData)) {}
54*3ac0a46fSAndroid Build Coastguard Worker 
55*3ac0a46fSAndroid Build Coastguard Worker CPWL_RadioButton::~CPWL_RadioButton() = default;
56*3ac0a46fSAndroid Build Coastguard Worker 
OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag,const CFX_PointF & point)57*3ac0a46fSAndroid Build Coastguard Worker bool CPWL_RadioButton::OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag,
58*3ac0a46fSAndroid Build Coastguard Worker                                    const CFX_PointF& point) {
59*3ac0a46fSAndroid Build Coastguard Worker   if (IsReadOnly())
60*3ac0a46fSAndroid Build Coastguard Worker     return false;
61*3ac0a46fSAndroid Build Coastguard Worker 
62*3ac0a46fSAndroid Build Coastguard Worker   SetCheck(true);
63*3ac0a46fSAndroid Build Coastguard Worker   return true;
64*3ac0a46fSAndroid Build Coastguard Worker }
65*3ac0a46fSAndroid Build Coastguard Worker 
OnChar(uint16_t nChar,Mask<FWL_EVENTFLAG> nFlag)66*3ac0a46fSAndroid Build Coastguard Worker bool CPWL_RadioButton::OnChar(uint16_t nChar, Mask<FWL_EVENTFLAG> nFlag) {
67*3ac0a46fSAndroid Build Coastguard Worker   if (IsReadOnly())
68*3ac0a46fSAndroid Build Coastguard Worker     return false;
69*3ac0a46fSAndroid Build Coastguard Worker 
70*3ac0a46fSAndroid Build Coastguard Worker   SetCheck(true);
71*3ac0a46fSAndroid Build Coastguard Worker   return true;
72*3ac0a46fSAndroid Build Coastguard Worker }
73