From 2a0bb3bcf8db77f9ad39a5a868548ea8465244a4 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Tue, 12 May 2015 12:37:14 -0700 Subject: Merge to XFA: NEW public API for pdfwindow font manipulation. Original Review URL: https://codereview.chromium.org/1126283004 BUG=486818 TBR=thestig@chromium.org Review URL: https://codereview.chromium.org/1137163002 --- fpdfsdk/include/pdfwindow/PWL_FontMap.h | 6 ++---- fpdfsdk/src/fpdf_sysfontinfo.cpp | 6 ++++++ public/fpdf_sysfontinfo.h | 23 ++++++++++++++++++++++- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/fpdfsdk/include/pdfwindow/PWL_FontMap.h b/fpdfsdk/include/pdfwindow/PWL_FontMap.h index a7aac6d698..2ff6c0f38c 100644 --- a/fpdfsdk/include/pdfwindow/PWL_FontMap.h +++ b/fpdfsdk/include/pdfwindow/PWL_FontMap.h @@ -7,6 +7,7 @@ #ifndef _PWL_FONTMAP_H_ #define _PWL_FONTMAP_H_ +#include "../../../public/fpdf_sysfontinfo.h" #include "../fxedit/fx_edit.h" class CPDF_Document; @@ -111,10 +112,7 @@ private: CFX_ByteString GetNativeFont(FX_INT32 nCharset); public: - struct CharsetFontMap { - FX_INT32 charset; - const char* fontname; - }; + using CharsetFontMap = FPDF_CharsetFontMap; static const CharsetFontMap defaultTTFMap[]; protected: diff --git a/fpdfsdk/src/fpdf_sysfontinfo.cpp b/fpdfsdk/src/fpdf_sysfontinfo.cpp index 603bb62250..f73a7701dc 100644 --- a/fpdfsdk/src/fpdf_sysfontinfo.cpp +++ b/fpdfsdk/src/fpdf_sysfontinfo.cpp @@ -6,6 +6,7 @@ #include "../../public/fpdf_sysfontinfo.h" #include "../include/fsdk_define.h" +#include "../include/pdfwindow/PWL_FontMap.h" class CSysFontInfo_Ext FX_FINAL : public IFX_SystemFontInfo { @@ -94,6 +95,11 @@ DLLEXPORT void STDCALL FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* pFontInfoExt) CFX_GEModule::Get()->GetFontMgr()->SetSystemFontInfo(pFontInfo); } +DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap() +{ + return CPWL_FontMap::defaultTTFMap; +} + struct FPDF_SYSFONTINFO_DEFAULT : public FPDF_SYSFONTINFO { IFX_SystemFontInfo* m_pFontInfo; diff --git a/public/fpdf_sysfontinfo.h b/public/fpdf_sysfontinfo.h index 00c9fab0e6..275ca84d55 100644 --- a/public/fpdf_sysfontinfo.h +++ b/public/fpdf_sysfontinfo.h @@ -32,7 +32,6 @@ extern "C" { #endif - /** * Interface: FPDF_SYSFONTINFO * Interface for getting system font information and font mapping @@ -192,6 +191,28 @@ typedef struct _FPDF_SYSFONTINFO { void (*DeleteFont)(struct _FPDF_SYSFONTINFO* pThis, void* hFont); } FPDF_SYSFONTINFO; +/** + * Struct: FPDF_CharsetFontMap + * Provides the name of a font to use for a given charset value. + **/ +typedef struct FPDF_CharsetFontMap_ +{ + int charset; // Character Set Enum value, see FXFONT_*_CHARSET above. + const char* fontname; // Name of default font to use with that charset. +} FPDF_CharsetFontMap; + +/** + * Function: FPDF_GetDefaultTTFMap + * Returns a pointer to the default character set to TT Font name map. The + * map is an array of FPDF_CharsetFontMap structs, with its end indicated + * by a { -1, NULL } entry. + * Parameters: + * None. + * Return Value: + * Pointer to the Charset Font Map. + **/ +DLLEXPORT const FPDF_CharsetFontMap* STDCALL FPDF_GetDefaultTTFMap(); + /** * Function: FPDF_AddInstalledFont * Add a system font to the list in Foxit SDK. -- cgit v1.2.3