OLD | NEW |
| (Empty) |
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 XFA_INCLUDE_FXFA_XFA_FFPAGEVIEW_H_ | |
8 #define XFA_INCLUDE_FXFA_XFA_FFPAGEVIEW_H_ | |
9 | |
10 #include "xfa/fxfa/parser/xfa_doclayout.h" | |
11 | |
12 class CXFA_FFWidget; | |
13 class CXFA_FFDocView; | |
14 class CXFA_FFPageView : public CXFA_ContainerLayoutItem { | |
15 public: | |
16 CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea); | |
17 ~CXFA_FFPageView() override; | |
18 | |
19 CXFA_FFDocView* GetDocView(); | |
20 int32_t GetPageViewIndex(); | |
21 void GetPageViewRect(CFX_RectF& rtPage); | |
22 void GetDisplayMatrix(CFX_Matrix& mt, | |
23 const CFX_Rect& rtDisp, | |
24 int32_t iRotate); | |
25 int32_t LoadPageView(IFX_Pause* pPause = NULL); | |
26 void UnloadPageView(); | |
27 CXFA_FFWidget* GetWidgetByPos(FX_FLOAT fx, FX_FLOAT fy); | |
28 IXFA_WidgetIterator* CreateWidgetIterator( | |
29 uint32_t dwTraverseWay = XFA_TRAVERSEWAY_Form, | |
30 uint32_t dwWidgetFilter = XFA_WIDGETFILTER_Visible | | |
31 XFA_WIDGETFILTER_Viewable | | |
32 XFA_WIDGETFILTER_AllType); | |
33 | |
34 FX_BOOL IsPageViewLoaded(); | |
35 | |
36 protected: | |
37 CXFA_FFDocView* m_pDocView; | |
38 FX_BOOL m_bLoaded; | |
39 }; | |
40 typedef CXFA_NodeIteratorTemplate<CXFA_LayoutItem, | |
41 CXFA_TraverseStrategy_LayoutItem> | |
42 CXFA_LayoutItemIterator; | |
43 class CXFA_FFPageWidgetIterator : public IXFA_WidgetIterator { | |
44 public: | |
45 CXFA_FFPageWidgetIterator(CXFA_FFPageView* pPageView, uint32_t dwFilter); | |
46 virtual ~CXFA_FFPageWidgetIterator(); | |
47 | |
48 void Release() override { delete this; } | |
49 | |
50 void Reset() override; | |
51 CXFA_FFWidget* MoveToFirst() override; | |
52 CXFA_FFWidget* MoveToLast() override; | |
53 CXFA_FFWidget* MoveToNext() override; | |
54 CXFA_FFWidget* MoveToPrevious() override; | |
55 CXFA_FFWidget* GetCurrentWidget() override; | |
56 FX_BOOL SetCurrentWidget(CXFA_FFWidget* hWidget) override; | |
57 | |
58 protected: | |
59 CXFA_FFWidget* GetWidget(CXFA_LayoutItem* pLayoutItem); | |
60 | |
61 CXFA_FFPageView* m_pPageView; | |
62 CXFA_FFWidget* m_hCurWidget; | |
63 uint32_t m_dwFilter; | |
64 FX_BOOL m_bIgnorerelevant; | |
65 CXFA_LayoutItemIterator m_sIterator; | |
66 }; | |
67 typedef CFX_ArrayTemplate<CXFA_FFWidget*> CXFA_WidgetArray; | |
68 class CXFA_TabParam { | |
69 public: | |
70 CXFA_TabParam() : m_pWidget(NULL) {} | |
71 ~CXFA_TabParam() {} | |
72 | |
73 CXFA_FFWidget* m_pWidget; | |
74 CXFA_WidgetArray m_Children; | |
75 }; | |
76 class CXFA_FFTabOrderPageWidgetIterator : public IXFA_WidgetIterator { | |
77 public: | |
78 CXFA_FFTabOrderPageWidgetIterator(CXFA_FFPageView* pPageView, | |
79 uint32_t dwFilter); | |
80 virtual ~CXFA_FFTabOrderPageWidgetIterator(); | |
81 | |
82 void Release() override; | |
83 | |
84 void Reset() override; | |
85 CXFA_FFWidget* MoveToFirst() override; | |
86 CXFA_FFWidget* MoveToLast() override; | |
87 CXFA_FFWidget* MoveToNext() override; | |
88 CXFA_FFWidget* MoveToPrevious() override; | |
89 CXFA_FFWidget* GetCurrentWidget() override; | |
90 FX_BOOL SetCurrentWidget(CXFA_FFWidget* hWidget) override; | |
91 | |
92 protected: | |
93 CXFA_FFWidget* GetTraverseWidget(CXFA_FFWidget* pWidget); | |
94 CXFA_FFWidget* FindWidgetByName(const CFX_WideStringC& wsWidgetName, | |
95 CXFA_FFWidget* pRefWidget); | |
96 void CreateTabOrderWidgetArray(); | |
97 void CreateSpaceOrderWidgetArray(CXFA_WidgetArray& WidgetArray); | |
98 CXFA_FFWidget* GetWidget(CXFA_LayoutItem* pLayoutItem); | |
99 void OrderContainer(CXFA_LayoutItemIterator* sIterator, | |
100 CXFA_LayoutItem* pContainerItem, | |
101 CXFA_TabParam* pContainer, | |
102 FX_BOOL& bCurrentItem, | |
103 FX_BOOL& bContentArea, | |
104 FX_BOOL bMarsterPage = FALSE); | |
105 | |
106 CXFA_WidgetArray m_TabOrderWidgetArray; | |
107 CXFA_FFPageView* m_pPageView; | |
108 uint32_t m_dwFilter; | |
109 int32_t m_iCurWidget; | |
110 FX_BOOL m_bIgnorerelevant; | |
111 }; | |
112 | |
113 #endif // XFA_INCLUDE_FXFA_XFA_FFPAGEVIEW_H_ | |
OLD | NEW |