clang-format all pdfium code, again.
[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 class CFX_UnicodeEncoding : public IFX_FontEncoding {
45  public:
46   CFX_UnicodeEncoding(CFX_Font* pFont);
47   virtual FX_DWORD GlyphFromCharCodeEx(FX_DWORD charcode,
48                                        int encoding = ENCODING_UNICODE);
49
50  private:
51   CFX_Font* m_pFont;
52   virtual FX_DWORD GlyphFromCharCode(FX_DWORD charcode);
53   virtual CFX_WideString UnicodeFromCharCode(FX_DWORD charcode) const {
54     return CFX_WideString((FX_WCHAR)charcode);
55   }
56   virtual FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const {
57     return Unicode;
58   }
59   virtual FX_BOOL IsUnicodeCompatible() const { return TRUE; }
60 };
61 #define CHARSET_FLAG_ANSI 1
62 #define CHARSET_FLAG_SYMBOL 2
63 #define CHARSET_FLAG_SHIFTJIS 4
64 #define CHARSET_FLAG_BIG5 8
65 #define CHARSET_FLAG_GB 16
66 #define CHARSET_FLAG_KOREAN 32
67
68 class CFX_FontFaceInfo {
69  public:
70   CFX_FontFaceInfo(CFX_ByteString filePath,
71                    CFX_ByteString faceName,
72                    CFX_ByteString fontTables,
73                    FX_DWORD fontOffset,
74                    FX_DWORD fileSize)
75       : m_FilePath(filePath),
76         m_FaceName(faceName),
77         m_FontTables(fontTables),
78         m_FontOffset(fontOffset),
79         m_FileSize(fileSize),
80         m_Styles(0),
81         m_Charsets(0) {}
82
83   const CFX_ByteString m_FilePath;
84   const CFX_ByteString m_FaceName;
85   const CFX_ByteString m_FontTables;
86   const FX_DWORD m_FontOffset;
87   const FX_DWORD m_FileSize;
88   FX_DWORD m_Styles;
89   FX_DWORD m_Charsets;
90 };
91
92 class CFontFileFaceInfo {
93  public:
94   CFontFileFaceInfo();
95   ~CFontFileFaceInfo();
96
97   IFX_FileStream* m_pFile;
98   FXFT_Face m_Face;
99   CFX_ByteString m_FaceName;
100   FX_DWORD m_Charsets;
101   FX_DWORD m_FileSize;
102   FX_DWORD m_FontOffset;
103   int m_Weight;
104   FX_BOOL m_bItalic;
105   int m_PitchFamily;
106   CFX_ByteString m_FontTables;
107 };
108
109 #endif  // CORE_SRC_FXGE_GE_TEXT_INT_H_