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