| OLD | NEW | 
 | (Empty) | 
|    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 #ifndef FPDFSDK_INCLUDE_PDFWINDOW_PWL_FONTMAP_H_ |  | 
|    8 #define FPDFSDK_INCLUDE_PDFWINDOW_PWL_FONTMAP_H_ |  | 
|    9  |  | 
|   10 #include "fpdfsdk/include/fxedit/fx_edit.h" |  | 
|   11 #include "public/fpdf_sysfontinfo.h" |  | 
|   12  |  | 
|   13 class CPDF_Document; |  | 
|   14 class IFX_SystemHandler; |  | 
|   15  |  | 
|   16 struct CPWL_FontMap_Data { |  | 
|   17   CPDF_Font* pFont; |  | 
|   18   int32_t nCharset; |  | 
|   19   CFX_ByteString sFontName; |  | 
|   20 }; |  | 
|   21  |  | 
|   22 struct CPWL_FontMap_Native { |  | 
|   23   int32_t nCharset; |  | 
|   24   CFX_ByteString sFontName; |  | 
|   25 }; |  | 
|   26  |  | 
|   27 #ifndef ANSI_CHARSET |  | 
|   28  |  | 
|   29 #define ANSI_CHARSET 0 |  | 
|   30 #define DEFAULT_CHARSET 1 |  | 
|   31 #define SYMBOL_CHARSET 2 |  | 
|   32 #define SHIFTJIS_CHARSET 128 |  | 
|   33 #define HANGEUL_CHARSET 129 |  | 
|   34 #define HANGUL_CHARSET 129 |  | 
|   35 #define GB2312_CHARSET 134 |  | 
|   36 #define CHINESEBIG5_CHARSET 136 |  | 
|   37 #define OEM_CHARSET 255 |  | 
|   38 #define JOHAB_CHARSET 130 |  | 
|   39 #define HEBREW_CHARSET 177 |  | 
|   40 #define ARABIC_CHARSET 178 |  | 
|   41 #define GREEK_CHARSET 161 |  | 
|   42 #define TURKISH_CHARSET 162 |  | 
|   43 #define VIETNAMESE_CHARSET 163 |  | 
|   44 #define THAI_CHARSET 222 |  | 
|   45 #define EASTEUROPE_CHARSET 238 |  | 
|   46 #define RUSSIAN_CHARSET 204 |  | 
|   47 #define BALTIC_CHARSET 186 |  | 
|   48  |  | 
|   49 #endif |  | 
|   50  |  | 
|   51 class CPWL_FontMap : public IFX_Edit_FontMap { |  | 
|   52  public: |  | 
|   53   CPWL_FontMap(IFX_SystemHandler* pSystemHandler); |  | 
|   54   ~CPWL_FontMap() override; |  | 
|   55  |  | 
|   56   // IFX_Edit_FontMap |  | 
|   57   CPDF_Font* GetPDFFont(int32_t nFontIndex) override; |  | 
|   58   CFX_ByteString GetPDFFontAlias(int32_t nFontIndex) override; |  | 
|   59   int32_t GetWordFontIndex(uint16_t word, |  | 
|   60                            int32_t nCharset, |  | 
|   61                            int32_t nFontIndex) override; |  | 
|   62   int32_t CharCodeFromUnicode(int32_t nFontIndex, uint16_t word) override; |  | 
|   63   int32_t CharSetFromUnicode(uint16_t word, int32_t nOldCharset) override; |  | 
|   64  |  | 
|   65   void SetSystemHandler(IFX_SystemHandler* pSystemHandler); |  | 
|   66   int32_t GetFontMapCount() const; |  | 
|   67   const CPWL_FontMap_Data* GetFontMapData(int32_t nIndex) const; |  | 
|   68   static int32_t GetNativeCharset(); |  | 
|   69   CFX_ByteString GetNativeFontName(int32_t nCharset); |  | 
|   70  |  | 
|   71   static CFX_ByteString GetDefaultFontByCharset(int32_t nCharset); |  | 
|   72  |  | 
|   73   CPDF_Font* AddFontToDocument(CPDF_Document* pDoc, |  | 
|   74                                CFX_ByteString& sFontName, |  | 
|   75                                uint8_t nCharset); |  | 
|   76   static FX_BOOL IsStandardFont(const CFX_ByteString& sFontName); |  | 
|   77   CPDF_Font* AddStandardFont(CPDF_Document* pDoc, CFX_ByteString& sFontName); |  | 
|   78   CPDF_Font* AddSystemFont(CPDF_Document* pDoc, |  | 
|   79                            CFX_ByteString& sFontName, |  | 
|   80                            uint8_t nCharset); |  | 
|   81  |  | 
|   82  protected: |  | 
|   83   virtual void Initialize(); |  | 
|   84   virtual CPDF_Document* GetDocument(); |  | 
|   85   virtual CPDF_Font* FindFontSameCharset(CFX_ByteString& sFontAlias, |  | 
|   86                                          int32_t nCharset); |  | 
|   87   virtual void AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias); |  | 
|   88  |  | 
|   89   FX_BOOL KnowWord(int32_t nFontIndex, uint16_t word); |  | 
|   90  |  | 
|   91   void Empty(); |  | 
|   92   int32_t GetFontIndex(const CFX_ByteString& sFontName, |  | 
|   93                        int32_t nCharset, |  | 
|   94                        FX_BOOL bFind); |  | 
|   95   int32_t GetPWLFontIndex(uint16_t word, int32_t nCharset); |  | 
|   96   int32_t AddFontData(CPDF_Font* pFont, |  | 
|   97                       const CFX_ByteString& sFontAlias, |  | 
|   98                       int32_t nCharset = DEFAULT_CHARSET); |  | 
|   99  |  | 
|  100   CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName, |  | 
|  101                                  int32_t nCharset); |  | 
|  102   CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName); |  | 
|  103  |  | 
|  104  private: |  | 
|  105   CFX_ByteString GetFontName(int32_t nFontIndex); |  | 
|  106   int32_t FindFont(const CFX_ByteString& sFontName, |  | 
|  107                    int32_t nCharset = DEFAULT_CHARSET); |  | 
|  108  |  | 
|  109   CFX_ByteString GetNativeFont(int32_t nCharset); |  | 
|  110  |  | 
|  111  public: |  | 
|  112   using CharsetFontMap = FPDF_CharsetFontMap; |  | 
|  113   static const CharsetFontMap defaultTTFMap[]; |  | 
|  114  |  | 
|  115  protected: |  | 
|  116   CFX_ArrayTemplate<CPWL_FontMap_Data*> m_aData; |  | 
|  117   CFX_ArrayTemplate<CPWL_FontMap_Native*> m_aNativeFont; |  | 
|  118  |  | 
|  119  private: |  | 
|  120   CPDF_Document* m_pPDFDoc; |  | 
|  121   IFX_SystemHandler* m_pSystemHandler; |  | 
|  122 }; |  | 
|  123  |  | 
|  124 class CPWL_DocFontMap : public CPWL_FontMap { |  | 
|  125  public: |  | 
|  126   CPWL_DocFontMap(IFX_SystemHandler* pSystemHandler, |  | 
|  127                   CPDF_Document* pAttachedDoc); |  | 
|  128   ~CPWL_DocFontMap() override; |  | 
|  129  |  | 
|  130  private: |  | 
|  131   // CPWL_FontMap: |  | 
|  132   CPDF_Document* GetDocument() override; |  | 
|  133  |  | 
|  134   CPDF_Document* m_pAttachedDoc; |  | 
|  135 }; |  | 
|  136  |  | 
|  137 #endif  // FPDFSDK_INCLUDE_PDFWINDOW_PWL_FONTMAP_H_ |  | 
| OLD | NEW |