diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-12 14:07:37 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 10:29:26 +0000 |
commit | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch) | |
tree | 25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/third_party/pdfium/xfa/fxfa/cxfa_ffpageview.h | |
parent | bb09965444b5bb20b096a291445170876225268d (diff) | |
download | qtwebengine-chromium-ec02ee4181c49b61fce1c8fb99292dbb8139cc90.tar.gz |
BASELINE: Update Chromium to 59.0.3071.134
Change-Id: Id02ef6fb2204c5fd21668a1c3e6911c83b17585a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/third_party/pdfium/xfa/fxfa/cxfa_ffpageview.h')
-rw-r--r-- | chromium/third_party/pdfium/xfa/fxfa/cxfa_ffpageview.h | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/chromium/third_party/pdfium/xfa/fxfa/cxfa_ffpageview.h b/chromium/third_party/pdfium/xfa/fxfa/cxfa_ffpageview.h new file mode 100644 index 00000000000..df4fc6d2c17 --- /dev/null +++ b/chromium/third_party/pdfium/xfa/fxfa/cxfa_ffpageview.h @@ -0,0 +1,114 @@ +// Copyrig 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#ifndef XFA_FXFA_CXFA_FFPAGEVIEW_H_ +#define XFA_FXFA_CXFA_FFPAGEVIEW_H_ + +#include <vector> + +#include "xfa/fxfa/parser/cxfa_containerlayoutitem.h" +#include "xfa/fxfa/parser/cxfa_contentlayoutitem.h" +#include "xfa/fxfa/parser/cxfa_traversestrategy_layoutitem.h" +#include "xfa/fxfa/parser/xfa_utils.h" + +class CXFA_FFWidget; +class CXFA_FFDocView; + +class CXFA_FFPageView : public CXFA_ContainerLayoutItem { + public: + CXFA_FFPageView(CXFA_FFDocView* pDocView, CXFA_Node* pPageArea); + ~CXFA_FFPageView() override; + + CXFA_FFDocView* GetDocView() const; + CFX_RectF GetPageViewRect() const; + CFX_Matrix GetDisplayMatrix(const CFX_Rect& rtDisp, int32_t iRotate) const; + IXFA_WidgetIterator* CreateWidgetIterator( + uint32_t dwTraverseWay = XFA_TRAVERSEWAY_Form, + uint32_t dwWidgetFilter = XFA_WidgetStatus_Visible | + XFA_WidgetStatus_Viewable); + + protected: + CXFA_FFDocView* const m_pDocView; +}; + +typedef CXFA_NodeIteratorTemplate<CXFA_LayoutItem, + CXFA_TraverseStrategy_LayoutItem> + CXFA_LayoutItemIterator; + +class CXFA_FFPageWidgetIterator : public IXFA_WidgetIterator { + public: + CXFA_FFPageWidgetIterator(CXFA_FFPageView* pPageView, uint32_t dwFilter); + ~CXFA_FFPageWidgetIterator() override; + + void Reset() override; + CXFA_FFWidget* MoveToFirst() override; + CXFA_FFWidget* MoveToLast() override; + CXFA_FFWidget* MoveToNext() override; + CXFA_FFWidget* MoveToPrevious() override; + CXFA_FFWidget* GetCurrentWidget() override; + bool SetCurrentWidget(CXFA_FFWidget* hWidget) override; + + protected: + CXFA_FFWidget* GetWidget(CXFA_LayoutItem* pLayoutItem); + + CXFA_FFPageView* m_pPageView; + CXFA_FFWidget* m_hCurWidget; + uint32_t m_dwFilter; + bool m_bIgnorerelevant; + CXFA_LayoutItemIterator m_sIterator; +}; + +class CXFA_TabParam { + public: + explicit CXFA_TabParam(CXFA_FFWidget* pWidget); + ~CXFA_TabParam(); + + void AppendTabParam(CXFA_TabParam* pParam); + void ClearChildren(); + CXFA_FFWidget* GetWidget() { return m_pWidget; } + const std::vector<CXFA_FFWidget*>& GetChildren() const { return m_Children; } + + private: + CXFA_FFWidget* const m_pWidget; + std::vector<CXFA_FFWidget*> m_Children; +}; + +class CXFA_FFTabOrderPageWidgetIterator : public IXFA_WidgetIterator { + public: + CXFA_FFTabOrderPageWidgetIterator(CXFA_FFPageView* pPageView, + uint32_t dwFilter); + ~CXFA_FFTabOrderPageWidgetIterator() override; + + void Reset() override; + CXFA_FFWidget* MoveToFirst() override; + CXFA_FFWidget* MoveToLast() override; + CXFA_FFWidget* MoveToNext() override; + CXFA_FFWidget* MoveToPrevious() override; + CXFA_FFWidget* GetCurrentWidget() override; + bool SetCurrentWidget(CXFA_FFWidget* hWidget) override; + + protected: + CXFA_FFWidget* GetTraverseWidget(CXFA_FFWidget* pWidget); + CXFA_FFWidget* FindWidgetByName(const CFX_WideString& wsWidgetName, + CXFA_FFWidget* pRefWidget); + void CreateTabOrderWidgetArray(); + void CreateSpaceOrderWidgetArray(std::vector<CXFA_FFWidget*>* WidgetArray); + CXFA_FFWidget* GetWidget(CXFA_LayoutItem* pLayoutItem); + void OrderContainer(CXFA_LayoutItemIterator* sIterator, + CXFA_LayoutItem* pContainerItem, + CXFA_TabParam* pContainer, + bool& bCurrentItem, + bool& bContentArea, + bool bMarsterPage = false); + + std::vector<CXFA_FFWidget*> m_TabOrderWidgetArray; + CXFA_FFPageView* m_pPageView; + uint32_t m_dwFilter; + int32_t m_iCurWidget; + bool m_bIgnorerelevant; +}; + +#endif // XFA_FXFA_CXFA_FFPAGEVIEW_H_ |