14d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Copyright 2014 PDFium Authors. All rights reserved. 24d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Use of this source code is governed by a BSD-style license that can be 34d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// found in the LICENSE file. 44d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 54d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 64d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 7d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#ifndef XFA_FXFA_CXFA_FFNOTIFY_H_ 8d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#define XFA_FXFA_CXFA_FFNOTIFY_H_ 94d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 104d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/cxfa_eventparam.h" 114d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann#include "xfa/fxfa/parser/cxfa_document.h" 124d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 134d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CXFA_FFWidgetHandler; 14d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannclass CXFA_ContainerLayoutItem; 15d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmannclass CXFA_ContentLayoutItem; 164d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 174d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmannclass CXFA_FFNotify { 184d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann public: 194d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann explicit CXFA_FFNotify(CXFA_FFDoc* pDoc); 204d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann ~CXFA_FFNotify(); 214d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 224d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnPageEvent(CXFA_ContainerLayoutItem* pSender, uint32_t dwEvent); 234d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 24d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void OnWidgetListItemAdded(CXFA_WidgetAcc* pSender, 25d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const wchar_t* pLabel, 26d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann const wchar_t* pValue, 274d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t iIndex); 28d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void OnWidgetListItemRemoved(CXFA_WidgetAcc* pSender, int32_t iIndex); 294d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 304d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann // Node events 314d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnNodeReady(CXFA_Node* pNode); 32d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void OnValueChanging(CXFA_Node* pSender, XFA_Attribute eAttr); 334d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnValueChanged(CXFA_Node* pSender, 34d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann XFA_Attribute eAttr, 354d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* pParentNode, 364d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* pWidgetNode); 374d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnChildAdded(CXFA_Node* pSender); 384d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnChildRemoved(); 394d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 40d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann CXFA_ContainerLayoutItem* OnCreateContainerLayoutItem(CXFA_Node* pNode); 41d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann CXFA_ContentLayoutItem* OnCreateContentLayoutItem(CXFA_Node* pNode); 42d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann 434d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnLayoutItemAdded(CXFA_LayoutProcessor* pLayout, 444d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_LayoutItem* pSender, 454d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t iPageIdx, 464d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann uint32_t dwStatus); 474d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OnLayoutItemRemoving(CXFA_LayoutProcessor* pLayout, 484d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_LayoutItem* pSender); 494d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 504d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void StartFieldDrawLayout(CXFA_Node* pItem, 51d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann float& fCalcWidth, 52d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann float& fCalcHeight); 534d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool FindSplitPos(CXFA_Node* pItem, 544d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t iBlockIndex, 55d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann float& fCalcHeightPos); 56d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann bool RunScript(CXFA_Script* pScript, CXFA_Node* pFormItem); 574d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t ExecEventByDeepFirst(CXFA_Node* pFormNode, 584d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann XFA_EVENTTYPE eEventType, 594d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bIsFormReady = false, 604d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann bool bRecursive = true, 614d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_WidgetAcc* pExclude = nullptr); 624d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void AddCalcValidate(CXFA_Node* pNode); 634d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_FFDoc* GetHDOC(); 644d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IXFA_DocEnvironment* GetDocEnvironment() const; 654d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann IXFA_AppProvider* GetAppProvider(); 664d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_FFWidgetHandler* GetWidgetHandler(); 674d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_FFWidget* GetHWidget(CXFA_LayoutItem* pLayoutItem); 684d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void OpenDropDownList(CXFA_FFWidget* hWidget); 69d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann WideString GetCurrentDateTime(); 70d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann void ResetData(CXFA_WidgetAcc* pWidgetAcc = nullptr); 714d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann int32_t GetLayoutStatus(); 724d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void RunNodeInitialize(CXFA_Node* pNode); 734d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void RunSubformIndexChange(CXFA_Node* pSubformNode); 744d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann CXFA_Node* GetFocusWidgetNode(); 754d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann void SetFocusWidgetNode(CXFA_Node* pNode); 764d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 774d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann private: 78d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann UnownedPtr<CXFA_FFDoc> const m_pDoc; 794d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann}; 804d3acf4ec42bf6e838f9060103aff98fbf170794Philip P. Moltmann 81d904c1ec7e8d1d86ed56f0dd252435d12cd345aePhilip P. Moltmann#endif // XFA_FXFA_CXFA_FFNOTIFY_H_ 82