Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(297)

Side by Side Diff: fpdfsdk/pdfwindow/PWL_Edit.cpp

Issue 2142213002: Remove some IFX_* wrappers. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Rebase to master Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « fpdfsdk/pdfwindow/PWL_Edit.h ('k') | fpdfsdk/pdfwindow/PWL_EditCtrl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "fpdfsdk/pdfwindow/PWL_Edit.h" 7 #include "fpdfsdk/pdfwindow/PWL_Edit.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
11 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h" 11 #include "core/fpdfapi/fpdf_font/include/cpdf_font.h"
12 #include "core/fpdfdoc/include/cpvt_word.h" 12 #include "core/fpdfdoc/include/cpvt_word.h"
13 #include "core/fxcrt/include/fx_safe_types.h" 13 #include "core/fxcrt/include/fx_safe_types.h"
14 #include "core/fxcrt/include/fx_xml.h" 14 #include "core/fxcrt/include/fx_xml.h"
15 #include "core/fxge/include/fx_ge.h" 15 #include "core/fxge/include/fx_ge.h"
16 #include "fpdfsdk/fxedit/include/fxet_edit.h"
16 #include "fpdfsdk/pdfwindow/PWL_Caret.h" 17 #include "fpdfsdk/pdfwindow/PWL_Caret.h"
17 #include "fpdfsdk/pdfwindow/PWL_EditCtrl.h" 18 #include "fpdfsdk/pdfwindow/PWL_EditCtrl.h"
18 #include "fpdfsdk/pdfwindow/PWL_FontMap.h" 19 #include "fpdfsdk/pdfwindow/PWL_FontMap.h"
19 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h" 20 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h"
20 #include "fpdfsdk/pdfwindow/PWL_Utils.h" 21 #include "fpdfsdk/pdfwindow/PWL_Utils.h"
21 #include "fpdfsdk/pdfwindow/PWL_Wnd.h" 22 #include "fpdfsdk/pdfwindow/PWL_Wnd.h"
22 #include "public/fpdf_fwlevent.h" 23 #include "public/fpdf_fwlevent.h"
23 #include "third_party/base/stl_util.h" 24 #include "third_party/base/stl_util.h"
24 25
25 CPWL_Edit::CPWL_Edit() 26 CPWL_Edit::CPWL_Edit()
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 CPVT_WordRange wrWhole = m_pEdit->GetWholeWordRange(); 252 CPVT_WordRange wrWhole = m_pEdit->GetWholeWordRange();
252 CPVT_WordRange wrSelect = GetSelectWordRange(); 253 CPVT_WordRange wrSelect = GetSelectWordRange();
253 CPVT_WordRange wrVisible = 254 CPVT_WordRange wrVisible =
254 (HasFlag(PES_TEXTOVERFLOW) ? wrWhole : m_pEdit->GetVisibleWordRange()); 255 (HasFlag(PES_TEXTOVERFLOW) ? wrWhole : m_pEdit->GetVisibleWordRange());
255 CPVT_WordRange wrSelBefore(wrWhole.BeginPos, wrSelect.BeginPos); 256 CPVT_WordRange wrSelBefore(wrWhole.BeginPos, wrSelect.BeginPos);
256 CPVT_WordRange wrSelAfter(wrSelect.EndPos, wrWhole.EndPos); 257 CPVT_WordRange wrSelAfter(wrSelect.EndPos, wrWhole.EndPos);
257 258
258 CPVT_WordRange wrTemp = 259 CPVT_WordRange wrTemp =
259 CPWL_Utils::OverlapWordRange(GetSelectWordRange(), wrVisible); 260 CPWL_Utils::OverlapWordRange(GetSelectWordRange(), wrVisible);
260 CFX_ByteString sEditSel = 261 CFX_ByteString sEditSel =
261 CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset, &wrTemp); 262 CPWL_Utils::GetEditSelAppStream(m_pEdit.get(), ptOffset, &wrTemp);
262 263
263 if (sEditSel.GetLength() > 0) 264 if (sEditSel.GetLength() > 0)
264 sText << CPWL_Utils::GetColorAppStream(PWL_DEFAULT_SELBACKCOLOR).AsStringC() 265 sText << CPWL_Utils::GetColorAppStream(PWL_DEFAULT_SELBACKCOLOR).AsStringC()
265 << sEditSel.AsStringC(); 266 << sEditSel.AsStringC();
266 267
267 wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelBefore); 268 wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelBefore);
268 CFX_ByteString sEditBefore = CPWL_Utils::GetEditAppStream( 269 CFX_ByteString sEditBefore = CPWL_Utils::GetEditAppStream(
269 m_pEdit, ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY), 270 m_pEdit.get(), ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY),
270 m_pEdit->GetPasswordChar()); 271 m_pEdit->GetPasswordChar());
271 272
272 if (sEditBefore.GetLength() > 0) 273 if (sEditBefore.GetLength() > 0)
273 sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()).AsStringC() 274 sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()).AsStringC()
274 << sEditBefore.AsStringC() << "ET\n"; 275 << sEditBefore.AsStringC() << "ET\n";
275 276
276 wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelect); 277 wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelect);
277 CFX_ByteString sEditMid = CPWL_Utils::GetEditAppStream( 278 CFX_ByteString sEditMid = CPWL_Utils::GetEditAppStream(
278 m_pEdit, ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY), 279 m_pEdit.get(), ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY),
279 m_pEdit->GetPasswordChar()); 280 m_pEdit->GetPasswordChar());
280 281
281 if (sEditMid.GetLength() > 0) 282 if (sEditMid.GetLength() > 0)
282 sText << "BT\n" 283 sText << "BT\n"
283 << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_GRAY, 1)) 284 << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_GRAY, 1))
284 .AsStringC() 285 .AsStringC()
285 << sEditMid.AsStringC() << "ET\n"; 286 << sEditMid.AsStringC() << "ET\n";
286 287
287 wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelAfter); 288 wrTemp = CPWL_Utils::OverlapWordRange(wrVisible, wrSelAfter);
288 CFX_ByteString sEditAfter = CPWL_Utils::GetEditAppStream( 289 CFX_ByteString sEditAfter = CPWL_Utils::GetEditAppStream(
289 m_pEdit, ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY), 290 m_pEdit.get(), ptOffset, &wrTemp, !HasFlag(PES_CHARARRAY),
290 m_pEdit->GetPasswordChar()); 291 m_pEdit->GetPasswordChar());
291 292
292 if (sEditAfter.GetLength() > 0) 293 if (sEditAfter.GetLength() > 0)
293 sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()).AsStringC() 294 sText << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()).AsStringC()
294 << sEditAfter.AsStringC() << "ET\n"; 295 << sEditAfter.AsStringC() << "ET\n";
295 296
296 if (sText.GetLength() > 0) { 297 if (sText.GetLength() > 0) {
297 CFX_FloatRect rect = GetClientRect(); 298 CFX_FloatRect rect = GetClientRect();
298 sAppStream << "q\n/Tx BMC\n"; 299 sAppStream << "q\n/Tx BMC\n";
299 300
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
388 389
389 CFX_FloatRect rcClip; 390 CFX_FloatRect rcClip;
390 CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange(); 391 CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange();
391 CPVT_WordRange* pRange = nullptr; 392 CPVT_WordRange* pRange = nullptr;
392 393
393 if (!HasFlag(PES_TEXTOVERFLOW)) { 394 if (!HasFlag(PES_TEXTOVERFLOW)) {
394 rcClip = GetClientRect(); 395 rcClip = GetClientRect();
395 pRange = &wrRange; 396 pRange = &wrRange;
396 } 397 }
397 CFX_SystemHandler* pSysHandler = GetSystemHandler(); 398 CFX_SystemHandler* pSysHandler = GetSystemHandler();
398 IFX_Edit::DrawEdit( 399 CFX_Edit::DrawEdit(
399 pDevice, pUser2Device, m_pEdit, 400 pDevice, pUser2Device, m_pEdit.get(),
400 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 401 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
401 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()), 402 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()),
402 rcClip, CFX_FloatPoint(0.0f, 0.0f), pRange, pSysHandler, m_pFormFiller); 403 rcClip, CFX_FloatPoint(0.0f, 0.0f), pRange, pSysHandler, m_pFormFiller);
403 } 404 }
404 405
405 FX_BOOL CPWL_Edit::OnLButtonDown(const CFX_FloatPoint& point, uint32_t nFlag) { 406 FX_BOOL CPWL_Edit::OnLButtonDown(const CFX_FloatPoint& point, uint32_t nFlag) {
406 CPWL_Wnd::OnLButtonDown(point, nFlag); 407 CPWL_Wnd::OnLButtonDown(point, nFlag);
407 408
408 if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) { 409 if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) {
409 if (m_bMouseDown) 410 if (m_bMouseDown)
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
483 } 484 }
484 485
485 void CPWL_Edit::SetLineLeading(FX_FLOAT fLineLeading, 486 void CPWL_Edit::SetLineLeading(FX_FLOAT fLineLeading,
486 FX_BOOL bPaint /* = TRUE*/) { 487 FX_BOOL bPaint /* = TRUE*/) {
487 m_pEdit->SetLineLeading(fLineLeading, bPaint); 488 m_pEdit->SetLineLeading(fLineLeading, bPaint);
488 } 489 }
489 490
490 CFX_ByteString CPWL_Edit::GetSelectAppearanceStream( 491 CFX_ByteString CPWL_Edit::GetSelectAppearanceStream(
491 const CFX_FloatPoint& ptOffset) const { 492 const CFX_FloatPoint& ptOffset) const {
492 CPVT_WordRange wr = GetSelectWordRange(); 493 CPVT_WordRange wr = GetSelectWordRange();
493 return CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset, &wr); 494 return CPWL_Utils::GetEditSelAppStream(m_pEdit.get(), ptOffset, &wr);
494 } 495 }
495 496
496 CPVT_WordRange CPWL_Edit::GetSelectWordRange() const { 497 CPVT_WordRange CPWL_Edit::GetSelectWordRange() const {
497 if (m_pEdit->IsSelected()) { 498 if (m_pEdit->IsSelected()) {
498 int32_t nStart = -1; 499 int32_t nStart = -1;
499 int32_t nEnd = -1; 500 int32_t nEnd = -1;
500 501
501 m_pEdit->GetSel(nStart, nEnd); 502 m_pEdit->GetSel(nStart, nEnd);
502 503
503 CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStart); 504 CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStart);
504 CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEnd); 505 CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEnd);
505 506
506 return CPVT_WordRange(wpStart, wpEnd); 507 return CPVT_WordRange(wpStart, wpEnd);
507 } 508 }
508 509
509 return CPVT_WordRange(); 510 return CPVT_WordRange();
510 } 511 }
511 512
512 CFX_ByteString CPWL_Edit::GetTextAppearanceStream( 513 CFX_ByteString CPWL_Edit::GetTextAppearanceStream(
513 const CFX_FloatPoint& ptOffset) const { 514 const CFX_FloatPoint& ptOffset) const {
514 CFX_ByteTextBuf sRet; 515 CFX_ByteTextBuf sRet;
515 CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset); 516 CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit.get(), ptOffset);
516 if (sEdit.GetLength() > 0) { 517 if (sEdit.GetLength() > 0) {
517 sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()).AsStringC() 518 sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()).AsStringC()
518 << sEdit.AsStringC() << "ET\n"; 519 << sEdit.AsStringC() << "ET\n";
519 } 520 }
520 return sRet.MakeString(); 521 return sRet.MakeString();
521 } 522 }
522 523
523 CFX_ByteString CPWL_Edit::GetCaretAppearanceStream( 524 CFX_ByteString CPWL_Edit::GetCaretAppearanceStream(
524 const CFX_FloatPoint& ptOffset) const { 525 const CFX_FloatPoint& ptOffset) const {
525 if (m_pEditCaret) 526 if (m_pEditCaret)
526 return m_pEditCaret->GetCaretAppearanceStream(ptOffset); 527 return m_pEditCaret->GetCaretAppearanceStream(ptOffset);
527 528
528 return CFX_ByteString(); 529 return CFX_ByteString();
529 } 530 }
530 531
531 CFX_FloatPoint CPWL_Edit::GetWordRightBottomPoint( 532 CFX_FloatPoint CPWL_Edit::GetWordRightBottomPoint(
532 const CPVT_WordPlace& wpWord) { 533 const CPVT_WordPlace& wpWord) {
533 CFX_FloatPoint pt(0.0f, 0.0f); 534 CFX_FloatPoint pt(0.0f, 0.0f);
534 535
535 IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator(); 536 CFX_Edit_Iterator* pIterator = m_pEdit->GetIterator();
536 CPVT_WordPlace wpOld = pIterator->GetAt(); 537 CPVT_WordPlace wpOld = pIterator->GetAt();
537 pIterator->SetAt(wpWord); 538 pIterator->SetAt(wpWord);
538 CPVT_Word word; 539 CPVT_Word word;
539 if (pIterator->GetWord(word)) { 540 if (pIterator->GetWord(word)) {
540 pt = CFX_FloatPoint(word.ptWord.x + word.fWidth, 541 pt = CFX_FloatPoint(word.ptWord.x + word.fWidth,
541 word.ptWord.y + word.fDescent); 542 word.ptWord.y + word.fDescent);
542 } 543 }
543 544
544 pIterator->SetAt(wpOld); 545 pIterator->SetAt(wpOld);
545 546
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 if (HasFlag(PES_SPELLCHECK)) { 817 if (HasFlag(PES_SPELLCHECK)) {
817 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), 818 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
818 GetLatinWordsRange(place))); 819 GetLatinWordsRange(place)));
819 } 820 }
820 821
821 if (m_pEditNotify) { 822 if (m_pEditNotify) {
822 m_pEditNotify->OnInsertWord(place, oldplace); 823 m_pEditNotify->OnInsertWord(place, oldplace);
823 } 824 }
824 } 825 }
825 826
826 void CPWL_Edit::OnSetText(const CPVT_WordPlace& place,
827 const CPVT_WordPlace& oldplace) {}
828
829 void CPWL_Edit::OnInsertText(const CPVT_WordPlace& place, 827 void CPWL_Edit::OnInsertText(const CPVT_WordPlace& place,
830 const CPVT_WordPlace& oldplace) { 828 const CPVT_WordPlace& oldplace) {
831 if (HasFlag(PES_SPELLCHECK)) { 829 if (HasFlag(PES_SPELLCHECK)) {
832 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), 830 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace),
833 GetLatinWordsRange(place))); 831 GetLatinWordsRange(place)));
834 } 832 }
835 833
836 if (m_pEditNotify) { 834 if (m_pEditNotify) {
837 m_pEditNotify->OnInsertText(place, oldplace); 835 m_pEditNotify->OnInsertText(place, oldplace);
838 } 836 }
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
879 } 877 }
880 878
881 #define PWL_ISARABICWORD(word) \ 879 #define PWL_ISARABICWORD(word) \
882 ((word >= 0x0600 && word <= 0x06FF) || (word >= 0xFB50 && word <= 0xFEFC)) 880 ((word >= 0x0600 && word <= 0x06FF) || (word >= 0xFB50 && word <= 0xFEFC))
883 881
884 CPVT_WordRange CPWL_Edit::GetSameWordsRange(const CPVT_WordPlace& place, 882 CPVT_WordRange CPWL_Edit::GetSameWordsRange(const CPVT_WordPlace& place,
885 FX_BOOL bLatin, 883 FX_BOOL bLatin,
886 FX_BOOL bArabic) const { 884 FX_BOOL bArabic) const {
887 CPVT_WordRange range; 885 CPVT_WordRange range;
888 886
889 IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator(); 887 CFX_Edit_Iterator* pIterator = m_pEdit->GetIterator();
890 CPVT_Word wordinfo; 888 CPVT_Word wordinfo;
891 CPVT_WordPlace wpStart(place), wpEnd(place); 889 CPVT_WordPlace wpStart(place), wpEnd(place);
892 pIterator->SetAt(place); 890 pIterator->SetAt(place);
893 891
894 if (bLatin) { 892 if (bLatin) {
895 while (pIterator->NextWord()) { 893 while (pIterator->NextWord()) {
896 if (!pIterator->GetWord(wordinfo) || 894 if (!pIterator->GetWord(wordinfo) ||
897 !FX_EDIT_ISLATINWORD(wordinfo.Word)) { 895 !FX_EDIT_ISLATINWORD(wordinfo.Word)) {
898 break; 896 break;
899 } 897 }
(...skipping 30 matching lines...) Expand all
930 } 928 }
931 929
932 range.Set(wpStart, wpEnd); 930 range.Set(wpStart, wpEnd);
933 return range; 931 return range;
934 } 932 }
935 933
936 void CPWL_Edit::GeneratePageObjects( 934 void CPWL_Edit::GeneratePageObjects(
937 CPDF_PageObjectHolder* pObjectHolder, 935 CPDF_PageObjectHolder* pObjectHolder,
938 const CFX_FloatPoint& ptOffset, 936 const CFX_FloatPoint& ptOffset,
939 CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) { 937 CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) {
940 IFX_Edit::GeneratePageObjects( 938 CFX_Edit::GeneratePageObjects(
941 pObjectHolder, m_pEdit, ptOffset, nullptr, 939 pObjectHolder, m_pEdit.get(), ptOffset, nullptr,
942 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 940 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
943 ObjArray); 941 ObjArray);
944 } 942 }
945 943
946 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjectHolder* pObjectHolder, 944 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjectHolder* pObjectHolder,
947 const CFX_FloatPoint& ptOffset) { 945 const CFX_FloatPoint& ptOffset) {
948 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray; 946 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray;
949 IFX_Edit::GeneratePageObjects( 947 CFX_Edit::GeneratePageObjects(
950 pObjectHolder, m_pEdit, ptOffset, nullptr, 948 pObjectHolder, m_pEdit.get(), ptOffset, nullptr,
951 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 949 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
952 ObjArray); 950 ObjArray);
953 } 951 }
OLDNEW
« no previous file with comments | « fpdfsdk/pdfwindow/PWL_Edit.h ('k') | fpdfsdk/pdfwindow/PWL_EditCtrl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698