From 5110c4743751145c4ae1934cd1d83bc6c55bb43f Mon Sep 17 00:00:00 2001 From: John Abd-El-Malek Date: Sat, 17 May 2014 22:33:34 -0700 Subject: Initial commit. --- core/include/fpdfdoc/fpdf_ap.h | 92 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 core/include/fpdfdoc/fpdf_ap.h (limited to 'core/include/fpdfdoc/fpdf_ap.h') diff --git a/core/include/fpdfdoc/fpdf_ap.h b/core/include/fpdfdoc/fpdf_ap.h new file mode 100644 index 0000000000..4b6a371110 --- /dev/null +++ b/core/include/fpdfdoc/fpdf_ap.h @@ -0,0 +1,92 @@ +// 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 + +#define _FPDF_AP_H_ +#include "../fxcrt/fx_basic.h" +#include "../fpdfapi/fpdf_parser.h" +#include "fpdf_vt.h" +class IPVT_FontMap +{ +public: + + virtual CPDF_Font* GetPDFFont(FX_INT32 nFontIndex) = 0; + + virtual CFX_ByteString GetPDFFontAlias(FX_INT32 nFontIndex) = 0; +}; +struct CPVT_Dash { + + CPVT_Dash(FX_INT32 dash, FX_INT32 gap, FX_INT32 phase) : nDash(dash), nGap(gap), nPhase(phase) + {} + + FX_INT32 nDash; + + FX_INT32 nGap; + + FX_INT32 nPhase; +}; +#define CT_TRANSPARENT 0 +#define CT_GRAY 1 +#define CT_RGB 2 +#define CT_CMYK 3 +struct CPVT_Color { + + CPVT_Color(FX_INT32 type = 0, FX_FLOAT color1 = 0.0f, FX_FLOAT color2 = 0.0f, FX_FLOAT color3 = 0.0f, FX_FLOAT color4 = 0.0f) + : nColorType(type), fColor1(color1), fColor2(color2), fColor3(color3), fColor4(color4) + {} + + FX_INT32 nColorType; + FX_FLOAT fColor1; + FX_FLOAT fColor2; + FX_FLOAT fColor3; + FX_FLOAT fColor4; +}; +class CPVT_Provider : public IPDF_VariableText_Provider +{ +public: + + CPVT_Provider(IPVT_FontMap * pFontMap); + + virtual ~CPVT_Provider(); + + FX_INT32 GetCharWidth(FX_INT32 nFontIndex, FX_WORD word, FX_INT32 nWordStyle); + + FX_INT32 GetTypeAscent(FX_INT32 nFontIndex); + + FX_INT32 GetTypeDescent(FX_INT32 nFontIndex); + + FX_INT32 GetWordFontIndex(FX_WORD word, FX_INT32 charset, FX_INT32 nFontIndex); + + FX_BOOL IsLatinWord(FX_WORD word); + + FX_INT32 GetDefaultFontIndex(); +private: + + IPVT_FontMap * m_pFontMap; +}; +#define PBS_SOLID 0 +#define PBS_DASH 1 +#define PBS_BEVELED 2 +#define PBS_INSET 3 +#define PBS_UNDERLINED 4 +class CPVT_GenerateAP +{ +public: + + static FX_BOOL GenerateTextFieldAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict); + + static FX_BOOL GenerateComboBoxAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict); + + static FX_BOOL GenerateListBoxAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict); + + static CFX_ByteString GenerateEditAP(IPVT_FontMap * pFontMap, IPDF_VariableText_Iterator * pIterator, + const CPDF_Point & ptOffset, FX_BOOL bContinuous, FX_WORD SubWord = 0, const CPVT_WordRange * pVisible = NULL); + + static CFX_ByteString GenerateBorderAP(const CPDF_Rect & rect, FX_FLOAT fWidth, + const CPVT_Color & color, const CPVT_Color & crLeftTop, const CPVT_Color & crRightBottom, + FX_INT32 nStyle, const CPVT_Dash & dash); + + static CFX_ByteString GenerateColorAP(const CPVT_Color & color, const FX_BOOL & bFillOrStroke); +}; -- cgit v1.2.3