Home | History | Annotate | Download | only in page
      1 // Copyright 2016 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 CORE_FPDFAPI_PAGE_CPDF_FORM_H_
      8 #define CORE_FPDFAPI_PAGE_CPDF_FORM_H_
      9 
     10 #include <memory>
     11 #include <set>
     12 
     13 #include "core/fpdfapi/page/cpdf_pageobjectholder.h"
     14 
     15 class CPDF_Document;
     16 class CPDF_Dictionary;
     17 class CPDF_Stream;
     18 class CPDF_AllStates;
     19 class CFX_Matrix;
     20 class CPDF_Type3Char;
     21 
     22 class CPDF_Form : public CPDF_PageObjectHolder {
     23  public:
     24   CPDF_Form(CPDF_Document* pDocument,
     25             CPDF_Dictionary* pPageResources,
     26             CPDF_Stream* pFormStream,
     27             CPDF_Dictionary* pParentResources = nullptr);
     28   ~CPDF_Form() override;
     29 
     30   void ParseContent();
     31   void ParseContentWithParams(CPDF_AllStates* pGraphicStates,
     32                               const CFX_Matrix* pParentMatrix,
     33                               CPDF_Type3Char* pType3Char,
     34                               std::set<const uint8_t*>* parsedSet);
     35 
     36  private:
     37   void StartParse(CPDF_AllStates* pGraphicStates,
     38                   const CFX_Matrix* pParentMatrix,
     39                   CPDF_Type3Char* pType3Char,
     40                   std::set<const uint8_t*>* parsedSet);
     41 
     42   std::unique_ptr<std::set<const uint8_t*>> m_ParsedSet;
     43 };
     44 
     45 #endif  // CORE_FPDFAPI_PAGE_CPDF_FORM_H_
     46