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

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

Issue 1743753002: Revert "Replace CPDF_Rect and CPDF_Point with CFX types." (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 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/src/pdfwindow/PWL_ComboBox.cpp ('k') | fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp » ('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/include/pdfwindow/PWL_Edit.h" 7 #include "fpdfsdk/include/pdfwindow/PWL_Edit.h"
8 8
9 #include "core/include/fxcrt/fx_safe_types.h" 9 #include "core/include/fxcrt/fx_safe_types.h"
10 #include "core/include/fxcrt/fx_xml.h" 10 #include "core/include/fxcrt/fx_xml.h"
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 66
67 delete pXML; 67 delete pXML;
68 } 68 }
69 } 69 }
70 70
71 m_pEdit->SetText(swText.c_str()); 71 m_pEdit->SetText(swText.c_str());
72 } 72 }
73 73
74 void CPWL_Edit::RePosChildWnd() { 74 void CPWL_Edit::RePosChildWnd() {
75 if (CPWL_ScrollBar* pVSB = GetVScrollBar()) { 75 if (CPWL_ScrollBar* pVSB = GetVScrollBar()) {
76 CFX_FloatRect rcWindow = m_rcOldWindow; 76 CPDF_Rect rcWindow = m_rcOldWindow;
77 CFX_FloatRect rcVScroll = 77 CPDF_Rect rcVScroll =
78 CFX_FloatRect(rcWindow.right, rcWindow.bottom, 78 CPDF_Rect(rcWindow.right, rcWindow.bottom,
79 rcWindow.right + PWL_SCROLLBAR_WIDTH, rcWindow.top); 79 rcWindow.right + PWL_SCROLLBAR_WIDTH, rcWindow.top);
80 pVSB->Move(rcVScroll, TRUE, FALSE); 80 pVSB->Move(rcVScroll, TRUE, FALSE);
81 } 81 }
82 82
83 if (m_pEditCaret && !HasFlag(PES_TEXTOVERFLOW)) 83 if (m_pEditCaret && !HasFlag(PES_TEXTOVERFLOW))
84 m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect( 84 m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect(
85 GetClientRect(), 1.0f)); // +1 for caret beside border 85 GetClientRect(), 1.0f)); // +1 for caret beside border
86 86
87 CPWL_EditCtrl::RePosChildWnd(); 87 CPWL_EditCtrl::RePosChildWnd();
88 } 88 }
89 89
90 CFX_FloatRect CPWL_Edit::GetClientRect() const { 90 CPDF_Rect CPWL_Edit::GetClientRect() const {
91 CFX_FloatRect rcClient = CPWL_Utils::DeflateRect( 91 CPDF_Rect rcClient = CPWL_Utils::DeflateRect(
92 GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth())); 92 GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth()));
93 93
94 if (CPWL_ScrollBar* pVSB = GetVScrollBar()) { 94 if (CPWL_ScrollBar* pVSB = GetVScrollBar()) {
95 if (pVSB->IsVisible()) { 95 if (pVSB->IsVisible()) {
96 rcClient.right -= PWL_SCROLLBAR_WIDTH; 96 rcClient.right -= PWL_SCROLLBAR_WIDTH;
97 } 97 }
98 } 98 }
99 99
100 return rcClient; 100 return rcClient;
101 } 101 }
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 m_pEdit->SetPasswordChar('*', FALSE); 227 m_pEdit->SetPasswordChar('*', FALSE);
228 } 228 }
229 229
230 m_pEdit->SetMultiLine(HasFlag(PES_MULTILINE), FALSE); 230 m_pEdit->SetMultiLine(HasFlag(PES_MULTILINE), FALSE);
231 m_pEdit->SetAutoReturn(HasFlag(PES_AUTORETURN), FALSE); 231 m_pEdit->SetAutoReturn(HasFlag(PES_AUTORETURN), FALSE);
232 m_pEdit->SetAutoFontSize(HasFlag(PWS_AUTOFONTSIZE), FALSE); 232 m_pEdit->SetAutoFontSize(HasFlag(PWS_AUTOFONTSIZE), FALSE);
233 m_pEdit->SetAutoScroll(HasFlag(PES_AUTOSCROLL), FALSE); 233 m_pEdit->SetAutoScroll(HasFlag(PES_AUTOSCROLL), FALSE);
234 m_pEdit->EnableUndo(HasFlag(PES_UNDO)); 234 m_pEdit->EnableUndo(HasFlag(PES_UNDO));
235 235
236 if (HasFlag(PES_TEXTOVERFLOW)) { 236 if (HasFlag(PES_TEXTOVERFLOW)) {
237 SetClipRect(CFX_FloatRect(0.0f, 0.0f, 0.0f, 0.0f)); 237 SetClipRect(CPDF_Rect(0.0f, 0.0f, 0.0f, 0.0f));
238 m_pEdit->SetTextOverflow(TRUE, FALSE); 238 m_pEdit->SetTextOverflow(TRUE, FALSE);
239 } else { 239 } else {
240 if (m_pEditCaret) { 240 if (m_pEditCaret) {
241 m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect( 241 m_pEditCaret->SetClipRect(CPWL_Utils::InflateRect(
242 GetClientRect(), 1.0f)); // +1 for caret beside border 242 GetClientRect(), 1.0f)); // +1 for caret beside border
243 } 243 }
244 } 244 }
245 245
246 if (HasFlag(PES_SPELLCHECK)) { 246 if (HasFlag(PES_SPELLCHECK)) {
247 m_pSpellCheck = GetCreationParam().pSpellCheck; 247 m_pSpellCheck = GetCreationParam().pSpellCheck;
248 } 248 }
249 } 249 }
250 250
251 void CPWL_Edit::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) { 251 void CPWL_Edit::GetThisAppearanceStream(CFX_ByteTextBuf& sAppStream) {
252 CPWL_Wnd::GetThisAppearanceStream(sAppStream); 252 CPWL_Wnd::GetThisAppearanceStream(sAppStream);
253 253
254 CFX_FloatRect rcClient = GetClientRect(); 254 CPDF_Rect rcClient = GetClientRect();
255 CFX_ByteTextBuf sLine; 255 CFX_ByteTextBuf sLine;
256 256
257 int32_t nCharArray = m_pEdit->GetCharArray(); 257 int32_t nCharArray = m_pEdit->GetCharArray();
258 258
259 if (nCharArray > 0) { 259 if (nCharArray > 0) {
260 switch (GetBorderStyle()) { 260 switch (GetBorderStyle()) {
261 case PBS_SOLID: { 261 case PBS_SOLID: {
262 sLine << "q\n" << GetBorderWidth() << " w\n" 262 sLine << "q\n" << GetBorderWidth() << " w\n"
263 << CPWL_Utils::GetColorAppStream(GetBorderColor(), FALSE) 263 << CPWL_Utils::GetColorAppStream(GetBorderColor(), FALSE)
264 << " 2 J 0 j\n"; 264 << " 2 J 0 j\n";
(...skipping 27 matching lines...) Expand all
292 292
293 sLine << "Q\n"; 293 sLine << "Q\n";
294 } break; 294 } break;
295 } 295 }
296 } 296 }
297 297
298 sAppStream << sLine; 298 sAppStream << sLine;
299 299
300 CFX_ByteTextBuf sText; 300 CFX_ByteTextBuf sText;
301 301
302 CFX_FloatPoint ptOffset = CFX_FloatPoint(0.0f, 0.0f); 302 CPDF_Point ptOffset = CPDF_Point(0.0f, 0.0f);
303 303
304 CPVT_WordRange wrWhole = m_pEdit->GetWholeWordRange(); 304 CPVT_WordRange wrWhole = m_pEdit->GetWholeWordRange();
305 CPVT_WordRange wrSelect = GetSelectWordRange(); 305 CPVT_WordRange wrSelect = GetSelectWordRange();
306 CPVT_WordRange wrVisible = 306 CPVT_WordRange wrVisible =
307 (HasFlag(PES_TEXTOVERFLOW) ? wrWhole : m_pEdit->GetVisibleWordRange()); 307 (HasFlag(PES_TEXTOVERFLOW) ? wrWhole : m_pEdit->GetVisibleWordRange());
308 CPVT_WordRange wrSelBefore(wrWhole.BeginPos, wrSelect.BeginPos); 308 CPVT_WordRange wrSelBefore(wrWhole.BeginPos, wrSelect.BeginPos);
309 CPVT_WordRange wrSelAfter(wrSelect.EndPos, wrWhole.EndPos); 309 CPVT_WordRange wrSelAfter(wrSelect.EndPos, wrWhole.EndPos);
310 310
311 CPVT_WordRange wrTemp = 311 CPVT_WordRange wrTemp =
312 CPWL_Utils::OverlapWordRange(GetSelectWordRange(), wrVisible); 312 CPWL_Utils::OverlapWordRange(GetSelectWordRange(), wrVisible);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 if (HasFlag(PES_SPELLCHECK)) { 348 if (HasFlag(PES_SPELLCHECK)) {
349 CFX_ByteString sSpellCheck = CPWL_Utils::GetSpellCheckAppStream( 349 CFX_ByteString sSpellCheck = CPWL_Utils::GetSpellCheckAppStream(
350 m_pEdit, m_pSpellCheck, ptOffset, &wrVisible); 350 m_pEdit, m_pSpellCheck, ptOffset, &wrVisible);
351 if (sSpellCheck.GetLength() > 0) 351 if (sSpellCheck.GetLength() > 0)
352 sText << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_RGB, 1, 0, 0), 352 sText << CPWL_Utils::GetColorAppStream(CPWL_Color(COLORTYPE_RGB, 1, 0, 0),
353 FALSE) 353 FALSE)
354 << sSpellCheck; 354 << sSpellCheck;
355 } 355 }
356 356
357 if (sText.GetLength() > 0) { 357 if (sText.GetLength() > 0) {
358 CFX_FloatRect rcClient = GetClientRect(); 358 CPDF_Rect rcClient = GetClientRect();
359 sAppStream << "q\n/Tx BMC\n"; 359 sAppStream << "q\n/Tx BMC\n";
360 360
361 if (!HasFlag(PES_TEXTOVERFLOW)) 361 if (!HasFlag(PES_TEXTOVERFLOW))
362 sAppStream << rcClient.left << " " << rcClient.bottom << " " 362 sAppStream << rcClient.left << " " << rcClient.bottom << " "
363 << rcClient.right - rcClient.left << " " 363 << rcClient.right - rcClient.left << " "
364 << rcClient.top - rcClient.bottom << " re W n\n"; 364 << rcClient.top - rcClient.bottom << " re W n\n";
365 365
366 sAppStream << sText; 366 sAppStream << sText;
367 367
368 sAppStream << "EMC\nQ\n"; 368 sAppStream << "EMC\nQ\n";
369 } 369 }
370 } 370 }
371 371
372 void CPWL_Edit::DrawThisAppearance(CFX_RenderDevice* pDevice, 372 void CPWL_Edit::DrawThisAppearance(CFX_RenderDevice* pDevice,
373 CFX_Matrix* pUser2Device) { 373 CFX_Matrix* pUser2Device) {
374 CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device); 374 CPWL_Wnd::DrawThisAppearance(pDevice, pUser2Device);
375 375
376 CFX_FloatRect rcClient = GetClientRect(); 376 CPDF_Rect rcClient = GetClientRect();
377 CFX_ByteTextBuf sLine; 377 CFX_ByteTextBuf sLine;
378 378
379 int32_t nCharArray = m_pEdit->GetCharArray(); 379 int32_t nCharArray = m_pEdit->GetCharArray();
380 FX_SAFE_INT32 nCharArraySafe = nCharArray; 380 FX_SAFE_INT32 nCharArraySafe = nCharArray;
381 nCharArraySafe -= 1; 381 nCharArraySafe -= 1;
382 nCharArraySafe *= 2; 382 nCharArraySafe *= 2;
383 383
384 if (nCharArray > 0 && nCharArraySafe.IsValid()) { 384 if (nCharArray > 0 && nCharArraySafe.IsValid()) {
385 switch (GetBorderStyle()) { 385 switch (GetBorderStyle()) {
386 case PBS_SOLID: { 386 case PBS_SOLID: {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 } 434 }
435 if (path.GetPointCount() > 0) 435 if (path.GetPointCount() > 0)
436 pDevice->DrawPath( 436 pDevice->DrawPath(
437 &path, pUser2Device, &gsd, 0, 437 &path, pUser2Device, &gsd, 0,
438 CPWL_Utils::PWLColorToFXColor(GetBorderColor(), 255), 438 CPWL_Utils::PWLColorToFXColor(GetBorderColor(), 255),
439 FXFILL_ALTERNATE); 439 FXFILL_ALTERNATE);
440 } break; 440 } break;
441 } 441 }
442 } 442 }
443 443
444 CFX_FloatRect rcClip; 444 CPDF_Rect rcClip;
445 CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange(); 445 CPVT_WordRange wrRange = m_pEdit->GetVisibleWordRange();
446 CPVT_WordRange* pRange = NULL; 446 CPVT_WordRange* pRange = NULL;
447 447
448 if (!HasFlag(PES_TEXTOVERFLOW)) { 448 if (!HasFlag(PES_TEXTOVERFLOW)) {
449 rcClip = GetClientRect(); 449 rcClip = GetClientRect();
450 pRange = &wrRange; 450 pRange = &wrRange;
451 } 451 }
452 IFX_SystemHandler* pSysHandler = GetSystemHandler(); 452 IFX_SystemHandler* pSysHandler = GetSystemHandler();
453 IFX_Edit::DrawEdit( 453 IFX_Edit::DrawEdit(
454 pDevice, pUser2Device, m_pEdit, 454 pDevice, pUser2Device, m_pEdit,
455 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 455 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
456 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()), 456 CPWL_Utils::PWLColorToFXColor(GetTextStrokeColor(), GetTransparency()),
457 rcClip, CFX_FloatPoint(0.0f, 0.0f), pRange, pSysHandler, m_pFormFiller); 457 rcClip, CPDF_Point(0.0f, 0.0f), pRange, pSysHandler, m_pFormFiller);
458 458
459 if (HasFlag(PES_SPELLCHECK)) { 459 if (HasFlag(PES_SPELLCHECK)) {
460 CPWL_Utils::DrawEditSpellCheck(pDevice, pUser2Device, m_pEdit, rcClip, 460 CPWL_Utils::DrawEditSpellCheck(pDevice, pUser2Device, m_pEdit, rcClip,
461 CFX_FloatPoint(0.0f, 0.0f), pRange, 461 CPDF_Point(0.0f, 0.0f), pRange,
462 GetCreationParam().pSpellCheck); 462 GetCreationParam().pSpellCheck);
463 } 463 }
464 } 464 }
465 465
466 FX_BOOL CPWL_Edit::OnLButtonDown(const CFX_FloatPoint& point, FX_DWORD nFlag) { 466 FX_BOOL CPWL_Edit::OnLButtonDown(const CPDF_Point& point, FX_DWORD nFlag) {
467 CPWL_Wnd::OnLButtonDown(point, nFlag); 467 CPWL_Wnd::OnLButtonDown(point, nFlag);
468 468
469 if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) { 469 if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) {
470 if (m_bMouseDown) 470 if (m_bMouseDown)
471 InvalidateRect(); 471 InvalidateRect();
472 472
473 m_bMouseDown = TRUE; 473 m_bMouseDown = TRUE;
474 SetCapture(); 474 SetCapture();
475 475
476 m_pEdit->OnMouseDown(point, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag)); 476 m_pEdit->OnMouseDown(point, IsSHIFTpressed(nFlag), IsCTRLpressed(nFlag));
477 } 477 }
478 478
479 return TRUE; 479 return TRUE;
480 } 480 }
481 481
482 FX_BOOL CPWL_Edit::OnLButtonDblClk(const CFX_FloatPoint& point, 482 FX_BOOL CPWL_Edit::OnLButtonDblClk(const CPDF_Point& point, FX_DWORD nFlag) {
483 FX_DWORD nFlag) {
484 CPWL_Wnd::OnLButtonDblClk(point, nFlag); 483 CPWL_Wnd::OnLButtonDblClk(point, nFlag);
485 484
486 if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) { 485 if (HasFlag(PES_TEXTOVERFLOW) || ClientHitTest(point)) {
487 m_pEdit->SelectAll(); 486 m_pEdit->SelectAll();
488 } 487 }
489 488
490 return TRUE; 489 return TRUE;
491 } 490 }
492 491
493 #define WM_PWLEDIT_UNDO 0x01 492 #define WM_PWLEDIT_UNDO 0x01
494 #define WM_PWLEDIT_REDO 0x02 493 #define WM_PWLEDIT_REDO 0x02
495 #define WM_PWLEDIT_CUT 0x03 494 #define WM_PWLEDIT_CUT 0x03
496 #define WM_PWLEDIT_COPY 0x04 495 #define WM_PWLEDIT_COPY 0x04
497 #define WM_PWLEDIT_PASTE 0x05 496 #define WM_PWLEDIT_PASTE 0x05
498 #define WM_PWLEDIT_DELETE 0x06 497 #define WM_PWLEDIT_DELETE 0x06
499 #define WM_PWLEDIT_SELECTALL 0x07 498 #define WM_PWLEDIT_SELECTALL 0x07
500 #define WM_PWLEDIT_SUGGEST 0x08 499 #define WM_PWLEDIT_SUGGEST 0x08
501 500
502 FX_BOOL CPWL_Edit::OnRButtonUp(const CFX_FloatPoint& point, FX_DWORD nFlag) { 501 FX_BOOL CPWL_Edit::OnRButtonUp(const CPDF_Point& point, FX_DWORD nFlag) {
503 if (m_bMouseDown) 502 if (m_bMouseDown)
504 return FALSE; 503 return FALSE;
505 504
506 CPWL_Wnd::OnRButtonUp(point, nFlag); 505 CPWL_Wnd::OnRButtonUp(point, nFlag);
507 506
508 if (!HasFlag(PES_TEXTOVERFLOW) && !ClientHitTest(point)) 507 if (!HasFlag(PES_TEXTOVERFLOW) && !ClientHitTest(point))
509 return TRUE; 508 return TRUE;
510 509
511 IFX_SystemHandler* pSH = GetSystemHandler(); 510 IFX_SystemHandler* pSH = GetSystemHandler();
512 if (!pSH) 511 if (!pSH)
513 return FALSE; 512 return FALSE;
514 513
515 SetFocus(); 514 SetFocus();
516 515
517 CPVT_WordRange wrLatin = GetLatinWordsRange(point); 516 CPVT_WordRange wrLatin = GetLatinWordsRange(point);
518 CFX_WideString swLatin = m_pEdit->GetRangeText(wrLatin); 517 CFX_WideString swLatin = m_pEdit->GetRangeText(wrLatin);
519 518
520 FX_HMENU hPopup = pSH->CreatePopupMenu(); 519 FX_HMENU hPopup = pSH->CreatePopupMenu();
521 if (!hPopup) 520 if (!hPopup)
522 return FALSE; 521 return FALSE;
523 522
524 std::vector<CFX_ByteString> sSuggestWords; 523 std::vector<CFX_ByteString> sSuggestWords;
525 CFX_FloatPoint ptPopup = point; 524 CPDF_Point ptPopup = point;
526 525
527 if (!IsReadOnly()) { 526 if (!IsReadOnly()) {
528 if (HasFlag(PES_SPELLCHECK) && !swLatin.IsEmpty()) { 527 if (HasFlag(PES_SPELLCHECK) && !swLatin.IsEmpty()) {
529 if (m_pSpellCheck) { 528 if (m_pSpellCheck) {
530 CFX_ByteString sLatin = CFX_ByteString::FromUnicode(swLatin); 529 CFX_ByteString sLatin = CFX_ByteString::FromUnicode(swLatin);
531 if (!m_pSpellCheck->CheckWord(sLatin)) { 530 if (!m_pSpellCheck->CheckWord(sLatin)) {
532 m_pSpellCheck->SuggestWords(sLatin, sSuggestWords); 531 m_pSpellCheck->SuggestWords(sLatin, sSuggestWords);
533 532
534 int32_t nSuggest = pdfium::CollectionSize<int32_t>(sSuggestWords); 533 int32_t nSuggest = pdfium::CollectionSize<int32_t>(sSuggestWords);
535 for (int32_t nWord = 0; nWord < nSuggest; nWord++) { 534 for (int32_t nWord = 0; nWord < nSuggest; nWord++) {
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
678 pFocusHandler->OnSetFocus(this); 677 pFocusHandler->OnSetFocus(this);
679 } 678 }
680 679
681 m_bFocus = TRUE; 680 m_bFocus = TRUE;
682 } 681 }
683 682
684 void CPWL_Edit::OnKillFocus() { 683 void CPWL_Edit::OnKillFocus() {
685 ShowVScrollBar(FALSE); 684 ShowVScrollBar(FALSE);
686 685
687 m_pEdit->SelectNone(); 686 m_pEdit->SelectNone();
688 SetCaret(FALSE, CFX_FloatPoint(0.0f, 0.0f), CFX_FloatPoint(0.0f, 0.0f)); 687 SetCaret(FALSE, CPDF_Point(0.0f, 0.0f), CPDF_Point(0.0f, 0.0f));
689 688
690 SetCharSet(0); 689 SetCharSet(0);
691 690
692 if (!IsReadOnly()) { 691 if (!IsReadOnly()) {
693 if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler()) 692 if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler())
694 pFocusHandler->OnKillFocus(this); 693 pFocusHandler->OnKillFocus(this);
695 } 694 }
696 695
697 m_bFocus = FALSE; 696 m_bFocus = FALSE;
698 } 697 }
699 698
700 void CPWL_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint /* = TRUE*/) { 699 void CPWL_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint /* = TRUE*/) {
701 m_pEdit->SetHorzScale(nHorzScale, bPaint); 700 m_pEdit->SetHorzScale(nHorzScale, bPaint);
702 } 701 }
703 702
704 void CPWL_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint /* = TRUE*/) { 703 void CPWL_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint /* = TRUE*/) {
705 m_pEdit->SetCharSpace(fCharSpace, bPaint); 704 m_pEdit->SetCharSpace(fCharSpace, bPaint);
706 } 705 }
707 706
708 void CPWL_Edit::SetLineLeading(FX_FLOAT fLineLeading, 707 void CPWL_Edit::SetLineLeading(FX_FLOAT fLineLeading,
709 FX_BOOL bPaint /* = TRUE*/) { 708 FX_BOOL bPaint /* = TRUE*/) {
710 m_pEdit->SetLineLeading(fLineLeading, bPaint); 709 m_pEdit->SetLineLeading(fLineLeading, bPaint);
711 } 710 }
712 711
713 CFX_ByteString CPWL_Edit::GetSelectAppearanceStream( 712 CFX_ByteString CPWL_Edit::GetSelectAppearanceStream(
714 const CFX_FloatPoint& ptOffset) const { 713 const CPDF_Point& ptOffset) const {
715 CPVT_WordRange wr = GetSelectWordRange(); 714 CPVT_WordRange wr = GetSelectWordRange();
716 return CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset, &wr); 715 return CPWL_Utils::GetEditSelAppStream(m_pEdit, ptOffset, &wr);
717 } 716 }
718 717
719 CPVT_WordRange CPWL_Edit::GetSelectWordRange() const { 718 CPVT_WordRange CPWL_Edit::GetSelectWordRange() const {
720 if (m_pEdit->IsSelected()) { 719 if (m_pEdit->IsSelected()) {
721 int32_t nStart = -1; 720 int32_t nStart = -1;
722 int32_t nEnd = -1; 721 int32_t nEnd = -1;
723 722
724 m_pEdit->GetSel(nStart, nEnd); 723 m_pEdit->GetSel(nStart, nEnd);
725 724
726 CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStart); 725 CPVT_WordPlace wpStart = m_pEdit->WordIndexToWordPlace(nStart);
727 CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEnd); 726 CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEnd);
728 727
729 return CPVT_WordRange(wpStart, wpEnd); 728 return CPVT_WordRange(wpStart, wpEnd);
730 } 729 }
731 730
732 return CPVT_WordRange(); 731 return CPVT_WordRange();
733 } 732 }
734 733
735 CFX_ByteString CPWL_Edit::GetTextAppearanceStream( 734 CFX_ByteString CPWL_Edit::GetTextAppearanceStream(
736 const CFX_FloatPoint& ptOffset) const { 735 const CPDF_Point& ptOffset) const {
737 CFX_ByteTextBuf sRet; 736 CFX_ByteTextBuf sRet;
738 CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset); 737 CFX_ByteString sEdit = CPWL_Utils::GetEditAppStream(m_pEdit, ptOffset);
739 738
740 if (sEdit.GetLength() > 0) { 739 if (sEdit.GetLength() > 0) {
741 sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEdit 740 sRet << "BT\n" << CPWL_Utils::GetColorAppStream(GetTextColor()) << sEdit
742 << "ET\n"; 741 << "ET\n";
743 } 742 }
744 743
745 return sRet.GetByteString(); 744 return sRet.GetByteString();
746 } 745 }
747 746
748 CFX_ByteString CPWL_Edit::GetCaretAppearanceStream( 747 CFX_ByteString CPWL_Edit::GetCaretAppearanceStream(
749 const CFX_FloatPoint& ptOffset) const { 748 const CPDF_Point& ptOffset) const {
750 if (m_pEditCaret) 749 if (m_pEditCaret)
751 return m_pEditCaret->GetCaretAppearanceStream(ptOffset); 750 return m_pEditCaret->GetCaretAppearanceStream(ptOffset);
752 751
753 return CFX_ByteString(); 752 return CFX_ByteString();
754 } 753 }
755 754
756 CFX_FloatPoint CPWL_Edit::GetWordRightBottomPoint( 755 CPDF_Point CPWL_Edit::GetWordRightBottomPoint(const CPVT_WordPlace& wpWord) {
757 const CPVT_WordPlace& wpWord) { 756 CPDF_Point pt(0.0f, 0.0f);
758 CFX_FloatPoint pt(0.0f, 0.0f);
759 757
760 if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) { 758 if (IFX_Edit_Iterator* pIterator = m_pEdit->GetIterator()) {
761 CPVT_WordPlace wpOld = pIterator->GetAt(); 759 CPVT_WordPlace wpOld = pIterator->GetAt();
762 pIterator->SetAt(wpWord); 760 pIterator->SetAt(wpWord);
763 CPVT_Word word; 761 CPVT_Word word;
764 if (pIterator->GetWord(word)) { 762 if (pIterator->GetWord(word)) {
765 pt = CFX_FloatPoint(word.ptWord.x + word.fWidth, 763 pt = CPDF_Point(word.ptWord.x + word.fWidth,
766 word.ptWord.y + word.fDescent); 764 word.ptWord.y + word.fDescent);
767 } 765 }
768 766
769 pIterator->SetAt(wpOld); 767 pIterator->SetAt(wpOld);
770 } 768 }
771 769
772 return pt; 770 return pt;
773 } 771 }
774 772
775 FX_BOOL CPWL_Edit::IsTextFull() const { 773 FX_BOOL CPWL_Edit::IsTextFull() const {
776 return m_pEdit->IsTextFull(); 774 return m_pEdit->IsTextFull();
777 } 775 }
778 776
779 FX_FLOAT CPWL_Edit::GetCharArrayAutoFontSize(CPDF_Font* pFont, 777 FX_FLOAT CPWL_Edit::GetCharArrayAutoFontSize(CPDF_Font* pFont,
780 const CFX_FloatRect& rcPlate, 778 const CPDF_Rect& rcPlate,
781 int32_t nCharArray) { 779 int32_t nCharArray) {
782 if (pFont && !pFont->IsStandardFont()) { 780 if (pFont && !pFont->IsStandardFont()) {
783 FX_RECT rcBBox; 781 FX_RECT rcBBox;
784 pFont->GetFontBBox(rcBBox); 782 pFont->GetFontBBox(rcBBox);
785 783
786 CFX_FloatRect rcCell = rcPlate; 784 CPDF_Rect rcCell = rcPlate;
787 FX_FLOAT xdiv = rcCell.Width() / nCharArray * 1000.0f / rcBBox.Width(); 785 FX_FLOAT xdiv = rcCell.Width() / nCharArray * 1000.0f / rcBBox.Width();
788 FX_FLOAT ydiv = -rcCell.Height() * 1000.0f / rcBBox.Height(); 786 FX_FLOAT ydiv = -rcCell.Height() * 1000.0f / rcBBox.Height();
789 787
790 return xdiv < ydiv ? xdiv : ydiv; 788 return xdiv < ydiv ? xdiv : ydiv;
791 } 789 }
792 790
793 return 0.0f; 791 return 0.0f;
794 } 792 }
795 793
796 void CPWL_Edit::SetCharArray(int32_t nCharArray) { 794 void CPWL_Edit::SetCharArray(int32_t nCharArray) {
(...skipping 16 matching lines...) Expand all
813 811
814 void CPWL_Edit::SetLimitChar(int32_t nLimitChar) { 812 void CPWL_Edit::SetLimitChar(int32_t nLimitChar) {
815 m_pEdit->SetLimitChar(nLimitChar); 813 m_pEdit->SetLimitChar(nLimitChar);
816 } 814 }
817 815
818 void CPWL_Edit::ReplaceSel(const FX_WCHAR* csText) { 816 void CPWL_Edit::ReplaceSel(const FX_WCHAR* csText) {
819 m_pEdit->Clear(); 817 m_pEdit->Clear();
820 m_pEdit->InsertText(csText); 818 m_pEdit->InsertText(csText);
821 } 819 }
822 820
823 CFX_FloatRect CPWL_Edit::GetFocusRect() const { 821 CPDF_Rect CPWL_Edit::GetFocusRect() const {
824 return CFX_FloatRect(); 822 return CPDF_Rect();
825 } 823 }
826 824
827 void CPWL_Edit::ShowVScrollBar(FX_BOOL bShow) { 825 void CPWL_Edit::ShowVScrollBar(FX_BOOL bShow) {
828 if (CPWL_ScrollBar* pScroll = GetVScrollBar()) { 826 if (CPWL_ScrollBar* pScroll = GetVScrollBar()) {
829 if (bShow) { 827 if (bShow) {
830 if (!pScroll->IsVisible()) { 828 if (!pScroll->IsVisible()) {
831 pScroll->SetVisible(TRUE); 829 pScroll->SetVisible(TRUE);
832 CFX_FloatRect rcWindow = GetWindowRect(); 830 CPDF_Rect rcWindow = GetWindowRect();
833 m_rcOldWindow = rcWindow; 831 m_rcOldWindow = rcWindow;
834 rcWindow.right += PWL_SCROLLBAR_WIDTH; 832 rcWindow.right += PWL_SCROLLBAR_WIDTH;
835 Move(rcWindow, TRUE, TRUE); 833 Move(rcWindow, TRUE, TRUE);
836 } 834 }
837 } else { 835 } else {
838 if (pScroll->IsVisible()) { 836 if (pScroll->IsVisible()) {
839 pScroll->SetVisible(FALSE); 837 pScroll->SetVisible(FALSE);
840 Move(m_rcOldWindow, TRUE, TRUE); 838 Move(m_rcOldWindow, TRUE, TRUE);
841 } 839 }
842 } 840 }
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 int32_t nNewCharSet = pFontMap->CharSetFromUnicode(nChar, DEFAULT_CHARSET); 969 int32_t nNewCharSet = pFontMap->CharSetFromUnicode(nChar, DEFAULT_CHARSET);
972 if (nOldCharSet != nNewCharSet) { 970 if (nOldCharSet != nNewCharSet) {
973 SetCharSet(nNewCharSet); 971 SetCharSet(nNewCharSet);
974 } 972 }
975 } 973 }
976 974
977 return CPWL_EditCtrl::OnChar(nChar, nFlag); 975 return CPWL_EditCtrl::OnChar(nChar, nFlag);
978 } 976 }
979 977
980 FX_BOOL CPWL_Edit::OnMouseWheel(short zDelta, 978 FX_BOOL CPWL_Edit::OnMouseWheel(short zDelta,
981 const CFX_FloatPoint& point, 979 const CPDF_Point& point,
982 FX_DWORD nFlag) { 980 FX_DWORD nFlag) {
983 if (HasFlag(PES_MULTILINE)) { 981 if (HasFlag(PES_MULTILINE)) {
984 CFX_FloatPoint ptScroll = GetScrollPos(); 982 CPDF_Point ptScroll = GetScrollPos();
985 983
986 if (zDelta > 0) { 984 if (zDelta > 0) {
987 ptScroll.y += GetFontSize(); 985 ptScroll.y += GetFontSize();
988 } else { 986 } else {
989 ptScroll.y -= GetFontSize(); 987 ptScroll.y -= GetFontSize();
990 } 988 }
991 SetScrollPos(ptScroll); 989 SetScrollPos(ptScroll);
992 990
993 return TRUE; 991 return TRUE;
994 } 992 }
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1089 1087
1090 if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) { 1088 if (wr1.EndPos.WordCmp(wr2.EndPos) < 0) {
1091 wrRet.EndPos = wr2.EndPos; 1089 wrRet.EndPos = wr2.EndPos;
1092 } else { 1090 } else {
1093 wrRet.EndPos = wr1.EndPos; 1091 wrRet.EndPos = wr1.EndPos;
1094 } 1092 }
1095 1093
1096 return wrRet; 1094 return wrRet;
1097 } 1095 }
1098 1096
1099 CPVT_WordRange CPWL_Edit::GetLatinWordsRange( 1097 CPVT_WordRange CPWL_Edit::GetLatinWordsRange(const CPDF_Point& point) const {
1100 const CFX_FloatPoint& point) const {
1101 return GetSameWordsRange(m_pEdit->SearchWordPlace(point), TRUE, FALSE); 1098 return GetSameWordsRange(m_pEdit->SearchWordPlace(point), TRUE, FALSE);
1102 } 1099 }
1103 1100
1104 CPVT_WordRange CPWL_Edit::GetLatinWordsRange( 1101 CPVT_WordRange CPWL_Edit::GetLatinWordsRange(
1105 const CPVT_WordPlace& place) const { 1102 const CPVT_WordPlace& place) const {
1106 return GetSameWordsRange(place, TRUE, FALSE); 1103 return GetSameWordsRange(place, TRUE, FALSE);
1107 } 1104 }
1108 1105
1109 CPVT_WordRange CPWL_Edit::GetArabicWordsRange( 1106 CPVT_WordRange CPWL_Edit::GetArabicWordsRange(
1110 const CPVT_WordPlace& place) const { 1107 const CPVT_WordPlace& place) const {
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1163 } 1160 }
1164 1161
1165 range.Set(wpStart, wpEnd); 1162 range.Set(wpStart, wpEnd);
1166 } 1163 }
1167 1164
1168 return range; 1165 return range;
1169 } 1166 }
1170 1167
1171 void CPWL_Edit::GeneratePageObjects( 1168 void CPWL_Edit::GeneratePageObjects(
1172 CPDF_PageObjectHolder* pObjectHolder, 1169 CPDF_PageObjectHolder* pObjectHolder,
1173 const CFX_FloatPoint& ptOffset, 1170 const CPDF_Point& ptOffset,
1174 CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) { 1171 CFX_ArrayTemplate<CPDF_TextObject*>& ObjArray) {
1175 IFX_Edit::GeneratePageObjects( 1172 IFX_Edit::GeneratePageObjects(
1176 pObjectHolder, m_pEdit, ptOffset, NULL, 1173 pObjectHolder, m_pEdit, ptOffset, NULL,
1177 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 1174 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
1178 ObjArray); 1175 ObjArray);
1179 } 1176 }
1180 1177
1181 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjectHolder* pObjectHolder, 1178 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjectHolder* pObjectHolder,
1182 const CFX_FloatPoint& ptOffset) { 1179 const CPDF_Point& ptOffset) {
1183 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray; 1180 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray;
1184 IFX_Edit::GeneratePageObjects( 1181 IFX_Edit::GeneratePageObjects(
1185 pObjectHolder, m_pEdit, ptOffset, NULL, 1182 pObjectHolder, m_pEdit, ptOffset, NULL,
1186 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), 1183 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()),
1187 ObjArray); 1184 ObjArray);
1188 } 1185 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/pdfwindow/PWL_ComboBox.cpp ('k') | fpdfsdk/src/pdfwindow/PWL_EditCtrl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698