Fix FX_BOOL type mismatches.
[pdfium.git] / core / include / fxge / fx_font.h
index 29cc5df..2832fbf 100644 (file)
@@ -1,13 +1,15 @@
 // Copyright 2014 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_INCLUDE_FXGE_FX_FONT_H_
 #define CORE_INCLUDE_FXGE_FX_FONT_H_
 
-#include "../fxcrt/fx_ext.h"
+#include <map>
+
+#include "../fxcrt/fx_system.h"
 #include "fx_dib.h"
 
 typedef struct FT_FaceRec_* FXFT_Face;
@@ -48,7 +50,7 @@ class CFontFileFaceInfo;
 #define FXFONT_FF_SCRIPT               (4<<4)
 #define FXFONT_FW_NORMAL               400
 #define FXFONT_FW_BOLD                 700
-class CFX_Font 
+class CFX_Font
 {
 public:
     CFX_Font();
@@ -143,7 +145,7 @@ protected:
 };
 #define ENCODING_INTERNAL              0
 #define ENCODING_UNICODE               1
-class IFX_FontEncoding 
+class IFX_FontEncoding
 {
 public:
     virtual ~IFX_FontEncoding() {}
@@ -162,7 +164,7 @@ IFX_FontEncoding* FXGE_CreateUnicodeEncoding(CFX_Font* pFont);
 #define FXFONT_SUBST_NONSYMBOL         0x20
 #define FXFONT_SUBST_EXACT                     0x40
 #define FXFONT_SUBST_STANDARD          0x80
-class CFX_SubstFont 
+class CFX_SubstFont
 {
 public:
 
@@ -197,7 +199,7 @@ typedef struct {
     const uint8_t*     m_pFontData;
     FX_DWORD   m_dwSize;
 } FoxitFonts;
-class CFX_FontMgr 
+class CFX_FontMgr
 {
 public:
     CFX_FontMgr();
@@ -227,7 +229,7 @@ public:
     FXFT_Library       m_FTLibrary;
     FoxitFonts m_ExternalFonts[16];
 };
-class IFX_FontMapper 
+class IFX_FontMapper
 {
 public:
 
@@ -291,14 +293,14 @@ private:
     FXFT_Face                  m_FoxitFaces[14];
     IFX_FontEnumerator*                m_pFontEnumerator;
 };
-class IFX_SystemFontInfo 
+class IFX_SystemFontInfo
 {
 public:
     static IFX_SystemFontInfo* CreateDefault();
     virtual void               Release() = 0;
 
     virtual    FX_BOOL         EnumFontList(CFX_FontMapper* pMapper) = 0;
-    virtual void*              MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, const FX_CHAR* face, FX_BOOL& bExact) = 0;
+    virtual void*              MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, const FX_CHAR* face, int& iExact) = 0;
     virtual void*              GetFont(const FX_CHAR* face) = 0;
     virtual FX_DWORD   GetFontData(void* hFont, FX_DWORD table, uint8_t* buffer, FX_DWORD size) = 0;
     virtual FX_BOOL            GetFaceName(void* hFont, CFX_ByteString& name) = 0;
@@ -320,15 +322,20 @@ class CFX_FolderFontInfo : public IFX_SystemFontInfo
 public:
     CFX_FolderFontInfo();
     virtual ~CFX_FolderFontInfo();
-    void                               AddPath(const CFX_ByteStringC& path);
-    virtual void               Release();
-    virtual    FX_BOOL         EnumFontList(CFX_FontMapper* pMapper);
-    virtual void*              MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family, const FX_CHAR* face, FX_BOOL& bExact);
-    virtual void*              GetFont(const FX_CHAR* face);
-    virtual FX_DWORD   GetFontData(void* hFont, FX_DWORD table, uint8_t* buffer, FX_DWORD size);
-    virtual void               DeleteFont(void* hFont);
-    virtual    FX_BOOL         GetFaceName(void* hFont, CFX_ByteString& name);
-    virtual FX_BOOL            GetFontCharset(void* hFont, int& charset);
+    void AddPath(const CFX_ByteStringC& path);
+
+    // IFX_SytemFontInfo:
+    void Release() override;
+    FX_BOOL EnumFontList(CFX_FontMapper* pMapper) override;
+    void* MapFont(int weight, FX_BOOL bItalic, int charset, int pitch_family,
+                  const FX_CHAR* face, int& bExact) override;
+    void* GetFont(const FX_CHAR* face) override;
+    FX_DWORD GetFontData(void* hFont, FX_DWORD table,
+                         uint8_t* buffer, FX_DWORD size) override;
+    void DeleteFont(void* hFont) override;
+    FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) override;
+    FX_BOOL GetFontCharset(void* hFont, int& charset) override;
+
 protected:
     CFX_MapByteStringToPtr     m_FontList;
     CFX_ByteStringArray        m_PathList;
