xfa_rendercontext.h revision 4d3acf4ec42bf6e838f9060103aff98fbf170794
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_FXFA_XFA_RENDERCONTEXT_H_
8#define XFA_FXFA_XFA_RENDERCONTEXT_H_
9
10#include <memory>
11
12#include "xfa/fxfa/fxfa.h"
13
14class CXFA_RenderOptions {
15 public:
16  CXFA_RenderOptions() : m_bPrint(false), m_bHighlight(true) {}
17
18  bool m_bPrint;
19  bool m_bHighlight;
20};
21
22class CXFA_RenderContext {
23 public:
24  CXFA_RenderContext();
25  ~CXFA_RenderContext();
26
27  int32_t StartRender(CXFA_FFPageView* pPageView,
28                      CFX_Graphics* pGS,
29                      const CFX_Matrix& matrix,
30                      const CXFA_RenderOptions& options);
31  int32_t DoRender(IFX_Pause* pPause = nullptr);
32  void StopRender();
33
34 protected:
35  std::unique_ptr<IXFA_WidgetIterator> m_pWidgetIterator;
36  CXFA_FFWidget* m_pWidget;
37  CXFA_FFPageView* m_pPageView;
38  CFX_Graphics* m_pGS;
39  CFX_Matrix m_matrix;
40  CXFA_RenderOptions m_options;
41  uint32_t m_dwStatus;
42  CFX_RectF m_rtClipRect;
43};
44
45#endif  // XFA_FXFA_XFA_RENDERCONTEXT_H_
46