Home | History | Annotate | Download | only in android
      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