| // 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_SRC_FXGE_GE_TEXT_INT_H_ |
| #define CORE_SRC_FXGE_GE_TEXT_INT_H_ |
| |
| struct _CFX_UniqueKeyGen { |
| void Generate(int count, ...); |
| FX_CHAR m_Key[128]; |
| int m_KeyLen; |
| }; |
| class CFX_SizeGlyphCache { |
| public: |
| CFX_SizeGlyphCache() { m_GlyphMap.InitHashTable(253); } |
| ~CFX_SizeGlyphCache(); |
| CFX_MapPtrToPtr m_GlyphMap; |
| }; |
| class CTTFontDesc { |
| 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; |
| }; |
| uint8_t* 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 CFX_FontFaceInfo { |
| public: |
| CFX_FontFaceInfo(CFX_ByteString filePath, |
| CFX_ByteString faceName, |
| CFX_ByteString fontTables, |
| FX_DWORD fontOffset, |
| FX_DWORD fileSize) |
| : m_FilePath(filePath), |
| m_FaceName(faceName), |
| m_FontTables(fontTables), |
| m_FontOffset(fontOffset), |
| m_FileSize(fileSize), |
| m_Styles(0), |
| m_Charsets(0) {} |
| |
| const CFX_ByteString m_FilePath; |
| const CFX_ByteString m_FaceName; |
| const CFX_ByteString m_FontTables; |
| const FX_DWORD m_FontOffset; |
| const FX_DWORD m_FileSize; |
| FX_DWORD m_Styles; |
| FX_DWORD m_Charsets; |
| }; |
| |
| class CFontFileFaceInfo { |
| 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; |
| }; |
| |
| #endif // CORE_SRC_FXGE_GE_TEXT_INT_H_ |