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_ 9 CFX_AndroidFontInfo::CFX_AndroidFontInfo() 10 : m_pFontMgr(NULL) 11 { 12 } 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 } 22 FX_BOOL CFX_AndroidFontInfo::EnumFontList(CFX_FontMapper* pMapper) 23 { 24 return FALSE; 25 } 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 } 49 void* CFX_AndroidFontInfo::GetFont(FX_LPCSTR face) 50 { 51 return NULL; 52 } 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 } 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 } 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 } 76 void CFX_AndroidFontInfo::DeleteFont(void* hFont) 77 { 78 if (!hFont) { 79 return; 80 } 81 ((IFPF_Font*)hFont)->Release(); 82 } 83 void* CFX_AndroidFontInfo::RetainFont(void* hFont) 84 { 85 return NULL; 86 } 87 #endif 88