1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#include "fx_fpf.h" 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#if _FX_OS_ == _FX_ANDROID_ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovCFX_AndroidFontInfo::CFX_AndroidFontInfo() 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov : m_pFontMgr(NULL) 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CFX_AndroidFontInfo::Init(IFPF_FontMgr *pFontMgr) 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!pFontMgr) { 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov pFontMgr->LoadSystemFonts(); 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov m_pFontMgr = pFontMgr; 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return TRUE; 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CFX_AndroidFontInfo::EnumFontList(CFX_FontMapper* pMapper) 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid* CFX_AndroidFontInfo::MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, FX_LPCSTR face, FX_BOOL& bExact) 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!m_pFontMgr) { 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return NULL; 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_DWORD dwStyle = 0; 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (weight >= 700) { 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov dwStyle |= FXFONT_BOLD; 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (bItalic) { 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov dwStyle |= FXFONT_ITALIC; 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (pitch_family & FXFONT_FF_FIXEDPITCH) { 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov dwStyle |= FXFONT_FIXED_PITCH; 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (pitch_family & FXFONT_FF_SCRIPT) { 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov dwStyle |= FXFONT_SCRIPT; 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (pitch_family & FXFONT_FF_ROMAN) { 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov dwStyle |= FXFONT_SERIF; 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return m_pFontMgr->CreateFont(face, charset, dwStyle, FPF_MATCHFONT_REPLACEANSI); 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid* CFX_AndroidFontInfo::GetFont(FX_LPCSTR face) 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return NULL; 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_DWORD CFX_AndroidFontInfo::GetFontData(void* hFont, FX_DWORD table, FX_LPBYTE buffer, FX_DWORD size) 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!hFont) { 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return 0; 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 58ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return ((IFPF_Font*)hFont)->GetFontData(table, buffer, size); 59ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 60ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CFX_AndroidFontInfo::GetFaceName(void* hFont, CFX_ByteString& name) 61ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 62ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!hFont) { 63ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 64ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 65ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov name = ((IFPF_Font*)hFont)->GetFamilyName(); 66ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return TRUE; 67ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 68ee451cb395940862dad63c85adfe8f2fd55e864cSvet GanovFX_BOOL CFX_AndroidFontInfo::GetFontCharset(void* hFont, int& charset) 69ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 70ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!hFont) { 71ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 72ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 73ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov charset = ((IFPF_Font*)hFont)->GetCharset(); 74ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return FALSE; 75ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 76ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid CFX_AndroidFontInfo::DeleteFont(void* hFont) 77ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 78ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov if (!hFont) { 79ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return; 80ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 81ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov ((IFPF_Font*)hFont)->Release(); 82ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 83ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovvoid* CFX_AndroidFontInfo::RetainFont(void* hFont) 84ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 85ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return NULL; 86ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov} 87ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 88