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