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/pwl/cpwl_special_button.h"
8#include "fpdfsdk/pwl/cpwl_button.h"
9#include "fpdfsdk/pwl/cpwl_wnd.h"
10
11CPWL_PushButton::CPWL_PushButton() {}
12
13CPWL_PushButton::~CPWL_PushButton() {}
14
15ByteString CPWL_PushButton::GetClassName() const {
16  return "CPWL_PushButton";
17}
18
19CFX_FloatRect CPWL_PushButton::GetFocusRect() const {
20  return GetWindowRect().GetDeflated(static_cast<float>(GetBorderWidth()),
21                                     static_cast<float>(GetBorderWidth()));
22}
23
24CPWL_CheckBox::CPWL_CheckBox() : m_bChecked(false) {}
25
26CPWL_CheckBox::~CPWL_CheckBox() {}
27
28ByteString CPWL_CheckBox::GetClassName() const {
29  return "CPWL_CheckBox";
30}
31
32void CPWL_CheckBox::SetCheck(bool bCheck) {
33  m_bChecked = bCheck;
34}
35
36bool CPWL_CheckBox::IsChecked() const {
37  return m_bChecked;
38}
39
40bool CPWL_CheckBox::OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) {
41  if (IsReadOnly())
42    return false;
43
44  SetCheck(!IsChecked());
45  return true;
46}
47
48bool CPWL_CheckBox::OnChar(uint16_t nChar, uint32_t nFlag) {
49  SetCheck(!IsChecked());
50  return true;
51}
52
53CPWL_RadioButton::CPWL_RadioButton() : m_bChecked(false) {}
54
55CPWL_RadioButton::~CPWL_RadioButton() {}
56
57ByteString CPWL_RadioButton::GetClassName() const {
58  return "CPWL_RadioButton";
59}
60
61bool CPWL_RadioButton::OnLButtonUp(const CFX_PointF& point, uint32_t nFlag) {
62  if (IsReadOnly())
63    return false;
64
65  SetCheck(true);
66  return true;
67}
68
69void CPWL_RadioButton::SetCheck(bool bCheck) {
70  m_bChecked = bCheck;
71}
72
73bool CPWL_RadioButton::IsChecked() const {
74  return m_bChecked;
75}
76
77bool CPWL_RadioButton::OnChar(uint16_t nChar, uint32_t nFlag) {
78  SetCheck(true);
79  return true;
80}
81