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