summaryrefslogtreecommitdiff
path: root/core/include/fpdfdoc/fpdf_doc.h
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-04-06 12:09:37 -0700
committerCommit bot <commit-bot@chromium.org>2016-04-06 12:09:37 -0700
commite530fb7976922c4934812f8721e7550ced17786b (patch)
tree8d1f4ca3dbaa4426acadb037555618021b52e791 /core/include/fpdfdoc/fpdf_doc.h
parent4e20094dbb2ea942734b8986fa9a60d2f3ccbb1b (diff)
downloadpdfium-e530fb7976922c4934812f8721e7550ced17786b.tar.xz
Move remaining fpdfdoc files
This CL moves the last two fpdfdoc files from core/include/fpdfdoc to core/fpdfdoc/include. Review URL: https://codereview.chromium.org/1864163002
Diffstat (limited to 'core/include/fpdfdoc/fpdf_doc.h')
-rw-r--r--core/include/fpdfdoc/fpdf_doc.h1055
1 files changed, 0 insertions, 1055 deletions
diff --git a/core/include/fpdfdoc/fpdf_doc.h b/core/include/fpdfdoc/fpdf_doc.h
deleted file mode 100644
index 9cd6d1c408..0000000000
--- a/core/include/fpdfdoc/fpdf_doc.h
+++ /dev/null
@@ -1,1055 +0,0 @@
-// Copyright 2014 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_
-#define CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_
-
-#include <map>
-#include <memory>
-#include <vector>
-
-#include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
-#include "core/fpdfapi/fpdf_parser/include/fpdf_parser_decode.h"
-#include "core/fpdfapi/fpdf_parser/ipdf_occontext.h"
-#include "core/fxge/include/fx_dib.h"
-
-class CFDF_Document;
-class CFieldTree;
-class CPDF_AAction;
-class CPDF_Action;
-class CPDF_ActionFields;
-class CPDF_Annot;
-class CPDF_AnnotList;
-class CPDF_ApSettings;
-class CPDF_Bookmark;
-class CPDF_BookmarkTree;
-class CPDF_DefaultAppearance;
-class CPDF_Dest;
-class CPDF_Document;
-class CPDF_DocJSActions;
-class CPDF_FileSpec;
-class CPDF_FormControl;
-class CPDF_FormField;
-class CPDF_FormNotify;
-class CPDF_IconFit;
-class CPDF_InterForm;
-class CPDF_Link;
-class CPDF_Metadata;
-class CPDF_OCContext;
-class CPDF_Page;
-class CPDF_Font;
-class CPDF_Form;
-class CPDF_RenderOptions;
-class CPDF_RenderContext;
-class CPDF_ViewerPreferences;
-class CXML_Element;
-class CFX_RenderDevice;
-
-class CPDF_NameTree {
- public:
- explicit CPDF_NameTree(CPDF_Dictionary* pRoot) : m_pRoot(pRoot) {}
- CPDF_NameTree(CPDF_Document* pDoc, const CFX_ByteStringC& category);
-
- CPDF_Object* LookupValue(int nIndex, CFX_ByteString& csName) const;
- CPDF_Object* LookupValue(const CFX_ByteString& csName) const;
- CPDF_Array* LookupNamedDest(CPDF_Document* pDoc,
- const CFX_ByteStringC& sName);
- int GetIndex(const CFX_ByteString& csName) const;
- int GetCount() const;
- CPDF_Dictionary* GetRoot() const { return m_pRoot; }
-
- protected:
- CPDF_Dictionary* m_pRoot;
-};
-
-class CPDF_BookmarkTree {
- public:
- explicit CPDF_BookmarkTree(CPDF_Document* pDoc) : m_pDocument(pDoc) {}
-
- CPDF_Bookmark GetFirstChild(const CPDF_Bookmark& parent) const;
- CPDF_Bookmark GetNextSibling(const CPDF_Bookmark& bookmark) const;
- CPDF_Document* GetDocument() const { return m_pDocument; }
-
- protected:
- CPDF_Document* const m_pDocument;
-};
-
-#define PDFBOOKMARK_ITALIC 1
-#define PDFBOOKMARK_BOLD 2
-class CPDF_Bookmark {
- public:
- CPDF_Bookmark() : m_pDict(nullptr) {}
- explicit CPDF_Bookmark(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
-
- CPDF_Dictionary* GetDict() const { return m_pDict; }
- uint32_t GetColorRef() const;
- uint32_t GetFontStyle() const;
- CFX_WideString GetTitle() const;
- CPDF_Dest GetDest(CPDF_Document* pDocument) const;
- CPDF_Action GetAction() const;
-
- protected:
- CPDF_Dictionary* m_pDict;
-};
-
-#define PDFZOOM_XYZ 1
-#define PDFZOOM_FITPAGE 2
-#define PDFZOOM_FITHORZ 3
-#define PDFZOOM_FITVERT 4
-#define PDFZOOM_FITRECT 5
-#define PDFZOOM_FITBBOX 6
-#define PDFZOOM_FITBHORZ 7
-#define PDFZOOM_FITBVERT 8
-class CPDF_Dest {
- public:
- CPDF_Dest() : m_pObj(nullptr) {}
- explicit CPDF_Dest(CPDF_Object* pObj) : m_pObj(pObj) {}
-
- CPDF_Object* GetObject() const { return m_pObj; }
- CFX_ByteString GetRemoteName();
- int GetPageIndex(CPDF_Document* pDoc);
- uint32_t GetPageObjNum();
- int GetZoomMode();
- FX_FLOAT GetParam(int index);
-
- protected:
- CPDF_Object* m_pObj;
-};
-
-class CPDF_OCContext : public IPDF_OCContext {
- public:
- enum UsageType { View = 0, Design, Print, Export };
-
- explicit CPDF_OCContext(CPDF_Document* pDoc, UsageType eUsageType = View);
- ~CPDF_OCContext() override;
-
- // IPDF_OCContext:
- FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCGDict) override;
-
- CPDF_Document* GetDocument() const { return m_pDocument; }
- UsageType GetUsageType() const { return m_eUsageType; }
-
- void ResetOCContext();
-
- protected:
- FX_BOOL LoadOCGStateFromConfig(const CFX_ByteStringC& csConfig,
- const CPDF_Dictionary* pOCGDict,
- FX_BOOL& bValidConfig) const;
- FX_BOOL LoadOCGState(const CPDF_Dictionary* pOCGDict) const;
- FX_BOOL GetOCGVisible(const CPDF_Dictionary* pOCGDict);
- FX_BOOL GetOCGVE(CPDF_Array* pExpression,
- FX_BOOL bFromConfig,
- int nLevel = 0);
- FX_BOOL LoadOCMDState(const CPDF_Dictionary* pOCMDDict, FX_BOOL bFromConfig);
-
- CPDF_Document* m_pDocument;
- UsageType m_eUsageType;
- std::map<const CPDF_Dictionary*, FX_BOOL> m_OCGStates;
-};
-
-class CPDF_ActionFields {
- public:
- explicit CPDF_ActionFields(const CPDF_Action* pAction) : m_pAction(pAction) {}
-
- uint32_t GetFieldsCount() const;
- std::vector<CPDF_Object*> GetAllFields() const;
- CPDF_Object* GetField(uint32_t iIndex) const;
-
- protected:
- const CPDF_Action* const m_pAction;
-};
-
-#define PDFNAMED_NEXTPAGE 1
-#define PDFNAMED_PREVPAGE 2
-#define PDFNAMED_FIRSTPAGE 3
-#define PDFNAMED_LASTPAGE 4
-#define PDFJS_MAXLENGTH 64
-class CPDF_Action {
- public:
- enum ActionType {
- Unknown = 0,
- GoTo,
- GoToR,
- GoToE,
- Launch,
- Thread,
- URI,
- Sound,
- Movie,
- Hide,
- Named,
- SubmitForm,
- ResetForm,
- ImportData,
- JavaScript,
- SetOCGState,
- Rendition,
- Trans,
- GoTo3DView
- };
-
- CPDF_Action() : m_pDict(nullptr) {}
- explicit CPDF_Action(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
-
- CPDF_Dictionary* GetDict() const { return m_pDict; }
- CFX_ByteString GetTypeName() const { return m_pDict->GetStringBy("S"); }
- ActionType GetType() const;
- CPDF_Dest GetDest(CPDF_Document* pDoc) const;
- CFX_WideString GetFilePath() const;
- FX_BOOL GetNewWindow() const { return m_pDict->GetBooleanBy("NewWindow"); }
- CFX_ByteString GetURI(CPDF_Document* pDoc) const;
- FX_BOOL GetMouseMap() const { return m_pDict->GetBooleanBy("IsMap"); }
- FX_BOOL GetHideStatus() const { return m_pDict->GetBooleanBy("H", TRUE); }
- CFX_ByteString GetNamedAction() const { return m_pDict->GetStringBy("N"); }
- uint32_t GetFlags() const { return m_pDict->GetIntegerBy("Flags"); }
- CFX_WideString GetJavaScript() const;
- CPDF_Dictionary* GetAnnot() const;
- int32_t GetOperationType() const;
- CPDF_Stream* GetSoundStream() const { return m_pDict->GetStreamBy("Sound"); }
- FX_FLOAT GetVolume() const { return m_pDict->GetNumberBy("Volume"); }
- FX_BOOL IsSynchronous() const { return m_pDict->GetBooleanBy("Synchronous"); }
- FX_BOOL IsRepeat() const { return m_pDict->GetBooleanBy("Repeat"); }
- FX_BOOL IsMixPlay() const { return m_pDict->GetBooleanBy("Mix"); }
- uint32_t GetSubActionsCount() const;
- CPDF_Action GetSubAction(uint32_t iIndex) const;
-
- protected:
- CPDF_Dictionary* const m_pDict;
-};
-
-class CPDF_AAction {
- public:
- enum AActionType {
- CursorEnter = 0,
- CursorExit,
- ButtonDown,
- ButtonUp,
- GetFocus,
- LoseFocus,
- PageOpen,
- PageClose,
- PageVisible,
- PageInvisible,
- OpenPage,
- ClosePage,
- KeyStroke,
- Format,
- Validate,
- Calculate,
- CloseDocument,
- SaveDocument,
- DocumentSaved,
- PrintDocument,
- DocumentPrinted
- };
-
- CPDF_AAction() : m_pDict(nullptr) {}
- explicit CPDF_AAction(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
-
- FX_BOOL ActionExist(AActionType eType) const;
- CPDF_Action GetAction(AActionType eType) const;
- CPDF_Dictionary* GetDict() const { return m_pDict; }
-
- protected:
- CPDF_Dictionary* const m_pDict;
-};
-
-class CPDF_DocJSActions {
- public:
- explicit CPDF_DocJSActions(CPDF_Document* pDoc);
-
- int CountJSActions() const;
- CPDF_Action GetJSAction(int index, CFX_ByteString& csName) const;
- CPDF_Action GetJSAction(const CFX_ByteString& csName) const;
- int FindJSAction(const CFX_ByteString& csName) const;
- CPDF_Document* GetDocument() const { return m_pDocument; }
-
- protected:
- CPDF_Document* const m_pDocument;
-};
-
-class CPDF_FileSpec {
- public:
- CPDF_FileSpec();
- explicit CPDF_FileSpec(CPDF_Object* pObj) : m_pObj(pObj) {}
-
- // Convert a platform dependent file name into pdf format.
- static CFX_WideString EncodeFileName(const CFX_WideStringC& filepath);
-
- // Convert a pdf file name into platform dependent format.
- static CFX_WideString DecodeFileName(const CFX_WideStringC& filepath);
-
- CPDF_Object* GetObj() const { return m_pObj; }
- bool GetFileName(CFX_WideString* wsFileName) const;
-
- // Set this file spec to refer to a file name (not a url).
- void SetFileName(const CFX_WideStringC& wsFileName);
-
- protected:
- CPDF_Object* m_pObj;
-};
-
-class CPDF_LinkList {
- public:
- CPDF_LinkList();
- ~CPDF_LinkList();
-
- CPDF_Link GetLinkAtPoint(CPDF_Page* pPage,
- FX_FLOAT pdf_x,
- FX_FLOAT pdf_y,
- int* z_order);
-
- private:
- const std::vector<CPDF_Dictionary*>* GetPageLinks(CPDF_Page* pPage);
- void LoadPageLinks(CPDF_Page* pPage, std::vector<CPDF_Dictionary*>* pList);
-
- std::map<uint32_t, std::vector<CPDF_Dictionary*>> m_PageMap;
-};
-
-class CPDF_Link {
- public:
- CPDF_Link() : m_pDict(nullptr) {}
- explicit CPDF_Link(CPDF_Dictionary* pDict) : m_pDict(pDict) {}
-
- CPDF_Dictionary* GetDict() const { return m_pDict; }
-
- CFX_FloatRect GetRect();
- CPDF_Dest GetDest(CPDF_Document* pDoc);
- CPDF_Action GetAction();
-
- protected:
- CPDF_Dictionary* m_pDict;
-};
-
-#define ANNOTFLAG_INVISIBLE 0x0001
-#define ANNOTFLAG_HIDDEN 0x0002
-#define ANNOTFLAG_PRINT 0x0004
-#define ANNOTFLAG_NOZOOM 0x0008
-#define ANNOTFLAG_NOROTATE 0x0010
-#define ANNOTFLAG_NOVIEW 0x0020
-#define ANNOTFLAG_READONLY 0x0040
-#define ANNOTFLAG_LOCKED 0x0080
-#define ANNOTFLAG_TOGGLENOVIEW 0x0100
-
-class CPDF_Annot : public CFX_PrivateData {
- public:
- enum AppearanceMode { Normal, Rollover, Down };
-
- CPDF_Annot(CPDF_Dictionary* pDict, CPDF_AnnotList* pList);
- ~CPDF_Annot();
-
- CFX_ByteString GetSubType() const;
- uint32_t GetFlags() const;
- void GetRect(CFX_FloatRect& rect) const;
- const CPDF_Dictionary* GetAnnotDict() const { return m_pAnnotDict; }
- CPDF_Dictionary* GetAnnotDict() { return m_pAnnotDict; }
- FX_BOOL DrawAppearance(CPDF_Page* pPage,
- CFX_RenderDevice* pDevice,
- const CFX_Matrix* pUser2Device,
- AppearanceMode mode,
- const CPDF_RenderOptions* pOptions);
- FX_BOOL DrawInContext(const CPDF_Page* pPage,
- CPDF_RenderContext* pContext,
- const CFX_Matrix* pUser2Device,
- AppearanceMode mode);
- void ClearCachedAP();
- void DrawBorder(CFX_RenderDevice* pDevice,
- const CFX_Matrix* pUser2Device,
- const CPDF_RenderOptions* pOptions);
- CPDF_Form* GetAPForm(const CPDF_Page* pPage, AppearanceMode mode);
-
- private:
- CPDF_Dictionary* const m_pAnnotDict;
- CPDF_AnnotList* const m_pList;
- const CFX_ByteString m_sSubtype;
- std::map<CPDF_Stream*, CPDF_Form*> m_APMap;
-};
-
-class CPDF_AnnotList {
- public:
- explicit CPDF_AnnotList(CPDF_Page* pPage);
- ~CPDF_AnnotList();
-
- void DisplayAnnots(CPDF_Page* pPage,
- CPDF_RenderContext* pContext,
- FX_BOOL bPrinting,
- CFX_Matrix* pMatrix,
- FX_BOOL bShowWidget,
- CPDF_RenderOptions* pOptions) {
- DisplayAnnots(pPage, nullptr, pContext, bPrinting, pMatrix,
- bShowWidget ? 3 : 1, pOptions, nullptr);
- }
-
- void DisplayAnnots(CPDF_Page* pPage,
- CFX_RenderDevice* pDevice,
- CPDF_RenderContext* pContext,
- FX_BOOL bPrinting,
- CFX_Matrix* pMatrix,
- uint32_t dwAnnotFlags,
- CPDF_RenderOptions* pOptions,
- FX_RECT* pClipRect);
- size_t Count() const { return m_AnnotList.size(); }
- CPDF_Annot* GetAt(size_t index) const { return m_AnnotList[index]; }
- const std::vector<CPDF_Annot*>& All() const { return m_AnnotList; }
- CPDF_Document* GetDocument() const { return m_pDocument; }
-
- protected:
- void DisplayPass(CPDF_Page* pPage,
- CFX_RenderDevice* pDevice,
- CPDF_RenderContext* pContext,
- FX_BOOL bPrinting,
- CFX_Matrix* pMatrix,
- FX_BOOL bWidget,
- CPDF_RenderOptions* pOptions,
- FX_RECT* clip_rect);
-
- CPDF_Document* const m_pDocument;
- std::vector<CPDF_Annot*> m_AnnotList;
-};
-
-#define COLORTYPE_TRANSPARENT 0
-#define COLORTYPE_GRAY 1
-#define COLORTYPE_RGB 2
-#define COLORTYPE_CMYK 3
-class CPDF_DefaultAppearance {
- public:
- CPDF_DefaultAppearance() {}
- explicit CPDF_DefaultAppearance(const CFX_ByteString& csDA) : m_csDA(csDA) {}
-
- CPDF_DefaultAppearance(const CPDF_DefaultAppearance& cDA) {
- m_csDA = cDA.GetStr();
- }
-
- CFX_ByteString GetStr() const { return m_csDA; }
- FX_BOOL HasFont();
- CFX_ByteString GetFontString();
- void GetFont(CFX_ByteString& csFontNameTag, FX_FLOAT& fFontSize);
- FX_BOOL HasColor(FX_BOOL bStrokingOperation = FALSE);
- CFX_ByteString GetColorString(FX_BOOL bStrokingOperation = FALSE);
- void GetColor(int& iColorType,
- FX_FLOAT fc[4],
- FX_BOOL bStrokingOperation = FALSE);
- void GetColor(FX_ARGB& color,
- int& iColorType,
- FX_BOOL bStrokingOperation = FALSE);
- FX_BOOL HasTextMatrix();
- CFX_ByteString GetTextMatrixString();
- CFX_Matrix GetTextMatrix();
-
- protected:
- CFX_ByteString m_csDA;
-};
-
-#define FIELDTYPE_UNKNOWN 0
-#define FIELDTYPE_PUSHBUTTON 1
-#define FIELDTYPE_CHECKBOX 2
-#define FIELDTYPE_RADIOBUTTON 3
-#define FIELDTYPE_COMBOBOX 4
-#define FIELDTYPE_LISTBOX 5
-#define FIELDTYPE_TEXTFIELD 6
-#define FIELDTYPE_SIGNATURE 7
-class CPDF_InterForm : public CFX_PrivateData {
- public:
- CPDF_InterForm(CPDF_Document* pDocument, FX_BOOL bUpdateAP);
- ~CPDF_InterForm();
-
- static void EnableUpdateAP(FX_BOOL bUpdateAP);
-
- static FX_BOOL UpdatingAPEnabled();
-
- static CFX_ByteString GenerateNewResourceName(const CPDF_Dictionary* pResDict,
- const FX_CHAR* csType,
- int iMinLen = 2,
- const FX_CHAR* csPrefix = "");
-
- static CPDF_Font* AddStandardFont(CPDF_Document* pDocument,
- CFX_ByteString csFontName);
-
- static CFX_ByteString GetNativeFont(uint8_t iCharSet,
- void* pLogFont = nullptr);
-
- static CFX_ByteString GetNativeFont(void* pLogFont = nullptr);
-
- static uint8_t GetNativeCharSet();
-
- static CPDF_Font* AddNativeFont(uint8_t iCharSet, CPDF_Document* pDocument);
-
- static CPDF_Font* AddNativeFont(CPDF_Document* pDocument);
-
- FX_BOOL ValidateFieldName(CFX_WideString& csNewFieldName, int iType);
-
- FX_BOOL ValidateFieldName(const CPDF_FormField* pField,
- CFX_WideString& csNewFieldName);
-
- FX_BOOL ValidateFieldName(const CPDF_FormControl* pControl,
- CFX_WideString& csNewFieldName);
-
- uint32_t CountFields(const CFX_WideString& csFieldName = L"");
-
- CPDF_FormField* GetField(uint32_t index,
- const CFX_WideString& csFieldName = L"");
-
- CPDF_FormField* GetFieldByDict(CPDF_Dictionary* pFieldDict) const;
-
- CPDF_FormControl* GetControlAtPoint(CPDF_Page* pPage,
- FX_FLOAT pdf_x,
- FX_FLOAT pdf_y,
- int* z_order) const;
-
- CPDF_FormControl* GetControlByDict(const CPDF_Dictionary* pWidgetDict) const;
-
- CPDF_Document* GetDocument() const { return m_pDocument; }
-
- CPDF_Dictionary* GetFormDict() const { return m_pFormDict; }
-
- FX_BOOL NeedConstructAP();
-
- void NeedConstructAP(FX_BOOL bNeedAP);
-
- int CountFieldsInCalculationOrder();
-
- CPDF_FormField* GetFieldInCalculationOrder(int index);
-
- int FindFieldInCalculationOrder(const CPDF_FormField* pField);
-
- uint32_t CountFormFonts();
-
- CPDF_Font* GetFormFont(uint32_t index, CFX_ByteString& csNameTag);
-
- CPDF_Font* GetFormFont(CFX_ByteString csNameTag);
-
- CPDF_Font* GetFormFont(CFX_ByteString csFontName, CFX_ByteString& csNameTag);
-
- CPDF_Font* GetNativeFormFont(uint8_t iCharSet, CFX_ByteString& csNameTag);
-
- CPDF_Font* GetNativeFormFont(CFX_ByteString& csNameTag);
-
- FX_BOOL FindFormFont(const CPDF_Font* pFont, CFX_ByteString& csNameTag);
-
- FX_BOOL FindFormFont(CFX_ByteString csFontName,
- CPDF_Font*& pFont,
- CFX_ByteString& csNameTag);
-
- inline FX_BOOL FindFormFont(CFX_WideString csFontName,
- CPDF_Font*& pFont,
- CFX_ByteString& csNameTag) {
- return FindFormFont(PDF_EncodeText(csFontName), pFont, csNameTag);
- }
-
- void AddFormFont(const CPDF_Font* pFont, CFX_ByteString& csNameTag);
-
- CPDF_Font* AddNativeFormFont(uint8_t iCharSet, CFX_ByteString& csNameTag);
-
- CPDF_Font* AddNativeFormFont(CFX_ByteString& csNameTag);
-
- void RemoveFormFont(const CPDF_Font* pFont);
-
- void RemoveFormFont(CFX_ByteString csNameTag);
-
- CPDF_DefaultAppearance GetDefaultAppearance();
-
- CPDF_Font* GetDefaultFormFont();
-
- int GetFormAlignment();
-
- CPDF_FormField* CheckRequiredFields(
- const std::vector<CPDF_FormField*>* fields,
- bool bIncludeOrExclude) const;
-
- CFDF_Document* ExportToFDF(const CFX_WideStringC& pdf_path,
- bool bSimpleFileSpec = false) const;
-
- CFDF_Document* ExportToFDF(const CFX_WideStringC& pdf_path,
- const std::vector<CPDF_FormField*>& fields,
- bool bIncludeOrExclude = true,
- bool bSimpleFileSpec = false) const;
-
- FX_BOOL ImportFromFDF(const CFDF_Document* pFDFDoc, FX_BOOL bNotify = FALSE);
-
- bool ResetForm(const std::vector<CPDF_FormField*>& fields,
- bool bIncludeOrExclude = true,
- bool bNotify = false);
-
- bool ResetForm(bool bNotify = false);
-
- CPDF_FormNotify* GetFormNotify() const { return m_pFormNotify; }
-
- void SetFormNotify(const CPDF_FormNotify* pNotify);
-
- FX_BOOL IsUpdated() { return m_bUpdated; }
-
- void ClearUpdatedFlag() { m_bUpdated = FALSE; }
-
- FX_BOOL HasXFAForm() const;
-
- void FixPageFields(const CPDF_Page* pPage);
-
- protected:
- static FX_BOOL m_bUpdateAP;
-
- void LoadField(CPDF_Dictionary* pFieldDict, int nLevel = 0);
-
- CPDF_Object* GetFieldAttr(CPDF_Dictionary* pFieldDict, const FX_CHAR* name);
-
- CPDF_FormField* AddTerminalField(CPDF_Dictionary* pFieldDict);
-
- CPDF_FormControl* AddControl(const CPDF_FormField* pField,
- CPDF_Dictionary* pWidgetDict);
-
- void FDF_ImportField(CPDF_Dictionary* pField,
- const CFX_WideString& parent_name,
- FX_BOOL bNotify = FALSE,
- int nLevel = 0);
-
- FX_BOOL ValidateFieldName(CFX_WideString& csNewFieldName,
- int iType,
- const CPDF_FormField* pExcludedField,
- const CPDF_FormControl* pExcludedControl);
-
- int CompareFieldName(const CFX_WideString& name1,
- const CFX_WideString& name2);
-
- int CompareFieldName(const CFX_ByteString& name1,
- const CFX_ByteString& name2);
-
- CPDF_Document* const m_pDocument;
-
- FX_BOOL m_bGenerateAP;
-
- CPDF_Dictionary* m_pFormDict;
-
- std::map<const CPDF_Dictionary*, CPDF_FormControl*> m_ControlMap;
-
- std::unique_ptr<CFieldTree> m_pFieldTree;
-
- CFX_ByteString m_bsEncoding;
-
- CPDF_FormNotify* m_pFormNotify;
-
- FX_BOOL m_bUpdated;
- friend class CPDF_FormControl;
- friend class CPDF_FormField;
-};
-
-#define FORMFIELD_READONLY 0x01
-#define FORMFIELD_REQUIRED 0x02
-#define FORMFIELD_NOEXPORT 0x04
-#define FORMRADIO_NOTOGGLEOFF 0x100
-#define FORMRADIO_UNISON 0x200
-#define FORMTEXT_MULTILINE 0x100
-#define FORMTEXT_PASSWORD 0x200
-#define FORMTEXT_NOSCROLL 0x400
-#define FORMTEXT_COMB 0x800
-#define FORMCOMBO_EDIT 0x100
-#define FORMLIST_MULTISELECT 0x100
-class CPDF_FormField {
- public:
- enum Type {
- Unknown,
- PushButton,
- RadioButton,
- CheckBox,
- Text,
- RichText,
- File,
- ListBox,
- ComboBox,
- Sign
- };
-
- CFX_WideString GetFullName();
-
- Type GetType() const { return m_Type; }
- uint32_t GetFlags() const { return m_Flags; }
-
- CPDF_Dictionary* GetFieldDict() const { return m_pDict; }
- void SetFieldDict(CPDF_Dictionary* pDict) { m_pDict = pDict; }
-
- FX_BOOL ResetField(FX_BOOL bNotify = FALSE);
-
- int CountControls() { return m_ControlList.GetSize(); }
-
- CPDF_FormControl* GetControl(int index) { return m_ControlList.GetAt(index); }
-
- int GetControlIndex(const CPDF_FormControl* pControl);
-
- int GetFieldType();
-
- CPDF_AAction GetAdditionalAction();
-
- CFX_WideString GetAlternateName();
-
- CFX_WideString GetMappingName();
-
- uint32_t GetFieldFlags();
-
- CFX_ByteString GetDefaultStyle();
-
- CFX_WideString GetRichTextString();
-
- CFX_WideString GetValue();
-
- CFX_WideString GetDefaultValue();
-
- FX_BOOL SetValue(const CFX_WideString& value, FX_BOOL bNotify = FALSE);
-
- int GetMaxLen();
-
- int CountSelectedItems();
-
- int GetSelectedIndex(int index);
-
- FX_BOOL ClearSelection(FX_BOOL bNotify = FALSE);
-
- FX_BOOL IsItemSelected(int index);
-
- FX_BOOL SetItemSelection(int index,
- FX_BOOL bSelected,
- FX_BOOL bNotify = FALSE);
-
- FX_BOOL IsItemDefaultSelected(int index);
-
- int GetDefaultSelectedItem();
-
- int CountOptions();
-
- CFX_WideString GetOptionLabel(int index);
-
- CFX_WideString GetOptionValue(int index);
-
- int FindOption(CFX_WideString csOptLabel);
-
- int FindOptionValue(const CFX_WideString& csOptValue);
-
- FX_BOOL CheckControl(int iControlIndex,
- bool bChecked,
- bool bNotify = false);
-
- int GetTopVisibleIndex();
-
- int CountSelectedOptions();
-
- int GetSelectedOptionIndex(int index);
-
- FX_BOOL IsOptionSelected(int iOptIndex);
-
- FX_BOOL SelectOption(int iOptIndex,
- FX_BOOL bSelected,
- FX_BOOL bNotify = FALSE);
-
- FX_BOOL ClearSelectedOptions(FX_BOOL bNotify = FALSE);
-
-#ifdef PDF_ENABLE_XFA
- FX_BOOL ClearOptions(FX_BOOL bNotify = FALSE);
-
- int InsertOption(CFX_WideString csOptLabel,
- int index = -1,
- FX_BOOL bNotify = FALSE);
-#endif // PDF_ENABLE_XFA
-
- FX_FLOAT GetFontSize() { return m_FontSize; }
-
- CPDF_Font* GetFont() { return m_pFont; }
-
- protected:
- CPDF_FormField(CPDF_InterForm* pForm, CPDF_Dictionary* pDict);
- ~CPDF_FormField();
-
- CFX_WideString GetValue(FX_BOOL bDefault);
-
- FX_BOOL SetValue(const CFX_WideString& value,
- FX_BOOL bDefault,
- FX_BOOL bNotify);
-
- void SyncFieldFlags();
-
- int FindListSel(CPDF_String* str);
-
- CFX_WideString GetOptionText(int index, int sub_index);
-
- void LoadDA();
-
- void UpdateAP(CPDF_FormControl* pControl);
-
- CFX_WideString GetCheckValue(FX_BOOL bDefault);
-
- FX_BOOL SetCheckValue(const CFX_WideString& value,
- FX_BOOL bDefault,
- FX_BOOL bNotify);
-
- CPDF_FormField::Type m_Type;
- uint32_t m_Flags;
- CPDF_InterForm* m_pForm;
- CPDF_Dictionary* m_pDict;
- CFX_ArrayTemplate<CPDF_FormControl*> m_ControlList;
- FX_FLOAT m_FontSize;
- CPDF_Font* m_pFont;
-
- friend class CPDF_InterForm;
- friend class CPDF_FormControl;
-};
-
-CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict,
- const FX_CHAR* name,
- int nLevel = 0);
-class CPDF_IconFit {
- public:
- enum ScaleMethod { Always = 0, Bigger, Smaller, Never };
-
- explicit CPDF_IconFit(const CPDF_Dictionary* pDict) : m_pDict(pDict) {}
-
- ScaleMethod GetScaleMethod();
- FX_BOOL IsProportionalScale();
- void GetIconPosition(FX_FLOAT& fLeft, FX_FLOAT& fBottom);
- FX_BOOL GetFittingBounds();
- const CPDF_Dictionary* GetDict() const { return m_pDict; }
-
- protected:
- const CPDF_Dictionary* const m_pDict;
-};
-
-#define TEXTPOS_CAPTION 0
-#define TEXTPOS_ICON 1
-#define TEXTPOS_BELOW 2
-#define TEXTPOS_ABOVE 3
-#define TEXTPOS_RIGHT 4
-#define TEXTPOS_LEFT 5
-#define TEXTPOS_OVERLAID 6
-
-class CPDF_FormControl {
- public:
- enum HighlightingMode { None = 0, Invert, Outline, Push, Toggle };
-
- CPDF_FormField::Type GetType() const { return m_pField->GetType(); }
- CPDF_InterForm* GetInterForm() const { return m_pForm; }
- CPDF_FormField* GetField() const { return m_pField; }
- CPDF_Dictionary* GetWidget() const { return m_pWidgetDict; }
- CFX_FloatRect GetRect() const;
-
- void DrawControl(CFX_RenderDevice* pDevice,
- CFX_Matrix* pMatrix,
- CPDF_Page* pPage,
- CPDF_Annot::AppearanceMode mode,
- const CPDF_RenderOptions* pOptions = nullptr);
-
- CFX_ByteString GetCheckedAPState();
- CFX_WideString GetExportValue();
-
- bool IsChecked() const;
- bool IsDefaultChecked() const;
-
- HighlightingMode GetHighlightingMode();
- bool HasMKEntry(CFX_ByteString csEntry) const;
- int GetRotation();
-
- inline FX_ARGB GetBorderColor(int& iColorType) {
- return GetColor(iColorType, "BC");
- }
-
- FX_FLOAT GetOriginalBorderColor(int index) {
- return GetOriginalColor(index, "BC");
- }
-
- void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) {
- GetOriginalColor(iColorType, fc, "BC");
- }
-
- FX_ARGB GetBackgroundColor(int& iColorType) {
- return GetColor(iColorType, "BG");
- }
-
- FX_FLOAT GetOriginalBackgroundColor(int index) {
- return GetOriginalColor(index, "BG");
- }
-
- void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) {
- GetOriginalColor(iColorType, fc, "BG");
- }
-
- CFX_WideString GetNormalCaption() { return GetCaption("CA"); }
-
- CFX_WideString GetRolloverCaption() { return GetCaption("RC"); }
-
- CFX_WideString GetDownCaption() { return GetCaption("AC"); }
-
- CPDF_Stream* GetNormalIcon() { return GetIcon("I"); }
-
- CPDF_Stream* GetRolloverIcon() { return GetIcon("RI"); }
-
- CPDF_Stream* GetDownIcon() { return GetIcon("IX"); }
-
- CPDF_IconFit GetIconFit();
-
- int GetTextPosition();
-
- CPDF_Action GetAction();
-
- CPDF_AAction GetAdditionalAction();
-
- CPDF_DefaultAppearance GetDefaultAppearance();
-
- CPDF_Font* GetDefaultControlFont();
-
- int GetControlAlignment();
-
- protected:
- CPDF_FormControl(CPDF_FormField* pField, CPDF_Dictionary* pWidgetDict);
-
- CFX_ByteString GetOnStateName() const;
- void SetOnStateName(const CFX_ByteString& csOn);
-
- void CheckControl(FX_BOOL bChecked);
-
- FX_ARGB GetColor(int& iColorType, CFX_ByteString csEntry);
-
- FX_FLOAT GetOriginalColor(int index, CFX_ByteString csEntry);
-
- void GetOriginalColor(int& iColorType,
- FX_FLOAT fc[4],
- CFX_ByteString csEntry);
-
- CFX_WideString GetCaption(CFX_ByteString csEntry);
-
- CPDF_Stream* GetIcon(CFX_ByteString csEntry);
-
- CPDF_ApSettings GetMK() const;
-
- CPDF_InterForm* m_pForm;
-
- CPDF_FormField* m_pField;
-
- CPDF_Dictionary* m_pWidgetDict;
- friend class CPDF_InterForm;
- friend class CPDF_FormField;
-};
-
-class CPDF_FormNotify {
- public:
- virtual ~CPDF_FormNotify() {}
-
- virtual int BeforeValueChange(CPDF_FormField* pField,
- const CFX_WideString& csValue) {
- return 0;
- }
- virtual void AfterValueChange(CPDF_FormField* pField) {}
- virtual int BeforeSelectionChange(CPDF_FormField* pField,
- const CFX_WideString& csValue) {
- return 0;
- }
- virtual void AfterSelectionChange(CPDF_FormField* pField) {}
- virtual void AfterCheckedStatusChange(CPDF_FormField* pField) {}
- virtual int BeforeFormReset(CPDF_InterForm* pForm) { return 0; }
- virtual void AfterFormReset(CPDF_InterForm* pForm) {}
- virtual int BeforeFormImportData(CPDF_InterForm* pForm) { return 0; }
- virtual void AfterFormImportData(CPDF_InterForm* pForm) {}
-};
-
-class CPDF_PageLabel {
- public:
- explicit CPDF_PageLabel(CPDF_Document* pDocument) : m_pDocument(pDocument) {}
-
- CFX_WideString GetLabel(int nPage) const;
- int32_t GetPageByLabel(const CFX_ByteStringC& bsLabel) const;
- int32_t GetPageByLabel(const CFX_WideStringC& wsLabel) const;
-
- protected:
- CPDF_Document* const m_pDocument;
-};
-
-class CPDF_Metadata {
- public:
- explicit CPDF_Metadata(CPDF_Document* pDoc);
- ~CPDF_Metadata();
-
- const CXML_Element* GetRoot() const;
-
- private:
- std::unique_ptr<CXML_Element> m_pXmlElement;
-};
-
-class CPDF_ViewerPreferences {
- public:
- explicit CPDF_ViewerPreferences(CPDF_Document* pDoc);
- ~CPDF_ViewerPreferences();
-
- FX_BOOL IsDirectionR2L() const;
- FX_BOOL PrintScaling() const;
- int32_t NumCopies() const;
- CPDF_Array* PrintPageRange() const;
- CFX_ByteString Duplex() const;
-
- protected:
- CPDF_Document* const m_pDoc;
-};
-
-class CPDF_ApSettings {
- public:
- explicit CPDF_ApSettings(CPDF_Dictionary* pDict);
-
- bool HasMKEntry(const CFX_ByteStringC& csEntry) const;
- int GetRotation() const;
-
- FX_ARGB GetBorderColor(int& iColorType) const {
- return GetColor(iColorType, "BC");
- }
-
- FX_FLOAT GetOriginalBorderColor(int index) const {
- return GetOriginalColor(index, "BC");
- }
-
- void GetOriginalBorderColor(int& iColorType, FX_FLOAT fc[4]) const {
- GetOriginalColor(iColorType, fc, "BC");
- }
-
- FX_ARGB GetBackgroundColor(int& iColorType) const {
- return GetColor(iColorType, "BG");
- }
-
- FX_FLOAT GetOriginalBackgroundColor(int index) const {
- return GetOriginalColor(index, "BG");
- }
-
- void GetOriginalBackgroundColor(int& iColorType, FX_FLOAT fc[4]) const {
- GetOriginalColor(iColorType, fc, "BG");
- }
-
- CFX_WideString GetNormalCaption() const { return GetCaption("CA"); }
-
- CFX_WideString GetRolloverCaption() const { return GetCaption("RC"); }
-
- CFX_WideString GetDownCaption() const { return GetCaption("AC"); }
-
- CPDF_Stream* GetNormalIcon() const { return GetIcon("I"); }
-
- CPDF_Stream* GetRolloverIcon() const { return GetIcon("RI"); }
-
- CPDF_Stream* GetDownIcon() const { return GetIcon("IX"); }
-
- CPDF_IconFit GetIconFit() const;
-
- int GetTextPosition() const;
-
- protected:
- friend class CPDF_FormControl;
-
- FX_ARGB GetColor(int& iColorType, const CFX_ByteStringC& csEntry) const;
-
- FX_FLOAT GetOriginalColor(int index, const CFX_ByteStringC& csEntry) const;
-
- void GetOriginalColor(int& iColorType,
- FX_FLOAT fc[4],
- const CFX_ByteStringC& csEntry) const;
-
- CFX_WideString GetCaption(const CFX_ByteStringC& csEntry) const;
-
- CPDF_Stream* GetIcon(const CFX_ByteStringC& csEntry) const;
-
- CPDF_Dictionary* const m_pDict;
-};
-
-CFX_WideString FILESPEC_EncodeFileName(const CFX_WideStringC& filepath);
-
-#endif // CORE_INCLUDE_FPDFDOC_FPDF_DOC_H_