@@ -337,14 +344,14 @@ protected:
     void                               ScanFile(CFX_ByteString& path);
     void                               ReportFace(CFX_ByteString& path, FXSYS_FILE* pFile, FX_DWORD filesize, FX_DWORD offset);
 };
-class CFX_CountedFaceCache 
+class CFX_CountedFaceCache
 {
 public:
     CFX_FaceCache*     m_Obj;
     FX_DWORD           m_nCount;
 };
-typedef CFX_MapPtrTemplate<FXFT_Face, CFX_CountedFaceCache*> CFX_FTCacheMap;
-class CFX_FontCache 
+
+class CFX_FontCache
 {
 public:
     ~CFX_FontCache();
@@ -353,8 +360,9 @@ public:
     void                                       FreeCache(FX_BOOL bRelease = FALSE);
 
 private:
-    CFX_FTCacheMap                     m_FTFaceMap;
-    CFX_FTCacheMap                     m_ExtFaceMap;
+    using CFX_FTCacheMap = std::map<FXFT_Face, CFX_CountedFaceCache*>;
+    CFX_FTCacheMap m_FTFaceMap;
+    CFX_FTCacheMap m_ExtFaceMap;
 };
 class CFX_AutoFontCache
 {
@@ -372,14 +380,14 @@ public:
     CFX_Font* m_pFont;
 };
 #define FX_FONTCACHE_DEFINE(pFontCache, pFont) CFX_AutoFontCache autoFontCache((pFontCache), (pFont))
-class CFX_GlyphBitmap 
+class CFX_GlyphBitmap
 {
 public:
     int                                                m_Top;
     int                                                m_Left;
     CFX_DIBitmap                       m_Bitmap;
 };
-class CFX_FaceCache 
+class CFX_FaceCache
 {
 public:
     ~CFX_FaceCache();
@@ -400,13 +408,6 @@ private:
     CFX_MapByteStringToPtr     m_SizeMap;
     CFX_MapPtrToPtr                    m_PathMap;
     CFX_DIBitmap*           m_pBitmap;
-    void*                   m_pPlatformGraphics;
-    void*                   m_pPlatformBitmap;
-    void*                   m_hDC;
-    void*                   m_hBitmap;
-    void*                   m_hOldBitmap;
-    void*                   m_hGdiFont;
-    void*                   m_hOldGdiFont;
 
     void                                   InitPlatform();
     void                                   DestroyPlatform();
@@ -424,12 +425,9 @@ FX_BOOL    OutputText(void* dib, int x, int y, CFX_Font* pFont, double font_size,
 class IFX_GSUBTable
 {
 public:
-    virtual void       Release() = 0;
+    static IFX_GSUBTable* Create(CFX_Font* pFont);
+    virtual ~IFX_GSUBTable() { }
     virtual FX_BOOL GetVerticalGlyph(FX_DWORD glyphnum, FX_DWORD* vglyphnum) = 0;
-
-protected:
-     ~IFX_GSUBTable() { }
 };
-IFX_GSUBTable* FXGE_CreateGSUBTable(CFX_Font* pFont);
 
 #endif  // CORE_INCLUDE_FXGE_FX_FONT_H_