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 |