OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
6 | 6 |
7 #ifndef XFA_FWL_CORE_IFWL_CHECKBOX_H_ | 7 #ifndef XFA_FWL_CORE_IFWL_CHECKBOX_H_ |
8 #define XFA_FWL_CORE_IFWL_CHECKBOX_H_ | 8 #define XFA_FWL_CORE_IFWL_CHECKBOX_H_ |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 #define FWL_STATE_CKB_Checked (1 << (FWL_WGTSTATE_MAX + 2)) | 43 #define FWL_STATE_CKB_Checked (1 << (FWL_WGTSTATE_MAX + 2)) |
44 #define FWL_STATE_CKB_Neutral (2 << (FWL_WGTSTATE_MAX + 2)) | 44 #define FWL_STATE_CKB_Neutral (2 << (FWL_WGTSTATE_MAX + 2)) |
45 #define FWL_STATE_CKB_CheckMask (3L << (FWL_WGTSTATE_MAX + 2)) | 45 #define FWL_STATE_CKB_CheckMask (3L << (FWL_WGTSTATE_MAX + 2)) |
46 | 46 |
47 class CFWL_MsgMouse; | 47 class CFWL_MsgMouse; |
48 class CFWL_WidgetProperties; | 48 class CFWL_WidgetProperties; |
49 class IFWL_Widget; | 49 class IFWL_Widget; |
50 | 50 |
51 class IFWL_CheckBox : public IFWL_Widget { | 51 class IFWL_CheckBox : public IFWL_Widget { |
52 public: | 52 public: |
53 class DataProvider : public IFWL_Widget::DataProvider { | 53 class DataProvider { |
54 public: | 54 public: |
55 virtual FX_FLOAT GetBoxSize(IFWL_Widget* pWidget) = 0; | 55 virtual FX_FLOAT GetBoxSize(IFWL_Widget* pWidget) = 0; |
56 }; | 56 }; |
57 | 57 |
58 IFWL_CheckBox(const CFWL_App* app, | 58 IFWL_CheckBox(const CFWL_App* app, |
59 std::unique_ptr<CFWL_WidgetProperties> properties); | 59 std::unique_ptr<CFWL_WidgetProperties> properties); |
60 ~IFWL_CheckBox() override; | 60 ~IFWL_CheckBox() override; |
61 | 61 |
62 // IFWL_Widget | 62 // IFWL_Widget |
63 FWL_Type GetClassID() const override; | 63 FWL_Type GetClassID() const override; |
64 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override; | 64 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override; |
65 void Update() override; | 65 void Update() override; |
66 void DrawWidget(CFX_Graphics* pGraphics, | 66 void DrawWidget(CFX_Graphics* pGraphics, |
67 const CFX_Matrix* pMatrix = nullptr) override; | 67 const CFX_Matrix* pMatrix = nullptr) override; |
68 | 68 |
69 void OnProcessMessage(CFWL_Message* pMessage) override; | 69 void OnProcessMessage(CFWL_Message* pMessage) override; |
70 void OnDrawWidget(CFX_Graphics* pGraphics, | 70 void OnDrawWidget(CFX_Graphics* pGraphics, |
71 const CFX_Matrix* pMatrix) override; | 71 const CFX_Matrix* pMatrix) override; |
72 | 72 |
| 73 void SetDataProvider(IFWL_CheckBox::DataProvider* pProvider) { |
| 74 m_pDataProvider = pProvider; |
| 75 } |
| 76 |
73 private: | 77 private: |
74 void SetCheckState(int32_t iCheck); | 78 void SetCheckState(int32_t iCheck); |
75 void Layout(); | 79 void Layout(); |
76 uint32_t GetPartStates() const; | 80 uint32_t GetPartStates() const; |
77 void UpdateTextOutStyles(); | 81 void UpdateTextOutStyles(); |
78 void NextStates(); | 82 void NextStates(); |
79 void OnFocusChanged(bool bSet); | 83 void OnFocusChanged(bool bSet); |
80 void OnLButtonDown(); | 84 void OnLButtonDown(); |
81 void OnLButtonUp(CFWL_MsgMouse* pMsg); | 85 void OnLButtonUp(CFWL_MsgMouse* pMsg); |
82 void OnMouseMove(CFWL_MsgMouse* pMsg); | 86 void OnMouseMove(CFWL_MsgMouse* pMsg); |
83 void OnMouseLeave(); | 87 void OnMouseLeave(); |
84 void OnKeyDown(CFWL_MsgKey* pMsg); | 88 void OnKeyDown(CFWL_MsgKey* pMsg); |
85 | 89 |
| 90 IFWL_CheckBox::DataProvider* m_pDataProvider; // Not owned. |
86 CFX_RectF m_rtClient; | 91 CFX_RectF m_rtClient; |
87 CFX_RectF m_rtBox; | 92 CFX_RectF m_rtBox; |
88 CFX_RectF m_rtCaption; | 93 CFX_RectF m_rtCaption; |
89 CFX_RectF m_rtFocus; | 94 CFX_RectF m_rtFocus; |
90 uint32_t m_dwTTOStyles; | 95 uint32_t m_dwTTOStyles; |
91 int32_t m_iTTOAlign; | 96 int32_t m_iTTOAlign; |
92 bool m_bBtnDown; | 97 bool m_bBtnDown; |
93 }; | 98 }; |
94 | 99 |
95 #endif // XFA_FWL_CORE_IFWL_CHECKBOX_H_ | 100 #endif // XFA_FWL_CORE_IFWL_CHECKBOX_H_ |
OLD | NEW |