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 "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h" | 7 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobject.h" |
8 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobjectholder.h" | 8 #include "core/fpdfapi/fpdf_page/include/cpdf_pageobjectholder.h" |
9 #include "core/fpdfapi/fpdf_page/include/cpdf_pathobject.h" | 9 #include "core/fpdfapi/fpdf_page/include/cpdf_pathobject.h" |
10 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h" | 10 #include "core/fpdfapi/fpdf_page/include/cpdf_textobject.h" |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 rcUnderline.bottom += ptOffset.y; | 129 rcUnderline.bottom += ptOffset.y; |
130 pathUnderline.AppendRect(rcUnderline.left, rcUnderline.bottom, | 130 pathUnderline.AppendRect(rcUnderline.left, rcUnderline.bottom, |
131 rcUnderline.right, rcUnderline.top); | 131 rcUnderline.right, rcUnderline.top); |
132 | 132 |
133 pDevice->DrawPath(&pathUnderline, pUser2Device, NULL, color, 0, | 133 pDevice->DrawPath(&pathUnderline, pUser2Device, NULL, color, 0, |
134 FXFILL_WINDING); | 134 FXFILL_WINDING); |
135 } | 135 } |
136 } | 136 } |
137 } | 137 } |
138 | 138 |
139 pDevice->RestoreState(); | 139 pDevice->RestoreState(false); |
140 } | 140 } |
141 | 141 |
142 void IFX_Edit::DrawEdit(CFX_RenderDevice* pDevice, | 142 void IFX_Edit::DrawEdit(CFX_RenderDevice* pDevice, |
143 CFX_Matrix* pUser2Device, | 143 CFX_Matrix* pUser2Device, |
144 IFX_Edit* pEdit, | 144 IFX_Edit* pEdit, |
145 FX_COLORREF crTextFill, | 145 FX_COLORREF crTextFill, |
146 FX_COLORREF crTextStroke, | 146 FX_COLORREF crTextStroke, |
147 const CFX_FloatRect& rcClip, | 147 const CFX_FloatRect& rcClip, |
148 const CFX_FloatPoint& ptOffset, | 148 const CFX_FloatPoint& ptOffset, |
149 const CPVT_WordRange* pRange, | 149 const CPVT_WordRange* pRange, |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 } | 253 } |
254 | 254 |
255 if (sTextBuf.GetLength() > 0) { | 255 if (sTextBuf.GetLength() > 0) { |
256 DrawTextString( | 256 DrawTextString( |
257 pDevice, CFX_FloatPoint(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y), | 257 pDevice, CFX_FloatPoint(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y), |
258 pFontMap->GetPDFFont(nFontIndex), fFontSize, pUser2Device, | 258 pFontMap->GetPDFFont(nFontIndex), fFontSize, pUser2Device, |
259 sTextBuf.MakeString(), crOldFill, crTextStroke, nHorzScale); | 259 sTextBuf.MakeString(), crOldFill, crTextStroke, nHorzScale); |
260 } | 260 } |
261 } | 261 } |
262 | 262 |
263 pDevice->RestoreState(); | 263 pDevice->RestoreState(false); |
264 } | 264 } |
265 | 265 |
266 void IFX_Edit::DrawRichEdit(CFX_RenderDevice* pDevice, | 266 void IFX_Edit::DrawRichEdit(CFX_RenderDevice* pDevice, |
267 CFX_Matrix* pUser2Device, | 267 CFX_Matrix* pUser2Device, |
268 IFX_Edit* pEdit, | 268 IFX_Edit* pEdit, |
269 const CFX_FloatRect& rcClip, | 269 const CFX_FloatRect& rcClip, |
270 const CFX_FloatPoint& ptOffset, | 270 const CFX_FloatPoint& ptOffset, |
271 const CPVT_WordRange* pRange) { | 271 const CPVT_WordRange* pRange) { |
272 CPVT_WordRange wrSelect = pEdit->GetSelectWordRange(); | 272 CPVT_WordRange wrSelect = pEdit->GetSelectWordRange(); |
273 | 273 |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 } | 378 } |
379 | 379 |
380 if (sTextBuf.GetLength() > 0) { | 380 if (sTextBuf.GetLength() > 0) { |
381 DrawTextString( | 381 DrawTextString( |
382 pDevice, CFX_FloatPoint(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y), | 382 pDevice, CFX_FloatPoint(ptBT.x + ptOffset.x, ptBT.y + ptOffset.y), |
383 pFontMap->GetPDFFont(wp.nFontIndex), wp.fFontSize, pUser2Device, | 383 pFontMap->GetPDFFont(wp.nFontIndex), wp.fFontSize, pUser2Device, |
384 sTextBuf.MakeString(), crOld, 0, wp.nHorzScale); | 384 sTextBuf.MakeString(), crOld, 0, wp.nHorzScale); |
385 } | 385 } |
386 } | 386 } |
387 | 387 |
388 pDevice->RestoreState(); | 388 pDevice->RestoreState(false); |
389 } | 389 } |
390 | 390 |
391 static void AddRectToPageObjects(CPDF_PageObjectHolder* pObjectHolder, | 391 static void AddRectToPageObjects(CPDF_PageObjectHolder* pObjectHolder, |
392 FX_COLORREF crFill, | 392 FX_COLORREF crFill, |
393 const CFX_FloatRect& rcFill) { | 393 const CFX_FloatRect& rcFill) { |
394 std::unique_ptr<CPDF_PathObject> pPathObj(new CPDF_PathObject); | 394 std::unique_ptr<CPDF_PathObject> pPathObj(new CPDF_PathObject); |
395 CFX_PathData* pPathData = pPathObj->m_Path.GetModify(); | 395 CFX_PathData* pPathData = pPathObj->m_Path.GetModify(); |
396 pPathData->AppendRect(rcFill.left, rcFill.bottom, rcFill.right, rcFill.top); | 396 pPathData->AppendRect(rcFill.left, rcFill.bottom, rcFill.right, rcFill.top); |
397 | 397 |
398 FX_FLOAT rgb[3]; | 398 FX_FLOAT rgb[3]; |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 CFX_FloatRect rcUnderline = GetUnderLineRect(word); | 623 CFX_FloatRect rcUnderline = GetUnderLineRect(word); |
624 rcUnderline.left += ptOffset.x; | 624 rcUnderline.left += ptOffset.x; |
625 rcUnderline.right += ptOffset.x; | 625 rcUnderline.right += ptOffset.x; |
626 rcUnderline.top += ptOffset.y; | 626 rcUnderline.top += ptOffset.y; |
627 rcUnderline.bottom += ptOffset.y; | 627 rcUnderline.bottom += ptOffset.y; |
628 AddRectToPageObjects(pObjectHolder, color, rcUnderline); | 628 AddRectToPageObjects(pObjectHolder, color, rcUnderline); |
629 } | 629 } |
630 } | 630 } |
631 } | 631 } |
632 } | 632 } |
OLD | NEW |