| 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 |