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/include/fpdfapi/fpdf_pageobj.h" | 7 #include "core/include/fpdfapi/fpdf_pageobj.h" |
8 #include "core/include/fpdfapi/fpdf_render.h" | 8 #include "core/include/fpdfapi/fpdf_render.h" |
9 #include "fpdfsdk/include/fx_systemhandler.h" | 9 #include "fpdfsdk/include/fx_systemhandler.h" |
10 #include "fpdfsdk/include/fxedit/fx_edit.h" | 10 #include "fpdfsdk/include/fxedit/fx_edit.h" |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 IFX_Edit* pEdit, | 93 IFX_Edit* pEdit, |
94 FX_COLORREF color, | 94 FX_COLORREF color, |
95 const CFX_FloatRect& rcClip, | 95 const CFX_FloatRect& rcClip, |
96 const CFX_FloatPoint& ptOffset, | 96 const CFX_FloatPoint& ptOffset, |
97 const CPVT_WordRange* pRange) { | 97 const CPVT_WordRange* pRange) { |
98 pDevice->SaveState(); | 98 pDevice->SaveState(); |
99 | 99 |
100 if (!rcClip.IsEmpty()) { | 100 if (!rcClip.IsEmpty()) { |
101 CFX_FloatRect rcTemp = rcClip; | 101 CFX_FloatRect rcTemp = rcClip; |
102 pUser2Device->TransformRect(rcTemp); | 102 pUser2Device->TransformRect(rcTemp); |
103 FX_RECT rcDevClip; | 103 pDevice->SetClip_Rect(FX_RECT((int32_t)rcTemp.left, (int32_t)rcTemp.top, |
104 rcDevClip.left = (int32_t)rcTemp.left; | 104 (int32_t)rcTemp.right, |
105 rcDevClip.right = (int32_t)rcTemp.right; | 105 (int32_t)rcTemp.bottom)); |
106 rcDevClip.top = (int32_t)rcTemp.top; | |
107 rcDevClip.bottom = (int32_t)rcTemp.bottom; | |
108 pDevice->SetClip_Rect(&rcDevClip); | |
109 } | 106 } |
110 | 107 |
111 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { | 108 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { |
112 if (pEdit->GetFontMap()) { | 109 if (pEdit->GetFontMap()) { |
113 if (pRange) | 110 if (pRange) |
114 pIterator->SetAt(pRange->BeginPos); | 111 pIterator->SetAt(pRange->BeginPos); |
115 else | 112 else |
116 pIterator->SetAt(0); | 113 pIterator->SetAt(0); |
117 | 114 |
118 while (pIterator->NextWord()) { | 115 while (pIterator->NextWord()) { |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 164 |
168 CFX_ByteTextBuf sTextBuf; | 165 CFX_ByteTextBuf sTextBuf; |
169 int32_t nFontIndex = -1; | 166 int32_t nFontIndex = -1; |
170 CFX_FloatPoint ptBT(0.0f, 0.0f); | 167 CFX_FloatPoint ptBT(0.0f, 0.0f); |
171 | 168 |
172 pDevice->SaveState(); | 169 pDevice->SaveState(); |
173 | 170 |
174 if (!rcClip.IsEmpty()) { | 171 if (!rcClip.IsEmpty()) { |
175 CFX_FloatRect rcTemp = rcClip; | 172 CFX_FloatRect rcTemp = rcClip; |
176 pUser2Device->TransformRect(rcTemp); | 173 pUser2Device->TransformRect(rcTemp); |
177 FX_RECT rcDevClip; | 174 pDevice->SetClip_Rect(FX_RECT((int32_t)rcTemp.left, (int32_t)rcTemp.top, |
178 rcDevClip.left = (int32_t)rcTemp.left; | 175 (int32_t)rcTemp.right, |
179 rcDevClip.right = (int32_t)rcTemp.right; | 176 (int32_t)rcTemp.bottom)); |
180 rcDevClip.top = (int32_t)rcTemp.top; | |
181 rcDevClip.bottom = (int32_t)rcTemp.bottom; | |
182 pDevice->SetClip_Rect(&rcDevClip); | |
183 } | 177 } |
184 | 178 |
185 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { | 179 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { |
186 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { | 180 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { |
187 if (pRange) | 181 if (pRange) |
188 pIterator->SetAt(pRange->BeginPos); | 182 pIterator->SetAt(pRange->BeginPos); |
189 else | 183 else |
190 pIterator->SetAt(0); | 184 pIterator->SetAt(0); |
191 | 185 |
192 CPVT_WordPlace oldplace; | 186 CPVT_WordPlace oldplace; |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 | 286 |
293 CFX_ByteTextBuf sTextBuf; | 287 CFX_ByteTextBuf sTextBuf; |
294 CPVT_WordProps wp; | 288 CPVT_WordProps wp; |
295 CFX_FloatPoint ptBT(0.0f, 0.0f); | 289 CFX_FloatPoint ptBT(0.0f, 0.0f); |
296 | 290 |
297 pDevice->SaveState(); | 291 pDevice->SaveState(); |
298 | 292 |
299 if (!rcClip.IsEmpty()) { | 293 if (!rcClip.IsEmpty()) { |
300 CFX_FloatRect rcTemp = rcClip; | 294 CFX_FloatRect rcTemp = rcClip; |
301 pUser2Device->TransformRect(rcTemp); | 295 pUser2Device->TransformRect(rcTemp); |
302 FX_RECT rcDevClip; | 296 pDevice->SetClip_Rect(FX_RECT((int32_t)rcTemp.left, (int32_t)rcTemp.top, |
303 rcDevClip.left = (int32_t)rcTemp.left; | 297 (int32_t)rcTemp.right, |
304 rcDevClip.right = (int32_t)rcTemp.right; | 298 (int32_t)rcTemp.bottom)); |
305 rcDevClip.top = (int32_t)rcTemp.top; | |
306 rcDevClip.bottom = (int32_t)rcTemp.bottom; | |
307 pDevice->SetClip_Rect(&rcDevClip); | |
308 } | 299 } |
309 | 300 |
310 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { | 301 if (IFX_Edit_Iterator* pIterator = pEdit->GetIterator()) { |
311 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { | 302 if (IFX_Edit_FontMap* pFontMap = pEdit->GetFontMap()) { |
312 if (pRange) | 303 if (pRange) |
313 pIterator->SetAt(pRange->BeginPos); | 304 pIterator->SetAt(pRange->BeginPos); |
314 else | 305 else |
315 pIterator->SetAt(0); | 306 pIterator->SetAt(0); |
316 | 307 |
317 CPVT_WordPlace oldplace; | 308 CPVT_WordPlace oldplace; |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 rcUnderline.left += ptOffset.x; | 637 rcUnderline.left += ptOffset.x; |
647 rcUnderline.right += ptOffset.x; | 638 rcUnderline.right += ptOffset.x; |
648 rcUnderline.top += ptOffset.y; | 639 rcUnderline.top += ptOffset.y; |
649 rcUnderline.bottom += ptOffset.y; | 640 rcUnderline.bottom += ptOffset.y; |
650 AddRectToPageObjects(pObjectHolder, color, rcUnderline); | 641 AddRectToPageObjects(pObjectHolder, color, rcUnderline); |
651 } | 642 } |
652 } | 643 } |
653 } | 644 } |
654 } | 645 } |
655 } | 646 } |
OLD | NEW |