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 |