Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 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/cpdfsdk_annothandlermgr.h" | 7 #include "fpdfsdk/cpdfsdk_annothandlermgr.h" |
| 8 | 8 |
| 9 #include "core/fpdfdoc/cpdf_annot.h" | 9 #include "core/fpdfdoc/cpdf_annot.h" |
| 10 #include "fpdfsdk/cba_annotiterator.h" | 10 #include "fpdfsdk/cba_annotiterator.h" |
| (...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 189 bool CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot, | 189 bool CPDFSDK_AnnotHandlerMgr::Annot_OnChar(CPDFSDK_Annot* pAnnot, |
| 190 uint32_t nChar, | 190 uint32_t nChar, |
| 191 uint32_t nFlags) { | 191 uint32_t nFlags) { |
| 192 return GetAnnotHandler(pAnnot)->OnChar(pAnnot, nChar, nFlags); | 192 return GetAnnotHandler(pAnnot)->OnChar(pAnnot, nChar, nFlags); |
| 193 } | 193 } |
| 194 | 194 |
| 195 bool CPDFSDK_AnnotHandlerMgr::Annot_OnKeyDown(CPDFSDK_Annot* pAnnot, | 195 bool CPDFSDK_AnnotHandlerMgr::Annot_OnKeyDown(CPDFSDK_Annot* pAnnot, |
| 196 int nKeyCode, | 196 int nKeyCode, |
| 197 int nFlag) { | 197 int nFlag) { |
| 198 if (m_pFormFillEnv->IsCTRLKeyDown(nFlag) || | 198 if (m_pFormFillEnv->IsCTRLKeyDown(nFlag) || |
| 199 m_pFormFillEnv->IsALTKeyDown(nFlag)) | 199 m_pFormFillEnv->IsALTKeyDown(nFlag)) { |
| 200 return GetAnnotHandler(pAnnot)->OnKeyDown(pAnnot, nKeyCode, nFlag); | 200 return GetAnnotHandler(pAnnot)->OnKeyDown(pAnnot, nKeyCode, nFlag); |
| 201 } | |
| 201 | 202 |
| 202 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); | 203 CPDFSDK_PageView* pPage = pAnnot->GetPageView(); |
| 203 CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot(); | 204 CPDFSDK_Annot* pFocusAnnot = pPage->GetFocusAnnot(); |
| 204 if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab)) { | 205 if (pFocusAnnot && (nKeyCode == FWL_VKEY_Tab)) { |
| 205 CPDFSDK_Annot::ObservedPtr pNext( | 206 CPDFSDK_Annot::ObservedPtr pNext( |
| 206 GetNextAnnot(pFocusAnnot, !m_pFormFillEnv->IsSHIFTKeyDown(nFlag))); | 207 GetNextAnnot(pFocusAnnot, !m_pFormFillEnv->IsSHIFTKeyDown(nFlag))); |
| 207 if (pNext && pNext.Get() != pFocusAnnot) { | 208 if (pNext && pNext.Get() != pFocusAnnot) { |
| 208 pPage->GetFormFillEnv()->SetFocusAnnot(&pNext); | 209 pPage->GetFormFillEnv()->SetFocusAnnot(&pNext); |
| 209 return true; | 210 return true; |
| 210 } | 211 } |
| 211 } | 212 } |
| 212 | 213 |
| 213 return false; | 214 return GetAnnotHandler(pAnnot)->OnKeyDown(pAnnot, nKeyCode, nFlag); |
|
dsinclair
2016/11/09 03:36:21
Do you need to null check GetAnnotHandler as the o
Lei Zhang
2016/11/09 05:28:29
No, GetAnnotHandler() never returns nullptr.
| |
| 214 } | 215 } |
| 215 | 216 |
| 216 bool CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, | 217 bool CPDFSDK_AnnotHandlerMgr::Annot_OnKeyUp(CPDFSDK_Annot* pAnnot, |
| 217 int nKeyCode, | 218 int nKeyCode, |
| 218 int nFlag) { | 219 int nFlag) { |
| 219 return false; | 220 return false; |
| 220 } | 221 } |
| 221 | 222 |
| 222 bool CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus( | 223 bool CPDFSDK_AnnotHandlerMgr::Annot_OnSetFocus( |
| 223 CPDFSDK_Annot::ObservedPtr* pAnnot, | 224 CPDFSDK_Annot::ObservedPtr* pAnnot, |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 296 bNext ? pWidgetIterator->MoveToNext() : pWidgetIterator->MoveToPrevious(); | 297 bNext ? pWidgetIterator->MoveToNext() : pWidgetIterator->MoveToPrevious(); |
| 297 if (!hNextFocus && pSDKAnnot) | 298 if (!hNextFocus && pSDKAnnot) |
| 298 hNextFocus = pWidgetIterator->MoveToFirst(); | 299 hNextFocus = pWidgetIterator->MoveToFirst(); |
| 299 | 300 |
| 300 return pPageView->GetAnnotByXFAWidget(hNextFocus); | 301 return pPageView->GetAnnotByXFAWidget(hNextFocus); |
| 301 #else // PDF_ENABLE_XFA | 302 #else // PDF_ENABLE_XFA |
| 302 CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), CPDF_Annot::Subtype::WIDGET); | 303 CBA_AnnotIterator ai(pSDKAnnot->GetPageView(), CPDF_Annot::Subtype::WIDGET); |
| 303 return bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot); | 304 return bNext ? ai.GetNextAnnot(pSDKAnnot) : ai.GetPrevAnnot(pSDKAnnot); |
| 304 #endif // PDF_ENABLE_XFA | 305 #endif // PDF_ENABLE_XFA |
| 305 } | 306 } |
| OLD | NEW |