Attempt to fix some -Woverloaded-virtual warnings.
[pdfium.git] / fpdfsdk / include / pdfwindow / PWL_IconList.h
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4  
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7 #ifndef _PWL_IconList_H_
8 #define _PWL_IconList_H_
9
10 class IPWL_IconList_Notify;
11 class CPWL_IconList_Item;
12 class CPWL_IconList_Content;
13 class CPWL_IconList;
14 class CPWL_Label;
15
16 class IPWL_IconList_Notify
17 {
18 public:
19         virtual void                                            OnNoteListSelChanged(FX_INT32 nItemIndex) = 0;
20 };
21
22 class CPWL_IconList_Item : public CPWL_Wnd
23 {
24 public:
25         CPWL_IconList_Item();
26         virtual ~CPWL_IconList_Item();
27
28         virtual CFX_ByteString                          GetClassName() const;
29         virtual void                                            CreateChildWnd(const PWL_CREATEPARAM & cp);
30         virtual void                                            RePosChildWnd();
31
32         void                                                            SetSelect(FX_BOOL bSelected);
33         FX_BOOL                                                         IsSelected() const;
34         void                                                            SetData(void* pData);
35         void                                                            SetIcon(FX_INT32 nIconIndex);
36         void                                                            SetText(const CFX_WideString& str);
37         void                                                            SetIconFillColor(const CPWL_Color& color);
38         CFX_WideString                                          GetText() const;
39
40 protected:
41         virtual FX_FLOAT                                        GetItemHeight(FX_FLOAT fLimitWidth);
42         virtual void                                            DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix* pUser2Device);
43
44         virtual void                                            OnEnabled();
45         virtual void                                            OnDisabled();
46
47 private:
48         FX_INT32                                                        m_nIconIndex;
49         void*                                                           m_pData;
50         FX_BOOL                                                         m_bSelected;
51         CPWL_Label*                                                     m_pText;
52         CPWL_Color                                                      m_crIcon;
53 };
54
55 class CPWL_IconList_Content : public CPWL_ListCtrl
56 {
57 public:
58         CPWL_IconList_Content(FX_INT32 nListCount);
59         virtual ~CPWL_IconList_Content();
60
61         void                                                            SetSelect(FX_INT32 nIndex);
62         FX_INT32                                                        GetSelect() const;
63         void                                                            SetNotify(IPWL_IconList_Notify* pNotify);
64         void                                                            EnableNotify(FX_BOOL bNotify);
65         void                                                            SetListData(FX_INT32 nItemIndex, void* pData);
66         void                                                            SetListIcon(FX_INT32 nItemIndex, FX_INT32 nIconIndex);
67         void                                                            SetListString(FX_INT32 nItemIndex, const CFX_WideString& str);
68         void                                                            SetIconFillColor(const CPWL_Color& color);
69         CFX_WideString                                          GetListString(FX_INT32 nItemIndex) const;
70         IPWL_IconList_Notify*                           GetNotify() const;
71         void                                                            ScrollToItem(FX_INT32 nItemIndex);
72
73 protected:
74         virtual void                                            CreateChildWnd(const PWL_CREATEPARAM & cp);
75         virtual FX_BOOL                                         OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag);
76         virtual FX_BOOL                                         OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag);
77         virtual FX_BOOL                                         OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag);
78         virtual FX_BOOL                                         OnKeyDown(FX_WORD nChar, FX_DWORD nFlag);
79
80 private:
81         CPWL_IconList_Item*                                     GetListItem(FX_INT32 nItemIndex) const;
82         void                                                            SelectItem(FX_INT32 nItemIndex, FX_BOOL bSelect);
83         FX_INT32                                                        FindItemIndex(const CPDF_Point& point);
84         
85         FX_BOOL                                                         m_nSelectIndex;
86         IPWL_IconList_Notify*                           m_pNotify;
87         FX_BOOL                                                         m_bEnableNotify;
88         FX_BOOL                                                         m_bMouseDown;
89         FX_INT32                                                        m_nListCount;
90 };
91
92 class PWL_CLASS CPWL_IconList : public CPWL_Wnd
93 {
94 public:
95         CPWL_IconList(FX_INT32 nListCount);
96         virtual ~CPWL_IconList();
97
98         virtual FX_BOOL                                         OnMouseWheel(short zDelta, const CPDF_Point & point, FX_DWORD nFlag);
99
100         void                                                            SetSelect(FX_INT32 nIndex);
101         void                                                            SetTopItem(FX_INT32 nIndex);
102         FX_INT32                                                        GetSelect() const;
103         void                                                            SetNotify(IPWL_IconList_Notify* pNotify);
104         void                                                            EnableNotify(FX_BOOL bNotify);
105         void                                                            SetListData(FX_INT32 nItemIndex, void* pData);
106         void                                                            SetListIcon(FX_INT32 nItemIndex, FX_INT32 nIconIndex);
107         void                                                            SetListString(FX_INT32 nItemIndex, const CFX_WideString& str);
108         void                                                            SetIconFillColor(const CPWL_Color& color);
109         CFX_WideString                                          GetListString(FX_INT32 nItemIndex) const;
110
111 protected:
112         virtual void                                            OnCreated();
113         virtual void                                            RePosChildWnd();
114         virtual void                                            CreateChildWnd(const PWL_CREATEPARAM & cp);
115         
116         virtual void                                            OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, FX_INTPTR wParam = 0, FX_INTPTR lParam = 0);
117
118 private:
119         CPWL_IconList_Content*                          m_pListContent;
120         FX_INT32                                                        m_nListCount;
121 };
122  
123 #endif //_PWL_IconList_H_
124
125