Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: xfa/fxfa/app/xfa_ffdocview.cpp

Issue 2467203003: Remove FX_BOOL from xfa. (Closed)
Patch Set: Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « xfa/fxfa/app/xfa_ffdochandler.cpp ('k') | xfa/fxfa/app/xfa_fffield.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/xfa_ffdocview.h" 7 #include "xfa/fxfa/xfa_ffdocview.h"
8 8
9 #include "core/fxcrt/fx_ext.h" 9 #include "core/fxcrt/fx_ext.h"
10 #include "xfa/fxfa/app/xfa_ffbarcode.h" 10 #include "xfa/fxfa/app/xfa_ffbarcode.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 XFA_ATTRIBUTEENUM_PostOpen, XFA_ATTRIBUTEENUM_PostPrint, 45 XFA_ATTRIBUTEENUM_PostOpen, XFA_ATTRIBUTEENUM_PostPrint,
46 XFA_ATTRIBUTEENUM_PostSave, XFA_ATTRIBUTEENUM_PostSign, 46 XFA_ATTRIBUTEENUM_PostSave, XFA_ATTRIBUTEENUM_PostSign,
47 XFA_ATTRIBUTEENUM_PostSubmit, XFA_ATTRIBUTEENUM_PreExecute, 47 XFA_ATTRIBUTEENUM_PostSubmit, XFA_ATTRIBUTEENUM_PreExecute,
48 XFA_ATTRIBUTEENUM_PreOpen, XFA_ATTRIBUTEENUM_PrePrint, 48 XFA_ATTRIBUTEENUM_PreOpen, XFA_ATTRIBUTEENUM_PrePrint,
49 XFA_ATTRIBUTEENUM_PreSave, XFA_ATTRIBUTEENUM_PreSign, 49 XFA_ATTRIBUTEENUM_PreSave, XFA_ATTRIBUTEENUM_PreSign,
50 XFA_ATTRIBUTEENUM_PreSubmit, XFA_ATTRIBUTEENUM_Ready, 50 XFA_ATTRIBUTEENUM_PreSubmit, XFA_ATTRIBUTEENUM_Ready,
51 XFA_ATTRIBUTEENUM_Unknown, 51 XFA_ATTRIBUTEENUM_Unknown,
52 }; 52 };
53 53
54 CXFA_FFDocView::CXFA_FFDocView(CXFA_FFDoc* pDoc) 54 CXFA_FFDocView::CXFA_FFDocView(CXFA_FFDoc* pDoc)
55 : m_bLayoutEvent(FALSE), 55 : m_bLayoutEvent(false),
56 m_pListFocusWidget(nullptr), 56 m_pListFocusWidget(nullptr),
57 m_bInLayoutStatus(FALSE), 57 m_bInLayoutStatus(false),
58 m_pDoc(pDoc), 58 m_pDoc(pDoc),
59 m_pXFADocLayout(nullptr), 59 m_pXFADocLayout(nullptr),
60 m_pFocusAcc(nullptr), 60 m_pFocusAcc(nullptr),
61 m_pFocusWidget(nullptr), 61 m_pFocusWidget(nullptr),
62 m_pOldFocusWidget(nullptr), 62 m_pOldFocusWidget(nullptr),
63 m_iStatus(XFA_DOCVIEW_LAYOUTSTATUS_None), 63 m_iStatus(XFA_DOCVIEW_LAYOUTSTATUS_None),
64 m_iLock(0) {} 64 m_iLock(0) {}
65 65
66 CXFA_FFDocView::~CXFA_FFDocView() { 66 CXFA_FFDocView::~CXFA_FFDocView() {
67 DestroyDocView(); 67 DestroyDocView();
68 } 68 }
69 69
70 void CXFA_FFDocView::InitLayout(CXFA_Node* pNode) { 70 void CXFA_FFDocView::InitLayout(CXFA_Node* pNode) {
71 RunBindItems(); 71 RunBindItems();
72 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Initialize, FALSE, TRUE, 72 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Initialize, false, true,
73 nullptr); 73 nullptr);
74 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_IndexChange, FALSE, TRUE, 74 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_IndexChange, false, true,
75 nullptr); 75 nullptr);
76 } 76 }
77 int32_t CXFA_FFDocView::StartLayout(int32_t iStartPage) { 77 int32_t CXFA_FFDocView::StartLayout(int32_t iStartPage) {
78 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start; 78 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start;
79 m_pDoc->GetXFADoc()->DoProtoMerge(); 79 m_pDoc->GetXFADoc()->DoProtoMerge();
80 m_pDoc->GetXFADoc()->DoDataMerge(); 80 m_pDoc->GetXFADoc()->DoDataMerge();
81 m_pXFADocLayout = GetXFALayout(); 81 m_pXFADocLayout = GetXFALayout();
82 int32_t iStatus = m_pXFADocLayout->StartLayout(); 82 int32_t iStatus = m_pXFADocLayout->StartLayout();
83 if (iStatus < 0) { 83 if (iStatus < 0) {
84 return iStatus; 84 return iStatus;
85 } 85 }
86 CXFA_Node* pRootItem = 86 CXFA_Node* pRootItem =
87 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); 87 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form));
88 if (!pRootItem) { 88 if (!pRootItem) {
89 return iStatus; 89 return iStatus;
90 } 90 }
91 InitLayout(pRootItem); 91 InitLayout(pRootItem);
92 InitCalculate(pRootItem); 92 InitCalculate(pRootItem);
93 InitValidate(pRootItem); 93 InitValidate(pRootItem);
94 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, TRUE, TRUE, nullptr); 94 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, true, true, nullptr);
95 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start; 95 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Start;
96 return iStatus; 96 return iStatus;
97 } 97 }
98 int32_t CXFA_FFDocView::DoLayout(IFX_Pause* pPause) { 98 int32_t CXFA_FFDocView::DoLayout(IFX_Pause* pPause) {
99 int32_t iStatus = 100; 99 int32_t iStatus = 100;
100 iStatus = m_pXFADocLayout->DoLayout(pPause); 100 iStatus = m_pXFADocLayout->DoLayout(pPause);
101 if (iStatus != 100) { 101 if (iStatus != 100) {
102 return iStatus; 102 return iStatus;
103 } 103 }
104 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Doing; 104 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_Doing;
(...skipping 12 matching lines...) Expand all
117 CXFA_Node* pPageSetNode = 117 CXFA_Node* pPageSetNode =
118 pSubformNode->GetFirstChildByClass(XFA_Element::PageSet); 118 pSubformNode->GetFirstChildByClass(XFA_Element::PageSet);
119 if (!pPageSetNode) { 119 if (!pPageSetNode) {
120 return; 120 return;
121 } 121 }
122 RunCalculateWidgets(); 122 RunCalculateWidgets();
123 RunValidate(); 123 RunValidate();
124 InitLayout(pPageSetNode); 124 InitLayout(pPageSetNode);
125 InitCalculate(pPageSetNode); 125 InitCalculate(pPageSetNode);
126 InitValidate(pPageSetNode); 126 InitValidate(pPageSetNode);
127 ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, TRUE, TRUE, 127 ExecEventActivityByDeepFirst(pPageSetNode, XFA_EVENT_Ready, true, true,
128 nullptr); 128 nullptr);
129 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE, 129 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, false, true,
130 nullptr); 130 nullptr);
131 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady, FALSE, TRUE, 131 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocReady, false, true,
132 nullptr); 132 nullptr);
133 RunCalculateWidgets(); 133 RunCalculateWidgets();
134 RunValidate(); 134 RunValidate();
135 if (RunLayout()) { 135 if (RunLayout()) {
136 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE, 136 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, false, true,
137 nullptr); 137 nullptr);
138 } 138 }
139 m_CalculateAccs.RemoveAll(); 139 m_CalculateAccs.RemoveAll();
140 if (m_pFocusAcc && !m_pFocusWidget) { 140 if (m_pFocusAcc && !m_pFocusWidget) {
141 SetFocusWidgetAcc(m_pFocusAcc); 141 SetFocusWidgetAcc(m_pFocusAcc);
142 } 142 }
143 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_End; 143 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_End;
144 } 144 }
145 int32_t CXFA_FFDocView::GetLayoutStatus() { 145 int32_t CXFA_FFDocView::GetLayoutStatus() {
146 return m_iStatus; 146 return m_iStatus;
(...skipping 27 matching lines...) Expand all
174 void CXFA_FFDocView::UpdateDocView() { 174 void CXFA_FFDocView::UpdateDocView() {
175 if (IsUpdateLocked()) { 175 if (IsUpdateLocked()) {
176 return; 176 return;
177 } 177 }
178 LockUpdate(); 178 LockUpdate();
179 int32_t iNewAdds = m_NewAddedNodes.GetSize(); 179 int32_t iNewAdds = m_NewAddedNodes.GetSize();
180 for (int32_t i = 0; i < iNewAdds; i++) { 180 for (int32_t i = 0; i < iNewAdds; i++) {
181 CXFA_Node* pNode = m_NewAddedNodes[i]; 181 CXFA_Node* pNode = m_NewAddedNodes[i];
182 InitCalculate(pNode); 182 InitCalculate(pNode);
183 InitValidate(pNode); 183 InitValidate(pNode);
184 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, TRUE, TRUE, nullptr); 184 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Ready, true, true, nullptr);
185 } 185 }
186 m_NewAddedNodes.RemoveAll(); 186 m_NewAddedNodes.RemoveAll();
187 RunSubformIndexChange(); 187 RunSubformIndexChange();
188 RunCalculateWidgets(); 188 RunCalculateWidgets();
189 RunValidate(); 189 RunValidate();
190 ShowNullTestMsg(); 190 ShowNullTestMsg();
191 if (RunLayout() && m_bLayoutEvent) { 191 if (RunLayout() && m_bLayoutEvent) {
192 RunEventLayoutReady(); 192 RunEventLayoutReady();
193 } 193 }
194 m_bLayoutEvent = FALSE; 194 m_bLayoutEvent = false;
195 m_CalculateAccs.RemoveAll(); 195 m_CalculateAccs.RemoveAll();
196 RunInvalidate(); 196 RunInvalidate();
197 UnlockUpdate(); 197 UnlockUpdate();
198 } 198 }
199 int32_t CXFA_FFDocView::CountPageViews() { 199 int32_t CXFA_FFDocView::CountPageViews() {
200 if (!m_pXFADocLayout) { 200 if (!m_pXFADocLayout) {
201 return 0; 201 return 0;
202 } 202 }
203 return m_pXFADocLayout->CountPages(); 203 return m_pXFADocLayout->CountPages();
204 } 204 }
205 CXFA_FFPageView* CXFA_FFDocView::GetPageView(int32_t nIndex) { 205 CXFA_FFPageView* CXFA_FFDocView::GetPageView(int32_t nIndex) {
206 if (!m_pXFADocLayout) { 206 if (!m_pXFADocLayout) {
207 return nullptr; 207 return nullptr;
208 } 208 }
209 return static_cast<CXFA_FFPageView*>(m_pXFADocLayout->GetPage(nIndex)); 209 return static_cast<CXFA_FFPageView*>(m_pXFADocLayout->GetPage(nIndex));
210 } 210 }
211 211
212 CXFA_LayoutProcessor* CXFA_FFDocView::GetXFALayout() const { 212 CXFA_LayoutProcessor* CXFA_FFDocView::GetXFALayout() const {
213 return m_pDoc->GetXFADoc()->GetDocLayout(); 213 return m_pDoc->GetXFADoc()->GetDocLayout();
214 } 214 }
215 FX_BOOL CXFA_FFDocView::ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc) { 215 bool CXFA_FFDocView::ResetSingleWidgetAccData(CXFA_WidgetAcc* pWidgetAcc) {
216 CXFA_Node* pNode = pWidgetAcc->GetNode(); 216 CXFA_Node* pNode = pWidgetAcc->GetNode();
217 XFA_Element eType = pNode->GetElementType(); 217 XFA_Element eType = pNode->GetElementType();
218 if (eType != XFA_Element::Field && eType != XFA_Element::ExclGroup) { 218 if (eType != XFA_Element::Field && eType != XFA_Element::ExclGroup) {
219 return FALSE; 219 return false;
220 } 220 }
221 pWidgetAcc->ResetData(); 221 pWidgetAcc->ResetData();
222 pWidgetAcc->UpdateUIDisplay(); 222 pWidgetAcc->UpdateUIDisplay();
223 if (CXFA_Validate validate = pWidgetAcc->GetValidate()) { 223 if (CXFA_Validate validate = pWidgetAcc->GetValidate()) {
224 AddValidateWidget(pWidgetAcc); 224 AddValidateWidget(pWidgetAcc);
225 validate.GetNode()->SetFlag(XFA_NodeFlag_NeedsInitApp, false); 225 validate.GetNode()->SetFlag(XFA_NodeFlag_NeedsInitApp, false);
226 } 226 }
227 return TRUE; 227 return true;
228 } 228 }
229 void CXFA_FFDocView::ResetWidgetData(CXFA_WidgetAcc* pWidgetAcc) { 229 void CXFA_FFDocView::ResetWidgetData(CXFA_WidgetAcc* pWidgetAcc) {
230 m_bLayoutEvent = TRUE; 230 m_bLayoutEvent = true;
231 FX_BOOL bChanged = FALSE; 231 bool bChanged = false;
232 CXFA_Node* pFormNode = nullptr; 232 CXFA_Node* pFormNode = nullptr;
233 if (pWidgetAcc) { 233 if (pWidgetAcc) {
234 bChanged = ResetSingleWidgetAccData(pWidgetAcc); 234 bChanged = ResetSingleWidgetAccData(pWidgetAcc);
235 pFormNode = pWidgetAcc->GetNode(); 235 pFormNode = pWidgetAcc->GetNode();
236 } else { 236 } else {
237 pFormNode = GetRootSubform(); 237 pFormNode = GetRootSubform();
238 } 238 }
239 if (!pFormNode) { 239 if (!pFormNode) {
240 return; 240 return;
241 } 241 }
(...skipping 30 matching lines...) Expand all
272 CXFA_Node* pPresentNode = 272 CXFA_Node* pPresentNode =
273 pConfigItem->GetChild(0, XFA_Element::Present); 273 pConfigItem->GetChild(0, XFA_Element::Present);
274 pValidateNode = pPresentNode 274 pValidateNode = pPresentNode
275 ? pPresentNode->GetChild(0, XFA_Element::Validate) 275 ? pPresentNode->GetChild(0, XFA_Element::Validate)
276 : nullptr; 276 : nullptr;
277 } 277 }
278 if (pValidateNode) { 278 if (pValidateNode) {
279 wsValidateStr = pValidateNode->GetContent(); 279 wsValidateStr = pValidateNode->GetContent();
280 } 280 }
281 } 281 }
282 FX_BOOL bValidate = FALSE; 282 bool bValidate = false;
283 switch (pParam->m_iValidateActivities) { 283 switch (pParam->m_iValidateActivities) {
284 case XFA_VALIDATE_preSubmit: 284 case XFA_VALIDATE_preSubmit:
285 bValidate = wsValidateStr.Find(L"preSubmit") != -1; 285 bValidate = wsValidateStr.Find(L"preSubmit") != -1;
286 break; 286 break;
287 case XFA_VALIDATE_prePrint: 287 case XFA_VALIDATE_prePrint:
288 bValidate = wsValidateStr.Find(L"prePrint") != -1; 288 bValidate = wsValidateStr.Find(L"prePrint") != -1;
289 break; 289 break;
290 case XFA_VALIDATE_preExecute: 290 case XFA_VALIDATE_preExecute:
291 bValidate = wsValidateStr.Find(L"preExecute") != -1; 291 bValidate = wsValidateStr.Find(L"preExecute") != -1;
292 break; 292 break;
293 case XFA_VALIDATE_preSave: 293 case XFA_VALIDATE_preSave:
294 bValidate = wsValidateStr.Find(L"preSave") != -1; 294 bValidate = wsValidateStr.Find(L"preSave") != -1;
295 break; 295 break;
296 } 296 }
297 if (!bValidate) { 297 if (!bValidate) {
298 return XFA_EVENTERROR_Success; 298 return XFA_EVENTERROR_Success;
299 } 299 }
300 } 300 }
301 CXFA_Node* pNode = pWidgetAcc ? pWidgetAcc->GetNode() : nullptr; 301 CXFA_Node* pNode = pWidgetAcc ? pWidgetAcc->GetNode() : nullptr;
302 if (!pNode) { 302 if (!pNode) {
303 CXFA_Node* pRootItem = 303 CXFA_Node* pRootItem =
304 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); 304 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form));
305 if (!pRootItem) { 305 if (!pRootItem) {
306 return XFA_EVENTERROR_Error; 306 return XFA_EVENTERROR_Error;
307 } 307 }
308 pNode = pRootItem->GetChild(0, XFA_Element::Subform); 308 pNode = pRootItem->GetChild(0, XFA_Element::Subform);
309 } 309 }
310 ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady, 310 ExecEventActivityByDeepFirst(pNode, pParam->m_eType, pParam->m_bIsFormReady,
311 TRUE, nullptr); 311 true, nullptr);
312 return XFA_EVENTERROR_Success; 312 return XFA_EVENTERROR_Success;
313 } 313 }
314 CXFA_FFWidgetHandler* CXFA_FFDocView::GetWidgetHandler() { 314 CXFA_FFWidgetHandler* CXFA_FFDocView::GetWidgetHandler() {
315 if (!m_pWidgetHandler) { 315 if (!m_pWidgetHandler) {
316 m_pWidgetHandler.reset(new CXFA_FFWidgetHandler(this)); 316 m_pWidgetHandler.reset(new CXFA_FFWidgetHandler(this));
317 } 317 }
318 return m_pWidgetHandler.get(); 318 return m_pWidgetHandler.get();
319 } 319 }
320 320
321 CXFA_WidgetAccIterator* CXFA_FFDocView::CreateWidgetAccIterator( 321 CXFA_WidgetAccIterator* CXFA_FFDocView::CreateWidgetAccIterator(
322 XFA_WIDGETORDER eOrder) { 322 XFA_WIDGETORDER eOrder) {
323 CXFA_Node* pFormRoot = GetRootSubform(); 323 CXFA_Node* pFormRoot = GetRootSubform();
324 return pFormRoot ? new CXFA_WidgetAccIterator(this, pFormRoot) : nullptr; 324 return pFormRoot ? new CXFA_WidgetAccIterator(this, pFormRoot) : nullptr;
325 } 325 }
326 CXFA_FFWidget* CXFA_FFDocView::GetFocusWidget() { 326 CXFA_FFWidget* CXFA_FFDocView::GetFocusWidget() {
327 return m_pFocusWidget; 327 return m_pFocusWidget;
328 } 328 }
329 void CXFA_FFDocView::KillFocus() { 329 void CXFA_FFDocView::KillFocus() {
330 if (m_pFocusWidget && 330 if (m_pFocusWidget &&
331 (m_pFocusWidget->GetStatus() & XFA_WidgetStatus_Focused)) { 331 (m_pFocusWidget->GetStatus() & XFA_WidgetStatus_Focused)) {
332 (m_pFocusWidget)->OnKillFocus(nullptr); 332 (m_pFocusWidget)->OnKillFocus(nullptr);
333 } 333 }
334 m_pFocusAcc = nullptr; 334 m_pFocusAcc = nullptr;
335 m_pFocusWidget = nullptr; 335 m_pFocusWidget = nullptr;
336 m_pOldFocusWidget = nullptr; 336 m_pOldFocusWidget = nullptr;
337 } 337 }
338 FX_BOOL CXFA_FFDocView::SetFocus(CXFA_FFWidget* hWidget) { 338 bool CXFA_FFDocView::SetFocus(CXFA_FFWidget* hWidget) {
339 CXFA_FFWidget* pNewFocus = hWidget; 339 CXFA_FFWidget* pNewFocus = hWidget;
340 if (m_pOldFocusWidget == pNewFocus) { 340 if (m_pOldFocusWidget == pNewFocus) {
341 return FALSE; 341 return false;
342 } 342 }
343 CXFA_FFWidget* pOldFocus = m_pOldFocusWidget; 343 CXFA_FFWidget* pOldFocus = m_pOldFocusWidget;
344 m_pOldFocusWidget = pNewFocus; 344 m_pOldFocusWidget = pNewFocus;
345 if (pOldFocus) { 345 if (pOldFocus) {
346 if (m_pFocusWidget != m_pOldFocusWidget && 346 if (m_pFocusWidget != m_pOldFocusWidget &&
347 (pOldFocus->GetStatus() & XFA_WidgetStatus_Focused)) { 347 (pOldFocus->GetStatus() & XFA_WidgetStatus_Focused)) {
348 m_pFocusWidget = pOldFocus; 348 m_pFocusWidget = pOldFocus;
349 pOldFocus->OnKillFocus(pNewFocus); 349 pOldFocus->OnKillFocus(pNewFocus);
350 } else if ((pOldFocus->GetStatus() & XFA_WidgetStatus_Visible)) { 350 } else if ((pOldFocus->GetStatus() & XFA_WidgetStatus_Visible)) {
351 if (!pOldFocus->IsLoaded()) { 351 if (!pOldFocus->IsLoaded()) {
352 pOldFocus->LoadWidget(); 352 pOldFocus->LoadWidget();
353 } 353 }
354 pOldFocus->OnSetFocus(m_pFocusWidget); 354 pOldFocus->OnSetFocus(m_pFocusWidget);
355 m_pFocusWidget = pOldFocus; 355 m_pFocusWidget = pOldFocus;
356 pOldFocus->OnKillFocus(pNewFocus); 356 pOldFocus->OnKillFocus(pNewFocus);
357 } 357 }
358 } 358 }
359 if (m_pFocusWidget == m_pOldFocusWidget) { 359 if (m_pFocusWidget == m_pOldFocusWidget) {
360 return FALSE; 360 return false;
361 } 361 }
362 pNewFocus = m_pOldFocusWidget; 362 pNewFocus = m_pOldFocusWidget;
363 if (m_pListFocusWidget && pNewFocus == m_pListFocusWidget) { 363 if (m_pListFocusWidget && pNewFocus == m_pListFocusWidget) {
364 m_pFocusAcc = nullptr; 364 m_pFocusAcc = nullptr;
365 m_pFocusWidget = nullptr; 365 m_pFocusWidget = nullptr;
366 m_pListFocusWidget = nullptr; 366 m_pListFocusWidget = nullptr;
367 m_pOldFocusWidget = nullptr; 367 m_pOldFocusWidget = nullptr;
368 return FALSE; 368 return false;
369 } 369 }
370 if (pNewFocus && (pNewFocus->GetStatus() & XFA_WidgetStatus_Visible)) { 370 if (pNewFocus && (pNewFocus->GetStatus() & XFA_WidgetStatus_Visible)) {
371 if (!pNewFocus->IsLoaded()) { 371 if (!pNewFocus->IsLoaded()) {
372 pNewFocus->LoadWidget(); 372 pNewFocus->LoadWidget();
373 } 373 }
374 pNewFocus->OnSetFocus(m_pFocusWidget); 374 pNewFocus->OnSetFocus(m_pFocusWidget);
375 } 375 }
376 m_pFocusAcc = pNewFocus ? pNewFocus->GetDataAcc() : nullptr; 376 m_pFocusAcc = pNewFocus ? pNewFocus->GetDataAcc() : nullptr;
377 m_pFocusWidget = pNewFocus; 377 m_pFocusWidget = pNewFocus;
378 m_pOldFocusWidget = m_pFocusWidget; 378 m_pOldFocusWidget = m_pFocusWidget;
379 return TRUE; 379 return true;
380 } 380 }
381 CXFA_WidgetAcc* CXFA_FFDocView::GetFocusWidgetAcc() { 381 CXFA_WidgetAcc* CXFA_FFDocView::GetFocusWidgetAcc() {
382 return m_pFocusAcc; 382 return m_pFocusAcc;
383 } 383 }
384 void CXFA_FFDocView::SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) { 384 void CXFA_FFDocView::SetFocusWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) {
385 CXFA_FFWidget* pNewFocus = 385 CXFA_FFWidget* pNewFocus =
386 pWidgetAcc ? pWidgetAcc->GetNextWidget(nullptr) : nullptr; 386 pWidgetAcc ? pWidgetAcc->GetNextWidget(nullptr) : nullptr;
387 if (SetFocus(pNewFocus)) { 387 if (SetFocus(pNewFocus)) {
388 m_pFocusAcc = pWidgetAcc; 388 m_pFocusAcc = pWidgetAcc;
389 if (m_iStatus == XFA_DOCVIEW_LAYOUTSTATUS_End) { 389 if (m_iStatus == XFA_DOCVIEW_LAYOUTSTATUS_End) {
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 } 430 }
431 default: 431 default:
432 break; 432 break;
433 } 433 }
434 int32_t iRet = 434 int32_t iRet =
435 pWidgetAcc->ProcessEvent(gs_EventActivity[pParam->m_eType], pParam); 435 pWidgetAcc->ProcessEvent(gs_EventActivity[pParam->m_eType], pParam);
436 return iRet; 436 return iRet;
437 } 437 }
438 int32_t CXFA_FFDocView::ExecEventActivityByDeepFirst(CXFA_Node* pFormNode, 438 int32_t CXFA_FFDocView::ExecEventActivityByDeepFirst(CXFA_Node* pFormNode,
439 XFA_EVENTTYPE eEventType, 439 XFA_EVENTTYPE eEventType,
440 FX_BOOL bIsFormReady, 440 bool bIsFormReady,
441 FX_BOOL bRecursive, 441 bool bRecursive,
442 CXFA_Node* pExclude) { 442 CXFA_Node* pExclude) {
443 int32_t iRet = XFA_EVENTERROR_NotExist; 443 int32_t iRet = XFA_EVENTERROR_NotExist;
444 if (pFormNode == pExclude) { 444 if (pFormNode == pExclude) {
445 return iRet; 445 return iRet;
446 } 446 }
447 XFA_Element elementType = pFormNode->GetElementType(); 447 XFA_Element elementType = pFormNode->GetElementType();
448 if (elementType == XFA_Element::Field) { 448 if (elementType == XFA_Element::Field) {
449 if (eEventType == XFA_EVENT_IndexChange) { 449 if (eEventType == XFA_EVENT_IndexChange) {
450 return iRet; 450 return iRet;
451 } 451 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 CXFA_FFPageView* pFFPageView = static_cast<CXFA_FFPageView*>(pSender); 528 CXFA_FFPageView* pFFPageView = static_cast<CXFA_FFPageView*>(pSender);
529 m_pDoc->GetDocEnvironment()->PageViewEvent(pFFPageView, dwEvent); 529 m_pDoc->GetDocEnvironment()->PageViewEvent(pFFPageView, dwEvent);
530 } 530 }
531 531
532 void CXFA_FFDocView::LockUpdate() { 532 void CXFA_FFDocView::LockUpdate() {
533 m_iLock++; 533 m_iLock++;
534 } 534 }
535 void CXFA_FFDocView::UnlockUpdate() { 535 void CXFA_FFDocView::UnlockUpdate() {
536 m_iLock--; 536 m_iLock--;
537 } 537 }
538 FX_BOOL CXFA_FFDocView::IsUpdateLocked() { 538 bool CXFA_FFDocView::IsUpdateLocked() {
539 return m_iLock > 0; 539 return m_iLock > 0;
540 } 540 }
541 void CXFA_FFDocView::ClearInvalidateList() { 541 void CXFA_FFDocView::ClearInvalidateList() {
542 m_mapPageInvalidate.clear(); 542 m_mapPageInvalidate.clear();
543 } 543 }
544 void CXFA_FFDocView::AddInvalidateRect(CXFA_FFWidget* pWidget, 544 void CXFA_FFDocView::AddInvalidateRect(CXFA_FFWidget* pWidget,
545 const CFX_RectF& rtInvalidate) { 545 const CFX_RectF& rtInvalidate) {
546 AddInvalidateRect(pWidget->GetPageView(), rtInvalidate); 546 AddInvalidateRect(pWidget->GetPageView(), rtInvalidate);
547 } 547 }
548 548
549 void CXFA_FFDocView::AddInvalidateRect(CXFA_FFPageView* pPageView, 549 void CXFA_FFDocView::AddInvalidateRect(CXFA_FFPageView* pPageView,
550 const CFX_RectF& rtInvalidate) { 550 const CFX_RectF& rtInvalidate) {
551 if (m_mapPageInvalidate[pPageView]) { 551 if (m_mapPageInvalidate[pPageView]) {
552 m_mapPageInvalidate[pPageView]->Union(rtInvalidate); 552 m_mapPageInvalidate[pPageView]->Union(rtInvalidate);
553 return; 553 return;
554 } 554 }
555 CFX_RectF* pRect = new CFX_RectF; 555 CFX_RectF* pRect = new CFX_RectF;
556 pRect->Set(rtInvalidate.left, rtInvalidate.top, rtInvalidate.width, 556 pRect->Set(rtInvalidate.left, rtInvalidate.top, rtInvalidate.width,
557 rtInvalidate.height); 557 rtInvalidate.height);
558 m_mapPageInvalidate[pPageView].reset(pRect); 558 m_mapPageInvalidate[pPageView].reset(pRect);
559 } 559 }
560 560
561 void CXFA_FFDocView::RunInvalidate() { 561 void CXFA_FFDocView::RunInvalidate() {
562 for (const auto& pair : m_mapPageInvalidate) 562 for (const auto& pair : m_mapPageInvalidate)
563 m_pDoc->GetDocEnvironment()->InvalidateRect(pair.first, *pair.second, 0); 563 m_pDoc->GetDocEnvironment()->InvalidateRect(pair.first, *pair.second, 0);
564 m_mapPageInvalidate.clear(); 564 m_mapPageInvalidate.clear();
565 } 565 }
566 566
567 FX_BOOL CXFA_FFDocView::RunLayout() { 567 bool CXFA_FFDocView::RunLayout() {
568 LockUpdate(); 568 LockUpdate();
569 m_bInLayoutStatus = TRUE; 569 m_bInLayoutStatus = true;
570 if (!m_pXFADocLayout->IncrementLayout() && 570 if (!m_pXFADocLayout->IncrementLayout() &&
571 m_pXFADocLayout->StartLayout() < 100) { 571 m_pXFADocLayout->StartLayout() < 100) {
572 m_pXFADocLayout->DoLayout(); 572 m_pXFADocLayout->DoLayout();
573 UnlockUpdate(); 573 UnlockUpdate();
574 m_bInLayoutStatus = FALSE; 574 m_bInLayoutStatus = false;
575 m_pDoc->GetDocEnvironment()->PageViewEvent(nullptr, 575 m_pDoc->GetDocEnvironment()->PageViewEvent(nullptr,
576 XFA_PAGEVIEWEVENT_StopLayout); 576 XFA_PAGEVIEWEVENT_StopLayout);
577 return TRUE; 577 return true;
578 } 578 }
579 m_bInLayoutStatus = FALSE; 579 m_bInLayoutStatus = false;
580 m_pDoc->GetDocEnvironment()->PageViewEvent(nullptr, 580 m_pDoc->GetDocEnvironment()->PageViewEvent(nullptr,
581 XFA_PAGEVIEWEVENT_StopLayout); 581 XFA_PAGEVIEWEVENT_StopLayout);
582 UnlockUpdate(); 582 UnlockUpdate();
583 return FALSE; 583 return false;
584 } 584 }
585 void CXFA_FFDocView::RunSubformIndexChange() { 585 void CXFA_FFDocView::RunSubformIndexChange() {
586 int32_t iSubforms = m_IndexChangedSubforms.GetSize(); 586 int32_t iSubforms = m_IndexChangedSubforms.GetSize();
587 for (int32_t i = 0; i < iSubforms; i++) { 587 for (int32_t i = 0; i < iSubforms; i++) {
588 CXFA_Node* pSubformNode = m_IndexChangedSubforms[i]; 588 CXFA_Node* pSubformNode = m_IndexChangedSubforms[i];
589 CXFA_WidgetAcc* pWidgetAcc = 589 CXFA_WidgetAcc* pWidgetAcc =
590 static_cast<CXFA_WidgetAcc*>(pSubformNode->GetWidgetData()); 590 static_cast<CXFA_WidgetAcc*>(pSubformNode->GetWidgetData());
591 if (!pWidgetAcc) { 591 if (!pWidgetAcc) {
592 continue; 592 continue;
593 } 593 }
(...skipping 11 matching lines...) Expand all
605 void CXFA_FFDocView::AddIndexChangedSubform(CXFA_Node* pNode) { 605 void CXFA_FFDocView::AddIndexChangedSubform(CXFA_Node* pNode) {
606 ASSERT(pNode->GetElementType() == XFA_Element::Subform); 606 ASSERT(pNode->GetElementType() == XFA_Element::Subform);
607 m_IndexChangedSubforms.Add(pNode); 607 m_IndexChangedSubforms.Add(pNode);
608 } 608 }
609 void CXFA_FFDocView::RunDocClose() { 609 void CXFA_FFDocView::RunDocClose() {
610 CXFA_Node* pRootItem = 610 CXFA_Node* pRootItem =
611 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); 611 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form));
612 if (!pRootItem) { 612 if (!pRootItem) {
613 return; 613 return;
614 } 614 }
615 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose, FALSE, TRUE, 615 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_DocClose, false, true,
616 nullptr); 616 nullptr);
617 } 617 }
618 void CXFA_FFDocView::DestroyDocView() { 618 void CXFA_FFDocView::DestroyDocView() {
619 ClearInvalidateList(); 619 ClearInvalidateList();
620 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_None; 620 m_iStatus = XFA_DOCVIEW_LAYOUTSTATUS_None;
621 m_iLock = 0; 621 m_iLock = 0;
622 m_ValidateAccs.RemoveAll(); 622 m_ValidateAccs.RemoveAll();
623 m_BindItems.RemoveAll(); 623 m_BindItems.RemoveAll();
624 m_CalculateAccs.RemoveAll(); 624 m_CalculateAccs.RemoveAll();
625 } 625 }
626 FX_BOOL CXFA_FFDocView::IsStaticNotify() { 626 bool CXFA_FFDocView::IsStaticNotify() {
627 return m_pDoc->GetDocType() == XFA_DOCTYPE_Static; 627 return m_pDoc->GetDocType() == XFA_DOCTYPE_Static;
628 } 628 }
629 void CXFA_FFDocView::AddCalculateWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) { 629 void CXFA_FFDocView::AddCalculateWidgetAcc(CXFA_WidgetAcc* pWidgetAcc) {
630 int32_t iAccs = m_CalculateAccs.GetSize(); 630 int32_t iAccs = m_CalculateAccs.GetSize();
631 CXFA_WidgetAcc* pCurrentAcc = 631 CXFA_WidgetAcc* pCurrentAcc =
632 iAccs > 0 ? m_CalculateAccs[iAccs - 1] : nullptr; 632 iAccs > 0 ? m_CalculateAccs[iAccs - 1] : nullptr;
633 if (pCurrentAcc != pWidgetAcc) { 633 if (pCurrentAcc != pWidgetAcc) {
634 m_CalculateAccs.Add(pWidgetAcc); 634 m_CalculateAccs.Add(pWidgetAcc);
635 } 635 }
636 } 636 }
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 CXFA_WidgetAcc* pCurAcc = m_CalculateAccs[i]; 683 CXFA_WidgetAcc* pCurAcc = m_CalculateAccs[i];
684 pCurAcc->GetNode()->SetUserData(XFA_CalcRefCount, (void*)(uintptr_t)0); 684 pCurAcc->GetNode()->SetUserData(XFA_CalcRefCount, (void*)(uintptr_t)0);
685 } 685 }
686 m_CalculateAccs.RemoveAll(); 686 m_CalculateAccs.RemoveAll();
687 return XFA_EVENTERROR_Success; 687 return XFA_EVENTERROR_Success;
688 } 688 }
689 void CXFA_FFDocView::AddValidateWidget(CXFA_WidgetAcc* pWidget) { 689 void CXFA_FFDocView::AddValidateWidget(CXFA_WidgetAcc* pWidget) {
690 if (m_ValidateAccs.Find(pWidget) < 0) 690 if (m_ValidateAccs.Find(pWidget) < 0)
691 m_ValidateAccs.Add(pWidget); 691 m_ValidateAccs.Add(pWidget);
692 } 692 }
693 FX_BOOL CXFA_FFDocView::InitCalculate(CXFA_Node* pNode) { 693 bool CXFA_FFDocView::InitCalculate(CXFA_Node* pNode) {
694 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate, FALSE, TRUE, 694 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_InitCalculate, false, true,
695 nullptr); 695 nullptr);
696 return TRUE; 696 return true;
697 } 697 }
698 FX_BOOL CXFA_FFDocView::InitValidate(CXFA_Node* pNode) { 698 bool CXFA_FFDocView::InitValidate(CXFA_Node* pNode) {
699 if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc)) { 699 if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc)) {
700 return FALSE; 700 return false;
701 } 701 }
702 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate, FALSE, TRUE, nullptr); 702 ExecEventActivityByDeepFirst(pNode, XFA_EVENT_Validate, false, true, nullptr);
703 m_ValidateAccs.RemoveAll(); 703 m_ValidateAccs.RemoveAll();
704 return TRUE; 704 return true;
705 } 705 }
706 FX_BOOL CXFA_FFDocView::RunValidate() { 706 bool CXFA_FFDocView::RunValidate() {
707 if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc)) { 707 if (!m_pDoc->GetDocEnvironment()->IsValidationsEnabled(m_pDoc)) {
708 return FALSE; 708 return false;
709 } 709 }
710 int32_t iCounts = m_ValidateAccs.GetSize(); 710 int32_t iCounts = m_ValidateAccs.GetSize();
711 for (int32_t i = 0; i < iCounts; i++) { 711 for (int32_t i = 0; i < iCounts; i++) {
712 CXFA_WidgetAcc* pAcc = m_ValidateAccs[i]; 712 CXFA_WidgetAcc* pAcc = m_ValidateAccs[i];
713 if (pAcc->GetNode()->HasRemovedChildren()) 713 if (pAcc->GetNode()->HasRemovedChildren())
714 continue; 714 continue;
715 715
716 pAcc->ProcessValidate(); 716 pAcc->ProcessValidate();
717 } 717 }
718 m_ValidateAccs.RemoveAll(); 718 m_ValidateAccs.RemoveAll();
719 return TRUE; 719 return true;
720 } 720 }
721 FX_BOOL CXFA_FFDocView::RunEventLayoutReady() { 721 bool CXFA_FFDocView::RunEventLayoutReady() {
722 CXFA_Node* pRootItem = 722 CXFA_Node* pRootItem =
723 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form)); 723 ToNode(m_pDoc->GetXFADoc()->GetXFAObject(XFA_HASHCODE_Form));
724 if (!pRootItem) { 724 if (!pRootItem) {
725 return FALSE; 725 return false;
726 } 726 }
727 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, FALSE, TRUE, 727 ExecEventActivityByDeepFirst(pRootItem, XFA_EVENT_Ready, false, true,
728 nullptr); 728 nullptr);
729 RunLayout(); 729 RunLayout();
730 return TRUE; 730 return true;
731 } 731 }
732 void CXFA_FFDocView::RunBindItems() { 732 void CXFA_FFDocView::RunBindItems() {
733 for (int32_t i = 0; i < m_BindItems.GetSize(); i++) { 733 for (int32_t i = 0; i < m_BindItems.GetSize(); i++) {
734 if (m_BindItems[i]->HasRemovedChildren()) 734 if (m_BindItems[i]->HasRemovedChildren())
735 continue; 735 continue;
736 736
737 CXFA_Node* pWidgetNode = m_BindItems[i]->GetNodeItem(XFA_NODEITEM_Parent); 737 CXFA_Node* pWidgetNode = m_BindItems[i]->GetNodeItem(XFA_NODEITEM_Parent);
738 CXFA_WidgetAcc* pAcc = 738 CXFA_WidgetAcc* pAcc =
739 static_cast<CXFA_WidgetAcc*>(pWidgetNode->GetWidgetData()); 739 static_cast<CXFA_WidgetAcc*>(pWidgetNode->GetWidgetData());
740 if (!pAcc) 740 if (!pAcc)
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 } 842 }
843 843
844 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToPrevious() { 844 CXFA_WidgetAcc* CXFA_WidgetAccIterator::MoveToPrevious() {
845 return nullptr; 845 return nullptr;
846 } 846 }
847 847
848 CXFA_WidgetAcc* CXFA_WidgetAccIterator::GetCurrentWidgetAcc() { 848 CXFA_WidgetAcc* CXFA_WidgetAccIterator::GetCurrentWidgetAcc() {
849 return nullptr; 849 return nullptr;
850 } 850 }
851 851
852 FX_BOOL CXFA_WidgetAccIterator::SetCurrentWidgetAcc(CXFA_WidgetAcc* hWidget) { 852 bool CXFA_WidgetAccIterator::SetCurrentWidgetAcc(CXFA_WidgetAcc* hWidget) {
853 return FALSE; 853 return false;
854 } 854 }
855 855
856 void CXFA_WidgetAccIterator::SkipTree() { 856 void CXFA_WidgetAccIterator::SkipTree() {
857 m_ContentIterator.SkipChildrenAndMoveToNext(); 857 m_ContentIterator.SkipChildrenAndMoveToNext();
858 m_pCurWidgetAcc = nullptr; 858 m_pCurWidgetAcc = nullptr;
859 } 859 }
OLDNEW
« no previous file with comments | « xfa/fxfa/app/xfa_ffdochandler.cpp ('k') | xfa/fxfa/app/xfa_fffield.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698