Chromium Code Reviews| 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 #ifndef CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ | 7 #ifndef CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ |
| 8 #define CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ | 8 #define CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ |
| 9 | 9 |
| 10 #include <map> | 10 #include <map> |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 21 typedef void* FXFT_Library; | 21 typedef void* FXFT_Library; |
| 22 | 22 |
| 23 short TT2PDF(int m, FXFT_Face face); | 23 short TT2PDF(int m, FXFT_Face face); |
| 24 FX_BOOL FT_UseTTCharmap(FXFT_Face face, int platform_id, int encoding_id); | 24 FX_BOOL FT_UseTTCharmap(FXFT_Face face, int platform_id, int encoding_id); |
| 25 CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering); | 25 CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering); |
| 26 | 26 |
| 27 class CPDF_CMapManager { | 27 class CPDF_CMapManager { |
| 28 public: | 28 public: |
| 29 CPDF_CMapManager(); | 29 CPDF_CMapManager(); |
| 30 ~CPDF_CMapManager(); | 30 ~CPDF_CMapManager(); |
| 31 | |
| 31 void* GetPackage(FX_BOOL bPrompt); | 32 void* GetPackage(FX_BOOL bPrompt); |
| 32 CPDF_CMap* GetPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPromptCJK); | 33 CPDF_CMap* GetPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPromptCJK); |
| 33 CPDF_CID2UnicodeMap* GetCID2UnicodeMap(CIDSet charset, FX_BOOL bPromptCJK); | 34 CPDF_CID2UnicodeMap* GetCID2UnicodeMap(CIDSet charset, FX_BOOL bPromptCJK); |
| 34 void ReloadAll(); | 35 void ReloadAll(); |
| 35 | 36 |
| 36 private: | 37 private: |
| 37 CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPromptCJK); | 38 CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPromptCJK); |
| 38 CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(CIDSet charset, FX_BOOL bPromptCJK); | 39 CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(CIDSet charset, FX_BOOL bPromptCJK); |
| 39 | 40 |
| 40 FX_BOOL m_bPrompted; | 41 FX_BOOL m_bPrompted; |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 82 | 83 |
| 83 struct CMap_CodeRange { | 84 struct CMap_CodeRange { |
| 84 int m_CharSize; | 85 int m_CharSize; |
| 85 uint8_t m_Lower[4]; | 86 uint8_t m_Lower[4]; |
| 86 uint8_t m_Upper[4]; | 87 uint8_t m_Upper[4]; |
| 87 }; | 88 }; |
| 88 | 89 |
| 89 class CPDF_CMapParser { | 90 class CPDF_CMapParser { |
| 90 public: | 91 public: |
| 91 CPDF_CMapParser(); | 92 CPDF_CMapParser(); |
| 92 ~CPDF_CMapParser() {} | 93 ~CPDF_CMapParser(); |
| 93 FX_BOOL Initialize(CPDF_CMap* pMap); | 94 FX_BOOL Initialize(CPDF_CMap* pMap); |
| 94 void ParseWord(const CFX_ByteStringC& str); | 95 void ParseWord(const CFX_ByteStringC& str); |
| 95 CFX_BinaryBuf m_AddMaps; | 96 CFX_BinaryBuf m_AddMaps; |
| 96 | 97 |
| 97 private: | 98 private: |
| 98 friend class fpdf_font_cid_CMap_GetCode_Test; | 99 friend class fpdf_font_cid_CMap_GetCode_Test; |
| 99 friend class fpdf_font_cid_CMap_GetCodeRange_Test; | 100 friend class fpdf_font_cid_CMap_GetCodeRange_Test; |
| 100 | 101 |
| 101 static uint32_t CMap_GetCode(const CFX_ByteStringC& word); | 102 static uint32_t CMap_GetCode(const CFX_ByteStringC& word); |
| 102 static bool CMap_GetCodeRange(CMap_CodeRange& range, | 103 static bool CMap_GetCodeRange(CMap_CodeRange& range, |
| 103 const CFX_ByteStringC& first, | 104 const CFX_ByteStringC& first, |
| 104 const CFX_ByteStringC& second); | 105 const CFX_ByteStringC& second); |
| 105 | 106 |
| 106 CPDF_CMap* m_pCMap; | 107 CPDF_CMap* m_pCMap; |
| 107 int m_Status; | 108 int m_Status; |
| 108 int m_CodeSeq; | 109 int m_CodeSeq; |
| 109 uint32_t m_CodePoints[4]; | 110 uint32_t m_CodePoints[4]; |
| 110 CFX_ArrayTemplate<CMap_CodeRange> m_CodeRanges; | 111 CFX_ArrayTemplate<CMap_CodeRange> m_CodeRanges; |
| 111 CFX_ByteString m_Registry, m_Ordering, m_Supplement; | 112 CFX_ByteString m_Registry; |
| 113 CFX_ByteString m_Ordering; | |
| 114 CFX_ByteString m_Supplement; | |
| 112 CFX_ByteString m_LastWord; | 115 CFX_ByteString m_LastWord; |
| 113 }; | 116 }; |
| 114 | 117 |
| 115 enum CIDCoding : uint8_t { | 118 enum CIDCoding : uint8_t { |
| 116 CIDCODING_UNKNOWN = 0, | 119 CIDCODING_UNKNOWN = 0, |
| 117 CIDCODING_GB, | 120 CIDCODING_GB, |
| 118 CIDCODING_BIG5, | 121 CIDCODING_BIG5, |
| 119 CIDCODING_JIS, | 122 CIDCODING_JIS, |
| 120 CIDCODING_KOREA, | 123 CIDCODING_KOREA, |
| 121 CIDCODING_UCS2, | 124 CIDCODING_UCS2, |
| (...skipping 11 matching lines...) Expand all Loading... | |
| 133 }; | 136 }; |
| 134 | 137 |
| 135 CPDF_CMap(); | 138 CPDF_CMap(); |
| 136 ~CPDF_CMap(); | 139 ~CPDF_CMap(); |
| 137 | 140 |
| 138 FX_BOOL LoadPredefined(CPDF_CMapManager* pMgr, | 141 FX_BOOL LoadPredefined(CPDF_CMapManager* pMgr, |
| 139 const FX_CHAR* name, | 142 const FX_CHAR* name, |
| 140 FX_BOOL bPromptCJK); | 143 FX_BOOL bPromptCJK); |
| 141 FX_BOOL LoadEmbedded(const uint8_t* pData, uint32_t dwSize); | 144 FX_BOOL LoadEmbedded(const uint8_t* pData, uint32_t dwSize); |
| 142 void Release(); | 145 void Release(); |
| 143 FX_BOOL IsLoaded() const { return m_bLoaded; } | 146 |
|
Lei Zhang
2016/06/13 20:44:28
Curious why these simple getters can't be inlined.
Wei Li
2016/06/13 21:38:03
These are not needed by clang plugins, but to make
| |
| 144 FX_BOOL IsVertWriting() const { return m_bVertical; } | 147 FX_BOOL IsLoaded() const; |
| 148 FX_BOOL IsVertWriting() const; | |
| 145 uint16_t CIDFromCharCode(uint32_t charcode) const; | 149 uint16_t CIDFromCharCode(uint32_t charcode) const; |
| 146 uint32_t CharCodeFromCID(uint16_t CID) const; | 150 uint32_t CharCodeFromCID(uint16_t CID) const; |
| 147 int GetCharSize(uint32_t charcode) const; | 151 int GetCharSize(uint32_t charcode) const; |
| 148 uint32_t GetNextChar(const FX_CHAR* pString, int nStrLen, int& offset) const; | 152 uint32_t GetNextChar(const FX_CHAR* pString, int nStrLen, int& offset) const; |
| 149 int CountChar(const FX_CHAR* pString, int size) const; | 153 int CountChar(const FX_CHAR* pString, int size) const; |
| 150 int AppendChar(FX_CHAR* str, uint32_t charcode) const; | 154 int AppendChar(FX_CHAR* str, uint32_t charcode) const; |
| 151 | 155 |
| 152 protected: | 156 protected: |
| 153 friend class CPDF_CMapParser; | 157 friend class CPDF_CMapParser; |
| 154 friend class CPDF_CMapManager; | 158 friend class CPDF_CMapManager; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 165 uint8_t* m_pAddMapping; | 169 uint8_t* m_pAddMapping; |
| 166 FX_BOOL m_bLoaded; | 170 FX_BOOL m_bLoaded; |
| 167 const FXCMAP_CMap* m_pEmbedMap; | 171 const FXCMAP_CMap* m_pEmbedMap; |
| 168 CPDF_CMap* m_pUseMap; | 172 CPDF_CMap* m_pUseMap; |
| 169 }; | 173 }; |
| 170 | 174 |
| 171 class CPDF_CID2UnicodeMap { | 175 class CPDF_CID2UnicodeMap { |
| 172 public: | 176 public: |
| 173 CPDF_CID2UnicodeMap(); | 177 CPDF_CID2UnicodeMap(); |
| 174 ~CPDF_CID2UnicodeMap(); | 178 ~CPDF_CID2UnicodeMap(); |
| 179 | |
| 175 FX_BOOL Initialize(); | 180 FX_BOOL Initialize(); |
| 176 FX_BOOL IsLoaded(); | 181 FX_BOOL IsLoaded(); |
| 177 void Load(CPDF_CMapManager* pMgr, CIDSet charset, FX_BOOL bPromptCJK); | 182 void Load(CPDF_CMapManager* pMgr, CIDSet charset, FX_BOOL bPromptCJK); |
| 178 FX_WCHAR UnicodeFromCID(uint16_t CID); | 183 FX_WCHAR UnicodeFromCID(uint16_t CID); |
| 179 | 184 |
| 180 protected: | 185 protected: |
| 181 CIDSet m_Charset; | 186 CIDSet m_Charset; |
| 182 const uint16_t* m_pEmbeddedMap; | 187 const uint16_t* m_pEmbeddedMap; |
| 183 uint32_t m_EmbeddedCount; | 188 uint32_t m_EmbeddedCount; |
| 184 }; | 189 }; |
| 185 | 190 |
| 186 class CPDF_ToUnicodeMap { | 191 class CPDF_ToUnicodeMap { |
| 187 public: | 192 public: |
| 193 CPDF_ToUnicodeMap(); | |
| 194 ~CPDF_ToUnicodeMap(); | |
| 195 | |
| 188 void Load(CPDF_Stream* pStream); | 196 void Load(CPDF_Stream* pStream); |
| 189 CFX_WideString Lookup(uint32_t charcode); | 197 |
| 190 uint32_t ReverseLookup(FX_WCHAR unicode); | 198 CFX_WideString Lookup(uint32_t charcode) const; |
| 199 uint32_t ReverseLookup(FX_WCHAR unicode) const; | |
| 191 | 200 |
| 192 protected: | 201 protected: |
| 193 std::map<uint32_t, uint32_t> m_Map; | 202 std::map<uint32_t, uint32_t> m_Map; |
| 194 CPDF_CID2UnicodeMap* m_pBaseMap; | 203 CPDF_CID2UnicodeMap* m_pBaseMap; |
| 195 CFX_WideTextBuf m_MultiCharBuf; | 204 CFX_WideTextBuf m_MultiCharBuf; |
| 196 | 205 |
| 197 private: | 206 private: |
| 198 friend class fpdf_font_StringToCode_Test; | 207 friend class fpdf_font_StringToCode_Test; |
| 199 friend class fpdf_font_StringToWideString_Test; | 208 friend class fpdf_font_StringToWideString_Test; |
| 200 | 209 |
| 201 static uint32_t StringToCode(const CFX_ByteStringC& str); | 210 static uint32_t StringToCode(const CFX_ByteStringC& str); |
| 202 static CFX_WideString StringToWideString(const CFX_ByteStringC& str); | 211 static CFX_WideString StringToWideString(const CFX_ByteStringC& str); |
| 203 }; | 212 }; |
| 204 | 213 |
| 205 void FPDFAPI_LoadCID2UnicodeMap(CIDSet charset, | 214 void FPDFAPI_LoadCID2UnicodeMap(CIDSet charset, |
| 206 const uint16_t*& pMap, | 215 const uint16_t*& pMap, |
| 207 uint32_t& count); | 216 uint32_t& count); |
| 208 | 217 |
| 209 #endif // CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ | 218 #endif // CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ |
| OLD | NEW |