Home | History | Annotate | Download | only in fxfa
      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 
     14 class CXFA_RenderOptions {
     15  public:
     16   CXFA_RenderOptions() : m_bPrint(false), m_bHighlight(true) {}
     17 
     18   bool m_bPrint;
     19   bool m_bHighlight;
     20 };
     21 
     22 class 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