Cleanup CFX_UnicodeEncoding and remove IFX_FontEncoding.
[pdfium.git] / core / src / fxge / ge / text_int.h
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  public:
17   CFX_SizeGlyphCache() { m_GlyphMap.InitHashTable(253); }
18   ~CFX_SizeGlyphCache();
19   CFX_MapPtrToPtr m_GlyphMap;
20 };
21 class CTTFontDesc {
22  public:
23   CTTFontDesc() {
24     m_Type = 0;
25     m_pFontData = NULL;
26     m_RefCount = 0;
27   }
28   ~CTTFontDesc();
29   FX_BOOL ReleaseFace(FXFT_Face face);
30   int m_Type;
31   union {
32     struct {
33       FX_BOOL m_bItalic;
34       FX_BOOL m_bBold;
35       FXFT_Face m_pFace;
36     } m_SingleFace;
37     struct {
38       FXFT_Face m_pFaces[16];
39     } m_TTCFace;
40   };
41   uint8_t* m_pFontData;
42   int m_RefCount;
43 };
44
45 #define CHARSET_FLAG_ANSI 1
46 #define CHARSET_FLAG_SYMBOL 2
47 #define CHARSET_FLAG_SHIFTJIS 4
48 #define CHARSET_FLAG_BIG5 8
49 #define CHARSET_FLAG_GB 16
50 #define CHARSET_FLAG_KOREAN 32
51
52 class CFX_FontFaceInfo {
53  public:
54   CFX_FontFaceInfo(CFX_ByteString filePath,
55                    CFX_ByteString faceName,
56                    CFX_ByteString fontTables,
57                    FX_DWORD fontOffset,
58                    FX_DWORD fileSize)
59       : m_FilePath(filePath),
60         m_FaceName(faceName),
61         m_FontTables(fontTables),
62         m_FontOffset(fontOffset),
63         m_FileSize(fileSize),
64         m_Styles(0),
65         m_Charsets(0) {}
66
67   const CFX_ByteString m_FilePath;
68   const CFX_ByteString m_FaceName;
69   const CFX_ByteString m_FontTables;
70   const FX_DWORD m_FontOffset;
71   const FX_DWORD m_FileSize;
72   FX_DWORD m_Styles;
73   FX_DWORD m_Charsets;
74 };
75
76 class CFontFileFaceInfo {
77  public:
78   CFontFileFaceInfo();
79   ~CFontFileFaceInfo();
80
81   IFX_FileStream* m_pFile;
82   FXFT_Face m_Face;
83   CFX_ByteString m_FaceName;
84   FX_DWORD m_Charsets;
85   FX_DWORD m_FileSize;
86   FX_DWORD m_FontOffset;
87   int m_Weight;
88   FX_BOOL m_bItalic;
89   int m_PitchFamily;
90   CFX_ByteString m_FontTables;
91 };
92
93 #endif  // CORE_SRC_FXGE_GE_TEXT_INT_H_