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 CFWL_ComboBoxItem : public IFWL_ListItem { | |
17 public: | |
18 CFWL_ComboBoxItem(); | |
19 ~CFWL_ComboBoxItem(); | |
20 | |
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 { | 16 class CFWL_ComboBox : public CFWL_Widget, public IFWL_ComboBoxDP { |
31 public: | 17 public: |
32 CFWL_ComboBox(const IFWL_App*); | 18 CFWL_ComboBox(const IFWL_App*); |
33 ~CFWL_ComboBox() override; | 19 ~CFWL_ComboBox() override; |
34 | 20 |
35 void Initialize(); | 21 void Initialize(); |
36 | 22 |
37 int32_t AddString(const CFX_WideStringC& wsText); | 23 int32_t AddString(const CFX_WideStringC& wsText); |
38 int32_t AddString(const CFX_WideStringC& wsText, CFX_DIBitmap* pIcon); | 24 int32_t AddString(const CFX_WideStringC& wsText, CFX_DIBitmap* pIcon); |
39 bool RemoveAt(int32_t iIndex); // Returns false iff |iIndex| out of range. | 25 bool RemoveAt(int32_t iIndex); // Returns false iff |iIndex| out of range. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
77 FWL_Error GetBBox(CFX_RectF& rect); | 63 FWL_Error GetBBox(CFX_RectF& rect); |
78 FWL_Error EditModifyStylesEx(uint32_t dwStylesExAdded, | 64 FWL_Error EditModifyStylesEx(uint32_t dwStylesExAdded, |
79 uint32_t dwStylesExRemoved); | 65 uint32_t dwStylesExRemoved); |
80 | 66 |
81 // IFWL_DataProvider | 67 // IFWL_DataProvider |
82 FWL_Error GetCaption(IFWL_Widget* pWidget, | 68 FWL_Error GetCaption(IFWL_Widget* pWidget, |
83 CFX_WideString& wsCaption) override; | 69 CFX_WideString& wsCaption) override; |
84 | 70 |
85 // IFWL_ListBoxDP | 71 // IFWL_ListBoxDP |
86 int32_t CountItems(const IFWL_Widget* pWidget) override; | 72 int32_t CountItems(const IFWL_Widget* pWidget) override; |
87 IFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) override; | 73 CFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) override; |
88 int32_t GetItemIndex(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 74 int32_t GetItemIndex(IFWL_Widget* pWidget, CFWL_ListItem* pItem) override; |
89 bool SetItemIndex(IFWL_Widget* pWidget, | 75 bool SetItemIndex(IFWL_Widget* pWidget, |
90 IFWL_ListItem* pItem, | 76 CFWL_ListItem* pItem, |
91 int32_t nIndex) override; | 77 int32_t nIndex) override; |
92 | 78 |
93 uint32_t GetItemStyles(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 79 uint32_t GetItemStyles(IFWL_Widget* pWidget, CFWL_ListItem* pItem) override; |
94 FWL_Error GetItemText(IFWL_Widget* pWidget, | 80 FWL_Error GetItemText(IFWL_Widget* pWidget, |
95 IFWL_ListItem* pItem, | 81 CFWL_ListItem* pItem, |
96 CFX_WideString& wsText) override; | 82 CFX_WideString& wsText) override; |
97 FWL_Error GetItemRect(IFWL_Widget* pWidget, | 83 FWL_Error GetItemRect(IFWL_Widget* pWidget, |
98 IFWL_ListItem* pItem, | 84 CFWL_ListItem* pItem, |
99 CFX_RectF& rtItem) override; | 85 CFX_RectF& rtItem) override; |
100 void* GetItemData(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 86 void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem) override; |
101 FWL_Error SetItemStyles(IFWL_Widget* pWidget, | 87 FWL_Error SetItemStyles(IFWL_Widget* pWidget, |
102 IFWL_ListItem* pItem, | 88 CFWL_ListItem* pItem, |
103 uint32_t dwStyle) override; | 89 uint32_t dwStyle) override; |
104 FWL_Error SetItemText(IFWL_Widget* pWidget, | 90 FWL_Error SetItemText(IFWL_Widget* pWidget, |
105 IFWL_ListItem* pItem, | 91 CFWL_ListItem* pItem, |
106 const FX_WCHAR* pszText) override; | 92 const FX_WCHAR* pszText) override; |
107 FWL_Error SetItemRect(IFWL_Widget* pWidget, | 93 FWL_Error SetItemRect(IFWL_Widget* pWidget, |
108 IFWL_ListItem* pItem, | 94 CFWL_ListItem* pItem, |
109 const CFX_RectF& rtItem) override; | 95 const CFX_RectF& rtItem) override; |
110 FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) override; | 96 FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) override; |
111 CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, | 97 CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, |
112 IFWL_ListItem* pItem) override; | 98 CFWL_ListItem* pItem) override; |
113 FWL_Error GetItemCheckRect(IFWL_Widget* pWidget, | 99 FWL_Error GetItemCheckRect(IFWL_Widget* pWidget, |
114 IFWL_ListItem* pItem, | 100 CFWL_ListItem* pItem, |
115 CFX_RectF& rtCheck) override; | 101 CFX_RectF& rtCheck) override; |
116 FWL_Error SetItemCheckRect(IFWL_Widget* pWidget, | 102 FWL_Error SetItemCheckRect(IFWL_Widget* pWidget, |
117 IFWL_ListItem* pItem, | 103 CFWL_ListItem* pItem, |
118 const CFX_RectF& rtCheck) override; | 104 const CFX_RectF& rtCheck) override; |
119 uint32_t GetItemCheckState(IFWL_Widget* pWidget, | 105 uint32_t GetItemCheckState(IFWL_Widget* pWidget, |
120 IFWL_ListItem* pItem) override; | 106 CFWL_ListItem* pItem) override; |
121 FWL_Error SetItemCheckState(IFWL_Widget* pWidget, | 107 FWL_Error SetItemCheckState(IFWL_Widget* pWidget, |
122 IFWL_ListItem* pItem, | 108 CFWL_ListItem* pItem, |
123 uint32_t dwCheckState) override; | 109 uint32_t dwCheckState) override; |
124 | 110 |
125 // IFWL_ComboBoxDP | 111 // IFWL_ComboBoxDP |
126 FX_FLOAT GetListHeight(IFWL_Widget* pWidget) override; | 112 FX_FLOAT GetListHeight(IFWL_Widget* pWidget) override; |
127 | 113 |
128 private: | 114 private: |
129 std::vector<std::unique_ptr<CFWL_ComboBoxItem>> m_ItemArray; | 115 std::vector<std::unique_ptr<CFWL_ListItem>> m_ItemArray; |
130 FX_FLOAT m_fMaxListHeight; | 116 FX_FLOAT m_fMaxListHeight; |
131 FX_FLOAT m_fItemHeight; | 117 FX_FLOAT m_fItemHeight; |
132 }; | 118 }; |
133 | 119 |
134 #endif // XFA_FWL_CORE_CFWL_COMBOBOX_H_ | 120 #endif // XFA_FWL_CORE_CFWL_COMBOBOX_H_ |
OLD | NEW |