1 // Copyright 2014 PDFium Authors. All rights reserved.
\r
2 // Use of this source code is governed by a BSD-style license that can be
\r
3 // found in the LICENSE file.
\r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
\r
7 #ifndef _FWL_LISTBOX_LIGHT_H
\r
8 #define _FWL_LISTBOX_LIGHT_H
\r
10 class CFWL_WidgetProperties;
\r
11 class IFWL_ListBoxDP;
\r
13 class CFWL_ListItem;
\r
14 class CFWL_ListBox : public CFWL_Widget
\r
17 static CFWL_ListBox* Create();
\r
18 FWL_ERR Initialize(const CFWL_WidgetProperties *pProperties = NULL);
\r
19 FWL_ERR AddDIBitmap(CFX_DIBitmap * pDIB, FWL_HLISTITEM hItem);
\r
20 FWL_HLISTITEM AddString(FX_WSTR wsAdd, FX_BOOL bSelect = FALSE);
\r
21 FX_BOOL DeleteString(FWL_HLISTITEM hItem);
\r
22 FX_BOOL DeleteAll();
\r
23 FX_INT32 CountSelItems();
\r
24 FWL_HLISTITEM GetSelItem(FX_INT32 nIndexSel);
\r
25 FX_INT32 GetSelIndex(FX_INT32 nIndex);
\r
26 FWL_ERR SetSelItem(FWL_HLISTITEM hItem, FX_BOOL bSelect = TRUE);
\r
27 FWL_ERR GetItemText(FWL_HLISTITEM hItem, CFX_WideString &wsText);
\r
28 FWL_ERR GetScrollPos(FX_FLOAT &fPos, FX_BOOL bVert = TRUE);
\r
29 FWL_ERR SetItemHeight(FX_FLOAT fItemHeight);
\r
30 FWL_HLISTITEM GetFocusItem();
\r
31 FWL_ERR SetFocusItem(FWL_HLISTITEM hItem);
\r
32 FWL_ERR* Sort(IFWL_ListBoxCompare *pCom);
\r
33 FX_INT32 CountItems();
\r
34 FWL_HLISTITEM GetItem(FX_INT32 nIndex);
\r
35 FWL_ERR SetItemString(FWL_HLISTITEM hItem, FX_WSTR wsText);
\r
36 FWL_ERR GetItemString(FWL_HLISTITEM hItem, CFX_WideString &wsText);
\r
37 FWL_ERR SetItemData(FWL_HLISTITEM hItem, FX_LPVOID pData);
\r
38 FX_LPVOID GetItemData(FWL_HLISTITEM hItem);
\r
39 FWL_HLISTITEM GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy);
\r
40 FX_DWORD GetItemStates(FWL_HLISTITEM hItem);
\r
42 virtual ~CFWL_ListBox();
\r
44 class CFWL_ListBoxDP : public IFWL_ListBoxDP, public CFX_Object
\r
49 virtual FWL_ERR GetCaption(IFWL_Widget *pWidget, CFX_WideString &wsCaption);
\r
51 virtual FX_INT32 CountItems(IFWL_Widget *pWidget);
\r
52 virtual FWL_HLISTITEM GetItem(IFWL_Widget *pWidget, FX_INT32 nIndex);
\r
53 virtual FX_INT32 GetItemIndex(IFWL_Widget *pWidget, FWL_HLISTITEM hItem);
\r
54 virtual FX_BOOL SetItemIndex(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_INT32 nIndex);
\r
56 virtual FX_DWORD GetItemStyles(IFWL_Widget *pWidget, FWL_HLISTITEM hItem);
\r
57 virtual FWL_ERR GetItemText(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_WideString &wsText);
\r
58 virtual FWL_ERR GetItemRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_RectF &rtItem);
\r
59 virtual FX_LPVOID GetItemData(IFWL_Widget *pWidget, FWL_HLISTITEM hItem);
\r
61 virtual FWL_ERR SetItemStyles(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_DWORD dwStyle);
\r
62 virtual FWL_ERR SetItemText(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_LPCWSTR pszText);
\r
63 virtual FWL_ERR SetItemRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, const CFX_RectF &rtItem);
\r
64 virtual FX_FLOAT GetItemHeight(IFWL_Widget *pWidget);
\r
65 virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget *pWidget, FWL_HLISTITEM hItem);
\r
66 virtual FWL_ERR GetItemCheckRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, CFX_RectF& rtCheck);
\r
67 virtual FWL_ERR SetItemCheckRect(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, const CFX_RectF& rtCheck);
\r
68 virtual FX_DWORD GetItemCheckState(IFWL_Widget *pWidget, FWL_HLISTITEM hItem);
\r
69 virtual FWL_ERR SetItemCheckState(IFWL_Widget *pWidget, FWL_HLISTITEM hItem, FX_DWORD dwCheckState);
\r
71 CFX_PtrArray m_arrItem;
\r
72 CFX_WideString m_wsData;
\r
73 FX_FLOAT m_fItemHeight;
\r
75 CFWL_ListBoxDP m_ListBoxDP;
\r
77 class CFWL_ListItem : public CFX_Object
\r
88 m_rtCheckBox.Reset();
\r
91 FX_DWORD m_dwStates;
\r
92 CFX_WideString m_wsText;
\r
93 CFX_DIBitmap *m_pDIB;
\r
95 FX_DWORD m_dwCheckState;
\r
96 CFX_RectF m_rtCheckBox;
\r