1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved.
2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be
3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file.
4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/pdfwindow/PDFWindow.h"
8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/pdfwindow/PWL_Wnd.h"
9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/pdfwindow/PWL_Button.h"
10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/pdfwindow/PWL_SpecialButton.h"
11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "../../include/pdfwindow/PWL_Utils.h"
12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* --------------------------- CPWL_PushButton ---------------------------- */
14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
15ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPWL_PushButton::CPWL_PushButton()
16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
19ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPWL_PushButton::~CPWL_PushButton()
20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
23ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCFX_ByteString CPWL_PushButton::GetClassName() const
24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return "CPWL_PushButton";
26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
28ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPDF_Rect CPWL_PushButton::GetFocusRect() const
29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return CPWL_Utils::DeflateRect(this->GetWindowRect(),(FX_FLOAT)GetBorderWidth());
31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* --------------------------- CPWL_CheckBox ---------------------------- */
34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
35ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPWL_CheckBox::CPWL_CheckBox() : m_bChecked(FALSE)
36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
39ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPWL_CheckBox::~CPWL_CheckBox()
40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
43ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCFX_ByteString CPWL_CheckBox::GetClassName() const
44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return "CPWL_CheckBox";
46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CPWL_CheckBox::SetCheck(FX_BOOL bCheck)
49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	m_bChecked = bCheck;
51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
53ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CPWL_CheckBox::IsChecked() const
54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return m_bChecked;
56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
58ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CPWL_CheckBox::OnLButtonUp(const CPDF_Point & point)
59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
60ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	if (IsReadOnly()) return FALSE;
61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	SetCheck(!IsChecked());
63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return TRUE;
64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
66ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CPWL_CheckBox::OnChar(FX_WORD nChar)
67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
68ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	SetCheck(!IsChecked());
69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return TRUE;
70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov/* --------------------------- CPWL_RadioButton ---------------------------- */
73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
74ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPWL_RadioButton::CPWL_RadioButton() : m_bChecked(FALSE)
75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
78ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCPWL_RadioButton::~CPWL_RadioButton()
79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
82ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCFX_ByteString CPWL_RadioButton::GetClassName() const
83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return "CPWL_RadioButton";
85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
87ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL	CPWL_RadioButton::OnLButtonUp(const CPDF_Point & point)
88ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
89ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	if (IsReadOnly()) return FALSE;
90ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
91ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	SetCheck(TRUE);
92ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return TRUE;
93ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
94ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
95ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CPWL_RadioButton::SetCheck(FX_BOOL bCheck)
96ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
97ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	m_bChecked = bCheck;
98ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
99ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
100ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CPWL_RadioButton::IsChecked() const
101ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
102ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return m_bChecked;
103ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
104ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
105ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CPWL_RadioButton::OnChar(FX_WORD nChar)
106ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{
107ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	SetCheck(TRUE);
108ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov	return TRUE;
109ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}
110ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov
111