summaryrefslogtreecommitdiff
path: root/core/fxge/include/cfx_fontmgr.h
diff options
context:
space:
mode:
Diffstat (limited to 'core/fxge/include/cfx_fontmgr.h')
-rw-r--r--core/fxge/include/cfx_fontmgr.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/core/fxge/include/cfx_fontmgr.h b/core/fxge/include/cfx_fontmgr.h
new file mode 100644
index 0000000000..dac8c5ac7b
--- /dev/null
+++ b/core/fxge/include/cfx_fontmgr.h
@@ -0,0 +1,67 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef CORE_FXGE_INCLUDE_CFX_FONTMGR_H_
+#define CORE_FXGE_INCLUDE_CFX_FONTMGR_H_
+
+#include <map>
+#include <memory>
+
+#include "core/fxge/include/fx_font.h"
+
+class IFX_SystemFontInfo;
+class CFX_FontMapper;
+
+class CFX_FontMgr {
+ public:
+ CFX_FontMgr();
+ ~CFX_FontMgr();
+
+ void InitFTLibrary();
+
+ FXFT_Face GetCachedFace(const CFX_ByteString& face_name,
+ int weight,
+ FX_BOOL bItalic,
+ uint8_t*& pFontData);
+ FXFT_Face AddCachedFace(const CFX_ByteString& face_name,
+ int weight,
+ FX_BOOL bItalic,
+ uint8_t* pData,
+ uint32_t size,
+ int face_index);
+ FXFT_Face GetCachedTTCFace(int ttc_size,
+ uint32_t checksum,
+ int font_offset,
+ uint8_t*& pFontData);
+ FXFT_Face AddCachedTTCFace(int ttc_size,
+ uint32_t checksum,
+ uint8_t* pData,
+ uint32_t size,
+ int font_offset);
+ FXFT_Face GetFileFace(const FX_CHAR* filename, int face_index);
+ FXFT_Face GetFixedFace(const uint8_t* pData, uint32_t size, int face_index);
+ void ReleaseFace(FXFT_Face face);
+ void SetSystemFontInfo(std::unique_ptr<IFX_SystemFontInfo> pFontInfo);
+ FXFT_Face FindSubstFont(const CFX_ByteString& face_name,
+ FX_BOOL bTrueType,
+ uint32_t flags,
+ int weight,
+ int italic_angle,
+ int CharsetCP,
+ CFX_SubstFont* pSubstFont);
+ bool GetBuiltinFont(size_t index, const uint8_t** pFontData, uint32_t* size);
+ CFX_FontMapper* GetBuiltinMapper() const { return m_pBuiltinMapper.get(); }
+ FXFT_Library GetFTLibrary() const { return m_FTLibrary; }
+ bool FTLibrarySupportsHinting() const { return m_FTLibrarySupportsHinting; }
+
+ private:
+ std::unique_ptr<CFX_FontMapper> m_pBuiltinMapper;
+ std::map<CFX_ByteString, CTTFontDesc*> m_FaceMap;
+ FXFT_Library m_FTLibrary;
+ bool m_FTLibrarySupportsHinting;
+};
+
+#endif // CORE_FXGE_INCLUDE_CFX_FONTMGR_H_