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_LISTBOX_H_ | 7 #ifndef XFA_FWL_CORE_CFWL_LISTBOX_H_ |
8 #define XFA_FWL_CORE_CFWL_LISTBOX_H_ | 8 #define XFA_FWL_CORE_CFWL_LISTBOX_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/fwl_error.h" | 14 #include "xfa/fwl/core/fwl_error.h" |
15 #include "xfa/fwl/core/ifwl_listbox.h" | 15 #include "xfa/fwl/core/ifwl_listbox.h" |
16 #include "xfa/fwl/core/ifwl_widget.h" | 16 #include "xfa/fwl/core/ifwl_widget.h" |
17 | 17 |
18 class CFWL_ListItem : public IFWL_ListItem { | |
19 public: | |
20 CFWL_ListItem(); | |
21 ~CFWL_ListItem(); | |
22 | |
23 CFX_RectF m_rtItem; | |
24 uint32_t m_dwStates; | |
25 CFX_WideString m_wsText; | |
26 CFX_DIBitmap* m_pDIB; | |
27 void* m_pData; | |
28 uint32_t m_dwCheckState; | |
29 CFX_RectF m_rtCheckBox; | |
30 }; | |
31 | |
32 class CFWL_ListBox : public CFWL_Widget, public IFWL_ListBoxDP { | 18 class CFWL_ListBox : public CFWL_Widget, public IFWL_ListBoxDP { |
33 public: | 19 public: |
34 CFWL_ListBox(const IFWL_App*); | 20 CFWL_ListBox(const IFWL_App*); |
35 ~CFWL_ListBox() override; | 21 ~CFWL_ListBox() override; |
36 | 22 |
37 void Initialize(); | 23 void Initialize(); |
38 | 24 |
39 FWL_Error AddDIBitmap(CFX_DIBitmap* pDIB, IFWL_ListItem* pItem); | 25 FWL_Error AddDIBitmap(CFX_DIBitmap* pDIB, CFWL_ListItem* pItem); |
40 IFWL_ListItem* AddString(const CFX_WideStringC& wsAdd, bool bSelect = false); | 26 CFWL_ListItem* AddString(const CFX_WideStringC& wsAdd, bool bSelect = false); |
41 bool DeleteString(IFWL_ListItem* pItem); | 27 bool DeleteString(CFWL_ListItem* pItem); |
42 void DeleteAll(); | 28 void DeleteAll(); |
43 int32_t CountSelItems(); | 29 int32_t CountSelItems(); |
44 IFWL_ListItem* GetSelItem(int32_t nIndexSel); | 30 CFWL_ListItem* GetSelItem(int32_t nIndexSel); |
45 int32_t GetSelIndex(int32_t nIndex); | 31 int32_t GetSelIndex(int32_t nIndex); |
46 FWL_Error SetSelItem(IFWL_ListItem* pItem, bool bSelect = true); | 32 FWL_Error SetSelItem(CFWL_ListItem* pItem, bool bSelect = true); |
47 FWL_Error GetItemText(IFWL_ListItem* pItem, CFX_WideString& wsText); | 33 FWL_Error GetItemText(CFWL_ListItem* pItem, CFX_WideString& wsText); |
48 FWL_Error GetScrollPos(FX_FLOAT& fPos, bool bVert = true); | 34 FWL_Error GetScrollPos(FX_FLOAT& fPos, bool bVert = true); |
49 FWL_Error SetItemHeight(FX_FLOAT fItemHeight); | 35 FWL_Error SetItemHeight(FX_FLOAT fItemHeight); |
50 IFWL_ListItem* GetFocusItem(); | 36 CFWL_ListItem* GetFocusItem(); |
51 FWL_Error SetFocusItem(IFWL_ListItem* pItem); | 37 FWL_Error SetFocusItem(CFWL_ListItem* pItem); |
52 int32_t CountItems(); | 38 int32_t CountItems(); |
53 IFWL_ListItem* GetItem(int32_t nIndex); | 39 CFWL_ListItem* GetItem(int32_t nIndex); |
54 FWL_Error SetItemString(IFWL_ListItem* pItem, const CFX_WideStringC& wsText); | 40 FWL_Error SetItemString(CFWL_ListItem* pItem, const CFX_WideStringC& wsText); |
55 FWL_Error GetItemString(IFWL_ListItem* pItem, CFX_WideString& wsText); | 41 FWL_Error GetItemString(CFWL_ListItem* pItem, CFX_WideString& wsText); |
56 FWL_Error SetItemData(IFWL_ListItem* pItem, void* pData); | 42 FWL_Error SetItemData(CFWL_ListItem* pItem, void* pData); |
57 void* GetItemData(IFWL_ListItem* pItem); | 43 void* GetItemData(CFWL_ListItem* pItem); |
58 IFWL_ListItem* GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy); | 44 CFWL_ListItem* GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy); |
59 uint32_t GetItemStates(IFWL_ListItem* pItem); | 45 uint32_t GetItemStates(CFWL_ListItem* pItem); |
60 | 46 |
61 // IFWL_DataProvider: | 47 // IFWL_DataProvider: |
62 FWL_Error GetCaption(IFWL_Widget* pWidget, | 48 FWL_Error GetCaption(IFWL_Widget* pWidget, |
63 CFX_WideString& wsCaption) override; | 49 CFX_WideString& wsCaption) override; |
64 | 50 |
65 // IFWL_ListBoxDP: | 51 // IFWL_ListBoxDP: |
66 int32_t CountItems(const IFWL_Widget* pWidget) override; | 52 int32_t CountItems(const IFWL_Widget* pWidget) override; |
67 IFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) override; | 53 CFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) override; |
68 int32_t GetItemIndex(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 54 int32_t GetItemIndex(IFWL_Widget* pWidget, CFWL_ListItem* pItem) override; |
69 bool SetItemIndex(IFWL_Widget* pWidget, | 55 bool SetItemIndex(IFWL_Widget* pWidget, |
70 IFWL_ListItem* pItem, | 56 CFWL_ListItem* pItem, |
71 int32_t nIndex) override; | 57 int32_t nIndex) override; |
72 uint32_t GetItemStyles(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 58 uint32_t GetItemStyles(IFWL_Widget* pWidget, CFWL_ListItem* pItem) override; |
73 FWL_Error GetItemText(IFWL_Widget* pWidget, | 59 FWL_Error GetItemText(IFWL_Widget* pWidget, |
74 IFWL_ListItem* pItem, | 60 CFWL_ListItem* pItem, |
75 CFX_WideString& wsText) override; | 61 CFX_WideString& wsText) override; |
76 FWL_Error GetItemRect(IFWL_Widget* pWidget, | 62 FWL_Error GetItemRect(IFWL_Widget* pWidget, |
77 IFWL_ListItem* pItem, | 63 CFWL_ListItem* pItem, |
78 CFX_RectF& rtItem) override; | 64 CFX_RectF& rtItem) override; |
79 void* GetItemData(IFWL_Widget* pWidget, IFWL_ListItem* pItem) override; | 65 void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem) override; |
80 FWL_Error SetItemStyles(IFWL_Widget* pWidget, | 66 FWL_Error SetItemStyles(IFWL_Widget* pWidget, |
81 IFWL_ListItem* pItem, | 67 CFWL_ListItem* pItem, |
82 uint32_t dwStyle) override; | 68 uint32_t dwStyle) override; |
83 FWL_Error SetItemText(IFWL_Widget* pWidget, | 69 FWL_Error SetItemText(IFWL_Widget* pWidget, |
84 IFWL_ListItem* pItem, | 70 CFWL_ListItem* pItem, |
85 const FX_WCHAR* pszText) override; | 71 const FX_WCHAR* pszText) override; |
86 FWL_Error SetItemRect(IFWL_Widget* pWidget, | 72 FWL_Error SetItemRect(IFWL_Widget* pWidget, |
87 IFWL_ListItem* pItem, | 73 CFWL_ListItem* pItem, |
88 const CFX_RectF& rtItem) override; | 74 const CFX_RectF& rtItem) override; |
89 FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) override; | 75 FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) override; |
90 CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, | 76 CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, |
91 IFWL_ListItem* pItem) override; | 77 CFWL_ListItem* pItem) override; |
92 FWL_Error GetItemCheckRect(IFWL_Widget* pWidget, | 78 FWL_Error GetItemCheckRect(IFWL_Widget* pWidget, |
93 IFWL_ListItem* pItem, | 79 CFWL_ListItem* pItem, |
94 CFX_RectF& rtCheck) override; | 80 CFX_RectF& rtCheck) override; |
95 FWL_Error SetItemCheckRect(IFWL_Widget* pWidget, | 81 FWL_Error SetItemCheckRect(IFWL_Widget* pWidget, |
96 IFWL_ListItem* pItem, | 82 CFWL_ListItem* pItem, |
97 const CFX_RectF& rtCheck) override; | 83 const CFX_RectF& rtCheck) override; |
98 uint32_t GetItemCheckState(IFWL_Widget* pWidget, | 84 uint32_t GetItemCheckState(IFWL_Widget* pWidget, |
99 IFWL_ListItem* pItem) override; | 85 CFWL_ListItem* pItem) override; |
100 FWL_Error SetItemCheckState(IFWL_Widget* pWidget, | 86 FWL_Error SetItemCheckState(IFWL_Widget* pWidget, |
101 IFWL_ListItem* pItem, | 87 CFWL_ListItem* pItem, |
102 uint32_t dwCheckState) override; | 88 uint32_t dwCheckState) override; |
103 | 89 |
104 private: | 90 private: |
105 std::vector<std::unique_ptr<CFWL_ListItem>> m_ItemArray; | 91 std::vector<std::unique_ptr<CFWL_ListItem>> m_ItemArray; |
106 CFX_WideString m_wsData; | 92 CFX_WideString m_wsData; |
107 FX_FLOAT m_fItemHeight; | 93 FX_FLOAT m_fItemHeight; |
108 }; | 94 }; |
109 | 95 |
110 #endif // XFA_FWL_CORE_CFWL_LISTBOX_H_ | 96 #endif // XFA_FWL_CORE_CFWL_LISTBOX_H_ |
OLD | NEW |