clang-format all pdfium code.
[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 class CFontFaceInfo {
68  public:
69   CFX_ByteString m_FilePath;
70   CFX_ByteString m_FaceName;
71   FX_DWORD m_Styles;
72   FX_DWORD m_Charsets;
73   FX_DWORD m_FontOffset;
74   FX_DWORD m_FileSize;
75   CFX_ByteString m_FontTables;
76 };
77 class CFontFileFaceInfo {
78  public:
79   CFontFileFaceInfo();
80   ~CFontFileFaceInfo();
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_