| 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/fxcrt/fx_safe_types.h" | 7 #include "../../../core/include/fxcrt/fx_safe_types.h" |
| 8 #include "../../../core/include/fxcrt/fx_xml.h" | 8 #include "../../../core/include/fxcrt/fx_xml.h" |
| 9 #include "../../include/pdfwindow/PDFWindow.h" | 9 #include "../../include/pdfwindow/PDFWindow.h" |
| 10 #include "../../include/pdfwindow/PWL_Caret.h" | 10 #include "../../include/pdfwindow/PWL_Caret.h" |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 if (IFX_SystemHandler* pSH = GetSystemHandler()) | 156 if (IFX_SystemHandler* pSH = GetSystemHandler()) |
| 157 swClipboard = pSH->GetClipboardText(GetAttachedHWnd()); | 157 swClipboard = pSH->GetClipboardText(GetAttachedHWnd()); |
| 158 | 158 |
| 159 if (m_pFillerNotify) { | 159 if (m_pFillerNotify) { |
| 160 FX_BOOL bRC = TRUE; | 160 FX_BOOL bRC = TRUE; |
| 161 FX_BOOL bExit = FALSE; | 161 FX_BOOL bExit = FALSE; |
| 162 CFX_WideString strChangeEx; | 162 CFX_WideString strChangeEx; |
| 163 int nSelStart = 0; | 163 int nSelStart = 0; |
| 164 int nSelEnd = 0; | 164 int nSelEnd = 0; |
| 165 GetSel(nSelStart, nSelEnd); | 165 GetSel(nSelStart, nSelEnd); |
| 166 m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), 0, swClipboard, | 166 m_pFillerNotify->OnBeforeKeyStroke(GetAttachedData(), swClipboard, |
| 167 strChangeEx, nSelStart, nSelEnd, TRUE, | 167 strChangeEx, nSelStart, nSelEnd, TRUE, |
| 168 bRC, bExit, 0); | 168 bRC, bExit, 0); |
| 169 if (!bRC) | 169 if (!bRC) |
| 170 return; | 170 return; |
| 171 if (bExit) | 171 if (bExit) |
| 172 return; | 172 return; |
| 173 } | 173 } |
| 174 | 174 |
| 175 if (swClipboard.GetLength() > 0) { | 175 if (swClipboard.GetLength() > 0) { |
| 176 Clear(); | 176 Clear(); |
| 177 InsertText(swClipboard.c_str()); | 177 InsertText(swClipboard.c_str()); |
| 178 } | 178 } |
| 179 | |
| 180 if (m_pFillerNotify) { | |
| 181 FX_BOOL bExit = FALSE; | |
| 182 m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit, 0); | |
| 183 if (bExit) | |
| 184 return; | |
| 185 } | |
| 186 } | 179 } |
| 187 | 180 |
| 188 void CPWL_Edit::CutText() { | 181 void CPWL_Edit::CutText() { |
| 189 if (!CanCut()) | 182 if (!CanCut()) |
| 190 return; | 183 return; |
| 191 | 184 |
| 192 CFX_WideString str = m_pEdit->GetSelText(); | 185 CFX_WideString str = m_pEdit->GetSelText(); |
| 193 | 186 |
| 194 if (IFX_SystemHandler* pSH = GetSystemHandler()) | 187 if (IFX_SystemHandler* pSH = GetSystemHandler()) |
| 195 pSH->SetClipboardText(GetAttachedHWnd(), str); | 188 pSH->SetClipboardText(GetAttachedHWnd(), str); |
| (...skipping 680 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 876 FX_BOOL bExit = FALSE; | 869 FX_BOOL bExit = FALSE; |
| 877 CFX_WideString strChange; | 870 CFX_WideString strChange; |
| 878 CFX_WideString strChangeEx; | 871 CFX_WideString strChangeEx; |
| 879 | 872 |
| 880 int nSelStart = 0; | 873 int nSelStart = 0; |
| 881 int nSelEnd = 0; | 874 int nSelEnd = 0; |
| 882 GetSel(nSelStart, nSelEnd); | 875 GetSel(nSelStart, nSelEnd); |
| 883 | 876 |
| 884 if (nSelStart == nSelEnd) | 877 if (nSelStart == nSelEnd) |
| 885 nSelEnd = nSelStart + 1; | 878 nSelEnd = nSelStart + 1; |
| 886 m_pFillerNotify->OnBeforeKeyStroke( | 879 m_pFillerNotify->OnBeforeKeyStroke(GetAttachedData(), strChange, |
| 887 TRUE, GetAttachedData(), FWL_VKEY_Delete, strChange, strChangeEx, | 880 strChangeEx, nSelStart, nSelEnd, TRUE, |
| 888 nSelStart, nSelEnd, TRUE, bRC, bExit, nFlag); | 881 bRC, bExit, nFlag); |
| 889 if (!bRC) | 882 if (!bRC) |
| 890 return FALSE; | 883 return FALSE; |
| 891 if (bExit) | 884 if (bExit) |
| 892 return FALSE; | 885 return FALSE; |
| 893 } | 886 } |
| 894 } | 887 } |
| 895 | 888 |
| 896 FX_BOOL bRet = CPWL_EditCtrl::OnKeyDown(nChar, nFlag); | 889 FX_BOOL bRet = CPWL_EditCtrl::OnKeyDown(nChar, nFlag); |
| 897 | 890 |
| 898 if (nChar == FWL_VKEY_Delete) { | |
| 899 if (m_pFillerNotify) { | |
| 900 FX_BOOL bExit = FALSE; | |
| 901 m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit, nFlag); | |
| 902 if (bExit) | |
| 903 return FALSE; | |
| 904 } | |
| 905 } | |
| 906 | |
| 907 // In case of implementation swallow the OnKeyDown event. | 891 // In case of implementation swallow the OnKeyDown event. |
| 908 if (IsProceedtoOnChar(nChar, nFlag)) | 892 if (IsProceedtoOnChar(nChar, nFlag)) |
| 909 return TRUE; | 893 return TRUE; |
| 910 | 894 |
| 911 return bRet; | 895 return bRet; |
| 912 } | 896 } |
| 913 | 897 |
| 914 /** | 898 /** |
| 915 *In case of implementation swallow the OnKeyDown event. | 899 *In case of implementation swallow the OnKeyDown event. |
| 916 *If the event is swallowed, implementation may do other unexpected things, which | 900 *If the event is swallowed, implementation may do other unexpected things, which |
| (...skipping 16 matching lines...) Expand all Loading... |
| 933 } | 917 } |
| 934 } | 918 } |
| 935 // control characters. | 919 // control characters. |
| 936 switch (nKeyCode) { | 920 switch (nKeyCode) { |
| 937 case FWL_VKEY_Escape: | 921 case FWL_VKEY_Escape: |
| 938 case FWL_VKEY_Back: | 922 case FWL_VKEY_Back: |
| 939 case FWL_VKEY_Return: | 923 case FWL_VKEY_Return: |
| 940 case FWL_VKEY_Space: | 924 case FWL_VKEY_Space: |
| 941 return TRUE; | 925 return TRUE; |
| 942 default: | 926 default: |
| 943 break; | 927 return FALSE; |
| 944 } | 928 } |
| 945 return FALSE; | |
| 946 } | 929 } |
| 947 | 930 |
| 948 FX_BOOL CPWL_Edit::OnChar(FX_WORD nChar, FX_DWORD nFlag) { | 931 FX_BOOL CPWL_Edit::OnChar(FX_WORD nChar, FX_DWORD nFlag) { |
| 949 if (m_bMouseDown) | 932 if (m_bMouseDown) |
| 950 return TRUE; | 933 return TRUE; |
| 951 | 934 |
| 952 FX_BOOL bRC = TRUE; | 935 FX_BOOL bRC = TRUE; |
| 953 FX_BOOL bExit = FALSE; | 936 FX_BOOL bExit = FALSE; |
| 954 | 937 |
| 955 FX_BOOL bCtrl = IsCTRLpressed(nFlag); | 938 if (!IsCTRLpressed(nFlag)) { |
| 956 if (!bCtrl) { | |
| 957 if (m_pFillerNotify) { | 939 if (m_pFillerNotify) { |
| 958 CFX_WideString swChange; | 940 CFX_WideString swChange; |
| 959 int32_t nKeyCode; | |
| 960 | 941 |
| 961 int nSelStart = 0; | 942 int nSelStart = 0; |
| 962 int nSelEnd = 0; | 943 int nSelEnd = 0; |
| 963 GetSel(nSelStart, nSelEnd); | 944 GetSel(nSelStart, nSelEnd); |
| 964 | 945 |
| 965 switch (nChar) { | 946 switch (nChar) { |
| 966 case FWL_VKEY_Back: | 947 case FWL_VKEY_Back: |
| 967 nKeyCode = nChar; | |
| 968 if (nSelStart == nSelEnd) | 948 if (nSelStart == nSelEnd) |
| 969 nSelStart = nSelEnd - 1; | 949 nSelStart = nSelEnd - 1; |
| 970 break; | 950 break; |
| 971 case FWL_VKEY_Return: | 951 case FWL_VKEY_Return: |
| 972 nKeyCode = nChar; | |
| 973 break; | 952 break; |
| 974 default: | 953 default: |
| 975 nKeyCode = 0; | |
| 976 swChange += nChar; | 954 swChange += nChar; |
| 977 break; | 955 break; |
| 978 } | 956 } |
| 979 | 957 |
| 980 CFX_WideString strChangeEx; | 958 CFX_WideString strChangeEx; |
| 981 m_pFillerNotify->OnBeforeKeyStroke(TRUE, GetAttachedData(), nKeyCode, | 959 m_pFillerNotify->OnBeforeKeyStroke(GetAttachedData(), swChange, |
| 982 swChange, strChangeEx, nSelStart, | 960 strChangeEx, nSelStart, nSelEnd, TRUE, |
| 983 nSelEnd, TRUE, bRC, bExit, nFlag); | 961 bRC, bExit, nFlag); |
| 984 } | 962 } |
| 985 } | 963 } |
| 986 | 964 |
| 987 if (!bRC) | 965 if (!bRC) |
| 988 return TRUE; | 966 return TRUE; |
| 989 if (bExit) | 967 if (bExit) |
| 990 return FALSE; | 968 return FALSE; |
| 991 | 969 |
| 992 if (IFX_Edit_FontMap* pFontMap = GetFontMap()) { | 970 if (IFX_Edit_FontMap* pFontMap = GetFontMap()) { |
| 993 int32_t nOldCharSet = GetCharSet(); | 971 int32_t nOldCharSet = GetCharSet(); |
| 994 int32_t nNewCharSet = pFontMap->CharSetFromUnicode(nChar, DEFAULT_CHARSET); | 972 int32_t nNewCharSet = pFontMap->CharSetFromUnicode(nChar, DEFAULT_CHARSET); |
| 995 if (nOldCharSet != nNewCharSet) { | 973 if (nOldCharSet != nNewCharSet) { |
| 996 SetCharSet(nNewCharSet); | 974 SetCharSet(nNewCharSet); |
| 997 } | 975 } |
| 998 } | 976 } |
| 999 FX_BOOL bRet = CPWL_EditCtrl::OnChar(nChar, nFlag); | |
| 1000 | 977 |
| 1001 if (!bCtrl) { | 978 return CPWL_EditCtrl::OnChar(nChar, nFlag); |
| 1002 if (m_pFillerNotify) { | |
| 1003 m_pFillerNotify->OnAfterKeyStroke(TRUE, GetAttachedData(), bExit, nFlag); | |
| 1004 if (bExit) | |
| 1005 return FALSE; | |
| 1006 } | |
| 1007 } | |
| 1008 | |
| 1009 return bRet; | |
| 1010 } | 979 } |
| 1011 | 980 |
| 1012 FX_BOOL CPWL_Edit::OnMouseWheel(short zDelta, | 981 FX_BOOL CPWL_Edit::OnMouseWheel(short zDelta, |
| 1013 const CPDF_Point& point, | 982 const CPDF_Point& point, |
| 1014 FX_DWORD nFlag) { | 983 FX_DWORD nFlag) { |
| 1015 if (HasFlag(PES_MULTILINE)) { | 984 if (HasFlag(PES_MULTILINE)) { |
| 1016 CPDF_Point ptScroll = GetScrollPos(); | 985 CPDF_Point ptScroll = GetScrollPos(); |
| 1017 | 986 |
| 1018 if (zDelta > 0) { | 987 if (zDelta > 0) { |
| 1019 ptScroll.y += GetFontSize(); | 988 ptScroll.y += GetFontSize(); |
| (...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1214 } | 1183 } |
| 1215 | 1184 |
| 1216 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjects* pPageObjects, | 1185 void CPWL_Edit::GeneratePageObjects(CPDF_PageObjects* pPageObjects, |
| 1217 const CPDF_Point& ptOffset) { | 1186 const CPDF_Point& ptOffset) { |
| 1218 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray; | 1187 CFX_ArrayTemplate<CPDF_TextObject*> ObjArray; |
| 1219 IFX_Edit::GeneratePageObjects( | 1188 IFX_Edit::GeneratePageObjects( |
| 1220 pPageObjects, m_pEdit, ptOffset, NULL, | 1189 pPageObjects, m_pEdit, ptOffset, NULL, |
| 1221 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), | 1190 CPWL_Utils::PWLColorToFXColor(GetTextColor(), GetTransparency()), |
| 1222 ObjArray); | 1191 ObjArray); |
| 1223 } | 1192 } |
| OLD | NEW |