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 #include "fx_fpf.h"
8 #if _FX_OS_ == _FX_ANDROID_
CFX_AndroidFontInfo()9 CFX_AndroidFontInfo::CFX_AndroidFontInfo()
10     : m_pFontMgr(NULL)
11 {
12 }
Init(IFPF_FontMgr * pFontMgr)13 FX_BOOL CFX_AndroidFontInfo::Init(IFPF_FontMgr *pFontMgr)
14 {
15     if (!pFontMgr) {
16         return FALSE;
17     }
18     pFontMgr->LoadSystemFonts();
19     m_pFontMgr = pFontMgr;
20     return TRUE;
21 }
EnumFontList(CFX_FontMapper * pMapper)22 FX_BOOL CFX_AndroidFontInfo::EnumFontList(CFX_FontMapper* pMapper)
23 {
24     return FALSE;
25 }
MapFont(int weight,FX_BOOL bItalic,int charset,int pitch_family,FX_LPCSTR face,FX_BOOL & bExact)26 void* CFX_AndroidFontInfo::MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, FX_LPCSTR face, FX_BOOL& bExact)
27 {
28     if (!m_pFontMgr) {
29         return NULL;
30     }
31     FX_DWORD dwStyle = 0;
32     if (weight >= 700) {
33         dwStyle |= FXFONT_BOLD;
34     }
35     if (bItalic) {
36         dwStyle |= FXFONT_ITALIC;
37     }
38     if (pitch_family & FXFONT_FF_FIXEDPITCH) {
39         dwStyle |= FXFONT_FIXED_PITCH;
40     }
41     if (pitch_family & FXFONT_FF_SCRIPT) {
42         dwStyle |= FXFONT_SCRIPT;
43     }
44     if (pitch_family & FXFONT_FF_ROMAN) {
45         dwStyle |= FXFONT_SERIF;
46     }
47     return m_pFontMgr->CreateFont(face, charset, dwStyle, FPF_MATCHFONT_REPLACEANSI);
48 }
GetFont(FX_LPCSTR face)49 void* CFX_AndroidFontInfo::GetFont(FX_LPCSTR face)
50 {
51     return NULL;
52 }
GetFontData(void * hFont,FX_DWORD table,FX_LPBYTE buffer,FX_DWORD size)53 FX_DWORD CFX_AndroidFontInfo::GetFontData(void* hFont, FX_DWORD table, FX_LPBYTE buffer, FX_DWORD size)
54 {
55     if (!hFont) {
56         return 0;
57     }
58     return ((IFPF_Font*)hFont)->GetFontData(table, buffer, size);
59 }
GetFaceName(void * hFont,CFX_ByteString & name)60 FX_BOOL CFX_AndroidFontInfo::GetFaceName(void* hFont, CFX_ByteString& name)
61 {
62     if (!hFont) {
63         return FALSE;
64     }
65     name = ((IFPF_Font*)hFont)->GetFamilyName();
66     return TRUE;
67 }
GetFontCharset(void * hFont,int & charset)68 FX_BOOL CFX_AndroidFontInfo::GetFontCharset(void* hFont, int& charset)
69 {
70     if (!hFont) {
71         return FALSE;
72     }
73     charset = ((IFPF_Font*)hFont)->GetCharset();
74     return FALSE;
75 }
DeleteFont(void * hFont)76 void CFX_AndroidFontInfo::DeleteFont(void* hFont)
77 {
78     if (!hFont) {
79         return;
80     }
81     ((IFPF_Font*)hFont)->Release();
82 }
RetainFont(void * hFont)83 void* CFX_AndroidFontInfo::RetainFont(void* hFont)
84 {
85     return NULL;
86 }
87 #endif
88