| 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/app/xfa_ffnotify.h" | 7 #include "xfa/fxfa/app/xfa_ffnotify.h" |
| 8 | 8 |
| 9 #include "fxjse/include/cfxjse_value.h" | 9 #include "fxjse/include/cfxjse_value.h" |
| 10 #include "xfa/fxfa/app/xfa_ffbarcode.h" | 10 #include "xfa/fxfa/app/xfa_ffbarcode.h" |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 | 50 |
| 51 void CXFA_FFNotify::OnWidgetListItemAdded(CXFA_WidgetData* pSender, | 51 void CXFA_FFNotify::OnWidgetListItemAdded(CXFA_WidgetData* pSender, |
| 52 const FX_WCHAR* pLabel, | 52 const FX_WCHAR* pLabel, |
| 53 const FX_WCHAR* pValue, | 53 const FX_WCHAR* pValue, |
| 54 int32_t iIndex) { | 54 int32_t iIndex) { |
| 55 CXFA_WidgetAcc* pWidgetAcc = static_cast<CXFA_WidgetAcc*>(pSender); | 55 CXFA_WidgetAcc* pWidgetAcc = static_cast<CXFA_WidgetAcc*>(pSender); |
| 56 if (pWidgetAcc->GetUIType() != XFA_Element::ChoiceList) | 56 if (pWidgetAcc->GetUIType() != XFA_Element::ChoiceList) |
| 57 return; | 57 return; |
| 58 | 58 |
| 59 CXFA_FFWidget* pWidget = nullptr; | 59 CXFA_FFWidget* pWidget = nullptr; |
| 60 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget)) != nullptr) { | 60 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget))) { |
| 61 if (pWidget->IsLoaded()) { | 61 if (pWidget->IsLoaded()) { |
| 62 if (pWidgetAcc->IsListBox()) { | 62 if (pWidgetAcc->IsListBox()) { |
| 63 static_cast<CXFA_FFListBox*>(pWidget)->InsertItem(pLabel, iIndex); | 63 static_cast<CXFA_FFListBox*>(pWidget)->InsertItem(pLabel, iIndex); |
| 64 } else { | 64 } else { |
| 65 static_cast<CXFA_FFComboBox*>(pWidget)->InsertItem(pLabel, iIndex); | 65 static_cast<CXFA_FFComboBox*>(pWidget)->InsertItem(pLabel, iIndex); |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 } | 68 } |
| 69 } | 69 } |
| 70 | 70 |
| 71 void CXFA_FFNotify::OnWidgetListItemRemoved(CXFA_WidgetData* pSender, | 71 void CXFA_FFNotify::OnWidgetListItemRemoved(CXFA_WidgetData* pSender, |
| 72 int32_t iIndex) { | 72 int32_t iIndex) { |
| 73 CXFA_WidgetAcc* pWidgetAcc = static_cast<CXFA_WidgetAcc*>(pSender); | 73 CXFA_WidgetAcc* pWidgetAcc = static_cast<CXFA_WidgetAcc*>(pSender); |
| 74 if (pWidgetAcc->GetUIType() != XFA_Element::ChoiceList) | 74 if (pWidgetAcc->GetUIType() != XFA_Element::ChoiceList) |
| 75 return; | 75 return; |
| 76 | 76 |
| 77 CXFA_FFWidget* pWidget = nullptr; | 77 CXFA_FFWidget* pWidget = nullptr; |
| 78 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget)) != nullptr) { | 78 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget))) { |
| 79 if (pWidget->IsLoaded()) { | 79 if (pWidget->IsLoaded()) { |
| 80 if (pWidgetAcc->IsListBox()) { | 80 if (pWidgetAcc->IsListBox()) { |
| 81 static_cast<CXFA_FFListBox*>(pWidget)->DeleteItem(iIndex); | 81 static_cast<CXFA_FFListBox*>(pWidget)->DeleteItem(iIndex); |
| 82 } else { | 82 } else { |
| 83 static_cast<CXFA_FFComboBox*>(pWidget)->DeleteItem(iIndex); | 83 static_cast<CXFA_FFComboBox*>(pWidget)->DeleteItem(iIndex); |
| 84 } | 84 } |
| 85 } | 85 } |
| 86 } | 86 } |
| 87 } | 87 } |
| 88 | 88 |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 214 XFA_EVENTTYPE eEventType, | 214 XFA_EVENTTYPE eEventType, |
| 215 FX_BOOL bIsFormReady, | 215 FX_BOOL bIsFormReady, |
| 216 FX_BOOL bRecursive, | 216 FX_BOOL bRecursive, |
| 217 CXFA_WidgetAcc* pExclude) { | 217 CXFA_WidgetAcc* pExclude) { |
| 218 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 218 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 219 if (!pDocView) { | 219 if (!pDocView) { |
| 220 return XFA_EVENTERROR_NotExist; | 220 return XFA_EVENTERROR_NotExist; |
| 221 } | 221 } |
| 222 return pDocView->ExecEventActivityByDeepFirst( | 222 return pDocView->ExecEventActivityByDeepFirst( |
| 223 pFormNode, eEventType, bIsFormReady, bRecursive, | 223 pFormNode, eEventType, bIsFormReady, bRecursive, |
| 224 pExclude ? pExclude->GetNode() : NULL); | 224 pExclude ? pExclude->GetNode() : nullptr); |
| 225 } | 225 } |
| 226 void CXFA_FFNotify::AddCalcValidate(CXFA_Node* pNode) { | 226 void CXFA_FFNotify::AddCalcValidate(CXFA_Node* pNode) { |
| 227 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 227 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 228 if (!pDocView) { | 228 if (!pDocView) { |
| 229 return; | 229 return; |
| 230 } | 230 } |
| 231 CXFA_WidgetAcc* pWidgetAcc = | 231 CXFA_WidgetAcc* pWidgetAcc = |
| 232 static_cast<CXFA_WidgetAcc*>(pNode->GetWidgetData()); | 232 static_cast<CXFA_WidgetAcc*>(pNode->GetWidgetData()); |
| 233 if (!pWidgetAcc) { | 233 if (!pWidgetAcc) { |
| 234 return; | 234 return; |
| 235 } | 235 } |
| 236 pDocView->AddCalculateWidgetAcc(pWidgetAcc); | 236 pDocView->AddCalculateWidgetAcc(pWidgetAcc); |
| 237 pDocView->AddValidateWidget(pWidgetAcc); | 237 pDocView->AddValidateWidget(pWidgetAcc); |
| 238 } | 238 } |
| 239 CXFA_FFDoc* CXFA_FFNotify::GetHDOC() { | 239 CXFA_FFDoc* CXFA_FFNotify::GetHDOC() { |
| 240 return m_pDoc; | 240 return m_pDoc; |
| 241 } | 241 } |
| 242 IXFA_DocProvider* CXFA_FFNotify::GetDocProvider() { | 242 IXFA_DocProvider* CXFA_FFNotify::GetDocProvider() { |
| 243 return m_pDoc->GetDocProvider(); | 243 return m_pDoc->GetDocProvider(); |
| 244 } | 244 } |
| 245 IXFA_AppProvider* CXFA_FFNotify::GetAppProvider() { | 245 IXFA_AppProvider* CXFA_FFNotify::GetAppProvider() { |
| 246 return m_pDoc->GetApp()->GetAppProvider(); | 246 return m_pDoc->GetApp()->GetAppProvider(); |
| 247 } | 247 } |
| 248 CXFA_FFWidgetHandler* CXFA_FFNotify::GetWidgetHandler() { | 248 CXFA_FFWidgetHandler* CXFA_FFNotify::GetWidgetHandler() { |
| 249 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 249 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 250 return pDocView ? pDocView->GetWidgetHandler() : NULL; | 250 return pDocView ? pDocView->GetWidgetHandler() : nullptr; |
| 251 } | 251 } |
| 252 CXFA_FFWidget* CXFA_FFNotify::GetHWidget(CXFA_LayoutItem* pLayoutItem) { | 252 CXFA_FFWidget* CXFA_FFNotify::GetHWidget(CXFA_LayoutItem* pLayoutItem) { |
| 253 return XFA_GetWidgetFromLayoutItem(pLayoutItem); | 253 return XFA_GetWidgetFromLayoutItem(pLayoutItem); |
| 254 } | 254 } |
| 255 void CXFA_FFNotify::OpenDropDownList(CXFA_FFWidget* hWidget) { | 255 void CXFA_FFNotify::OpenDropDownList(CXFA_FFWidget* hWidget) { |
| 256 if (hWidget->GetDataAcc()->GetUIType() != XFA_Element::ChoiceList) { | 256 if (hWidget->GetDataAcc()->GetUIType() != XFA_Element::ChoiceList) { |
| 257 return; | 257 return; |
| 258 } | 258 } |
| 259 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 259 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 260 pDocView->LockUpdate(); | 260 pDocView->LockUpdate(); |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 void CXFA_FFNotify::RunSubformIndexChange(CXFA_Node* pSubformNode) { | 292 void CXFA_FFNotify::RunSubformIndexChange(CXFA_Node* pSubformNode) { |
| 293 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 293 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 294 if (!pDocView) { | 294 if (!pDocView) { |
| 295 return; | 295 return; |
| 296 } | 296 } |
| 297 pDocView->AddIndexChangedSubform(pSubformNode); | 297 pDocView->AddIndexChangedSubform(pSubformNode); |
| 298 } | 298 } |
| 299 CXFA_Node* CXFA_FFNotify::GetFocusWidgetNode() { | 299 CXFA_Node* CXFA_FFNotify::GetFocusWidgetNode() { |
| 300 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 300 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 301 if (!pDocView) { | 301 if (!pDocView) { |
| 302 return NULL; | 302 return nullptr; |
| 303 } | 303 } |
| 304 CXFA_WidgetAcc* pAcc = pDocView->GetFocusWidgetAcc(); | 304 CXFA_WidgetAcc* pAcc = pDocView->GetFocusWidgetAcc(); |
| 305 return pAcc ? pAcc->GetNode() : NULL; | 305 return pAcc ? pAcc->GetNode() : nullptr; |
| 306 } | 306 } |
| 307 void CXFA_FFNotify::SetFocusWidgetNode(CXFA_Node* pNode) { | 307 void CXFA_FFNotify::SetFocusWidgetNode(CXFA_Node* pNode) { |
| 308 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 308 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| 309 if (!pDocView) { | 309 if (!pDocView) { |
| 310 return; | 310 return; |
| 311 } | 311 } |
| 312 CXFA_WidgetAcc* pAcc = | 312 CXFA_WidgetAcc* pAcc = |
| 313 pNode ? static_cast<CXFA_WidgetAcc*>(pNode->GetWidgetData()) : nullptr; | 313 pNode ? static_cast<CXFA_WidgetAcc*>(pNode->GetWidgetData()) : nullptr; |
| 314 pDocView->SetFocusWidgetAcc(pAcc); | 314 pDocView->SetFocusWidgetAcc(pAcc); |
| 315 } | 315 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 | 353 |
| 354 if (pDocView->GetLayoutStatus() < XFA_DOCVIEW_LAYOUTSTATUS_End) | 354 if (pDocView->GetLayoutStatus() < XFA_DOCVIEW_LAYOUTSTATUS_End) |
| 355 return; | 355 return; |
| 356 | 356 |
| 357 CXFA_WidgetAcc* pWidgetAcc = | 357 CXFA_WidgetAcc* pWidgetAcc = |
| 358 static_cast<CXFA_WidgetAcc*>(pSender->GetWidgetData()); | 358 static_cast<CXFA_WidgetAcc*>(pSender->GetWidgetData()); |
| 359 if (!pWidgetAcc) | 359 if (!pWidgetAcc) |
| 360 return; | 360 return; |
| 361 | 361 |
| 362 CXFA_FFWidget* pWidget = nullptr; | 362 CXFA_FFWidget* pWidget = nullptr; |
| 363 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget)) != nullptr) { | 363 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget))) { |
| 364 if (pWidget->IsLoaded()) | 364 if (pWidget->IsLoaded()) |
| 365 pWidget->AddInvalidateRect(); | 365 pWidget->AddInvalidateRect(); |
| 366 } | 366 } |
| 367 } | 367 } |
| 368 | 368 |
| 369 void CXFA_FFNotify::OnValueChanged(CXFA_Node* pSender, | 369 void CXFA_FFNotify::OnValueChanged(CXFA_Node* pSender, |
| 370 XFA_ATTRIBUTE eAttr, | 370 XFA_ATTRIBUTE eAttr, |
| 371 CXFA_Node* pParentNode, | 371 CXFA_Node* pParentNode, |
| 372 CXFA_Node* pWidgetNode) { | 372 CXFA_Node* pWidgetNode) { |
| 373 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); | 373 CXFA_FFDocView* pDocView = m_pDoc->GetDocView(); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 415 pDocView->AddCalculateWidgetAcc(pWidgetAcc); | 415 pDocView->AddCalculateWidgetAcc(pWidgetAcc); |
| 416 pDocView->AddValidateWidget(pWidgetAcc); | 416 pDocView->AddValidateWidget(pWidgetAcc); |
| 417 } else if (pWidgetNode->GetNodeItem(XFA_NODEITEM_Parent) | 417 } else if (pWidgetNode->GetNodeItem(XFA_NODEITEM_Parent) |
| 418 ->GetElementType() == XFA_Element::ExclGroup) { | 418 ->GetElementType() == XFA_Element::ExclGroup) { |
| 419 pWidgetAcc->UpdateUIDisplay(); | 419 pWidgetAcc->UpdateUIDisplay(); |
| 420 } | 420 } |
| 421 return; | 421 return; |
| 422 } | 422 } |
| 423 } | 423 } |
| 424 CXFA_FFWidget* pWidget = nullptr; | 424 CXFA_FFWidget* pWidget = nullptr; |
| 425 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget)) != nullptr) { | 425 while ((pWidget = pWidgetAcc->GetNextWidget(pWidget))) { |
| 426 if (!pWidget->IsLoaded()) | 426 if (!pWidget->IsLoaded()) |
| 427 continue; | 427 continue; |
| 428 | 428 |
| 429 if (bUpdateProperty) | 429 if (bUpdateProperty) |
| 430 pWidget->UpdateWidgetProperty(); | 430 pWidget->UpdateWidgetProperty(); |
| 431 pWidget->PerformLayout(); | 431 pWidget->PerformLayout(); |
| 432 pWidget->AddInvalidateRect(); | 432 pWidget->AddInvalidateRect(); |
| 433 } | 433 } |
| 434 } | 434 } |
| 435 | 435 |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 return; | 505 return; |
| 506 | 506 |
| 507 CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pSender); | 507 CXFA_FFWidget* pWidget = XFA_GetWidgetFromLayoutItem(pSender); |
| 508 if (!pWidget) | 508 if (!pWidget) |
| 509 return; | 509 return; |
| 510 | 510 |
| 511 pDocView->DeleteLayoutItem(pWidget); | 511 pDocView->DeleteLayoutItem(pWidget); |
| 512 m_pDoc->GetDocProvider()->WidgetPreRemove(pWidget, pWidget->GetDataAcc()); | 512 m_pDoc->GetDocProvider()->WidgetPreRemove(pWidget, pWidget->GetDataAcc()); |
| 513 pWidget->AddInvalidateRect(nullptr); | 513 pWidget->AddInvalidateRect(nullptr); |
| 514 } | 514 } |
| OLD | NEW |