// 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; | |
}; |