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_EditCtrl.h" | 7 #include "fpdfsdk/pdfwindow/PWL_EditCtrl.h" |
8 | 8 |
9 #include "core/fpdfdoc/include/cpvt_section.h" | 9 #include "core/fpdfdoc/include/cpvt_section.h" |
10 #include "core/fpdfdoc/include/cpvt_word.h" | 10 #include "core/fpdfdoc/include/cpvt_word.h" |
11 #include "fpdfsdk/fxedit/include/fxet_edit.h" | 11 #include "fpdfsdk/fxedit/include/fxet_edit.h" |
12 #include "fpdfsdk/pdfwindow/PWL_Caret.h" | 12 #include "fpdfsdk/pdfwindow/PWL_Caret.h" |
13 #include "fpdfsdk/pdfwindow/PWL_FontMap.h" | 13 #include "fpdfsdk/pdfwindow/PWL_FontMap.h" |
14 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h" | 14 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h" |
15 #include "fpdfsdk/pdfwindow/PWL_Utils.h" | 15 #include "fpdfsdk/pdfwindow/PWL_Utils.h" |
16 #include "fpdfsdk/pdfwindow/PWL_Wnd.h" | 16 #include "fpdfsdk/pdfwindow/PWL_Wnd.h" |
17 #include "public/fpdf_fwlevent.h" | 17 #include "public/fpdf_fwlevent.h" |
18 | 18 |
19 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001) | 19 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001) |
20 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb))) | 20 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb))) |
21 #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) | 21 #define IsFloatSmaller(fa, fb) ((fa) < (fb) && !IsFloatZero((fa) - (fb))) |
22 #define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb)) | 22 #define IsFloatEqual(fa, fb) IsFloatZero((fa) - (fb)) |
23 | 23 |
24 CPWL_EditCtrl::CPWL_EditCtrl() | 24 CPWL_EditCtrl::CPWL_EditCtrl() |
25 : m_pEdit(new CFX_Edit), | 25 : m_pEdit(new CFX_Edit), |
26 m_pEditCaret(nullptr), | 26 m_pEditCaret(nullptr), |
27 m_bMouseDown(FALSE), | 27 m_bMouseDown(FALSE), |
28 m_pEditNotify(nullptr), | |
29 m_nCharSet(DEFAULT_CHARSET), | 28 m_nCharSet(DEFAULT_CHARSET), |
30 m_nCodePage(0) {} | 29 m_nCodePage(0) {} |
31 | 30 |
32 CPWL_EditCtrl::~CPWL_EditCtrl() { | 31 CPWL_EditCtrl::~CPWL_EditCtrl() {} |
33 } | |
34 | 32 |
35 void CPWL_EditCtrl::OnCreate(PWL_CREATEPARAM& cp) { | 33 void CPWL_EditCtrl::OnCreate(PWL_CREATEPARAM& cp) { |
36 cp.eCursorType = FXCT_VBEAM; | 34 cp.eCursorType = FXCT_VBEAM; |
37 } | 35 } |
38 | 36 |
39 void CPWL_EditCtrl::OnCreated() { | 37 void CPWL_EditCtrl::OnCreated() { |
40 SetFontSize(GetCreationParam().fFontSize); | 38 SetFontSize(GetCreationParam().fFontSize); |
41 | 39 |
42 m_pEdit->SetFontMap(GetFontMap()); | 40 m_pEdit->SetFontMap(GetFontMap()); |
43 m_pEdit->SetNotify(this); | 41 m_pEdit->SetNotify(this); |
(...skipping 515 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 const CFX_FloatPoint& ptFoot, | 557 const CFX_FloatPoint& ptFoot, |
560 const CPVT_WordPlace& place) { | 558 const CPVT_WordPlace& place) { |
561 PWL_CARET_INFO cInfo; | 559 PWL_CARET_INFO cInfo; |
562 cInfo.bVisible = bVisible; | 560 cInfo.bVisible = bVisible; |
563 cInfo.ptHead = ptHead; | 561 cInfo.ptHead = ptHead; |
564 cInfo.ptFoot = ptFoot; | 562 cInfo.ptFoot = ptFoot; |
565 | 563 |
566 OnNotify(this, PNM_SETCARETINFO, (intptr_t)&cInfo, (intptr_t) nullptr); | 564 OnNotify(this, PNM_SETCARETINFO, (intptr_t)&cInfo, (intptr_t) nullptr); |
567 } | 565 } |
568 | 566 |
569 void CPWL_EditCtrl::IOnContentChange(const CFX_FloatRect& rcContent) { | 567 void CPWL_EditCtrl::IOnCaretChange(const CPVT_SecProps& secProps, |
570 if (IsValid()) { | 568 const CPVT_WordProps& wordProps) {} |
571 if (m_pEditNotify) { | 569 |
572 m_pEditNotify->OnContentChange(rcContent); | 570 void CPWL_EditCtrl::IOnContentChange(const CFX_FloatRect& rcContent) {} |
573 } | |
574 } | |
575 } | |
576 | 571 |
577 void CPWL_EditCtrl::IOnInvalidateRect(CFX_FloatRect* pRect) { | 572 void CPWL_EditCtrl::IOnInvalidateRect(CFX_FloatRect* pRect) { |
578 InvalidateRect(pRect); | 573 InvalidateRect(pRect); |
579 } | 574 } |
580 | 575 |
581 int32_t CPWL_EditCtrl::GetCharSet() const { | 576 int32_t CPWL_EditCtrl::GetCharSet() const { |
582 return m_nCharSet < 0 ? DEFAULT_CHARSET : m_nCharSet; | 577 return m_nCharSet < 0 ? DEFAULT_CHARSET : m_nCharSet; |
583 } | 578 } |
584 | 579 |
585 void CPWL_EditCtrl::GetTextRange(const CFX_FloatRect& rect, | 580 void CPWL_EditCtrl::GetTextRange(const CFX_FloatRect& rect, |
(...skipping 11 matching lines...) Expand all Loading... |
597 CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEndChar); | 592 CPVT_WordPlace wpEnd = m_pEdit->WordIndexToWordPlace(nEndChar); |
598 return m_pEdit->GetRangeText(CPVT_WordRange(wpStart, wpEnd)); | 593 return m_pEdit->GetRangeText(CPVT_WordRange(wpStart, wpEnd)); |
599 } | 594 } |
600 | 595 |
601 void CPWL_EditCtrl::SetReadyToInput() { | 596 void CPWL_EditCtrl::SetReadyToInput() { |
602 if (m_bMouseDown) { | 597 if (m_bMouseDown) { |
603 ReleaseCapture(); | 598 ReleaseCapture(); |
604 m_bMouseDown = FALSE; | 599 m_bMouseDown = FALSE; |
605 } | 600 } |
606 } | 601 } |
OLD | NEW |