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