f3a61c9611b2a2a0b06a61a723ddca2c28ba2da3
[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 {
16 public:
17     CFPF_SkiaFont();
18     virtual ~CFPF_SkiaFont();
19     virtual void                        Release();
20     virtual IFPF_Font*          Retain();
21
22     virtual FPF_HFONT           GetHandle();
23
24     virtual CFX_ByteString      GetFamilyName();
25     virtual CFX_WideString      GetPsName();
26
27     virtual FX_DWORD            GetFontStyle() const
28     {
29         return m_dwStyle;
30     }
31     virtual uint8_t                     GetCharset() const
32     {
33         return m_uCharset;
34     }
35
36     virtual int32_t             GetGlyphIndex(FX_WCHAR wUnicode);
37     virtual int32_t             GetGlyphWidth(int32_t iGlyphIndex);
38
39     virtual int32_t             GetAscent() const;
40     virtual int32_t             GetDescent() const;
41
42     virtual FX_BOOL                     GetGlyphBBox(int32_t iGlyphIndex, FX_RECT &rtBBox);
43     virtual FX_BOOL                     GetBBox(FX_RECT &rtBBox);
44
45     virtual int32_t             GetHeight() const;
46     virtual int32_t             GetItalicAngle() const;
47     virtual FX_DWORD            GetFontData(FX_DWORD dwTable, uint8_t* pBuffer, FX_DWORD dwSize);
48     FX_BOOL                                     InitFont(CFPF_SkiaFontMgr *pFontMgr, CFPF_SkiaFontDescriptor *pFontDes, const CFX_ByteStringC& bsFamily, FX_DWORD dwStyle, uint8_t uCharset);
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_