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 "fpdfsdk/pdfwindow/PWL_Edit.h" | 7 #include "fpdfsdk/pdfwindow/PWL_Edit.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
97 | 97 |
98 if (CPWL_ScrollBar* pVSB = GetVScrollBar()) { | 98 if (CPWL_ScrollBar* pVSB = GetVScrollBar()) { |
99 if (pVSB->IsVisible()) { | 99 if (pVSB->IsVisible()) { |
100 rcClient.right -= PWL_SCROLLBAR_WIDTH; | 100 rcClient.right -= PWL_SCROLLBAR_WIDTH; |
101 } | 101 } |
102 } | 102 } |
103 | 103 |
104 return rcClient; | 104 return rcClient; |
105 } | 105 } |
106 | 106 |
107 void CPWL_Edit::SetAlignFormatH(PWL_EDIT_ALIGNFORMAT_H nFormat, | |
108 FX_BOOL bPaint) { | |
109 m_pEdit->SetAlignmentH((int32_t)nFormat, bPaint); | |
110 } | |
111 | |
112 void CPWL_Edit::SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat, | 107 void CPWL_Edit::SetAlignFormatV(PWL_EDIT_ALIGNFORMAT_V nFormat, |
113 FX_BOOL bPaint) { | 108 FX_BOOL bPaint) { |
114 m_pEdit->SetAlignmentV((int32_t)nFormat, bPaint); | 109 m_pEdit->SetAlignmentV((int32_t)nFormat, bPaint); |
115 } | 110 } |
116 | 111 |
117 FX_BOOL CPWL_Edit::CanSelectAll() const { | 112 FX_BOOL CPWL_Edit::CanSelectAll() const { |
118 return GetSelectWordRange() != m_pEdit->GetWholeWordRange(); | 113 return GetSelectWordRange() != m_pEdit->GetWholeWordRange(); |
119 } | 114 } |
120 | 115 |
121 FX_BOOL CPWL_Edit::CanClear() const { | 116 FX_BOOL CPWL_Edit::CanClear() const { |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 } | 452 } |
458 | 453 |
459 m_bFocus = TRUE; | 454 m_bFocus = TRUE; |
460 } | 455 } |
461 | 456 |
462 void CPWL_Edit::OnKillFocus() { | 457 void CPWL_Edit::OnKillFocus() { |
463 ShowVScrollBar(FALSE); | 458 ShowVScrollBar(FALSE); |
464 | 459 |
465 m_pEdit->SelectNone(); | 460 m_pEdit->SelectNone(); |
466 SetCaret(FALSE, CFX_FloatPoint(0.0f, 0.0f), CFX_FloatPoint(0.0f, 0.0f)); | 461 SetCaret(FALSE, CFX_FloatPoint(0.0f, 0.0f), CFX_FloatPoint(0.0f, 0.0f)); |
467 | |
468 SetCharSet(FXFONT_ANSI_CHARSET); | 462 SetCharSet(FXFONT_ANSI_CHARSET); |
469 | |
470 if (!IsReadOnly()) { | |
471 if (IPWL_FocusHandler* pFocusHandler = GetFocusHandler()) | |
472 pFocusHandler->OnKillFocus(this); | |
473 } | |
474 | |
475 m_bFocus = FALSE; | 463 m_bFocus = FALSE; |
476 } | 464 } |
477 | 465 |
478 void CPWL_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint /* = TRUE*/) { | 466 void CPWL_Edit::SetHorzScale(int32_t nHorzScale, FX_BOOL bPaint /* = TRUE*/) { |
479 m_pEdit->SetHorzScale(nHorzScale, bPaint); | 467 m_pEdit->SetHorzScale(nHorzScale, bPaint); |
480 } | 468 } |
481 | 469 |
482 void CPWL_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint /* = TRUE*/) { | 470 void CPWL_Edit::SetCharSpace(FX_FLOAT fCharSpace, FX_BOOL bPaint /* = TRUE*/) { |
483 m_pEdit->SetCharSpace(fCharSpace, bPaint); | 471 m_pEdit->SetCharSpace(fCharSpace, bPaint); |
484 } | 472 } |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
763 | 751 |
764 return FALSE; | 752 return FALSE; |
765 } | 753 } |
766 | 754 |
767 void CPWL_Edit::OnInsertReturn(const CPVT_WordPlace& place, | 755 void CPWL_Edit::OnInsertReturn(const CPVT_WordPlace& place, |
768 const CPVT_WordPlace& oldplace) { | 756 const CPVT_WordPlace& oldplace) { |
769 if (HasFlag(PES_SPELLCHECK)) { | 757 if (HasFlag(PES_SPELLCHECK)) { |
770 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), | 758 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), |
771 GetLatinWordsRange(place))); | 759 GetLatinWordsRange(place))); |
772 } | 760 } |
773 | |
774 if (m_pEditNotify) { | |
775 m_pEditNotify->OnInsertReturn(place, oldplace); | |
776 } | |
777 } | 761 } |
778 | 762 |
779 void CPWL_Edit::OnBackSpace(const CPVT_WordPlace& place, | 763 void CPWL_Edit::OnBackSpace(const CPVT_WordPlace& place, |
780 const CPVT_WordPlace& oldplace) { | 764 const CPVT_WordPlace& oldplace) { |
781 if (HasFlag(PES_SPELLCHECK)) { | 765 if (HasFlag(PES_SPELLCHECK)) { |
782 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), | 766 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), |
783 GetLatinWordsRange(place))); | 767 GetLatinWordsRange(place))); |
784 } | 768 } |
785 | |
786 if (m_pEditNotify) { | |
787 m_pEditNotify->OnBackSpace(place, oldplace); | |
788 } | |
789 } | 769 } |
790 | 770 |
791 void CPWL_Edit::OnDelete(const CPVT_WordPlace& place, | 771 void CPWL_Edit::OnDelete(const CPVT_WordPlace& place, |
792 const CPVT_WordPlace& oldplace) { | 772 const CPVT_WordPlace& oldplace) { |
793 if (HasFlag(PES_SPELLCHECK)) { | 773 if (HasFlag(PES_SPELLCHECK)) { |
794 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), | 774 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), |
795 GetLatinWordsRange(place))); | 775 GetLatinWordsRange(place))); |
796 } | 776 } |
797 | |
798 if (m_pEditNotify) { | |
799 m_pEditNotify->OnDelete(place, oldplace); | |
800 } | |
801 } | 777 } |
802 | 778 |
803 void CPWL_Edit::OnClear(const CPVT_WordPlace& place, | 779 void CPWL_Edit::OnClear(const CPVT_WordPlace& place, |
804 const CPVT_WordPlace& oldplace) { | 780 const CPVT_WordPlace& oldplace) { |
805 if (HasFlag(PES_SPELLCHECK)) { | 781 if (HasFlag(PES_SPELLCHECK)) { |
806 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), | 782 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), |
807 GetLatinWordsRange(place))); | 783 GetLatinWordsRange(place))); |
808 } | 784 } |
809 | |
810 if (m_pEditNotify) { | |
811 m_pEditNotify->OnClear(place, oldplace); | |
812 } | |
813 } | 785 } |
814 | 786 |
815 void CPWL_Edit::OnInsertWord(const CPVT_WordPlace& place, | 787 void CPWL_Edit::OnInsertWord(const CPVT_WordPlace& place, |
816 const CPVT_WordPlace& oldplace) { | 788 const CPVT_WordPlace& oldplace) { |
817 if (HasFlag(PES_SPELLCHECK)) { | 789 if (HasFlag(PES_SPELLCHECK)) { |
818 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), | 790 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), |
819 GetLatinWordsRange(place))); | 791 GetLatinWordsRange(place))); |
820 } | 792 } |
821 | |
822 if (m_pEditNotify) { | |
823 m_pEditNotify->OnInsertWord(place, oldplace); | |
824 } | |
825 } | 793 } |
826 | 794 |
827 void CPWL_Edit::OnInsertText(const CPVT_WordPlace& place, | 795 void CPWL_Edit::OnInsertText(const CPVT_WordPlace& place, |
828 const CPVT_WordPlace& oldplace) { | 796 const CPVT_WordPlace& oldplace) { |
829 if (HasFlag(PES_SPELLCHECK)) { | 797 if (HasFlag(PES_SPELLCHECK)) { |
830 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), | 798 m_pEdit->RefreshWordRange(CombineWordRange(GetLatinWordsRange(oldplace), |
831 GetLatinWordsRange(place))); | 799 GetLatinWordsRange(place))); |
832 } | 800 } |
833 | |
834 if (m_pEditNotify) { | |
835 m_pEditNotify->OnInsertText(place, oldplace); | |
836 } | |
837 } | |
838 | |
839 void CPWL_Edit::OnAddUndo(IFX_Edit_UndoItem* pUndoItem) { | |
840 if (m_pEditNotify) { | |
841 m_pEditNotify->OnAddUndo(this); | |
842 } | |
843 } | 801 } |
844 | 802 |
845 CPVT_WordRange CPWL_Edit::CombineWordRange(const CPVT_WordRange& wr1, | 803 CPVT_WordRange CPWL_Edit::CombineWordRange(const CPVT_WordRange& wr1, |
846 const CPVT_WordRange& wr2) { | 804 const CPVT_WordRange& wr2) { |
847 CPVT_WordRange wrRet; | 805 CPVT_WordRange wrRet; |
848 | 806 |
849 if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0) { | 807 if (wr1.BeginPos.WordCmp(wr2.BeginPos) < 0) { |
850 wrRet.BeginPos = wr1.BeginPos; | 808 wrRet.BeginPos = wr1.BeginPos; |
851 } else { | 809 } else { |
852 wrRet.BeginPos = wr2.BeginPos; | 810 wrRet.BeginPos = wr2.BeginPos; |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
942 } | 900 } |
943 | 901 |
944 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjectHolder* pObjectHolder, | 902 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjectHolder* pObjectHolder, |
945 const CFX_FloatPoint& ptOffset) { | 903 const CFX_FloatPoint& ptOffset) { |
946 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray; | 904 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray; |
947 CFX_Edit::GeneratePageObjects( | 905 CFX_Edit::GeneratePageObjects( |
948 pObjectHolder, m_pEdit.get(), ptOffset, nullptr, | 906 pObjectHolder, m_pEdit.get(), ptOffset, nullptr, |
949 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), | 907 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), |
950 ObjArray); | 908 ObjArray); |
951 } | 909 } |
OLD | NEW |