4a841940dffbd8707cd6973272abed6348c9c2e1
[pdfium.git] / core / src / fxge / android / fpf_skiafont.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_ANDROID_FPF_SKIAFONT_H_
8 #define CORE_SRC_FXGE_ANDROID_FPF_SKIAFONT_H_
9
10 #if _FX_OS_ == _FX_ANDROID_
11 class CFPF_SkiaFontDescriptor;
12 class CFPF_SkiaFontMgr;
13 class SkTypeface;
14 class CFPF_SkiaFont : public IFPF_Font {
15  public:
16   CFPF_SkiaFont();
17   virtual ~CFPF_SkiaFont();
18   virtual void Release();
19   virtual IFPF_Font* Retain();
20
21   virtual FPF_HFONT GetHandle();
22
23   virtual CFX_ByteString GetFamilyName();
24   virtual CFX_WideString GetPsName();
25
26   virtual FX_DWORD GetFontStyle() const { return m_dwStyle; }
27   virtual uint8_t GetCharset() const { return m_uCharset; }
28
29   virtual int32_t GetGlyphIndex(FX_WCHAR wUnicode);
30   virtual int32_t GetGlyphWidth(int32_t iGlyphIndex);
31
32   virtual int32_t GetAscent() const;
33   virtual int32_t GetDescent() const;
34
35   virtual FX_BOOL GetGlyphBBox(int32_t iGlyphIndex, FX_RECT& rtBBox);
36   virtual FX_BOOL GetBBox(FX_RECT& rtBBox);
37
38   virtual int32_t GetHeight() const;
39   virtual int32_t GetItalicAngle() const;
40   virtual FX_DWORD GetFontData(FX_DWORD dwTable,
41                                uint8_t* pBuffer,
42                                FX_DWORD dwSize);
43   FX_BOOL InitFont(CFPF_SkiaFontMgr* pFontMgr,
44                    CFPF_SkiaFontDescriptor* pFontDes,
45                    const CFX_ByteStringC& bsFamily,
46                    FX_DWORD dwStyle,
47                    uint8_t uCharset);
48
49  protected:
50   CFPF_SkiaFontMgr* m_pFontMgr;
51   CFPF_SkiaFontDescriptor* m_pFontDes;
52   FXFT_Face m_Face;
53   FX_DWORD m_dwStyle;
54   uint8_t m_uCharset;
55   FX_DWORD m_dwRefCount;
56 };
57 #endif
58
59 #endif  // CORE_SRC_FXGE_ANDROID_FPF_SKIAFONT_H_