1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include "fpdfsdk/pdfwindow/PWL_Button.h"
8 #include "fpdfsdk/pdfwindow/PWL_SpecialButton.h"
9 #include "fpdfsdk/pdfwindow/PWL_Utils.h"
10 #include "fpdfsdk/pdfwindow/PWL_Wnd.h"
11 
CPWL_PushButton()12 CPWL_PushButton::CPWL_PushButton() {}
13 
~CPWL_PushButton()14 CPWL_PushButton::~CPWL_PushButton() {}
15 
GetClassName() const16 CFX_ByteString CPWL_PushButton::GetClassName() const {
17   return "CPWL_PushButton";
18 }
19 
GetFocusRect() const20 CFX_FloatRect CPWL_PushButton::GetFocusRect() const {
21   return CPWL_Utils::DeflateRect(GetWindowRect(), (FX_FLOAT)GetBorderWidth());
22 }
23 
CPWL_CheckBox()24 CPWL_CheckBox::CPWL_CheckBox() : m_bChecked(false) {}
25 
~CPWL_CheckBox()26 CPWL_CheckBox::~CPWL_CheckBox() {}
27 
GetClassName() const28 CFX_ByteString CPWL_CheckBox::GetClassName() const {
29   return "CPWL_CheckBox";
30 }
31 
SetCheck(bool bCheck)32 void CPWL_CheckBox::SetCheck(bool bCheck) {
33   m_bChecked = bCheck;
34 }
35 
IsChecked() const36 bool CPWL_CheckBox::IsChecked() const {
37   return m_bChecked;
38 }
39 
OnLButtonUp(const CFX_FloatPoint & point,uint32_t nFlag)40 FX_BOOL CPWL_CheckBox::OnLButtonUp(const CFX_FloatPoint& point,
41                                    uint32_t nFlag) {
42   if (IsReadOnly())
43     return FALSE;
44 
45   SetCheck(!IsChecked());
46   return TRUE;
47 }
48 
OnChar(uint16_t nChar,uint32_t nFlag)49 FX_BOOL CPWL_CheckBox::OnChar(uint16_t nChar, uint32_t nFlag) {
50   SetCheck(!IsChecked());
51   return TRUE;
52 }
53 
CPWL_RadioButton()54 CPWL_RadioButton::CPWL_RadioButton() : m_bChecked(false) {}
55 
~CPWL_RadioButton()56 CPWL_RadioButton::~CPWL_RadioButton() {}
57 
GetClassName() const58 CFX_ByteString CPWL_RadioButton::GetClassName() const {
59   return "CPWL_RadioButton";
60 }
61 
OnLButtonUp(const CFX_FloatPoint & point,uint32_t nFlag)62 FX_BOOL CPWL_RadioButton::OnLButtonUp(const CFX_FloatPoint& point,
63                                       uint32_t nFlag) {
64   if (IsReadOnly())
65     return FALSE;
66 
67   SetCheck(TRUE);
68   return TRUE;
69 }
70 
SetCheck(bool bCheck)71 void CPWL_RadioButton::SetCheck(bool bCheck) {
72   m_bChecked = bCheck;
73 }
74 
IsChecked() const75 bool CPWL_RadioButton::IsChecked() const {
76   return m_bChecked;
77 }
78 
OnChar(uint16_t nChar,uint32_t nFlag)79 FX_BOOL CPWL_RadioButton::OnChar(uint16_t nChar, uint32_t nFlag) {
80   SetCheck(TRUE);
81   return TRUE;
82 }
83