• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 struct _CFX_UniqueKeyGen {
8     void		Generate(int count, ...);
9     FX_CHAR		m_Key[128];
10     int			m_KeyLen;
11 };
12 class CFX_SizeGlyphCache : public CFX_Object
13 {
14 public:
CFX_SizeGlyphCache()15     CFX_SizeGlyphCache()
16     {
17         m_GlyphMap.InitHashTable(253);
18     }
19     ~CFX_SizeGlyphCache();
20     CFX_MapPtrToPtr			m_GlyphMap;
21 };
22 class CTTFontDesc : public CFX_Object
23 {
24 public:
CTTFontDesc()25     CTTFontDesc()
26     {
27         m_Type = 0;
28         m_pFontData = NULL;
29         m_RefCount = 0;
30     }
31     ~CTTFontDesc();
32     FX_BOOL			ReleaseFace(FXFT_Face face);
33     int				m_Type;
34     union {
35         struct {
36             FX_BOOL		m_bItalic;
37             FX_BOOL		m_bBold;
38             FXFT_Face	m_pFace;
39         } m_SingleFace;
40         struct {
41             FXFT_Face	m_pFaces[16];
42         } m_TTCFace;
43     };
44     FX_BYTE*		m_pFontData;
45     int				m_RefCount;
46 };
47 class CFX_UnicodeEncoding : public IFX_FontEncoding
48 {
49 public:
50     CFX_UnicodeEncoding(CFX_Font* pFont);
51     virtual FX_DWORD		GlyphFromCharCodeEx(FX_DWORD charcode, int encoding = ENCODING_UNICODE);
52 private:
53     CFX_Font*			m_pFont;
54     virtual FX_DWORD		GlyphFromCharCode(FX_DWORD charcode);
UnicodeFromCharCode(FX_DWORD charcode)55     virtual CFX_WideString	UnicodeFromCharCode(FX_DWORD charcode) const
56     {
57         return CFX_WideString((FX_WCHAR)charcode);
58     }
CharCodeFromUnicode(FX_WCHAR Unicode)59     virtual FX_DWORD		CharCodeFromUnicode(FX_WCHAR Unicode) const
60     {
61         return Unicode;
62     }
IsUnicodeCompatible()63     virtual FX_BOOL			IsUnicodeCompatible() const
64     {
65         return TRUE;
66     }
67 };
68 #define CHARSET_FLAG_ANSI		1
69 #define CHARSET_FLAG_SYMBOL		2
70 #define CHARSET_FLAG_SHIFTJIS	4
71 #define CHARSET_FLAG_BIG5		8
72 #define CHARSET_FLAG_GB			16
73 #define CHARSET_FLAG_KOREAN		32
74 class CFontFaceInfo : public CFX_Object
75 {
76 public:
77     CFX_ByteString		m_FilePath;
78     CFX_ByteString		m_FaceName;
79     FX_DWORD			m_Styles;
80     FX_DWORD			m_Charsets;
81     FX_DWORD			m_FontOffset;
82     FX_DWORD			m_FileSize;
83     CFX_ByteString		m_FontTables;
84 };
85 class CFontFileFaceInfo : public CFX_Object
86 {
87 public:
88     CFontFileFaceInfo();
89     ~CFontFileFaceInfo();
90     IFX_FileStream*		m_pFile;
91     FXFT_Face			m_Face;
92     CFX_ByteString		m_FaceName;
93     FX_DWORD			m_Charsets;
94     FX_DWORD			m_FileSize;
95     FX_DWORD			m_FontOffset;
96     int					m_Weight;
97     FX_BOOL				m_bItalic;
98     int					m_PitchFamily;
99     CFX_ByteString		m_FontTables;
100 };
101