| // 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 | |
| struct _CFX_UniqueKeyGen { | |
| void Generate(int count, ...); | |
| FX_CHAR m_Key[128]; | |
| int m_KeyLen; | |
| }; | |
| class CFX_SizeGlyphCache : public CFX_Object | |
| { | |
| public: | |
| CFX_SizeGlyphCache() | |
| { | |
| m_GlyphMap.InitHashTable(253); | |
| } | |
| ~CFX_SizeGlyphCache(); | |
| CFX_MapPtrToPtr m_GlyphMap; | |
| }; | |
| class CTTFontDesc : public CFX_Object | |
| { | |
| public: | |
| CTTFontDesc() | |
| { | |
| m_Type = 0; | |
| m_pFontData = NULL; | |
| m_RefCount = 0; | |
| } | |
| ~CTTFontDesc(); | |
| FX_BOOL ReleaseFace(FXFT_Face face); | |
| int m_Type; | |
| union { | |
| struct { | |
| FX_BOOL m_bItalic; | |
| FX_BOOL m_bBold; | |
| FXFT_Face m_pFace; | |
| } m_SingleFace; | |
| struct { | |
| FXFT_Face m_pFaces[16]; | |
| } m_TTCFace; | |
| }; | |
| FX_BYTE* m_pFontData; | |
| int m_RefCount; | |
| }; | |
| class CFX_UnicodeEncoding : public IFX_FontEncoding | |
| { | |
| public: | |
| CFX_UnicodeEncoding(CFX_Font* pFont); | |
| virtual FX_DWORD GlyphFromCharCodeEx(FX_DWORD charcode, int encoding = ENCODING_UNICODE); | |
| private: | |
| CFX_Font* m_pFont; | |
| virtual FX_DWORD GlyphFromCharCode(FX_DWORD charcode); | |
| virtual CFX_WideString UnicodeFromCharCode(FX_DWORD charcode) const | |
| { | |
| return CFX_WideString((FX_WCHAR)charcode); | |
| } | |
| virtual FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const | |
| { | |
| return Unicode; | |
| } | |
| virtual FX_BOOL IsUnicodeCompatible() const | |
| { | |
| return TRUE; | |
| } | |
| }; | |
| #define CHARSET_FLAG_ANSI 1 | |
| #define CHARSET_FLAG_SYMBOL 2 | |
| #define CHARSET_FLAG_SHIFTJIS 4 | |
| #define CHARSET_FLAG_BIG5 8 | |
| #define CHARSET_FLAG_GB 16 | |
| #define CHARSET_FLAG_KOREAN 32 | |
| class CFontFaceInfo : public CFX_Object | |
| { | |
| public: | |
| CFX_ByteString m_FilePath; | |
| CFX_ByteString m_FaceName; | |
| FX_DWORD m_Styles; | |
| FX_DWORD m_Charsets; | |
| FX_DWORD m_FontOffset; | |
| FX_DWORD m_FileSize; | |
| CFX_ByteString m_FontTables; | |
| }; | |
| class CFontFileFaceInfo : public CFX_Object | |
| { | |
| public: | |
| CFontFileFaceInfo(); | |
| ~CFontFileFaceInfo(); | |
| IFX_FileStream* m_pFile; | |
| FXFT_Face m_Face; | |
| CFX_ByteString m_FaceName; | |
| FX_DWORD m_Charsets; | |
| FX_DWORD m_FileSize; | |
| FX_DWORD m_FontOffset; | |
| int m_Weight; | |
| FX_BOOL m_bItalic; | |
| int m_PitchFamily; | |
| CFX_ByteString m_FontTables; | |
| }; |