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 #include "../../include/pdfwindow/PDFWindow.h" | 7 #include "../../include/pdfwindow/PDFWindow.h" |
8 #include "../../include/pdfwindow/PWL_Wnd.h" | 8 #include "../../include/pdfwindow/PWL_Wnd.h" |
9 #include "../../include/pdfwindow/PWL_FontMap.h" | 9 #include "../../include/pdfwindow/PWL_FontMap.h" |
10 | 10 |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 { | 65 { |
66 if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex)) | 66 if (CPWL_FontMap_Data* pData = m_aData.GetAt(nFontIndex)) |
67 { | 67 { |
68 return pData->sFontName; | 68 return pData->sFontName; |
69 } | 69 } |
70 } | 70 } |
71 | 71 |
72 return ""; | 72 return ""; |
73 } | 73 } |
74 | 74 |
75 FX_BOOL CPWL_FontMap::KnowWord(int32_t nFontIndex, FX_WORD word) | 75 bool CPWL_FontMap::KnowWord(int32_t nFontIndex, FX_WORD word) |
76 { | 76 { |
77 if (nFontIndex >=0 && nFontIndex < m_aData.GetSize()) | 77 if (nFontIndex >=0 && nFontIndex < m_aData.GetSize()) |
78 { | 78 { |
79 if (m_aData.GetAt(nFontIndex)) | 79 if (m_aData.GetAt(nFontIndex)) |
80 { | 80 { |
81 return CharCodeFromUnicode(nFontIndex, word) >= 0; | 81 return CharCodeFromUnicode(nFontIndex, word) >= 0; |
82 } | 82 } |
83 } | 83 } |
84 | 84 |
85 » return FALSE; | 85 » return false; |
86 } | 86 } |
87 | 87 |
88 int32_t CPWL_FontMap::GetWordFontIndex(FX_WORD word, int32_t nCharset, int32_t n
FontIndex) | 88 int32_t CPWL_FontMap::GetWordFontIndex(FX_WORD word, int32_t nCharset, int32_t n
FontIndex) |
89 { | 89 { |
90 if (nFontIndex > 0) | 90 if (nFontIndex > 0) |
91 { | 91 { |
92 if (KnowWord(nFontIndex, word)) | 92 if (KnowWord(nFontIndex, word)) |
93 return nFontIndex; | 93 return nFontIndex; |
94 } | 94 } |
95 else | 95 else |
96 { | 96 { |
97 if (const CPWL_FontMap_Data* pData = GetFontMapData(0)) | 97 if (const CPWL_FontMap_Data* pData = GetFontMapData(0)) |
98 { | 98 { |
99 if (nCharset == DEFAULT_CHARSET || | 99 if (nCharset == DEFAULT_CHARSET || |
100 pData->nCharset == SYMBOL_CHARSET || | 100 pData->nCharset == SYMBOL_CHARSET || |
101 nCharset == pData->nCharset) | 101 nCharset == pData->nCharset) |
102 { | 102 { |
103 if (KnowWord(0, word)) | 103 if (KnowWord(0, word)) |
104 { | 104 { |
105 return 0; | 105 return 0; |
106 } | 106 } |
107 } | 107 } |
108 } | 108 } |
109 } | 109 } |
110 | 110 |
111 int32_t nNewFontIndex = -1; | 111 int32_t nNewFontIndex = -1; |
112 | 112 |
113 » nNewFontIndex = GetFontIndex(GetNativeFontName(nCharset), nCharset, TRUE
); | 113 » nNewFontIndex = GetFontIndex(GetNativeFontName(nCharset), nCharset, true
); |
114 if (nNewFontIndex >= 0) | 114 if (nNewFontIndex >= 0) |
115 { | 115 { |
116 if (KnowWord(nNewFontIndex, word)) | 116 if (KnowWord(nNewFontIndex, word)) |
117 return nNewFontIndex; | 117 return nNewFontIndex; |
118 } | 118 } |
119 | 119 |
120 » nNewFontIndex = GetFontIndex("Arial Unicode MS", DEFAULT_CHARSET, FALSE)
; | 120 » nNewFontIndex = GetFontIndex("Arial Unicode MS", DEFAULT_CHARSET, false)
; |
121 if (nNewFontIndex >= 0) | 121 if (nNewFontIndex >= 0) |
122 { | 122 { |
123 if (KnowWord(nNewFontIndex, word)) | 123 if (KnowWord(nNewFontIndex, word)) |
124 return nNewFontIndex; | 124 return nNewFontIndex; |
125 } | 125 } |
126 | 126 |
127 return -1; | 127 return -1; |
128 } | 128 } |
129 | 129 |
130 int32_t CPWL_FontMap::CharCodeFromUnicode(int32_t nFontIndex, FX_WORD word) | 130 int32_t CPWL_FontMap::CharCodeFromUnicode(int32_t nFontIndex, FX_WORD word) |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
192 } | 192 } |
193 } | 193 } |
194 | 194 |
195 void CPWL_FontMap::Initial(const FX_CHAR* fontname) | 195 void CPWL_FontMap::Initial(const FX_CHAR* fontname) |
196 { | 196 { |
197 CFX_ByteString sFontName = fontname; | 197 CFX_ByteString sFontName = fontname; |
198 | 198 |
199 if (sFontName.IsEmpty()) | 199 if (sFontName.IsEmpty()) |
200 sFontName = DEFAULT_FONT_NAME; | 200 sFontName = DEFAULT_FONT_NAME; |
201 | 201 |
202 » GetFontIndex(sFontName, ANSI_CHARSET, FALSE); | 202 » GetFontIndex(sFontName, ANSI_CHARSET, false); |
203 } | 203 } |
204 | 204 |
205 | 205 |
206 /* | 206 /* |
207 List of currently supported standard fonts: | 207 List of currently supported standard fonts: |
208 Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique | 208 Courier, Courier-Bold, Courier-BoldOblique, Courier-Oblique |
209 Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique | 209 Helvetica, Helvetica-Bold, Helvetica-BoldOblique, Helvetica-Oblique |
210 Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic | 210 Times-Roman, Times-Bold, Times-Italic, Times-BoldItalic |
211 Symbol, ZapfDingbats | 211 Symbol, ZapfDingbats |
212 */ | 212 */ |
213 | 213 |
214 const char* g_sDEStandardFontName[] = {"Courier", "Courier-Bold", "Courier-BoldO
blique", "Courier-Oblique", | 214 const char* g_sDEStandardFontName[] = {"Courier", "Courier-Bold", "Courier-BoldO
blique", "Courier-Oblique", |
215 "Helvetica", "Helvetica-Bold", "Helvetica-BoldOblique", "Helvetica-Obliq
ue", | 215 "Helvetica", "Helvetica-Bold", "Helvetica-BoldOblique", "Helvetica-Obliq
ue", |
216 "Times-Roman", "Times-Bold", "Times-Italic", "Times-BoldItalic", | 216 "Times-Roman", "Times-Bold", "Times-Italic", "Times-BoldItalic", |
217 "Symbol", "ZapfDingbats"}; | 217 "Symbol", "ZapfDingbats"}; |
218 | 218 |
219 FX_BOOL»CPWL_FontMap::IsStandardFont(const CFX_ByteString& sFontName) | 219 bool» CPWL_FontMap::IsStandardFont(const CFX_ByteString& sFontName) |
220 { | 220 { |
221 for (int32_t i=0; i<14; i++) | 221 for (int32_t i=0; i<14; i++) |
222 { | 222 { |
223 if (sFontName == g_sDEStandardFontName[i]) | 223 if (sFontName == g_sDEStandardFontName[i]) |
224 » » » return TRUE; | 224 » » » return true; |
225 } | 225 } |
226 | 226 |
227 » return FALSE; | 227 » return false; |
228 } | 228 } |
229 | 229 |
230 int32_t CPWL_FontMap::FindFont(const CFX_ByteString& sFontName, int32_t nCharset
) | 230 int32_t CPWL_FontMap::FindFont(const CFX_ByteString& sFontName, int32_t nCharset
) |
231 { | 231 { |
232 for (int32_t i=0,sz=m_aData.GetSize(); i<sz; i++) | 232 for (int32_t i=0,sz=m_aData.GetSize(); i<sz; i++) |
233 { | 233 { |
234 if (CPWL_FontMap_Data* pData = m_aData.GetAt(i)) | 234 if (CPWL_FontMap_Data* pData = m_aData.GetAt(i)) |
235 { | 235 { |
236 if (nCharset == DEFAULT_CHARSET || nCharset == pData->nC
harset) | 236 if (nCharset == DEFAULT_CHARSET || nCharset == pData->nC
harset) |
237 { | 237 { |
238 if (sFontName.IsEmpty() || pData->sFontName == s
FontName) | 238 if (sFontName.IsEmpty() || pData->sFontName == s
FontName) |
239 return i; | 239 return i; |
240 } | 240 } |
241 } | 241 } |
242 } | 242 } |
243 | 243 |
244 return -1; | 244 return -1; |
245 } | 245 } |
246 | 246 |
247 int32_t CPWL_FontMap::GetFontIndex(const CFX_ByteString& sFontName, int32_t nCha
rset, FX_BOOL bFind) | 247 int32_t CPWL_FontMap::GetFontIndex(const CFX_ByteString& sFontName, int32_t nCha
rset, bool bFind) |
248 { | 248 { |
249 int32_t nFontIndex = FindFont(EncodeFontAlias(sFontName, nCharset), nCha
rset); | 249 int32_t nFontIndex = FindFont(EncodeFontAlias(sFontName, nCharset), nCha
rset); |
250 if (nFontIndex >= 0) return nFontIndex; | 250 if (nFontIndex >= 0) return nFontIndex; |
251 | 251 |
252 // nFontIndex = FindFont("", nCharset); | 252 // nFontIndex = FindFont("", nCharset); |
253 // if (nFontIndex >= 0) return nFontIndex; | 253 // if (nFontIndex >= 0) return nFontIndex; |
254 | 254 |
255 CFX_ByteString sAlias; | 255 CFX_ByteString sAlias; |
256 CPDF_Font* pFont = NULL; | 256 CPDF_Font* pFont = NULL; |
257 | 257 |
(...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 } | 587 } |
588 | 588 |
589 CPWL_DocFontMap::~CPWL_DocFontMap() | 589 CPWL_DocFontMap::~CPWL_DocFontMap() |
590 { | 590 { |
591 } | 591 } |
592 | 592 |
593 CPDF_Document* CPWL_DocFontMap::GetDocument() | 593 CPDF_Document* CPWL_DocFontMap::GetDocument() |
594 { | 594 { |
595 return m_pAttachedDoc; | 595 return m_pAttachedDoc; |
596 } | 596 } |
OLD | NEW |