summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/ifwl_listbox.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/fwl/core/ifwl_listbox.h')
-rw-r--r--xfa/fwl/core/ifwl_listbox.h72
1 files changed, 35 insertions, 37 deletions
diff --git a/xfa/fwl/core/ifwl_listbox.h b/xfa/fwl/core/ifwl_listbox.h
index ea1c54e3a3..7b23881c21 100644
--- a/xfa/fwl/core/ifwl_listbox.h
+++ b/xfa/fwl/core/ifwl_listbox.h
@@ -8,6 +8,7 @@
#define XFA_FWL_CORE_IFWL_LISTBOX_H_
#include <memory>
+#include <vector>
#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_listitem.h"
@@ -39,43 +40,6 @@ class CFX_DIBitmap;
class IFWL_ListBox : public IFWL_Widget {
public:
- class DataProvider : public IFWL_Widget::DataProvider {
- public:
- virtual int32_t CountItems(const IFWL_Widget* pWidget) const = 0;
- virtual CFWL_ListItem* GetItem(const IFWL_Widget* pWidget,
- int32_t nIndex) const = 0;
- virtual int32_t GetItemIndex(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem) = 0;
- virtual uint32_t GetItemStyles(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem) = 0;
- virtual void GetItemText(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- CFX_WideString& wsText) = 0;
- virtual void GetItemRect(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- CFX_RectF& rtItem) = 0;
- virtual void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem) = 0;
- virtual void SetItemStyles(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- uint32_t dwStyle) = 0;
- virtual void SetItemRect(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- const CFX_RectF& rtItem) = 0;
- virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem) = 0;
- virtual void GetItemCheckRect(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- CFX_RectF& rtCheck) = 0;
- virtual void SetItemCheckRect(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- const CFX_RectF& rtCheck) = 0;
- virtual uint32_t GetItemCheckState(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem) = 0;
- virtual void SetItemCheckState(IFWL_Widget* pWidget,
- CFWL_ListItem* pItem,
- uint32_t dwCheckState) = 0;
- };
-
IFWL_ListBox(const CFWL_App* app,
std::unique_ptr<CFWL_WidgetProperties> properties,
IFWL_Widget* pOuter);
@@ -94,6 +58,39 @@ class IFWL_ListBox : public IFWL_Widget {
void OnDrawWidget(CFX_Graphics* pGraphics,
const CFX_Matrix* pMatrix) override;
+ int32_t CountItems(const IFWL_Widget* pWidget) const;
+ CFWL_ListItem* GetItem(const IFWL_Widget* pWidget, int32_t nIndex) const;
+ int32_t GetItemIndex(IFWL_Widget* pWidget, CFWL_ListItem* pItem);
+ uint32_t GetItemStyles(IFWL_Widget* pWidget, CFWL_ListItem* pItem);
+ void GetItemText(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ CFX_WideString& wsText);
+ void GetItemRect(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ CFX_RectF& rtItem);
+ void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem);
+ void SetItemStyles(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ uint32_t dwStyle);
+ void SetItemRect(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ const CFX_RectF& rtItem);
+ CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget, CFWL_ListItem* pItem);
+ void GetItemCheckRect(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ CFX_RectF& rtCheck);
+ void SetItemCheckRect(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ const CFX_RectF& rtCheck);
+ uint32_t GetItemCheckState(IFWL_Widget* pWidget, CFWL_ListItem* pItem);
+ void SetItemCheckState(IFWL_Widget* pWidget,
+ CFWL_ListItem* pItem,
+ uint32_t dwCheckState);
+ CFWL_ListItem* AddString(const CFX_WideStringC& wsAdd, bool bSelect = false);
+ bool RemoveAt(int32_t iIndex);
+ bool DeleteString(CFWL_ListItem* pItem);
+ void DeleteAll();
+
int32_t CountSelItems();
CFWL_ListItem* GetSelItem(int32_t nIndexSel);
int32_t GetSelIndex(int32_t nIndex);
@@ -165,6 +162,7 @@ class IFWL_ListBox : public IFWL_Widget {
FX_FLOAT m_fScorllBarWidth;
bool m_bLButtonDown;
IFWL_ThemeProvider* m_pScrollBarTP;
+ std::vector<std::unique_ptr<CFWL_ListItem>> m_ItemArray;
};
#endif // XFA_FWL_CORE_IFWL_LISTBOX_H_