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