John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 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. |
Lei Zhang | a6d9f0e | 2015-06-13 00:48:38 -0700 | [diff] [blame] | 4 | |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 5 | // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | |
Dan Sinclair | c411eb9 | 2017-07-25 09:39:30 -0400 | [diff] [blame] | 7 | #ifndef FPDFSDK_PWL_CPWL_SPECIAL_BUTTON_H_ |
| 8 | #define FPDFSDK_PWL_CPWL_SPECIAL_BUTTON_H_ |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 9 | |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 10 | #include <memory> |
| 11 | |
Dan Sinclair | c411eb9 | 2017-07-25 09:39:30 -0400 | [diff] [blame] | 12 | #include "fpdfsdk/pwl/cpwl_button.h" |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 13 | |
Tom Sepez | 5586545 | 2018-08-27 20:18:04 +0000 | [diff] [blame] | 14 | class CPWL_PushButton final : public CPWL_Button { |
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 15 | public: |
Tom Sepez | ea9130d | 2019-08-06 21:55:57 +0000 | [diff] [blame] | 16 | CPWL_PushButton( |
| 17 | const CreateParams& cp, |
Tom Sepez | 02cb570 | 2022-05-09 23:41:19 +0000 | [diff] [blame] | 18 | std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData); |
Lei Zhang | 2b1a2d5 | 2015-08-14 22:16:22 -0700 | [diff] [blame] | 19 | ~CPWL_PushButton() override; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 20 | |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 21 | // CPWL_Button: |
Tom Sepez | 281a9ea | 2016-02-26 14:24:28 -0800 | [diff] [blame] | 22 | CFX_FloatRect GetFocusRect() const override; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 23 | }; |
| 24 | |
Tom Sepez | 5586545 | 2018-08-27 20:18:04 +0000 | [diff] [blame] | 25 | class CPWL_CheckBox final : public CPWL_Button { |
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 26 | public: |
Tom Sepez | ea9130d | 2019-08-06 21:55:57 +0000 | [diff] [blame] | 27 | CPWL_CheckBox( |
| 28 | const CreateParams& cp, |
Tom Sepez | 02cb570 | 2022-05-09 23:41:19 +0000 | [diff] [blame] | 29 | std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData); |
Lei Zhang | 2b1a2d5 | 2015-08-14 22:16:22 -0700 | [diff] [blame] | 30 | ~CPWL_CheckBox() override; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 31 | |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 32 | // CPWL_Button: |
Tom Sepez | 6f9e9f6 | 2021-08-11 17:01:53 +0000 | [diff] [blame] | 33 | bool OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag, const CFX_PointF& point) override; |
| 34 | bool OnChar(uint16_t nChar, Mask<FWL_EVENTFLAG> nFlag) override; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 35 | |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 36 | bool IsChecked() const { return m_bChecked; } |
| 37 | void SetCheck(bool bCheck) { m_bChecked = bCheck; } |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 38 | |
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 39 | private: |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 40 | bool m_bChecked = false; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 41 | }; |
| 42 | |
Tom Sepez | 5586545 | 2018-08-27 20:18:04 +0000 | [diff] [blame] | 43 | class CPWL_RadioButton final : public CPWL_Button { |
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 44 | public: |
Tom Sepez | ea9130d | 2019-08-06 21:55:57 +0000 | [diff] [blame] | 45 | CPWL_RadioButton( |
| 46 | const CreateParams& cp, |
Tom Sepez | 02cb570 | 2022-05-09 23:41:19 +0000 | [diff] [blame] | 47 | std::unique_ptr<IPWL_FillerNotify::PerWindowData> pAttachedData); |
Lei Zhang | 2b1a2d5 | 2015-08-14 22:16:22 -0700 | [diff] [blame] | 48 | ~CPWL_RadioButton() override; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 49 | |
Lei Zhang | 2b1a2d5 | 2015-08-14 22:16:22 -0700 | [diff] [blame] | 50 | // CPWL_Button |
Tom Sepez | 6f9e9f6 | 2021-08-11 17:01:53 +0000 | [diff] [blame] | 51 | bool OnLButtonUp(Mask<FWL_EVENTFLAG> nFlag, const CFX_PointF& point) override; |
| 52 | bool OnChar(uint16_t nChar, Mask<FWL_EVENTFLAG> nFlag) override; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 53 | |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 54 | bool IsChecked() const { return m_bChecked; } |
| 55 | void SetCheck(bool bCheck) { m_bChecked = bCheck; } |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 56 | |
Nico Weber | 9d8ec5a | 2015-08-04 13:00:21 -0700 | [diff] [blame] | 57 | private: |
Tom Sepez | 6fe32f8 | 2018-10-25 23:25:58 +0000 | [diff] [blame] | 58 | bool m_bChecked = false; |
John Abd-El-Malek | 3f3b45c | 2014-05-23 17:28:10 -0700 | [diff] [blame] | 59 | }; |
| 60 | |
Dan Sinclair | c411eb9 | 2017-07-25 09:39:30 -0400 | [diff] [blame] | 61 | #endif // FPDFSDK_PWL_CPWL_SPECIAL_BUTTON_H_ |