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_CFWL_COMBOBOX_H_ | 7 #ifndef XFA_FWL_CORE_CFWL_COMBOBOX_H_ |
8 #define XFA_FWL_CORE_CFWL_COMBOBOX_H_ | 8 #define XFA_FWL_CORE_CFWL_COMBOBOX_H_ |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
11 #include <vector> | 11 #include <vector> |
12 | 12 |
13 #include "xfa/fwl/core/cfwl_widget.h" | 13 #include "xfa/fwl/core/cfwl_widget.h" |
14 #include "xfa/fwl/core/ifwl_combobox.h" | 14 #include "xfa/fwl/core/ifwl_combobox.h" |
15 | 15 |
16 class IFWL_ComboBoxDP; | 16 class CFWL_ComboBoxItem : public IFWL_ListItem { |
17 class CFWL_ComboBoxDP; | 17 public: |
18 class CFWL_ComboBoxItem; | 18 CFWL_ComboBoxItem(); |
| 19 ~CFWL_ComboBoxItem(); |
19 | 20 |
20 class CFWL_ComboBox : public CFWL_Widget { | 21 CFX_RectF m_rtItem; |
| 22 uint32_t m_dwStyles; |
| 23 CFX_WideString m_wsText; |
| 24 CFX_DIBitmap* m_pDIB; |
| 25 uint32_t m_dwCheckState; |
| 26 CFX_RectF m_rtCheckBox; |
| 27 void* m_pData; |
| 28 }; |
| 29 |
| 30 class CFWL_ComboBox : public CFWL_Widget, public IFWL_ComboBoxDP { |
21 public: | 31 public: |
22 CFWL_ComboBox(const IFWL_App*); | 32 CFWL_ComboBox(const IFWL_App*); |
23 ~CFWL_ComboBox() override; | 33 ~CFWL_ComboBox() override; |
24 | 34 |
25 void Initialize(); | 35 void Initialize(); |
26 | 36 |
27 int32_t AddString(const CFX_WideStringC& wsText); | 37 int32_t AddString(const CFX_WideStringC& wsText); |
28 int32_t AddString(const CFX_WideStringC& wsText, CFX_DIBitmap* pIcon); | 38 int32_t AddString(const CFX_WideStringC& wsText, CFX_DIBitmap* pIcon); |
29 bool RemoveAt(int32_t iIndex); // Returns false iff |iIndex| out of range. | 39 bool RemoveAt(int32_t iIndex); // Returns false iff |iIndex| out of range. |
30 void RemoveAll(); | 40 void RemoveAll(); |
(...skipping 30 matching lines...) Expand all Loading... |
61 bool EditCopy(CFX_WideString& wsCopy); | 71 bool EditCopy(CFX_WideString& wsCopy); |
62 bool EditCut(CFX_WideString& wsCut); | 72 bool EditCut(CFX_WideString& wsCut); |
63 bool EditPaste(const CFX_WideString& wsPaste); | 73 bool EditPaste(const CFX_WideString& wsPaste); |
64 bool EditSelectAll(); | 74 bool EditSelectAll(); |
65 bool EditDelete(); | 75 bool EditDelete(); |
66 bool EditDeSelect(); | 76 bool EditDeSelect(); |
67 FWL_Error GetBBox(CFX_RectF& rect); | 77 FWL_Error GetBBox(CFX_RectF& rect); |
68 FWL_Error EditModifyStylesEx(uint32_t dwStylesExAdded, | 78 FWL_Error EditModifyStylesEx(uint32_t dwStylesExAdded, |
69 uint32_t dwStylesExRemoved); | 79 uint32_t dwStylesExRemoved); |
70 | 80 |
71 protected: | 81 // IFWL_DataProvider |
72 class CFWL_ComboBoxDP : public IFWL_ComboBoxDP { | 82 FWL_Error GetCaption(IFWL_Widget* pWidget, |
73 public: | 83 CFX_WideString& wsCaption) override; |
74 CFWL_ComboBoxDP(); | |
75 ~CFWL_ComboBoxDP() override; | |
76 | 84 |
77 // IFWL_DataProvider | 85 // IFWL_ListBoxDP |
78 FWL_Error GetCaption(IFWL_Widget* pWidget, | 86 int32_t CountItems(const IFWL_Widget* pWidget) override; |
79 CFX_WideString& wsCaption) override; | 87 IFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) override; |
| 88 int32_t GetItemIndex(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; |
| 89 bool SetItemIndex(IFWL_Widget* pWidget, |
| 90 IFWL_ListItem* pItem, |
| 91 int32_t nIndex) override; |
80 | 92 |
81 // IFWL_ListBoxDP | 93 uint32_t GetItemStyles(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; |
82 int32_t CountItems(const IFWL_Widget* pWidget) override; | 94 FWL_Error GetItemText(IFWL_Widget* pWidget, |
83 IFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) override; | 95 IFWL_ListItem* pItem, |
84 int32_t GetItemIndex(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 96 CFX_WideString& wsText) override; |
85 bool SetItemIndex(IFWL_Widget* pWidget, | 97 FWL_Error GetItemRect(IFWL_Widget* pWidget, |
86 IFWL_ListItem* pItem, | 98 IFWL_ListItem* pItem, |
87 int32_t nIndex) override; | 99 CFX_RectF& rtItem) override; |
| 100 void* GetItemData(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; |
| 101 FWL_Error SetItemStyles(IFWL_Widget* pWidget, |
| 102 IFWL_ListItem* pItem, |
| 103 uint32_t dwStyle) override; |
| 104 FWL_Error SetItemText(IFWL_Widget* pWidget, |
| 105 IFWL_ListItem* pItem, |
| 106 const FX_WCHAR* pszText) override; |
| 107 FWL_Error SetItemRect(IFWL_Widget* pWidget, |
| 108 IFWL_ListItem* pItem, |
| 109 const CFX_RectF& rtItem) override; |
| 110 FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) override; |
| 111 CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, |
| 112 IFWL_ListItem* pItem) override; |
| 113 FWL_Error GetItemCheckRect(IFWL_Widget* pWidget, |
| 114 IFWL_ListItem* pItem, |
| 115 CFX_RectF& rtCheck) override; |
| 116 FWL_Error SetItemCheckRect(IFWL_Widget* pWidget, |
| 117 IFWL_ListItem* pItem, |
| 118 const CFX_RectF& rtCheck) override; |
| 119 uint32_t GetItemCheckState(IFWL_Widget* pWidget, |
| 120 IFWL_ListItem* pItem) override; |
| 121 FWL_Error SetItemCheckState(IFWL_Widget* pWidget, |
| 122 IFWL_ListItem* pItem, |
| 123 uint32_t dwCheckState) override; |
88 | 124 |
89 uint32_t GetItemStyles(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 125 // IFWL_ComboBoxDP |
90 FWL_Error GetItemText(IFWL_Widget* pWidget, | 126 FX_FLOAT GetListHeight(IFWL_Widget* pWidget) override; |
91 IFWL_ListItem* pItem, | |
92 CFX_WideString& wsText) override; | |
93 FWL_Error GetItemRect(IFWL_Widget* pWidget, | |
94 IFWL_ListItem* pItem, | |
95 CFX_RectF& rtItem) override; | |
96 void* GetItemData(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | |
97 FWL_Error SetItemStyles(IFWL_Widget* pWidget, | |
98 IFWL_ListItem* pItem, | |
99 uint32_t dwStyle) override; | |
100 FWL_Error SetItemText(IFWL_Widget* pWidget, | |
101 IFWL_ListItem* pItem, | |
102 const FX_WCHAR* pszText) override; | |
103 FWL_Error SetItemRect(IFWL_Widget* pWidget, | |
104 IFWL_ListItem* pItem, | |
105 const CFX_RectF& rtItem) override; | |
106 FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) override; | |
107 CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, | |
108 IFWL_ListItem* pItem) override; | |
109 FWL_Error GetItemCheckRect(IFWL_Widget* pWidget, | |
110 IFWL_ListItem* pItem, | |
111 CFX_RectF& rtCheck) override; | |
112 FWL_Error SetItemCheckRect(IFWL_Widget* pWidget, | |
113 IFWL_ListItem* pItem, | |
114 const CFX_RectF& rtCheck) override; | |
115 uint32_t GetItemCheckState(IFWL_Widget* pWidget, | |
116 IFWL_ListItem* pItem) override; | |
117 FWL_Error SetItemCheckState(IFWL_Widget* pWidget, | |
118 IFWL_ListItem* pItem, | |
119 uint32_t dwCheckState) override; | |
120 | 127 |
121 // IFWL_ComboBoxDP | 128 private: |
122 FX_FLOAT GetListHeight(IFWL_Widget* pWidget) override; | 129 std::vector<std::unique_ptr<CFWL_ComboBoxItem>> m_ItemArray; |
123 | 130 FX_FLOAT m_fMaxListHeight; |
124 std::vector<std::unique_ptr<CFWL_ComboBoxItem>> m_ItemArray; | 131 FX_FLOAT m_fItemHeight; |
125 FX_FLOAT m_fMaxListHeight; | |
126 FX_FLOAT m_fItemHeight; | |
127 }; | |
128 CFWL_ComboBoxDP m_comboBoxData; | |
129 }; | |
130 | |
131 class CFWL_ComboBoxItem : public IFWL_ListItem { | |
132 public: | |
133 CFWL_ComboBoxItem(); | |
134 ~CFWL_ComboBoxItem(); | |
135 | |
136 CFX_RectF m_rtItem; | |
137 uint32_t m_dwStyles; | |
138 CFX_WideString m_wsText; | |
139 CFX_DIBitmap* m_pDIB; | |
140 uint32_t m_dwCheckState; | |
141 CFX_RectF m_rtCheckBox; | |
142 void* m_pData; | |
143 }; | 132 }; |
144 | 133 |
145 #endif // XFA_FWL_CORE_CFWL_COMBOBOX_H_ | 134 #endif // XFA_FWL_CORE_CFWL_COMBOBOX_H_ |
OLD | NEW |