Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Side by Side Diff: xfa/fwl/core/ifwl_listbox.h

Issue 2506253004: Split fwl/core class pt I. (Closed)
Patch Set: Rebase to master Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fwl/core/ifwl_form.cpp ('k') | xfa/fwl/core/ifwl_listbox.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_CORE_IFWL_LISTBOX_H_ 7 #ifndef XFA_FWL_CORE_IFWL_LISTBOX_H_
8 #define XFA_FWL_CORE_IFWL_LISTBOX_H_ 8 #define XFA_FWL_CORE_IFWL_LISTBOX_H_
9 9
10 #include <memory> 10 #include <memory>
11 11
12 #include "xfa/fwl/core/cfwl_event.h" 12 #include "xfa/fwl/core/cfwl_event.h"
13 #include "xfa/fwl/core/cfwl_listitem.h" 13 #include "xfa/fwl/core/cfwl_listitem.h"
14 #include "xfa/fwl/core/cfwl_widgetproperties.h" 14 #include "xfa/fwl/core/cfwl_widgetproperties.h"
15 #include "xfa/fwl/core/ifwl_dataprovider.h"
16 #include "xfa/fwl/core/ifwl_edit.h" 15 #include "xfa/fwl/core/ifwl_edit.h"
17 #include "xfa/fwl/core/ifwl_listbox.h" 16 #include "xfa/fwl/core/ifwl_listbox.h"
18 #include "xfa/fwl/core/ifwl_widget.h" 17 #include "xfa/fwl/core/ifwl_widget.h"
19 18
20 #define FWL_STYLEEXT_LTB_MultiSelection (1L << 0) 19 #define FWL_STYLEEXT_LTB_MultiSelection (1L << 0)
21 #define FWL_STYLEEXT_LTB_ShowScrollBarAlaways (1L << 2) 20 #define FWL_STYLEEXT_LTB_ShowScrollBarAlaways (1L << 2)
22 #define FWL_STYLEEXT_LTB_MultiColumn (1L << 3) 21 #define FWL_STYLEEXT_LTB_MultiColumn (1L << 3)
23 #define FWL_STYLEEXT_LTB_LeftAlign (0L << 4) 22 #define FWL_STYLEEXT_LTB_LeftAlign (0L << 4)
24 #define FWL_STYLEEXT_LTB_CenterAlign (1L << 4) 23 #define FWL_STYLEEXT_LTB_CenterAlign (1L << 4)
25 #define FWL_STYLEEXT_LTB_RightAlign (2L << 4) 24 #define FWL_STYLEEXT_LTB_RightAlign (2L << 4)
26 #define FWL_STYLEEXT_LTB_MultiLine (1L << 6) 25 #define FWL_STYLEEXT_LTB_MultiLine (1L << 6)
27 #define FWL_STYLEEXT_LTB_OwnerDraw (1L << 7) 26 #define FWL_STYLEEXT_LTB_OwnerDraw (1L << 7)
28 #define FWL_STYLEEXT_LTB_Icon (1L << 8) 27 #define FWL_STYLEEXT_LTB_Icon (1L << 8)
29 #define FWL_STYLEEXT_LTB_Check (1L << 9) 28 #define FWL_STYLEEXT_LTB_Check (1L << 9)
30 #define FWL_STYLEEXT_LTB_AlignMask (3L << 4) 29 #define FWL_STYLEEXT_LTB_AlignMask (3L << 4)
31 #define FWL_STYLEEXT_LTB_ShowScrollBarFocus (1L << 10) 30 #define FWL_STYLEEXT_LTB_ShowScrollBarFocus (1L << 10)
32 #define FWL_ITEMSTATE_LTB_Selected (1L << 0) 31 #define FWL_ITEMSTATE_LTB_Selected (1L << 0)
33 #define FWL_ITEMSTATE_LTB_Focused (1L << 1) 32 #define FWL_ITEMSTATE_LTB_Focused (1L << 1)
34 #define FWL_ITEMSTATE_LTB_Checked (1L << 2) 33 #define FWL_ITEMSTATE_LTB_Checked (1L << 2)
35 34
36 class CFWL_MsgKillFocus; 35 class CFWL_MsgKillFocus;
37 class CFWL_MsgMouse; 36 class CFWL_MsgMouse;
38 class CFWL_MsgMouseWheel; 37 class CFWL_MsgMouseWheel;
39 class CFX_DIBitmap; 38 class CFX_DIBitmap;
40 39
41 class IFWL_ListBoxDP : public IFWL_DataProvider {
42 public:
43 virtual int32_t CountItems(const IFWL_Widget* pWidget) const = 0;
44 virtual CFWL_ListItem* GetItem(const IFWL_Widget* pWidget,
45 int32_t nIndex) const = 0;
46 virtual int32_t GetItemIndex(IFWL_Widget* pWidget, CFWL_ListItem* pItem) = 0;
47 virtual uint32_t GetItemStyles(IFWL_Widget* pWidget,
48 CFWL_ListItem* pItem) = 0;
49 virtual void GetItemText(IFWL_Widget* pWidget,
50 CFWL_ListItem* pItem,
51 CFX_WideString& wsText) = 0;
52 virtual void GetItemRect(IFWL_Widget* pWidget,
53 CFWL_ListItem* pItem,
54 CFX_RectF& rtItem) = 0;
55 virtual void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem) = 0;
56 virtual void SetItemStyles(IFWL_Widget* pWidget,
57 CFWL_ListItem* pItem,
58 uint32_t dwStyle) = 0;
59 virtual void SetItemRect(IFWL_Widget* pWidget,
60 CFWL_ListItem* pItem,
61 const CFX_RectF& rtItem) = 0;
62 virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget,
63 CFWL_ListItem* pItem) = 0;
64 virtual void GetItemCheckRect(IFWL_Widget* pWidget,
65 CFWL_ListItem* pItem,
66 CFX_RectF& rtCheck) = 0;
67 virtual void SetItemCheckRect(IFWL_Widget* pWidget,
68 CFWL_ListItem* pItem,
69 const CFX_RectF& rtCheck) = 0;
70 virtual uint32_t GetItemCheckState(IFWL_Widget* pWidget,
71 CFWL_ListItem* pItem) = 0;
72 virtual void SetItemCheckState(IFWL_Widget* pWidget,
73 CFWL_ListItem* pItem,
74 uint32_t dwCheckState) = 0;
75 };
76
77 class IFWL_ListBox : public IFWL_Widget { 40 class IFWL_ListBox : public IFWL_Widget {
78 public: 41 public:
42 class DataProvider : public IFWL_Widget::DataProvider {
43 public:
44 virtual int32_t CountItems(const IFWL_Widget* pWidget) const = 0;
45 virtual CFWL_ListItem* GetItem(const IFWL_Widget* pWidget,
46 int32_t nIndex) const = 0;
47 virtual int32_t GetItemIndex(IFWL_Widget* pWidget,
48 CFWL_ListItem* pItem) = 0;
49 virtual uint32_t GetItemStyles(IFWL_Widget* pWidget,
50 CFWL_ListItem* pItem) = 0;
51 virtual void GetItemText(IFWL_Widget* pWidget,
52 CFWL_ListItem* pItem,
53 CFX_WideString& wsText) = 0;
54 virtual void GetItemRect(IFWL_Widget* pWidget,
55 CFWL_ListItem* pItem,
56 CFX_RectF& rtItem) = 0;
57 virtual void* GetItemData(IFWL_Widget* pWidget, CFWL_ListItem* pItem) = 0;
58 virtual void SetItemStyles(IFWL_Widget* pWidget,
59 CFWL_ListItem* pItem,
60 uint32_t dwStyle) = 0;
61 virtual void SetItemRect(IFWL_Widget* pWidget,
62 CFWL_ListItem* pItem,
63 const CFX_RectF& rtItem) = 0;
64 virtual CFX_DIBitmap* GetItemIcon(IFWL_Widget* pWidget,
65 CFWL_ListItem* pItem) = 0;
66 virtual void GetItemCheckRect(IFWL_Widget* pWidget,
67 CFWL_ListItem* pItem,
68 CFX_RectF& rtCheck) = 0;
69 virtual void SetItemCheckRect(IFWL_Widget* pWidget,
70 CFWL_ListItem* pItem,
71 const CFX_RectF& rtCheck) = 0;
72 virtual uint32_t GetItemCheckState(IFWL_Widget* pWidget,
73 CFWL_ListItem* pItem) = 0;
74 virtual void SetItemCheckState(IFWL_Widget* pWidget,
75 CFWL_ListItem* pItem,
76 uint32_t dwCheckState) = 0;
77 };
78
79 IFWL_ListBox(const IFWL_App* app, 79 IFWL_ListBox(const IFWL_App* app,
80 std::unique_ptr<CFWL_WidgetProperties> properties, 80 std::unique_ptr<CFWL_WidgetProperties> properties,
81 IFWL_Widget* pOuter); 81 IFWL_Widget* pOuter);
82 ~IFWL_ListBox() override; 82 ~IFWL_ListBox() override;
83 83
84 // IFWL_Widget 84 // IFWL_Widget
85 FWL_Type GetClassID() const override; 85 FWL_Type GetClassID() const override;
86 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override; 86 void GetWidgetRect(CFX_RectF& rect, bool bAutoSize = false) override;
87 void Update() override; 87 void Update() override;
88 FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override; 88 FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override;
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 uint32_t m_dwTTOStyles; 161 uint32_t m_dwTTOStyles;
162 int32_t m_iTTOAligns; 162 int32_t m_iTTOAligns;
163 CFWL_ListItem* m_hAnchor; 163 CFWL_ListItem* m_hAnchor;
164 FX_FLOAT m_fItemHeight; 164 FX_FLOAT m_fItemHeight;
165 FX_FLOAT m_fScorllBarWidth; 165 FX_FLOAT m_fScorllBarWidth;
166 bool m_bLButtonDown; 166 bool m_bLButtonDown;
167 IFWL_ThemeProvider* m_pScrollBarTP; 167 IFWL_ThemeProvider* m_pScrollBarTP;
168 }; 168 };
169 169
170 #endif // XFA_FWL_CORE_IFWL_LISTBOX_H_ 170 #endif // XFA_FWL_CORE_IFWL_LISTBOX_H_
OLDNEW
« no previous file with comments | « xfa/fwl/core/ifwl_form.cpp ('k') | xfa/fwl/core/ifwl_listbox.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698