1 // Copyright 2014 PDFium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6 7 #ifndef CORE_SRC_FXGE_GE_TEXT_INT_H_ 8 #define CORE_SRC_FXGE_GE_TEXT_INT_H_ 9 10 struct _CFX_UniqueKeyGen { 11 void Generate(int count, ...); 12 FX_CHAR m_Key[128]; 13 int m_KeyLen; 14 }; 15 class CFX_SizeGlyphCache 16 { 17 public: CFX_SizeGlyphCache()18 CFX_SizeGlyphCache() 19 { 20 m_GlyphMap.InitHashTable(253); 21 } 22 ~CFX_SizeGlyphCache(); 23 CFX_MapPtrToPtr m_GlyphMap; 24 }; 25 class CTTFontDesc 26 { 27 public: CTTFontDesc()28 CTTFontDesc() 29 { 30 m_Type = 0; 31 m_pFontData = NULL; 32 m_RefCount = 0; 33 } 34 ~CTTFontDesc(); 35 FX_BOOL ReleaseFace(FXFT_Face face); 36 int m_Type; 37 union { 38 struct { 39 FX_BOOL m_bItalic; 40 FX_BOOL m_bBold; 41 FXFT_Face m_pFace; 42 } m_SingleFace; 43 struct { 44 FXFT_Face m_pFaces[16]; 45 } m_TTCFace; 46 }; 47 FX_BYTE* m_pFontData; 48 int m_RefCount; 49 }; 50 class CFX_UnicodeEncoding : public IFX_FontEncoding 51 { 52 public: 53 CFX_UnicodeEncoding(CFX_Font* pFont); 54 virtual FX_DWORD GlyphFromCharCodeEx(FX_DWORD charcode, int encoding = ENCODING_UNICODE); 55 private: 56 CFX_Font* m_pFont; 57 virtual FX_DWORD GlyphFromCharCode(FX_DWORD charcode); UnicodeFromCharCode(FX_DWORD charcode)58 virtual CFX_WideString UnicodeFromCharCode(FX_DWORD charcode) const 59 { 60 return CFX_WideString((FX_WCHAR)charcode); 61 } CharCodeFromUnicode(FX_WCHAR Unicode)62 virtual FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const 63 { 64 return Unicode; 65 } IsUnicodeCompatible()66 virtual FX_BOOL IsUnicodeCompatible() const 67 { 68 return TRUE; 69 } 70 }; 71 #define CHARSET_FLAG_ANSI 1 72 #define CHARSET_FLAG_SYMBOL 2 73 #define CHARSET_FLAG_SHIFTJIS 4 74 #define CHARSET_FLAG_BIG5 8 75 #define CHARSET_FLAG_GB 16 76 #define CHARSET_FLAG_KOREAN 32 77 class CFontFaceInfo 78 { 79 public: 80 CFX_ByteString m_FilePath; 81 CFX_ByteString m_FaceName; 82 FX_DWORD m_Styles; 83 FX_DWORD m_Charsets; 84 FX_DWORD m_FontOffset; 85 FX_DWORD m_FileSize; 86 CFX_ByteString m_FontTables; 87 }; 88 class CFontFileFaceInfo 89 { 90 public: 91 CFontFileFaceInfo(); 92 ~CFontFileFaceInfo(); 93 IFX_FileStream* m_pFile; 94 FXFT_Face m_Face; 95 CFX_ByteString m_FaceName; 96 FX_DWORD m_Charsets; 97 FX_DWORD m_FileSize; 98 FX_DWORD m_FontOffset; 99 int m_Weight; 100 FX_BOOL m_bItalic; 101 int m_PitchFamily; 102 CFX_ByteString m_FontTables; 103 }; 104 105 #endif // CORE_SRC_FXGE_GE_TEXT_INT_H_ 106