| 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 "xfa/fxfa/include/xfa_ffdocview.h" | 7 #include "xfa/fxfa/include/xfa_ffdocview.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
| 10 #include "xfa/fxfa/app/xfa_ffbarcode.h" | 10 #include "xfa/fxfa/app/xfa_ffbarcode.h" |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 UnlockUpdate(); | 192 UnlockUpdate(); |
| 193 } | 193 } |
| 194 int32_t CXFA_FFDocView::CountPageViews() { | 194 int32_t CXFA_FFDocView::CountPageViews() { |
| 195 if (!m_pXFADocLayout) { | 195 if (!m_pXFADocLayout) { |
| 196 return 0; | 196 return 0; |
| 197 } | 197 } |
| 198 return m_pXFADocLayout->CountPages(); | 198 return m_pXFADocLayout->CountPages(); |
| 199 } | 199 } |
| 200 CXFA_FFPageView* CXFA_FFDocView::GetPageView(int32_t nIndex) { | 200 CXFA_FFPageView* CXFA_FFDocView::GetPageView(int32_t nIndex) { |
| 201 if (!m_pXFADocLayout) { | 201 if (!m_pXFADocLayout) { |
| 202 return NULL; | 202 return nullptr; |
| 203 } | 203 } |
| 204 return static_cast<CXFA_FFPageView*>(m_pXFADocLayout->GetPage(nIndex)); | 204 return static_cast<CXFA_FFPageView*>(m_pXFADocLayout->GetPage(nIndex)); |
| 205 } | 205 } |
| 206 | 206 |
| 207 CXFA_LayoutProcessor* CXFA_FFDocView::GetXFALayout() const { | 207 CXFA_LayoutProcessor* CXFA_FFDocView::GetXFALayout() const { |
| 208 return m_pDoc->GetXFADoc()->GetDocLayout(); | 208 return m_pDoc->GetXFADoc()->GetDocLayout(); |
| 209 } | 209 } |
| 210 FX_BOOL CXFA_FFDocView::ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc) { | 210 FX_BOOL CXFA_FFDocView::ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc) { |
| 211 CXFA_Node* pNode = pWidgetAcc->GetNode(); | 211 CXFA_Node* pNode = pWidgetAcc->GetNode(); |
| 212 XFA_ELEMENT eType = pNode->GetClassID(); | 212 XFA_ELEMENT eType = pNode->GetClassID(); |
| 213 if (eType != XFA_ELEMENT_Field && eType != XFA_ELEMENT_ExclGroup) { | 213 if (eType != XFA_ELEMENT_Field && eType != XFA_ELEMENT_ExclGroup) { |
| 214 return FALSE; | 214 return FALSE; |
| 215 } | 215 } |
| 216 pWidgetAcc->ResetData(); | 216 pWidgetAcc->ResetData(); |
| 217 pWidgetAcc->UpdateUIDisplay(); | 217 pWidgetAcc->UpdateUIDisplay(); |
| 218 if (CXFA_Validate validate = pWidgetAcc->GetValidate()) { | 218 if (CXFA_Validate validate = pWidgetAcc->GetValidate()) { |
| 219 AddValidateWidget(pWidgetAcc); | 219 AddValidateWidget(pWidgetAcc); |
| 220 validate.GetNode()->SetFlag(XFA_NODEFLAG_NeedsInitApp, false); | 220 validate.GetNode()->SetFlag(XFA_NODEFLAG_NeedsInitApp, false); |
| 221 } | 221 } |
| 222 return TRUE; | 222 return TRUE; |
| 223 } | 223 } |
| 224 void CXFA_FFDocView::ResetWidgetData(CXFA_WidgetAcc* pWidgetAcc) { | 224 void CXFA_FFDocView::ResetWidgetData(CXFA_WidgetAcc* pWidgetAcc) { |
| 225 m_bLayoutEvent = TRUE; | 225 m_bLayoutEvent = TRUE; |
| 226 FX_BOOL bChanged = FALSE; | 226 FX_BOOL bChanged = FALSE; |
| 227 CXFA_Node* pFormNode = NULL; | 227 CXFA_Node* pFormNode = nullptr; |
| 228 if (pWidgetAcc) { | 228 if (pWidgetAcc) { |
| 229 bChanged = ResetSingleWidgetAccData(pWidgetAcc); | 229 bChanged = ResetSingleWidgetAccData(pWidgetAcc); |
| 230 pFormNode = pWidgetAcc->GetNode(); | 230 pFormNode = pWidgetAcc->GetNode(); |
| 231 } else { | 231 } else { |
| 232 pFormNode = GetRootSubform(); | 232 pFormNode = GetRootSubform(); |
| 233 } | 233 } |
| 234 if (!pFormNode) { | 234 if (!pFormNode) { |
| 235 return; | 235 return; |
| 236 } | 236 } |
| 237 if (pFormNode->GetClassID() != XFA_ELEMENT_Field && | 237 if (pFormNode->GetClassID() != XFA_ELEMENT_Field && |
| 238 pFormNode->GetClassID() != XFA_ELEMENT_ExclGroup) { | 238 pFormNode->GetClassID() != XFA_ELEMENT_ExclGroup) { |
| 239 CXFA_WidgetAccIterator Iterator(this, pFormNode); | 239 CXFA_WidgetAccIterator Iterator(this, pFormNode); |
| 240 while (CXFA_WidgetAcc* pAcc = Iterator.MoveToNext()) { | 240 while (CXFA_WidgetAcc* pAcc = Iterator.MoveToNext()) { |
| 241 bChanged |= ResetSingleWidgetAccData(pAcc); | 241 bChanged |= ResetSingleWidgetAccData(pAcc); |
| 242 if (pAcc->GetNode()->GetClassID() == XFA_ELEMENT_ExclGroup) { | 242 if (pAcc->GetNode()->GetClassID() == XFA_ELEMENT_ExclGroup) { |
| 243 Iterator.SkipTree(); | 243 Iterator.SkipTree(); |
| 244 } | 244 } |
| 245 } | 245 } |
| 246 } | 246 } |
| 247 if (bChanged) { | 247 if (bChanged) { |
| 248 m_pDoc->GetDocProvider()->SetChangeMark(m_pDoc); | 248 m_pDoc->GetDocProvider()->SetChangeMark(m_pDoc); |
| 249 } | 249 } |
| 250 } | 250 } |
| 251 int32_t CXFA_FFDocView::ProcessWidgetEvent(CXFA_EventParam* pParam, | 251 int32_t CXFA_FFDocView::ProcessWidgetEvent(CXFA_EventParam* pParam, |
| 252 CXFA_WidgetAcc* pWidgetAcc) { | 252 CXFA_WidgetAcc* pWidgetAcc) { |
| 253 if (pParam == NULL) { | 253 if (!pParam) |
| 254 return XFA_EVENTERROR_Error; | 254 return XFA_EVENTERROR_Error; |
| 255 } | 255 |
| 256 if (pParam->m_eType == XFA_EVENT_Validate) { | 256 if (pParam->m_eType == XFA_EVENT_Validate) { |
| 257 CFX_WideString wsValidateStr(L"preSubmit"); | 257 CFX_WideString wsValidateStr(L"preSubmit"); |
| 258 CXFA_Node* pConfigItem = | 258 CXFA_Node* pConfigItem = |
| 259 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Config)); | 259 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Config)); |
| 260 if (pConfigItem) { | 260 if (pConfigItem) { |
| 261 CXFA_Node* pValidateNode = NULL; | 261 CXFA_Node* pValidateNode = nullptr; |
| 262 CXFA_Node* pAcrobatNode = pConfigItem->GetChild(0, XFA_ELEMENT_Acrobat); | 262 CXFA_Node* pAcrobatNode = pConfigItem->GetChild(0, XFA_ELEMENT_Acrobat); |
| 263 pValidateNode = | 263 pValidateNode = pAcrobatNode |
| 264 pAcrobatNode ? pAcrobatNode->GetChild(0, XFA_ELEMENT_Validate) : NULL; | 264 ? pAcrobatNode->GetChild(0, XFA_ELEMENT_Validate) |
| 265 : nullptr; |
| 265 if (!pValidateNode) { | 266 if (!pValidateNode) { |
| 266 CXFA_Node* pPresentNode = pConfigItem->GetChild(0, XFA_ELEMENT_Present); | 267 CXFA_Node* pPresentNode = pConfigItem->GetChild(0, XFA_ELEMENT_Present); |
| 267 pValidateNode = pPresentNode | 268 pValidateNode = pPresentNode |
| 268 ? pPresentNode->GetChild(0, XFA_ELEMENT_Validate) | 269 ? pPresentNode->GetChild(0, XFA_ELEMENT_Validate) |
| 269 : NULL; | 270 : nullptr; |
| 270 } | 271 } |
| 271 if (pValidateNode) { | 272 if (pValidateNode) { |
| 272 wsValidateStr = pValidateNode->GetContent(); | 273 wsValidateStr = pValidateNode->GetContent(); |
| 273 } | 274 } |
| 274 } | 275 } |
| 275 FX_BOOL bValidate = FALSE; | 276 FX_BOOL bValidate = FALSE; |
| 276 switch (pParam->m_iValidateActivities) { | 277 switch (pParam->m_iValidateActivities) { |
| 277 case XFA_VALIDATE_preSubmit: | 278 case XFA_VALIDATE_preSubmit: |
| 278 bValidate = wsValidateStr.Find(L"preSubmit") != -1; | 279 bValidate = wsValidateStr.Find(L"preSubmit") != -1; |
| 279 break; | 280 break; |
| 280 case XFA_VALIDATE_prePrint: | 281 case XFA_VALIDATE_prePrint: |
| 281 bValidate = wsValidateStr.Find(L"prePrint") != -1; | 282 bValidate = wsValidateStr.Find(L"prePrint") != -1; |
| 282 break; | 283 break; |
| 283 case XFA_VALIDATE_preExecute: | 284 case XFA_VALIDATE_preExecute: |
| 284 bValidate = wsValidateStr.Find(L"preExecute") != -1; | 285 bValidate = wsValidateStr.Find(L"preExecute") != -1; |
| 285 break; | 286 break; |
| 286 case XFA_VALIDATE_preSave: | 287 case XFA_VALIDATE_preSave: |
| 287 bValidate = wsValidateStr.Find(L"preSave") != -1; | 288 bValidate = wsValidateStr.Find(L"preSave") != -1; |
| 288 break; | 289 break; |
| 289 } | 290 } |
| 290 if (!bValidate) { | 291 if (!bValidate) { |
| 291 return XFA_EVENTERROR_Success; | 292 return XFA_EVENTERROR_Success; |
| 292 } | 293 } |
| 293 } | 294 } |
| 294 CXFA_Node* pNode = pWidgetAcc ? pWidgetAcc->GetNode() : NULL; | 295 CXFA_Node* pNode = pWidgetAcc ? pWidgetAcc->GetNode() : nullptr; |
| 295 if (!pNode) { | 296 if (!pNode) { |
| 296 CXFA_Node* pRootItem = | 297 CXFA_Node* pRootItem = |
| 297 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); | 298 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); |
| 298 if (!pRootItem) { | 299 if (!pRootItem) { |
| 299 return XFA_EVENTERROR_Error; | 300 return XFA_EVENTERROR_Error; |
| 300 } | 301 } |
| 301 pNode = pRootItem->GetChild(0, XFA_ELEMENT_Subform); | 302 pNode = pRootItem->GetChild(0, XFA_ELEMENT_Subform); |
| 302 } | 303 } |
| 303 ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady); | 304 ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady); |
| 304 return XFA_EVENTERROR_Success; | 305 return XFA_EVENTERROR_Success; |
| 305 } | 306 } |
| 306 CXFA_FFWidgetHandler* CXFA_FFDocView::GetWidgetHandler() { | 307 CXFA_FFWidgetHandler* CXFA_FFDocView::GetWidgetHandler() { |
| 307 if (!m_pWidgetHandler) { | 308 if (!m_pWidgetHandler) { |
| 308 m_pWidgetHandler = new CXFA_FFWidgetHandler(this); | 309 m_pWidgetHandler = new CXFA_FFWidgetHandler(this); |
| 309 } | 310 } |
| 310 return m_pWidgetHandler; | 311 return m_pWidgetHandler; |
| 311 } | 312 } |
| 312 | 313 |
| 313 CXFA_WidgetAccIterator* CXFA_FFDocView::CreateWidgetAccIterator( | 314 CXFA_WidgetAccIterator* CXFA_FFDocView::CreateWidgetAccIterator( |
| 314 XFA_WIDGETORDER eOrder) { | 315 XFA_WIDGETORDER eOrder) { |
| 315 CXFA_Node* pFormRoot = GetRootSubform(); | 316 CXFA_Node* pFormRoot = GetRootSubform(); |
| 316 if (!pFormRoot) { | 317 if (!pFormRoot) { |
| 317 return NULL; | 318 return nullptr; |
| 318 } | 319 } |
| 319 return new CXFA_WidgetAccIterator(this, pFormRoot); | 320 return new CXFA_WidgetAccIterator(this, pFormRoot); |
| 320 } | 321 } |
| 321 CXFA_FFWidget* CXFA_FFDocView::GetFocusWidget() { | 322 CXFA_FFWidget* CXFA_FFDocView::GetFocusWidget() { |
| 322 return m_pFocusWidget; | 323 return m_pFocusWidget; |
| 323 } | 324 } |
| 324 void CXFA_FFDocView::KillFocus() { | 325 void CXFA_FFDocView::KillFocus() { |
| 325 if (m_pFocusWidget && | 326 if (m_pFocusWidget && |
| 326 (m_pFocusWidget->GetStatus() & XFA_WidgetStatus_Focused)) { | 327 (m_pFocusWidget->GetStatus() & XFA_WidgetStatus_Focused)) { |
| 327 (m_pFocusWidget)->OnKillFocus(NULL); | 328 (m_pFocusWidget)->OnKillFocus(nullptr); |
| 328 } | 329 } |
| 329 m_pFocusAcc = NULL; | 330 m_pFocusAcc = nullptr; |
| 330 m_pFocusWidget = NULL; | 331 m_pFocusWidget = nullptr; |
| 331 m_pOldFocusWidget = NULL; | 332 m_pOldFocusWidget = nullptr; |
| 332 } | 333 } |
| 333 FX_BOOL CXFA_FFDocView::SetFocus(CXFA_FFWidget* hWidget) { | 334 FX_BOOL CXFA_FFDocView::SetFocus(CXFA_FFWidget* hWidget) { |
| 334 CXFA_FFWidget* pNewFocus = hWidget; | 335 CXFA_FFWidget* pNewFocus = hWidget; |
| 335 if (m_pOldFocusWidget == pNewFocus) { | 336 if (m_pOldFocusWidget == pNewFocus) { |
| 336 return FALSE; | 337 return FALSE; |
| 337 } | 338 } |
| 338 CXFA_FFWidget* pOldFocus = m_pOldFocusWidget; | 339 CXFA_FFWidget* pOldFocus = m_pOldFocusWidget; |
| 339 m_pOldFocusWidget = pNewFocus; | 340 m_pOldFocusWidget = pNewFocus; |
| 340 if (pOldFocus) { | 341 if (pOldFocus) { |
| 341 if (m_pFocusWidget != m_pOldFocusWidget && | 342 if (m_pFocusWidget != m_pOldFocusWidget && |
| 342 (pOldFocus->GetStatus() & XFA_WidgetStatus_Focused)) { | 343 (pOldFocus->GetStatus() & XFA_WidgetStatus_Focused)) { |
| 343 m_pFocusWidget = pOldFocus; | 344 m_pFocusWidget = pOldFocus; |
| 344 pOldFocus->OnKillFocus(pNewFocus); | 345 pOldFocus->OnKillFocus(pNewFocus); |
| 345 } else if ((pOldFocus->GetStatus() & XFA_WidgetStatus_Visible)) { | 346 } else if ((pOldFocus->GetStatus() & XFA_WidgetStatus_Visible)) { |
| 346 if (!pOldFocus->IsLoaded()) { | 347 if (!pOldFocus->IsLoaded()) { |
| 347 pOldFocus->LoadWidget(); | 348 pOldFocus->LoadWidget(); |
| 348 } | 349 } |
| 349 pOldFocus->OnSetFocus(m_pFocusWidget); | 350 pOldFocus->OnSetFocus(m_pFocusWidget); |
| 350 m_pFocusWidget = pOldFocus; | 351 m_pFocusWidget = pOldFocus; |
| 351 pOldFocus->OnKillFocus(pNewFocus); | 352 pOldFocus->OnKillFocus(pNewFocus); |
| 352 } | 353 } |
| 353 } | 354 } |
| 354 if (m_pFocusWidget == m_pOldFocusWidget) { | 355 if (m_pFocusWidget == m_pOldFocusWidget) { |
| 355 return FALSE; | 356 return FALSE; |
| 356 } | 357 } |
| 357 pNewFocus = m_pOldFocusWidget; | 358 pNewFocus = m_pOldFocusWidget; |
| 358 if (m_pListFocusWidget && pNewFocus == m_pListFocusWidget) { | 359 if (m_pListFocusWidget && pNewFocus == m_pListFocusWidget) { |
| 359 m_pFocusAcc = NULL; | 360 m_pFocusAcc = nullptr; |
| 360 m_pFocusWidget = NULL; | 361 m_pFocusWidget = nullptr; |
| 361 m_pListFocusWidget = NULL; | 362 m_pListFocusWidget = nullptr; |
| 362 m_pOldFocusWidget = NULL; | 363 m_pOldFocusWidget = nullptr; |
| 363 return FALSE; | 364 return FALSE; |
| 364 } | 365 } |
| 365 if (pNewFocus && (pNewFocus->GetStatus() & XFA_WidgetStatus_Visible)) { | 366 if (pNewFocus && (pNewFocus->GetStatus() & XFA_WidgetStatus_Visible)) { |
| 366 if (!pNewFocus->IsLoaded()) { | 367 if (!pNewFocus->IsLoaded()) { |
| 367 pNewFocus->LoadWidget(); | 368 pNewFocus->LoadWidget(); |
| 368 } | 369 } |
| 369 pNewFocus->OnSetFocus(m_pFocusWidget); | 370 pNewFocus->OnSetFocus(m_pFocusWidget); |
| 370 } | 371 } |
| 371 m_pFocusAcc = pNewFocus ? pNewFocus->GetDataAcc() : NULL; | 372 m_pFocusAcc = pNewFocus ? pNewFocus->GetDataAcc() : nullptr; |
| 372 m_pFocusWidget = pNewFocus; | 373 m_pFocusWidget = pNewFocus; |
| 373 m_pOldFocusWidget = m_pFocusWidget; | 374 m_pOldFocusWidget = m_pFocusWidget; |
| 374 return TRUE; | 375 return TRUE; |
| 375 } | 376 } |
| 376 CXFA_WidgetAcc* CXFA_FFDocView::GetFocusWidgetAcc() { | 377 CXFA_WidgetAcc* CXFA_FFDocView::GetFocusWidgetAcc() { |
| 377 return m_pFocusAcc; | 378 return m_pFocusAcc; |
| 378 } | 379 } |
| 379 void CXFA_FFDocView::SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) { | 380 void CXFA_FFDocView::SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) { |
| 380 CXFA_FFWidget* pNewFocus = | 381 CXFA_FFWidget* pNewFocus = |
| 381 pWidgetAcc ? pWidgetAcc->GetNextWidget(NULL) : NULL; | 382 pWidgetAcc ? pWidgetAcc->GetNextWidget(nullptr) : nullptr; |
| 382 if (SetFocus(pNewFocus)) { | 383 if (SetFocus(pNewFocus)) { |
| 383 m_pFocusAcc = pWidgetAcc; | 384 m_pFocusAcc = pWidgetAcc; |
| 384 if (m_iStatus == XFA_DOCVIEW_LAYOUTSTATUS_End) { | 385 if (m_iStatus == XFA_DOCVIEW_LAYOUTSTATUS_End) { |
| 385 m_pDoc->GetDocProvider()->SetFocusWidget(m_pDoc, m_pFocusWidget); | 386 m_pDoc->GetDocProvider()->SetFocusWidget(m_pDoc, m_pFocusWidget); |
| 386 } | 387 } |
| 387 } | 388 } |
| 388 } | 389 } |
| 389 void CXFA_FFDocView::DeleteLayoutItem(CXFA_FFWidget* pWidget) { | 390 void CXFA_FFDocView::DeleteLayoutItem(CXFA_FFWidget* pWidget) { |
| 390 if (m_pFocusAcc == pWidget->GetDataAcc()) { | 391 if (m_pFocusAcc == pWidget->GetDataAcc()) { |
| 391 m_pFocusAcc = NULL; | 392 m_pFocusAcc = nullptr; |
| 392 m_pFocusWidget = NULL; | 393 m_pFocusWidget = nullptr; |
| 393 m_pOldFocusWidget = NULL; | 394 m_pOldFocusWidget = nullptr; |
| 394 } | 395 } |
| 395 } | 396 } |
| 396 static int32_t XFA_ProcessEvent(CXFA_FFDocView* pDocView, | 397 static int32_t XFA_ProcessEvent(CXFA_FFDocView* pDocView, |
| 397 CXFA_WidgetAcc* pWidgetAcc, | 398 CXFA_WidgetAcc* pWidgetAcc, |
| 398 CXFA_EventParam* pParam) { | 399 CXFA_EventParam* pParam) { |
| 399 if (!pParam || pParam->m_eType == XFA_EVENT_Unknown) { | 400 if (!pParam || pParam->m_eType == XFA_EVENT_Unknown) { |
| 400 return XFA_EVENTERROR_NotExist; | 401 return XFA_EVENTERROR_NotExist; |
| 401 } | 402 } |
| 402 if (!pWidgetAcc || pWidgetAcc->GetClassID() == XFA_ELEMENT_Draw) { | 403 if (!pWidgetAcc || pWidgetAcc->GetClassID() == XFA_ELEMENT_Draw) { |
| 403 return XFA_EVENTERROR_NotExist; | 404 return XFA_EVENTERROR_NotExist; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 int32_t iRet = XFA_EVENTERROR_NotExist; | 439 int32_t iRet = XFA_EVENTERROR_NotExist; |
| 439 if (pFormNode == pExclude) { | 440 if (pFormNode == pExclude) { |
| 440 return iRet; | 441 return iRet; |
| 441 } | 442 } |
| 442 XFA_ELEMENT elementType = pFormNode->GetClassID(); | 443 XFA_ELEMENT elementType = pFormNode->GetClassID(); |
| 443 if (elementType == XFA_ELEMENT_Field) { | 444 if (elementType == XFA_ELEMENT_Field) { |
| 444 if (eEventType == XFA_EVENT_IndexChange) { | 445 if (eEventType == XFA_EVENT_IndexChange) { |
| 445 return iRet; | 446 return iRet; |
| 446 } | 447 } |
| 447 CXFA_WidgetAcc* pWidgetAcc = (CXFA_WidgetAcc*)pFormNode->GetWidgetData(); | 448 CXFA_WidgetAcc* pWidgetAcc = (CXFA_WidgetAcc*)pFormNode->GetWidgetData(); |
| 448 if (pWidgetAcc == NULL) { | 449 if (!pWidgetAcc) |
| 449 return iRet; | 450 return iRet; |
| 450 } | 451 |
| 451 CXFA_EventParam eParam; | 452 CXFA_EventParam eParam; |
| 452 eParam.m_eType = eEventType; | 453 eParam.m_eType = eEventType; |
| 453 eParam.m_pTarget = pWidgetAcc; | 454 eParam.m_pTarget = pWidgetAcc; |
| 454 eParam.m_bIsFormReady = bIsFormReady; | 455 eParam.m_bIsFormReady = bIsFormReady; |
| 455 return XFA_ProcessEvent(this, pWidgetAcc, &eParam); | 456 return XFA_ProcessEvent(this, pWidgetAcc, &eParam); |
| 456 } | 457 } |
| 457 if (bRecursive) { | 458 if (bRecursive) { |
| 458 for (CXFA_Node* pNode = pFormNode->GetNodeItem( | 459 for (CXFA_Node* pNode = pFormNode->GetNodeItem( |
| 459 XFA_NODEITEM_FirstChild, XFA_OBJECTTYPE_ContainerNode); | 460 XFA_NODEITEM_FirstChild, XFA_OBJECTTYPE_ContainerNode); |
| 460 pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling, | 461 pNode; pNode = pNode->GetNodeItem(XFA_NODEITEM_NextSibling, |
| 461 XFA_OBJECTTYPE_ContainerNode)) { | 462 XFA_OBJECTTYPE_ContainerNode)) { |
| 462 elementType = pNode->GetClassID(); | 463 elementType = pNode->GetClassID(); |
| 463 if (elementType != XFA_ELEMENT_Variables && | 464 if (elementType != XFA_ELEMENT_Variables && |
| 464 elementType != XFA_ELEMENT_Draw) { | 465 elementType != XFA_ELEMENT_Draw) { |
| 465 iRet |= ExecEventActivityByDeepFirst(pNode, eEventType, bIsFormReady, | 466 iRet |= ExecEventActivityByDeepFirst(pNode, eEventType, bIsFormReady, |
| 466 bRecursive, pExclude); | 467 bRecursive, pExclude); |
| 467 } | 468 } |
| 468 } | 469 } |
| 469 } | 470 } |
| 470 CXFA_WidgetAcc* pWidgetAcc = (CXFA_WidgetAcc*)pFormNode->GetWidgetData(); | 471 CXFA_WidgetAcc* pWidgetAcc = (CXFA_WidgetAcc*)pFormNode->GetWidgetData(); |
| 471 if (pWidgetAcc == NULL) { | 472 if (!pWidgetAcc) |
| 472 return iRet; | 473 return iRet; |
| 473 } | 474 |
| 474 CXFA_EventParam eParam; | 475 CXFA_EventParam eParam; |
| 475 eParam.m_eType = eEventType; | 476 eParam.m_eType = eEventType; |
| 476 eParam.m_pTarget = pWidgetAcc; | 477 eParam.m_pTarget = pWidgetAcc; |
| 477 eParam.m_bIsFormReady = bIsFormReady; | 478 eParam.m_bIsFormReady = bIsFormReady; |
| 478 iRet |= XFA_ProcessEvent(this, pWidgetAcc, &eParam); | 479 iRet |= XFA_ProcessEvent(this, pWidgetAcc, &eParam); |
| 479 return iRet; | 480 return iRet; |
| 480 } | 481 } |
| 481 | 482 |
| 482 CXFA_FFWidget* CXFA_FFDocView::GetWidgetByName(const CFX_WideString& wsName, | 483 CXFA_FFWidget* CXFA_FFDocView::GetWidgetByName(const CFX_WideString& wsName, |
| 483 CXFA_FFWidget* pRefWidget) { | 484 CXFA_FFWidget* pRefWidget) { |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 759 for (int32_t j = 0; j < iCount; j++) { | 760 for (int32_t j = 0; j < iCount; j++) { |
| 760 CXFA_Object* refObj = rs.nodes[j]; | 761 CXFA_Object* refObj = rs.nodes[j]; |
| 761 if (!refObj->IsNode()) { | 762 if (!refObj->IsNode()) { |
| 762 continue; | 763 continue; |
| 763 } | 764 } |
| 764 CXFA_Node* refNode = refObj->AsNode(); | 765 CXFA_Node* refNode = refObj->AsNode(); |
| 765 if (bValueUseContent) { | 766 if (bValueUseContent) { |
| 766 wsValue = refNode->GetContent(); | 767 wsValue = refNode->GetContent(); |
| 767 } else { | 768 } else { |
| 768 CXFA_Node* nodeValue = refNode->GetFirstChildByName(uValueHash); | 769 CXFA_Node* nodeValue = refNode->GetFirstChildByName(uValueHash); |
| 769 if (nodeValue == NULL) { | 770 if (nodeValue) |
| 771 wsValue = nodeValue->GetContent(); |
| 772 else |
| 770 wsValue = refNode->GetContent(); | 773 wsValue = refNode->GetContent(); |
| 771 } else { | |
| 772 wsValue = nodeValue->GetContent(); | |
| 773 } | |
| 774 } | 774 } |
| 775 if (!bUseValue) { | 775 if (!bUseValue) { |
| 776 if (bLabelUseContent) { | 776 if (bLabelUseContent) { |
| 777 wsLabel = refNode->GetContent(); | 777 wsLabel = refNode->GetContent(); |
| 778 } else { | 778 } else { |
| 779 CXFA_Node* nodeLabel = refNode->GetFirstChildByName(wsLabelRef); | 779 CXFA_Node* nodeLabel = refNode->GetFirstChildByName(wsLabelRef); |
| 780 if (nodeLabel) | 780 if (nodeLabel) |
| 781 wsLabel = nodeLabel->GetContent(); | 781 wsLabel = nodeLabel->GetContent(); |
| 782 } | 782 } |
| 783 } else { | 783 } else { |
| 784 wsLabel = wsValue; | 784 wsLabel = wsValue; |
| 785 } | 785 } |
| 786 pAcc->InsertItem(wsLabel, wsValue); | 786 pAcc->InsertItem(wsLabel, wsValue); |
| 787 } | 787 } |
| 788 } | 788 } |
| 789 m_BindItems.RemoveAll(); | 789 m_BindItems.RemoveAll(); |
| 790 } | 790 } |
| 791 void CXFA_FFDocView::SetChangeMark() { | 791 void CXFA_FFDocView::SetChangeMark() { |
| 792 if (m_iStatus < XFA_DOCVIEW_LAYOUTSTATUS_End) { | 792 if (m_iStatus < XFA_DOCVIEW_LAYOUTSTATUS_End) { |
| 793 return; | 793 return; |
| 794 } | 794 } |
| 795 m_pDoc->GetDocProvider()->SetChangeMark(m_pDoc); | 795 m_pDoc->GetDocProvider()->SetChangeMark(m_pDoc); |
| 796 } | 796 } |
| 797 CXFA_Node* CXFA_FFDocView::GetRootSubform() { | 797 CXFA_Node* CXFA_FFDocView::GetRootSubform() { |
| 798 CXFA_Node* pFormPacketNode = | 798 CXFA_Node* pFormPacketNode = |
| 799 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); | 799 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); |
| 800 if (!pFormPacketNode) { | 800 if (!pFormPacketNode) { |
| 801 return NULL; | 801 return nullptr; |
| 802 } | 802 } |
| 803 return pFormPacketNode->GetFirstChildByClass(XFA_ELEMENT_Subform); | 803 return pFormPacketNode->GetFirstChildByClass(XFA_ELEMENT_Subform); |
| 804 } | 804 } |
| 805 | 805 |
| 806 CXFA_WidgetAccIterator::CXFA_WidgetAccIterator(CXFA_FFDocView* pDocView, | 806 CXFA_WidgetAccIterator::CXFA_WidgetAccIterator(CXFA_FFDocView* pDocView, |
| 807 CXFA_Node* pTravelRoot) | 807 CXFA_Node* pTravelRoot) |
| 808 : m_ContentIterator(pTravelRoot) { | 808 : m_ContentIterator(pTravelRoot) { |
| 809 m_pDocView = pDocView; | 809 m_pDocView = pDocView; |
| 810 m_pCurWidgetAcc = NULL; | 810 m_pCurWidgetAcc = nullptr; |
| 811 } | 811 } |
| 812 CXFA_WidgetAccIterator::~CXFA_WidgetAccIterator() {} | 812 CXFA_WidgetAccIterator::~CXFA_WidgetAccIterator() {} |
| 813 void CXFA_WidgetAccIterator::Reset() { | 813 void CXFA_WidgetAccIterator::Reset() { |
| 814 m_pCurWidgetAcc = NULL; | 814 m_pCurWidgetAcc = nullptr; |
| 815 m_ContentIterator.Reset(); | 815 m_ContentIterator.Reset(); |
| 816 } | 816 } |
| 817 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToFirst() { | 817 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToFirst() { |
| 818 return NULL; | 818 return nullptr; |
| 819 } | 819 } |
| 820 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToLast() { | 820 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToLast() { |
| 821 return NULL; | 821 return nullptr; |
| 822 } | 822 } |
| 823 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToNext() { | 823 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToNext() { |
| 824 CXFA_Node* pItem = m_pCurWidgetAcc ? m_ContentIterator.MoveToNext() | 824 CXFA_Node* pItem = m_pCurWidgetAcc ? m_ContentIterator.MoveToNext() |
| 825 : m_ContentIterator.GetCurrent(); | 825 : m_ContentIterator.GetCurrent(); |
| 826 while (pItem) { | 826 while (pItem) { |
| 827 m_pCurWidgetAcc = (CXFA_WidgetAcc*)pItem->GetWidgetData(); | 827 m_pCurWidgetAcc = (CXFA_WidgetAcc*)pItem->GetWidgetData(); |
| 828 if (m_pCurWidgetAcc) | 828 if (m_pCurWidgetAcc) |
| 829 return m_pCurWidgetAcc; | 829 return m_pCurWidgetAcc; |
| 830 pItem = m_ContentIterator.MoveToNext(); | 830 pItem = m_ContentIterator.MoveToNext(); |
| 831 } | 831 } |
| 832 return NULL; | 832 return nullptr; |
| 833 } | 833 } |
| 834 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToPrevious() { | 834 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToPrevious() { |
| 835 return NULL; | 835 return nullptr; |
| 836 } | 836 } |
| 837 CXFA_WidgetAcc* CXFA_WidgetAccIterator::GetCurrentWidgetAcc() { | 837 CXFA_WidgetAcc* CXFA_WidgetAccIterator::GetCurrentWidgetAcc() { |
| 838 return NULL; | 838 return nullptr; |
| 839 } | 839 } |
| 840 FX_BOOL CXFA_WidgetAccIterator::SetCurrentWidgetAcc(CXFA_WidgetAcc* hWidget) { | 840 FX_BOOL CXFA_WidgetAccIterator::SetCurrentWidgetAcc(CXFA_WidgetAcc* hWidget) { |
| 841 return FALSE; | 841 return FALSE; |
| 842 } | 842 } |
| 843 void CXFA_WidgetAccIterator::SkipTree() { | 843 void CXFA_WidgetAccIterator::SkipTree() { |
| 844 m_ContentIterator.SkipChildrenAndMoveToNext(); | 844 m_ContentIterator.SkipChildrenAndMoveToNext(); |
| 845 m_pCurWidgetAcc = NULL; | 845 m_pCurWidgetAcc = nullptr; |
| 846 } | 846 } |
| OLD | NEW |