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