merge to XFA: Fix -Wnon-virtual-dtor compiler warnings.
[pdfium.git] / core / include / fxge / fpf.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 _FX_PALTFORM_DEVICE_H_
8 #define _FX_PALTFORM_DEVICE_H_
9 class IFPF_DeviceModule;
10 class IFPF_FontMgr;
11 class IFPF_Font;
12 class IFPF_DeviceModule
13 {
14 public:
15     virtual ~IFPF_DeviceModule() { }
16     virtual void                                Destroy() = 0;
17     virtual IFPF_FontMgr*               GetFontMgr() = 0;
18 };
19 IFPF_DeviceModule*      FPF_GetDeviceModule();
20 #define FPF_MATCHFONT_REPLACEANSI               1
21 FX_DEFINEHANDLE(FPF_HFONT);
22 class IFPF_Font
23 {
24 public:
25     virtual void                        Release() = 0;
26     virtual IFPF_Font*          Retain() = 0;
27     virtual FPF_HFONT           GetHandle() = 0;
28     virtual CFX_ByteString      GetFamilyName() = 0;
29     virtual CFX_WideString      GetPsName() = 0;
30     virtual FX_DWORD            GetFontStyle() const = 0;
31     virtual FX_BYTE                     GetCharset() const = 0;
32
33     virtual FX_INT32            GetGlyphIndex(FX_WCHAR wUnicode) = 0;
34     virtual FX_INT32            GetGlyphWidth(FX_INT32 iGlyphIndex) = 0;
35
36     virtual FX_INT32            GetAscent() const = 0;
37     virtual FX_INT32            GetDescent() const = 0;
38
39     virtual FX_BOOL                     GetGlyphBBox(FX_INT32 iGlyphIndex, FX_RECT &rtBBox) = 0;
40     virtual FX_BOOL                     GetBBox(FX_RECT &rtBBox) = 0;
41
42     virtual FX_INT32            GetHeight() const = 0;
43     virtual FX_INT32            GetItalicAngle() const = 0;
44     virtual FX_DWORD            GetFontData(FX_DWORD dwTable, FX_LPBYTE pBuffer, FX_DWORD dwSize) = 0;
45
46 protected:
47     ~IFPF_Font() { }
48 };
49 class IFPF_FontMgr
50 {
51 public:
52     virtual ~IFPF_FontMgr() { }
53     virtual void                        LoadSystemFonts() = 0;
54     virtual void                        LoadPrivateFont(IFX_FileRead* pFontFile) = 0;
55     virtual void                        LoadPrivateFont(FX_BSTR bsFileName) = 0;
56     virtual void                        LoadPrivateFont(FX_LPVOID pBuffer, size_t szBuffer) = 0;
57
58     virtual IFPF_Font*          CreateFont(FX_BSTR bsFamilyname, FX_BYTE charset, FX_DWORD dwStyle, FX_DWORD dwMatch = 0) = 0;
59 };
60 #endif