| Index: xfa/fwl/core/ifwl_listbox.h
|
| diff --git a/xfa/fwl/core/ifwl_listbox.h b/xfa/fwl/core/ifwl_listbox.h
|
| index 99006caa181329b3d454d84d3d7f7f88a03c01b1..943c064afee783cb06133b768e8cd3bb4473241e 100644
|
| --- a/xfa/fwl/core/ifwl_listbox.h
|
| +++ b/xfa/fwl/core/ifwl_listbox.h
|
| @@ -10,6 +10,7 @@
|
| #include <memory>
|
|
|
| #include "xfa/fwl/core/cfwl_event.h"
|
| +#include "xfa/fwl/core/cfwl_listitem.h"
|
| #include "xfa/fwl/core/cfwl_widgetproperties.h"
|
| #include "xfa/fwl/core/ifwl_dataprovider.h"
|
| #include "xfa/fwl/core/ifwl_edit.h"
|
| @@ -48,55 +49,53 @@ FWL_EVENT_DEF(CFWL_EvtLtbDrawItem,
|
| int32_t m_index;
|
| CFX_RectF m_rect;)
|
|
|
| -class IFWL_ListItem {};
|
| -
|
| class IFWL_ListBoxDP : public IFWL_DataProvider {
|
| public:
|
| virtual int32_t CountItems(const IFWL_Widget* pWidget) = 0;
|
| - virtual IFWL_ListItem* GetItem(const IFWL_Widget* pWidget,
|
| + virtual CFWL_ListItem* GetItem(const IFWL_Widget* pWidget,
|
| int32_t nIndex) = 0;
|
| - virtual int32_t GetItemIndex(IFWL_Widget* pWidget, IFWL_ListItem* pItem) = 0;
|
| + virtual int32_t GetItemIndex(IFWL_Widget* pWidget, CFWL_ListItem* pItem) = 0;
|
| virtual bool SetItemIndex(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| int32_t nIndex) = 0;
|
| virtual uint32_t GetItemStyles(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem) = 0;
|
| + CFWL_ListItem* pItem) = 0;
|
| virtual FWL_Error GetItemText(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| CFX_WideString& wsText) = 0;
|
| virtual FWL_Error GetItemRect(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| CFX_RectF& rtItem) = 0;
|
| - virtual void* GetItemData(IFWL_Widget* pWidget, IFWL_ListItem* pItem) = 0;
|
| + virtual void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem) = 0;
|
| virtual FWL_Error SetItemStyles(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| uint32_t dwStyle) = 0;
|
| virtual FWL_Error SetItemText(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| const FX_WCHAR* pszText) = 0;
|
| virtual FWL_Error SetItemRect(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| const CFX_RectF& rtItem) = 0;
|
| virtual FX_FLOAT GetItemHeight(IFWL_Widget* pWidget) = 0;
|
| virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem) = 0;
|
| + CFWL_ListItem* pItem) = 0;
|
| virtual FWL_Error GetItemCheckRect(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| CFX_RectF& rtCheck) = 0;
|
| virtual FWL_Error SetItemCheckRect(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| const CFX_RectF& rtCheck) = 0;
|
| virtual uint32_t GetItemCheckState(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem) = 0;
|
| + CFWL_ListItem* pItem) = 0;
|
| virtual FWL_Error SetItemCheckState(IFWL_Widget* pWidget,
|
| - IFWL_ListItem* pItem,
|
| + CFWL_ListItem* pItem,
|
| uint32_t dwCheckState) = 0;
|
| };
|
|
|
| class IFWL_ListBoxCompare {
|
| public:
|
| virtual ~IFWL_ListBoxCompare() {}
|
| - virtual int32_t Compare(IFWL_ListItem* hLeft, IFWL_ListItem* hRight) = 0;
|
| + virtual int32_t Compare(CFWL_ListItem* hLeft, CFWL_ListItem* hRight) = 0;
|
| };
|
|
|
| class IFWL_ListBox : public IFWL_Widget {
|
| @@ -120,29 +119,29 @@ class IFWL_ListBox : public IFWL_Widget {
|
| const CFX_Matrix* pMatrix) override;
|
|
|
| int32_t CountSelItems();
|
| - IFWL_ListItem* GetSelItem(int32_t nIndexSel);
|
| + CFWL_ListItem* GetSelItem(int32_t nIndexSel);
|
| int32_t GetSelIndex(int32_t nIndex);
|
| - FWL_Error SetSelItem(IFWL_ListItem* hItem, bool bSelect = true);
|
| - FWL_Error GetItemText(IFWL_ListItem* hItem, CFX_WideString& wsText);
|
| + FWL_Error SetSelItem(CFWL_ListItem* hItem, bool bSelect = true);
|
| + FWL_Error GetItemText(CFWL_ListItem* hItem, CFX_WideString& wsText);
|
| FWL_Error GetScrollPos(FX_FLOAT& fPos, bool bVert = true);
|
| FWL_Error* Sort(IFWL_ListBoxCompare* pCom);
|
|
|
| protected:
|
| friend class CFWL_ListBoxImpDelegate;
|
|
|
| - IFWL_ListItem* GetItem(IFWL_ListItem* hItem, uint32_t dwKeyCode);
|
| - void SetSelection(IFWL_ListItem* hStart, IFWL_ListItem* hEnd, bool bSelected);
|
| - void SetSelectionDirect(IFWL_ListItem* hItem, bool bSelect);
|
| - bool IsItemSelected(IFWL_ListItem* hItem);
|
| + CFWL_ListItem* GetItem(CFWL_ListItem* hItem, uint32_t dwKeyCode);
|
| + void SetSelection(CFWL_ListItem* hStart, CFWL_ListItem* hEnd, bool bSelected);
|
| + void SetSelectionDirect(CFWL_ListItem* hItem, bool bSelect);
|
| + bool IsItemSelected(CFWL_ListItem* hItem);
|
| void ClearSelection();
|
| void SelectAll();
|
| - IFWL_ListItem* GetFocusedItem();
|
| - void SetFocusItem(IFWL_ListItem* hItem);
|
| - IFWL_ListItem* GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy);
|
| - bool GetItemCheckRect(IFWL_ListItem* hItem, CFX_RectF& rtCheck);
|
| - bool SetItemChecked(IFWL_ListItem* hItem, bool bChecked);
|
| - bool GetItemChecked(IFWL_ListItem* hItem);
|
| - bool ScrollToVisible(IFWL_ListItem* hItem);
|
| + CFWL_ListItem* GetFocusedItem();
|
| + void SetFocusItem(CFWL_ListItem* hItem);
|
| + CFWL_ListItem* GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy);
|
| + bool GetItemCheckRect(CFWL_ListItem* hItem, CFX_RectF& rtCheck);
|
| + bool SetItemChecked(CFWL_ListItem* hItem, bool bChecked);
|
| + bool GetItemChecked(CFWL_ListItem* hItem);
|
| + bool ScrollToVisible(CFWL_ListItem* hItem);
|
| void DrawBkground(CFX_Graphics* pGraphics,
|
| IFWL_ThemeProvider* pTheme,
|
| const CFX_Matrix* pMatrix = nullptr);
|
| @@ -151,14 +150,14 @@ class IFWL_ListBox : public IFWL_Widget {
|
| const CFX_Matrix* pMatrix = nullptr);
|
| void DrawItem(CFX_Graphics* pGraphics,
|
| IFWL_ThemeProvider* pTheme,
|
| - IFWL_ListItem* hItem,
|
| + CFWL_ListItem* hItem,
|
| int32_t Index,
|
| const CFX_RectF& rtItem,
|
| const CFX_Matrix* pMatrix = nullptr);
|
| void DrawStatic(CFX_Graphics* pGraphics, IFWL_ThemeProvider* pTheme);
|
| CFX_SizeF CalcSize(bool bAutoSize = false);
|
| void GetItemSize(CFX_SizeF& size,
|
| - IFWL_ListItem* hItem,
|
| + CFWL_ListItem* hItem,
|
| FX_FLOAT fWidth,
|
| FX_FLOAT fHeight,
|
| bool bAutoSize = false);
|
| @@ -176,7 +175,7 @@ class IFWL_ListBox : public IFWL_Widget {
|
| std::unique_ptr<IFWL_ScrollBar> m_pVertScrollBar;
|
| uint32_t m_dwTTOStyles;
|
| int32_t m_iTTOAligns;
|
| - IFWL_ListItem* m_hAnchor;
|
| + CFWL_ListItem* m_hAnchor;
|
| FX_FLOAT m_fItemHeight;
|
| FX_FLOAT m_fScorllBarWidth;
|
| bool m_bLButtonDown;
|
| @@ -188,7 +187,7 @@ class IFWL_ListBox : public IFWL_Widget {
|
| void OnLButtonUp(CFWL_MsgMouse* pMsg);
|
| void OnMouseWheel(CFWL_MsgMouseWheel* pMsg);
|
| void OnKeyDown(CFWL_MsgKey* pMsg);
|
| - void OnVK(IFWL_ListItem* hItem, bool bShift, bool bCtrl);
|
| + void OnVK(CFWL_ListItem* hItem, bool bShift, bool bCtrl);
|
| bool OnScroll(IFWL_ScrollBar* pScrollBar, uint32_t dwCode, FX_FLOAT fPos);
|
| void DispatchSelChangedEv();
|
| };
|
|
|