1e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// found in the LICENSE file. 4ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 5e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 7e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#ifndef CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_ 8e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#define CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_ 9e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 10ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include <map> 11ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include <memory> 12ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include <vector> 13ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 14ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "core/include/fpdfapi/fpdf_parser.h" 15ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#include "core/include/fpdfapi/fpdf_render.h" 16e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 17ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CFieldTree; 18ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_AAction; 19e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Action; 20ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_ActionFields; 21e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Annot; 22e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_AnnotList; 23ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_ApSettings; 24e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Bookmark; 25e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_BookmarkTree; 26ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_DefaultAppearance; 27e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Dest; 28ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_DocJSActions; 29ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FileSpec; 30ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FormControl; 31ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FormField; 32ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FormNotify; 33ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_IconFit; 34ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_InterForm; 35e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Link; 36e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Metadata; 37e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_NumberTree; 38ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_OCContext; 39e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_Page; 40e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CPDF_RenderOptions; 41ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_TextObject; 42ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_ViewerPreferences; 43e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganovclass CXML_Element; 44e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 45ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_NameTree { 46ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 47ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_NameTree(CPDF_Dictionary* pRoot) { m_pRoot = pRoot; } 48e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 49ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteStringC& category); 50e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 51ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* LookupValue(int nIndex, CFX_ByteString& csName) const; 52e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 53ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* LookupValue(const CFX_ByteString& csName) const; 54e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 55ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Array* LookupNamedDest(CPDF_Document* pDoc, 56ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteStringC& sName); 57e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 58ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetIndex(const CFX_ByteString& csName) const; 59e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 60ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetCount() const; 61e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 62ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetRoot() const { return m_pRoot; } 63e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 64ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 65ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pRoot; 66e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 67ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_BookmarkTree { 68ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 69ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_BookmarkTree(CPDF_Document* pDoc) : m_pDocument(pDoc) {} 70e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 71ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Bookmark GetFirstChild(const CPDF_Bookmark& parent) const; 72e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 73ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Bookmark GetNextSibling(const CPDF_Bookmark& bookmark) const; 74e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 75ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* GetDocument() const { return m_pDocument; } 76e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 77ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 78ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* m_pDocument; 79e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 80ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFBOOKMARK_ITALIC 1 81ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFBOOKMARK_BOLD 2 82ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_Bookmark { 83ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 84ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Bookmark() : m_pDict(NULL) {} 85e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 86ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_Bookmark(CPDF_Dictionary* pDict) : m_pDict(pDict) {} 87e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 88ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetDict() const { return m_pDict; } 89e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 90ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator bool() const { return m_pDict != NULL; } 91e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 92ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetColorRef() const; 93e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 94ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetFontStyle() const; 95e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 96ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetTitle() const; 97e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 98ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dest GetDest(CPDF_Document* pDocument) const; 99e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 100ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetAction() const; 101e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pDict; 103e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 104ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_XYZ 1 105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITPAGE 2 106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITHORZ 3 107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITVERT 4 108ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITRECT 5 109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITBBOX 6 110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITBHORZ 7 111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFZOOM_FITBVERT 8 112ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_Dest { 113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dest() : m_pObj(nullptr) {} 115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_Dest(CPDF_Object* pObj) : m_pObj(pObj) {} 116ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator bool() const { return m_pObj != NULL; } 118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* GetObject() const { return m_pObj; } 119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 120ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetRemoteName(); 121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetPageIndex(CPDF_Document* pDoc); 122ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetPageObjNum(); 123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetZoomMode(); 124ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetParam(int index); 125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 126ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* m_pObj; 128e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_OCContext : public IPDF_OCContext { 130ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum UsageType { View = 0, Design, Print, Export }; 132e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_OCContext(CPDF_Document* pDoc, UsageType eUsageType = View); 134ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_OCContext() override; 135e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 136ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* GetDocument() const { return m_pDocument; } 137e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann UsageType GetUsageType() const { return m_eUsageType; } 139e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCGDict) override; 141e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void ResetOCContext(); 143e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL LoadOCGStateFromConfig(const CFX_ByteStringC& csConfig, 146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_Dictionary* pOCGDict, 147ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL& bValidConfig) const; 148e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 149ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL LoadOCGState(const CPDF_Dictionary* pOCGDict) const; 150e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 151ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetOCGVisible(const CPDF_Dictionary* pOCGDict); 152e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 153ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetOCGVE(CPDF_Array* pExpression, 154ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bFromConfig, 155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int nLevel = 0); 156e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 157ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL LoadOCMDState(const CPDF_Dictionary* pOCMDDict, FX_BOOL bFromConfig); 158e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 159ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* m_pDocument; 160e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 161ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann UsageType m_eUsageType; 162e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 163ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::map<const CPDF_Dictionary*, FX_BOOL> m_OCGStates; 164e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 165e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 166ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_ActionFields { 167ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 168ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO(thestig): Examine why this cannot be explicit. 169ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_ActionFields(const CPDF_Action* pAction) { 170ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_pAction = (CPDF_Action*)pAction; 171ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 172e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 173ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO(thestig): Replace this. 174ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator CPDF_Action*() const { return m_pAction; } 175e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 176ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetFieldsCount() const; 177e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 178ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::vector<CPDF_Object*> GetAllFields() const; 179e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 180ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* GetField(FX_DWORD iIndex) const; 181e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 182ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action* m_pAction; 183e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 184e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 185ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFNAMED_NEXTPAGE 1 186ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFNAMED_PREVPAGE 2 187ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFNAMED_FIRSTPAGE 3 188ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFNAMED_LASTPAGE 4 189ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define PDFJS_MAXLENGTH 64 190ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_Action { 191ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 192ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum ActionType { 193ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Unknown = 0, 194ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GoTo, 195ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GoToR, 196ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GoToE, 197ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Launch, 198ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Thread, 199ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann URI, 200ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Sound, 201ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Movie, 202ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Hide, 203ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Named, 204ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SubmitForm, 205ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ResetForm, 206ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ImportData, 207ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann JavaScript, 208ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SetOCGState, 209ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Rendition, 210ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Trans, 211ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GoTo3DView 212ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann }; 213e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 214ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action() : m_pDict(nullptr) {} 215ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {} 216e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 217ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator bool() const { return m_pDict != NULL; } 218e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 219ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetDict() const { return m_pDict; } 220e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 221ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetTypeName() const { return m_pDict->GetString("S"); } 222e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 223ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ActionType GetType() const; 224e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 225ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dest GetDest(CPDF_Document* pDoc) const; 226e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 227ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetFilePath() const; 228e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 229ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetNewWindow() const { return m_pDict->GetBoolean("NewWindow"); } 230e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 231ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetURI(CPDF_Document* pDoc) const; 232e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 233ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetMouseMap() const { return m_pDict->GetBoolean("IsMap"); } 234e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 235ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_ActionFields GetWidgets() const { return this; } 236e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 237ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetHideStatus() const { return m_pDict->GetBoolean("H", TRUE); } 238e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 239ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetNamedAction() const { return m_pDict->GetString("N"); } 240e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 241ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetFlags() const { return m_pDict->GetInteger("Flags"); } 242e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 243ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetJavaScript() const; 244e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 245ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetAnnot() const; 246e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 247ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetOperationType() const; 248e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 249ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetSoundStream() const { return m_pDict->GetStream("Sound"); } 250e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 251ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetVolume() const { return m_pDict->GetNumber("Volume"); } 252e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 253ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsSynchronous() const { return m_pDict->GetBoolean("Synchronous"); } 254e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 255ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsRepeat() const { return m_pDict->GetBoolean("Repeat"); } 256e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 257ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsMixPlay() const { return m_pDict->GetBoolean("Mix"); } 258e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 259ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetSubActionsCount() const; 260e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 261ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetSubAction(FX_DWORD iIndex) const; 262e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 263ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 264ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pDict; 265e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 266ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_AAction { 267ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 268ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO(thestig): Examine why this cannot be explicit. 269ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_AAction(CPDF_Dictionary* pDict = NULL) { m_pDict = pDict; } 270ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 271ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator CPDF_Dictionary*() const { return m_pDict; } 272ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 273ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum AActionType { 274ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CursorEnter = 0, 275ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CursorExit, 276ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ButtonDown, 277ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ButtonUp, 278ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GetFocus, 279ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann LoseFocus, 280ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PageOpen, 281ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PageClose, 282ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PageVisible, 283ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PageInvisible, 284ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann OpenPage, 285ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ClosePage, 286ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann KeyStroke, 287ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Format, 288ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Validate, 289ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Calculate, 290ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CloseDocument, 291ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann SaveDocument, 292ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann DocumentSaved, 293ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PrintDocument, 294ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann DocumentPrinted 295ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann }; 296ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 297ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ActionExist(AActionType eType) const; 298ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 299ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetAction(AActionType eType) const; 300ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 301ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pDict; 302e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 303ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_DocJSActions { 304ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 305ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_DocJSActions(CPDF_Document* pDoc); 306e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 307ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CountJSActions() const; 308e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 309ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetJSAction(int index, CFX_ByteString& csName) const; 310e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 311ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetJSAction(const CFX_ByteString& csName) const; 312e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 313ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int FindJSAction(const CFX_ByteString& csName) const; 314e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 315ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* GetDocument() const { return m_pDocument; } 316e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 317ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 318ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* const m_pDocument; 319e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 320ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FileSpec { 321ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 322ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FileSpec(); 323e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 324ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_FileSpec(CPDF_Object* pObj) { m_pObj = pObj; } 325e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 326ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator CPDF_Object*() const { return m_pObj; } 327e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 328ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsURL() const; 329e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 330ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetFileName(CFX_WideString& wsFileName) const; 331e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 332ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetFileStream() const; 333e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 334ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetFileName(const CFX_WideStringC& wsFileName, FX_BOOL bURL = FALSE); 335e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 336ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 337ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* m_pObj; 338e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 339e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 340ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_LinkList { 341ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 342ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_LinkList(); 343ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_LinkList(); 344e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 345ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Link GetLinkAtPoint(CPDF_Page* pPage, 346ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT pdf_x, 347ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT pdf_y, 348ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int* z_order); 349e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 350ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private: 351ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const std::vector<CPDF_Dictionary*>* GetPageLinks(CPDF_Page* pPage); 352e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 353ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void LoadPageLinks(CPDF_Page* pPage, std::vector<CPDF_Dictionary*>* pList); 354e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 355ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::map<FX_DWORD, std::vector<CPDF_Dictionary*>> m_PageMap; 356e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 357e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 358ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_Link { 359ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 360ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Link() : m_pDict(nullptr) {} 361ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_Link(CPDF_Dictionary* pDict) : m_pDict(pDict) {} 362e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 363ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetDict() const { return m_pDict; } 364e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 365ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_FloatRect GetRect(); 366ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dest GetDest(CPDF_Document* pDoc); 367ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetAction(); 368e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 369ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 370ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pDict; 371e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 372e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 373ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_INVISIBLE 0x0001 374ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_HIDDEN 0x0002 375ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_PRINT 0x0004 376ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_NOZOOM 0x0008 377ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_NOROTATE 0x0010 378ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_NOVIEW 0x0020 379ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_READONLY 0x0040 380ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_LOCKED 0x0080 381ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define ANNOTFLAG_TOGGLENOVIEW 0x0100 382e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 383ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_Annot : public CFX_PrivateData { 384ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 385ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum AppearanceMode { Normal, Rollover, Down }; 386e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 387ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Annot(CPDF_Dictionary* pDict, CPDF_AnnotList* pList); 388ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_Annot(); 389e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 390ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetSubType() const; 391e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 392ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetFlags() const; 393e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 394ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetRect(CFX_FloatRect& rect) const; 395e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 396ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_Dictionary* GetAnnotDict() const { return m_pAnnotDict; } 397ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetAnnotDict() { return m_pAnnotDict; } 398e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 399ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL DrawAppearance(CPDF_Page* pPage, 400ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_RenderDevice* pDevice, 401ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_Matrix* pUser2Device, 402ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann AppearanceMode mode, 403ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_RenderOptions* pOptions); 404e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 405ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL DrawInContext(const CPDF_Page* pPage, 406ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderContext* pContext, 407ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_Matrix* pUser2Device, 408ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann AppearanceMode mode); 409e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 410ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void ClearCachedAP(); 411e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 412ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void DrawBorder(CFX_RenderDevice* pDevice, 413ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_Matrix* pUser2Device, 414ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_RenderOptions* pOptions); 415e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 416ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Form* GetAPForm(const CPDF_Page* pPage, AppearanceMode mode); 417e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 418ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private: 419ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* const m_pAnnotDict; 420ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_AnnotList* const m_pList; 421ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteString m_sSubtype; 422ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::map<CPDF_Stream*, CPDF_Form*> m_APMap; 423e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 424e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 425ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_AnnotList { 426ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 427ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_AnnotList(CPDF_Page* pPage); 428ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_AnnotList(); 429ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 430ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void DisplayAnnots(CPDF_Page* pPage, 431ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderContext* pContext, 432ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bPrinting, 433ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix* pMatrix, 434ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bShowWidget, 435ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderOptions* pOptions) { 436ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann DisplayAnnots(pPage, nullptr, pContext, bPrinting, pMatrix, 437ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bShowWidget ? 3 : 1, pOptions, nullptr); 438ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 439ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void DisplayAnnots(CPDF_Page* pPage, 440ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_RenderDevice* pDevice, 441ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderContext* pContext, 442ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bPrinting, 443ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix* pMatrix, 444ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD dwAnnotFlags, 445ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderOptions* pOptions, 446ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_RECT* pClipRect); 447ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann size_t Count() const { return m_AnnotList.size(); } 448ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Annot* GetAt(size_t index) const { return m_AnnotList[index]; } 449ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const std::vector<CPDF_Annot*>& All() const { return m_AnnotList; } 450ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* GetDocument() const { return m_pDocument; } 451ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 452ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 453ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void DisplayPass(CPDF_Page* pPage, 454ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_RenderDevice* pDevice, 455ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderContext* pContext, 456ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bPrinting, 457ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix* pMatrix, 458ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bWidget, 459ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_RenderOptions* pOptions, 460ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_RECT* clip_rect); 461ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 462ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* const m_pDocument; 463ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::vector<CPDF_Annot*> m_AnnotList; 464e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 465e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 466ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define COLORTYPE_TRANSPARENT 0 467ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define COLORTYPE_GRAY 1 468ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define COLORTYPE_RGB 2 469ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define COLORTYPE_CMYK 3 470ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_DefaultAppearance { 471ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 472ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO(thestig): Examine why this cannot be explicit. 473ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_DefaultAppearance(const CFX_ByteString& csDA = "") { m_csDA = csDA; } 474e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 475ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_DefaultAppearance(const CPDF_DefaultAppearance& cDA) { 476ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_csDA = (CFX_ByteString)(CPDF_DefaultAppearance&)cDA; 477ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 478e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 479ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator CFX_ByteString() const { return m_csDA; } 480e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 481ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_DefaultAppearance& operator=(const CFX_ByteString& csDA) { 482ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_csDA = csDA; 483ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return *this; 484ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 485e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 486ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_DefaultAppearance& operator=(const CPDF_DefaultAppearance& cDA) { 487ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann m_csDA = (CFX_ByteString)(CPDF_DefaultAppearance&)cDA; 488ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return *this; 489ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 490e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 491ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL HasFont(); 492e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 493ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetFontString(); 494e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 495ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetFont(CFX_ByteString& csFontNameTag, FX_FLOAT& fFontSize); 496e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 497ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL HasColor(FX_BOOL bStrokingOperation = FALSE); 498e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 499ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetColorString(FX_BOOL bStrokingOperation = FALSE); 500e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 501ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetColor(int& iColorType, 502ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fc[4], 503ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bStrokingOperation = FALSE); 504e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 505ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetColor(FX_ARGB& color, 506ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int& iColorType, 507ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bStrokingOperation = FALSE); 508e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 509ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL HasTextMatrix(); 510e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 511ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetTextMatrixString(); 512e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 513ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix GetTextMatrix(); 514e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 515ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 516ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString m_csDA; 517ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann}; 518ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_UNKNOWN 0 519ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_PUSHBUTTON 1 520ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_CHECKBOX 2 521ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_RADIOBUTTON 3 522ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_COMBOBOX 4 523ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_LISTBOX 5 524ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_TEXTFIELD 6 525ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FIELDTYPE_SIGNATURE 7 526ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_InterForm : public CFX_PrivateData { 527ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 528ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_InterForm(CPDF_Document* pDocument, FX_BOOL bUpdateAP); 529ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_InterForm(); 530e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 531ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static void EnableUpdateAP(FX_BOOL bUpdateAP); 532e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 533ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static FX_BOOL UpdatingAPEnabled(); 534e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 535ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CFX_ByteString GenerateNewResourceName(const CPDF_Dictionary* pResDict, 536ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const FX_CHAR* csType, 537ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int iMinLen = 2, 538ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const FX_CHAR* csPrefix = ""); 539e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 540ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CPDF_Font* AddStandardFont(CPDF_Document* pDocument, 541ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString csFontName); 542e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 543ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CFX_ByteString GetNativeFont(uint8_t iCharSet, void* pLogFont = NULL); 544e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 545ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CFX_ByteString GetNativeFont(void* pLogFont = NULL); 546e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 547ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static uint8_t GetNativeCharSet(); 548e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 549ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CPDF_Font* AddNativeFont(uint8_t iCharSet, CPDF_Document* pDocument); 550e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 551ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static CPDF_Font* AddNativeFont(CPDF_Document* pDocument); 552e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 553ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ValidateFieldName(CFX_WideString& csNewFieldName, int iType); 554e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 555ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ValidateFieldName(const CPDF_FormField* pField, 556ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csNewFieldName); 557e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 558ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ValidateFieldName(const CPDF_FormControl* pControl, 559ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csNewFieldName); 560e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 561ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD CountFields(const CFX_WideString& csFieldName = L""); 562e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 563ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* GetField(FX_DWORD index, 564ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideString& csFieldName = L""); 565e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 566ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetAllFieldNames(CFX_WideStringArray& allFieldNames); 567e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 568ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* GetFieldByDict(CPDF_Dictionary* pFieldDict) const; 569e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 570ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormControl* GetControlAtPoint(CPDF_Page* pPage, 571ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT pdf_x, 572ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT pdf_y, 573ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int* z_order) const; 574e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 575ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormControl* GetControlByDict(const CPDF_Dictionary* pWidgetDict) const; 576e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 577ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* GetDocument() const { return m_pDocument; } 578e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 579ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetFormDict() const { return m_pFormDict; } 580e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 581ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL NeedConstructAP(); 582e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 583ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void NeedConstructAP(FX_BOOL bNeedAP); 584e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 585ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CountFieldsInCalculationOrder(); 586e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 587ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* GetFieldInCalculationOrder(int index); 588e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 589ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int FindFieldInCalculationOrder(const CPDF_FormField* pField); 590e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 591ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD CountFormFonts(); 592e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 593ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetFormFont(FX_DWORD index, CFX_ByteString& csNameTag); 594e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 595ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetFormFont(CFX_ByteString csNameTag); 596e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 597ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetFormFont(CFX_ByteString csFontName, CFX_ByteString& csNameTag); 598e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 599ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetNativeFormFont(uint8_t iCharSet, CFX_ByteString& csNameTag); 600e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 601ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetNativeFormFont(CFX_ByteString& csNameTag); 602e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 603ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL FindFormFont(const CPDF_Font* pFont, CFX_ByteString& csNameTag); 604e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 605ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL FindFormFont(CFX_ByteString csFontName, 606ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font*& pFont, 607ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString& csNameTag); 608e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 609ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann inline FX_BOOL FindFormFont(CFX_WideString csFontName, 610ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font*& pFont, 611ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString& csNameTag) { 612ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return FindFormFont(PDF_EncodeText(csFontName), pFont, csNameTag); 613ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 614e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 615ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void AddFormFont(const CPDF_Font* pFont, CFX_ByteString& csNameTag); 616e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 617ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* AddNativeFormFont(uint8_t iCharSet, CFX_ByteString& csNameTag); 618e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 619ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* AddNativeFormFont(CFX_ByteString& csNameTag); 620e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 621ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void RemoveFormFont(const CPDF_Font* pFont); 622e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 623ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void RemoveFormFont(CFX_ByteString csNameTag); 624e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 625ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_DefaultAppearance GetDefaultAppearance(); 626e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 627ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetDefaultFormFont(); 628e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 629ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetFormAlignment(); 630e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 631ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* CheckRequiredFields( 632ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const std::vector<CPDF_FormField*>* fields, 633ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool bIncludeOrExclude) const; 634e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 635ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFDF_Document* ExportToFDF(const CFX_WideStringC& pdf_path, 636ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool bSimpleFileSpec = false) const; 637e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 638ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFDF_Document* ExportToFDF(const CFX_WideStringC& pdf_path, 639ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const std::vector<CPDF_FormField*>& fields, 640ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool bIncludeOrExclude = true, 641ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool bSimpleFileSpec = false) const; 642e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 643ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ImportFromFDF(const CFDF_Document* pFDFDoc, FX_BOOL bNotify = FALSE); 644e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 645ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool ResetForm(const std::vector<CPDF_FormField*>& fields, 646ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool bIncludeOrExclude = true, 647ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool bNotify = false); 648e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 649ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool ResetForm(bool bNotify = false); 650e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 651ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormNotify* GetFormNotify() const { return m_pFormNotify; } 652e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 653ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetFormNotify(const CPDF_FormNotify* pNotify); 654e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 655ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsUpdated() { return m_bUpdated; } 656e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 657ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void ClearUpdatedFlag() { m_bUpdated = FALSE; } 658e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 659ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL HasXFAForm() const; 660e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 661ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void FixPageFields(const CPDF_Page* pPage); 662e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 663ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 664ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann static FX_BOOL m_bUpdateAP; 665e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 666ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void LoadField(CPDF_Dictionary* pFieldDict, int nLevel = 0); 667e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 668ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Object* GetFieldAttr(CPDF_Dictionary* pFieldDict, const FX_CHAR* name); 669e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 670ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* AddTerminalField(CPDF_Dictionary* pFieldDict); 671e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 672ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormControl* AddControl(const CPDF_FormField* pField, 673ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* pWidgetDict); 674e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 675ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void FDF_ImportField(CPDF_Dictionary* pField, 676ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideString& parent_name, 677ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify = FALSE, 678ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int nLevel = 0); 679e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 680ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ValidateFieldName(CFX_WideString& csNewFieldName, 681ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int iType, 682ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_FormField* pExcludedField, 683ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_FormControl* pExcludedControl); 684e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 685ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CompareFieldName(const CFX_WideString& name1, 686ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_WideString& name2); 687e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 688ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CompareFieldName(const CFX_ByteString& name1, 689ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteString& name2); 690e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 691ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* const m_pDocument; 692e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 693ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL m_bGenerateAP; 694e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 695ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pFormDict; 696e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 697ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::map<const CPDF_Dictionary*, CPDF_FormControl*> m_ControlMap; 698e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 699ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::unique_ptr<CFieldTree> m_pFieldTree; 700e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 701ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString m_bsEncoding; 702e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 703ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormNotify* m_pFormNotify; 704e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 705ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL m_bUpdated; 706ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_FormControl; 707ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_FormField; 708e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 709ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMFIELD_READONLY 0x01 710ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMFIELD_REQUIRED 0x02 711ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMFIELD_NOEXPORT 0x04 712ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMRADIO_NOTOGGLEOFF 0x100 713ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMRADIO_UNISON 0x200 714ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMTEXT_MULTILINE 0x100 715ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMTEXT_PASSWORD 0x200 716ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMTEXT_NOSCROLL 0x400 717ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMTEXT_COMB 0x800 718ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMCOMBO_EDIT 0x100 719ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define FORMLIST_MULTISELECT 0x100 720ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FormField { 721ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 722ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum Type { 723ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Unknown, 724ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann PushButton, 725ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann RadioButton, 726ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CheckBox, 727ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Text, 728ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann RichText, 729ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann File, 730ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ListBox, 731ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ComboBox, 732ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Sign 733ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann }; 734e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 735ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetFullName(); 736e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 737ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann Type GetType() { return m_Type; } 738e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 739ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetFlags() { return m_Flags; } 740e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 741ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetFieldDict() const { return m_pDict; } 742e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 743ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetFieldDict(CPDF_Dictionary* pDict) { m_pDict = pDict; } 744e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 745ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ResetField(FX_BOOL bNotify = FALSE); 746e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 747ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CountControls() { return m_ControlList.GetSize(); } 748e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 749ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormControl* GetControl(int index) { return m_ControlList.GetAt(index); } 750e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 751ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetControlIndex(const CPDF_FormControl* pControl); 752e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 753ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetFieldType(); 754e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 755ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_AAction GetAdditionalAction(); 756e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 757ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetAlternateName(); 758e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 759ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetMappingName(); 760e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 761ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD GetFieldFlags(); 762e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 763ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetDefaultStyle(); 764e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 765ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetRichTextString(); 766e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 767ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetValue(); 768e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 769ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetDefaultValue(); 770e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 771ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL SetValue(const CFX_WideString& value, FX_BOOL bNotify = FALSE); 772e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 773ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetMaxLen(); 774e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 775ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CountSelectedItems(); 776e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 777ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetSelectedIndex(int index); 778e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 779ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ClearSelection(FX_BOOL bNotify = FALSE); 780e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 781ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsItemSelected(int index); 782e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 783ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL SetItemSelection(int index, 784ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bSelected, 785ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify = FALSE); 786e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 787ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsItemDefaultSelected(int index); 788e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 789ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetDefaultSelectedItem(); 790e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 791ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CountOptions(); 792e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 793ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetOptionLabel(int index); 794e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 795ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetOptionValue(int index); 796e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 797ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int FindOption(CFX_WideString csOptLabel); 798e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 799ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int FindOptionValue(const CFX_WideString& csOptValue, int iStartIndex = 0); 800e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 801ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL CheckControl(int iControlIndex, 802ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bChecked, 803ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify = FALSE); 804e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 805ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetTopVisibleIndex(); 806e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 807ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int CountSelectedOptions(); 808e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 809ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetSelectedOptionIndex(int index); 810e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 811ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsOptionSelected(int iOptIndex); 812e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 813ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL SelectOption(int iOptIndex, 814ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bSelected, 815ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify = FALSE); 816e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 817ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ClearSelectedOptions(FX_BOOL bNotify = FALSE); 818e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 819ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#ifdef PDF_ENABLE_XFA 820ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL ClearOptions(FX_BOOL bNotify = FALSE); 821e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 822ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int InsertOption(CFX_WideString csOptLabel, 823ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int index = -1, 824ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify = FALSE); 825ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#endif // PDF_ENABLE_XFA 826e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 827ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetFontSize() { return m_FontSize; } 828e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 829ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetFont() { return m_pFont; } 830e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 831ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 832ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField(CPDF_InterForm* pForm, CPDF_Dictionary* pDict); 833ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_FormField(); 834e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 835ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetValue(FX_BOOL bDefault); 836e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 837ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL SetValue(const CFX_WideString& value, 838ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bDefault, 839ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify); 840e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 841ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SyncFieldFlags(); 842e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 843ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int FindListSel(CPDF_String* str); 844e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 845ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetOptionText(int index, int sub_index); 846e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 847ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void LoadDA(); 848e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 849ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void UpdateAP(CPDF_FormControl* pControl); 850e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 851ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetCheckValue(FX_BOOL bDefault); 852e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 853ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL SetCheckValue(const CFX_WideString& value, 854ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bDefault, 855ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL bNotify); 856e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 857ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField::Type m_Type; 858ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_DWORD m_Flags; 859ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_InterForm* m_pForm; 860ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pDict; 861ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ArrayTemplate<CPDF_FormControl*> m_ControlList; 862ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT m_FontSize; 863ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* m_pFont; 864e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 865ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_InterForm; 866ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_FormControl; 867e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 868ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict, 869ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const FX_CHAR* name, 870ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int nLevel = 0); 871ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_IconFit { 872ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 873ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann // TODO(thestig): Examine why this cannot be explicit. 874ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_IconFit(CPDF_Dictionary* pDict = NULL) { m_pDict = pDict; } 875e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 876ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann operator CPDF_Dictionary*() const { return m_pDict; } 877e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 878ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum ScaleMethod { Always = 0, Bigger, Smaller, Never }; 879e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 880ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ScaleMethod GetScaleMethod(); 881e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 882ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsProportionalScale(); 883e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 884ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom); 885e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 886ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL GetFittingBounds(); 887e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 888ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pDict; 889e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 890e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 891ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_CAPTION 0 892ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_ICON 1 893ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_BELOW 2 894ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_ABOVE 3 895ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_RIGHT 4 896ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_LEFT 5 897ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann#define TEXTPOS_OVERLAID 6 898ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FormControl { 899ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 900ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField::Type GetType() { return m_pField->GetType(); } 901e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 902ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_InterForm* GetInterForm() const { return m_pForm; } 903e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 904ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* GetField() const { return m_pField; } 905e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 906ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* GetWidget() const { return m_pWidgetDict; } 907e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 908ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_FloatRect GetRect() const; 909e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 910ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void DrawControl(CFX_RenderDevice* pDevice, 911ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_Matrix* pMatrix, 912ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Page* pPage, 913ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Annot::AppearanceMode mode, 914ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CPDF_RenderOptions* pOptions = NULL); 915e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 916ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetCheckedAPState(); 917e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 918ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetExportValue(); 919e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 920ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsChecked(); 921e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 922ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsDefaultChecked(); 923e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 924ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann enum HighlightingMode { None = 0, Invert, Outline, Push, Toggle }; 925e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 926ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann HighlightingMode GetHighlightingMode(); 927e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 928ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool HasMKEntry(CFX_ByteString csEntry) const; 929e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 930ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetRotation(); 931e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 932ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann inline FX_ARGB GetBorderColor(int& iColorType) { 933ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetColor(iColorType, "BC"); 934ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 935e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 936ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetOriginalBorderColor(int index) { 937ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetOriginalColor(index, "BC"); 938ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 939e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 940ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) { 941ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GetOriginalColor(iColorType, fc, "BC"); 942ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 943e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 944ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB GetBackgroundColor(int& iColorType) { 945ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetColor(iColorType, "BG"); 946ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 947e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 948ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetOriginalBackgroundColor(int index) { 949ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetOriginalColor(index, "BG"); 950ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 951e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 952ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) { 953ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GetOriginalColor(iColorType, fc, "BG"); 954ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 955e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 956ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetNormalCaption() { return GetCaption("CA"); } 957e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 958ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetRolloverCaption() { return GetCaption("RC"); } 959e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 960ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetDownCaption() { return GetCaption("AC"); } 961e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 962ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetNormalIcon() { return GetIcon("I"); } 963e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 964ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetRolloverIcon() { return GetIcon("RI"); } 965e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 966ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetDownIcon() { return GetIcon("IX"); } 967e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 968ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_IconFit GetIconFit(); 969e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 970ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetTextPosition(); 971e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 972ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Action GetAction(); 973e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 974ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_AAction GetAdditionalAction(); 975e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 976ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_DefaultAppearance GetDefaultAppearance(); 977e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 978ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Font* GetDefaultControlFont(); 979e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 980ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetControlAlignment(); 981e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 982ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 983ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormControl(CPDF_FormField* pField, CPDF_Dictionary* pWidgetDict); 984e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 985ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString GetOnStateName(); 986e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 987ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void SetOnStateName(const CFX_ByteString& csOn); 988e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 989ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void CheckControl(FX_BOOL bChecked); 990e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 991ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB GetColor(int& iColorType, CFX_ByteString csEntry); 992e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 993ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetOriginalColor(int index, CFX_ByteString csEntry); 994e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 995ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetOriginalColor(int& iColorType, 996ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fc[4], 997ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString csEntry); 998e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 999ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetCaption(CFX_ByteString csEntry); 1000e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1001ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetIcon(CFX_ByteString csEntry); 1002e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1003ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_ApSettings GetMK() const; 1004e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1005ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_InterForm* m_pForm; 1006e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1007ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_FormField* m_pField; 1008e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1009ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* m_pWidgetDict; 1010ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_InterForm; 1011ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_FormField; 1012ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann}; 1013ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_FormNotify { 1014ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 1015ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual ~CPDF_FormNotify() {} 1016e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1017ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int BeforeValueChange(const CPDF_FormField* pField, 1018ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csValue) { 1019ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 1020ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1021e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1022ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int AfterValueChange(const CPDF_FormField* pField) { return 0; } 1023e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1024ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int BeforeSelectionChange(const CPDF_FormField* pField, 1025ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString& csValue) { 1026ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 1027ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1028e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1029ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int AfterSelectionChange(const CPDF_FormField* pField) { return 0; } 1030e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1031ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int AfterCheckedStatusChange(const CPDF_FormField* pField, 1032ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteArray& statusArray) { 1033ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return 0; 1034ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1035e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1036ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int BeforeFormReset(const CPDF_InterForm* pForm) { return 0; } 1037e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1038ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int AfterFormReset(const CPDF_InterForm* pForm) { return 0; } 1039e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1040ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int BeforeFormImportData(const CPDF_InterForm* pForm) { return 0; } 1041e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1042ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann virtual int AfterFormImportData(const CPDF_InterForm* pForm) { return 0; } 1043e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 1044ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannFX_BOOL FPDF_GenerateAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict); 1045ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_PageLabel { 1046ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 1047ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_PageLabel(CPDF_Document* pDocument) { m_pDocument = pDocument; } 1048e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1049ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetLabel(int nPage) const; 1050e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1051ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetPageByLabel(const CFX_ByteStringC& bsLabel) const; 1052e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1053ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t GetPageByLabel(const CFX_WideStringC& wsLabel) const; 1054e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1055ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 1056ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* m_pDocument; 1057e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 1058e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1059ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_Metadata { 1060ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 1061ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_Metadata(CPDF_Document* pDoc); 1062ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_Metadata(); 1063e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1064ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CXML_Element* GetRoot() const; 1065e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1066ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann private: 1067ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann std::unique_ptr<CXML_Element> m_pXmlElement; 1068e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 1069e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1070ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_ViewerPreferences { 1071ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 1072ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_ViewerPreferences(CPDF_Document* pDoc); 1073e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1074ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann ~CPDF_ViewerPreferences(); 1075e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1076ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL IsDirectionR2L() const; 1077e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1078ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_BOOL PrintScaling() const; 1079e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1080ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int32_t NumCopies() const; 1081e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1082ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Array* PrintPageRange() const; 1083e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1084ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_ByteString Duplex() const; 1085e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1086ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 1087ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Document* const m_pDoc; 1088e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 1089e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1090ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmannclass CPDF_ApSettings { 1091ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann public: 1092ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann explicit CPDF_ApSettings(CPDF_Dictionary* pDict); 1093e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1094ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann bool HasMKEntry(const CFX_ByteStringC& csEntry) const; 1095ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetRotation() const; 1096e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1097ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB GetBorderColor(int& iColorType) const { 1098ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetColor(iColorType, "BC"); 1099ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1100e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1101ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetOriginalBorderColor(int index) const { 1102ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetOriginalColor(index, "BC"); 1103ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1104e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1105ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) const { 1106ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GetOriginalColor(iColorType, fc, "BC"); 1107ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1108e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1109ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB GetBackgroundColor(int& iColorType) const { 1110ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetColor(iColorType, "BG"); 1111ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1112e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1113ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetOriginalBackgroundColor(int index) const { 1114ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann return GetOriginalColor(index, "BG"); 1115ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1116e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1117ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) const { 1118ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann GetOriginalColor(iColorType, fc, "BG"); 1119ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann } 1120e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1121ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetNormalCaption() const { return GetCaption("CA"); } 1122e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1123ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetRolloverCaption() const { return GetCaption("RC"); } 1124e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1125ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetDownCaption() const { return GetCaption("AC"); } 1126e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1127ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetNormalIcon() const { return GetIcon("I"); } 1128e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1129ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetRolloverIcon() const { return GetIcon("RI"); } 1130e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1131ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetDownIcon() const { return GetIcon("IX"); } 1132e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1133ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_IconFit GetIconFit() const; 1134e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1135ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann int GetTextPosition() const; 1136e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1137ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann protected: 1138ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann friend class CPDF_FormControl; 1139e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1140ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_ARGB GetColor(int& iColorType, const CFX_ByteStringC& csEntry) const; 1141e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1142ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT GetOriginalColor(int index, const CFX_ByteStringC& csEntry) const; 1143e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1144ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann void GetOriginalColor(int& iColorType, 1145ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann FX_FLOAT fc[4], 1146ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann const CFX_ByteStringC& csEntry) const; 1147e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1148ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CFX_WideString GetCaption(const CFX_ByteStringC& csEntry) const; 1149e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1150ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Stream* GetIcon(const CFX_ByteStringC& csEntry) const; 1151e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1152ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann CPDF_Dictionary* const m_pDict; 1153e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov}; 1154e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov 1155ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. MoltmannCFX_WideString FILESPEC_EncodeFileName(const CFX_WideStringC& filepath); 1156ac3d58cff7c80b0ef56bf55130d91da17cbaa3c4Philip P. Moltmann 1157e6986e1e8d4a57987f47c215490cb080a65ee29aSvet Ganov#endif // CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_ 1158