7#ifndef XFA_FXFA_PARSER_CXFA_OBJECT_H_
8#define XFA_FXFA_PARSER_CXFA_OBJECT_H_
10#include "core/fxcrt/fx_string.h"
11#include "fxjs/gc/heap.h"
12#include "fxjs/xfa/fxjse.h"
13#include "v8/include/cppgc/garbage-collected.h"
14#include "v8/include/cppgc/member.h"
15#include "xfa/fxfa/fxfa_basic.h"
46 virtual void Trace(
cppgc::Visitor* visitor)
const;
48 CXFA_Document*
GetDocument()
const {
return m_pDocument.Get(); }
void BC_Library_Destroy()
size_t FXJS_GlobalIsolateRefCount()
static CFGAS_GEModule * Get()
CFGAS_FontMgr * GetFontMgr()
virtual CFWL_WidgetMgr::AdapterIface * GetWidgetMgrAdapter()=0
virtual cppgc::Heap * GetHeap()=0
virtual ~AdapterIface()=default
virtual CFX_Timer::HandlerIface * GetTimerHandler()=0
virtual IFWL_ThemeProvider * GetThemeProvider()=0
CFWL_NoteDriver * GetNoteDriver() const
CFWL_WidgetMgr * GetWidgetMgr() const
IFWL_ThemeProvider * GetThemeProvider() const
CFX_Timer::HandlerIface * GetTimerHandler() const
CFWL_WidgetMgr::AdapterIface * GetWidgetMgrAdapter() const
cppgc::Heap * GetHeap() const
Mask< XFA_FWL_KeyFlag > m_dwFlags
~CFWL_MessageMouse() override
const MouseCommand m_dwCmd
CFWL_MessageMouse(CFWL_Widget *pDstTarget, MouseCommand cmd, Mask< XFA_FWL_KeyFlag > flags, CFX_PointF pos)
CFWL_Message & operator=(const CFWL_Message &that)=delete
CFWL_Widget * GetDstTarget() const
CFWL_Message(Type type, CFWL_Widget *pDstTarget)
CFWL_Message(const CFWL_Message &that)=delete
void SetDstTarget(CFWL_Widget *pWidget)
CFWL_Widget * GetWidget() const
Mask< CFWL_PartState > m_dwStates
CFWL_ThemePart(Part iPart, CFWL_Widget *pWidget)
FWLTHEME_STATE GetThemeState() const
UnownedPtr< const CFX_RectF > m_pRtData
friend class EventParamScope
void DefineObjMethod(uint32_t nObjDefnID, const char *sMethodName, v8::FunctionCallback pMethodCall)
void DefineObjProperty(uint32_t nObjDefnID, const char *sPropName, v8::AccessorGetterCallback pPropGet, v8::AccessorSetterCallback pPropPut)
v8::Local< v8::Context > GetV8Context()
void DefineObjConst(uint32_t nObjDefnID, const char *sConstName, v8::Local< v8::Value > pDefault)
v8::Local< v8::Object > GetThisObj()
void DefineObjAllProperties(uint32_t nObjDefnID, v8::GenericNamedPropertyQueryCallback pPropQurey, v8::GenericNamedPropertyGetterCallback pPropGet, v8::GenericNamedPropertySetterCallback pPropPut, v8::GenericNamedPropertyDeleterCallback pPropDel, v8::GenericNamedPropertyEnumeratorCallback pPropEnum)
absl::optional< IJS_Runtime::JS_Error > Execute(const WideString &script)
void SetConstArray(const WideString &name, v8::Local< v8::Array > array)
v8::Local< v8::Array > GetConstArray(const WideString &name)
static void SetObjectPrivate(v8::Local< v8::Object > pObj, std::unique_ptr< CJS_Object > p)
uint32_t DefineObj(const char *sObjName, FXJSOBJTYPE eObjType, Constructor pConstructor, Destructor pDestructor)
void Error(const WideString &message)
v8::Local< v8::Object > NewFXJSBoundObject(uint32_t nObjDefnID, FXJSOBJTYPE type)
void DefineGlobalConst(const wchar_t *sConstName, v8::FunctionCallback pConstGetter)
static uint32_t GetObjDefnID(v8::Local< v8::Object > pObj)
static void FreeObjectPrivate(v8::Local< v8::Object > pObj)
void DefineGlobalMethod(const char *sMethodName, v8::FunctionCallback pMethodCall)
bool ToBoolean(v8::Local< v8::Value > pValue)
v8::Local< v8::Number > NewNumber(double number)
void PutObjectProperty(v8::Local< v8::Object > pObj, ByteStringView bsUTF8PropertyName, v8::Local< v8::Value > pValue)
v8::Local< v8::Number > NewNumber(float number)
double ToDouble(v8::Local< v8::Value > pValue)
WideString ToWideString(v8::Local< v8::Value > pValue)
std::vector< WideString > GetObjectPropertyNames(v8::Local< v8::Object > pObj)
v8::Isolate * GetIsolate() const
v8::Local< v8::Boolean > NewBoolean(bool b)
v8::Local< v8::Object > ToObject(v8::Local< v8::Value > pValue)
ByteString ToByteString(v8::Local< v8::Value > pValue)
v8::Local< v8::String > NewString(WideStringView str)
v8::Local< v8::Array > NewArray()
v8::Local< v8::Array > ToArray(v8::Local< v8::Value > pValue)
v8::Local< v8::Date > NewDate(double d)
size_t GetArrayLength(v8::Local< v8::Array > pArray)
v8::Local< v8::Value > NewNull()
int ToInt32(v8::Local< v8::Value > pValue)
v8::Local< v8::Object > NewObject()
v8::Local< v8::Value > GetObjectProperty(v8::Local< v8::Object > pObj, ByteStringView bsUTF8PropertyName)
v8::Local< v8::Number > NewNumber(int number)
v8::Local< v8::Value > GetArrayElement(v8::Local< v8::Array > pArray, size_t index)
v8::Local< v8::String > NewString(ByteStringView str)
void PutArrayElement(v8::Local< v8::Array > pArray, size_t index, v8::Local< v8::Value > pValue)
v8::Local< v8::Value > NewUndefined()
CJS_Field * TargetField()
void OnPage_Close() override
void OnField_Keystroke(WideString *strChange, const WideString &strChangeEx, bool bKeyDown, bool bModifier, int *nSelEnd, int *nSelStart, bool bShift, CPDF_FormField *pTarget, WideString *Value, bool bWillCommit, bool bFieldFull, bool *bRc) override
void OnField_Blur(bool bModifier, bool bShift, CPDF_FormField *pTarget, WideString *Value) override
CJS_Runtime * GetJSRuntime() const
~CJS_EventContext() override
WideString ChangeEx() const
void OnPage_Open() override
void OnDoc_Open(const WideString &strTargetName) override
WideString SourceName() const
WideString TargetName() const
CJS_EventContext(CJS_Runtime *pRuntime)
void OnField_Focus(bool bModifier, bool bShift, CPDF_FormField *pTarget, WideString *Value) override
void OnField_MouseEnter(bool bModifier, bool bShift, CPDF_FormField *pTarget) override
void OnField_MouseDown(bool bModifier, bool bShift, CPDF_FormField *pTarget) override
ByteStringView Name() const
void OnExternal_Exec() override
void OnField_Validate(WideString *strChange, const WideString &strChangeEx, bool bKeyDown, bool bModifier, bool bShift, CPDF_FormField *pTarget, WideString *Value, bool *bRc) override
void OnDoc_DidSave() override
bool IsUserGesture() const
void OnField_Format(CPDF_FormField *pTarget, WideString *Value) override
void OnField_MouseExit(bool bModifier, bool bShift, CPDF_FormField *pTarget) override
void OnDoc_WillSave() override
ByteStringView Type() const
void OnDoc_WillClose() override
void SetStrChangeForTest(WideString *pStrChange)
void SetSelEnd(int value)
void OnPage_InView() override
CJS_Field * SourceField()
void OnField_Calculate(CPDF_FormField *pSource, CPDF_FormField *pTarget, WideString *pValue, bool *pRc) override
absl::optional< IJS_Runtime::JS_Error > RunScript(const WideString &script) override
void OnDoc_WillPrint() override
void OnDoc_DidPrint() override
void OnField_MouseUp(bool bModifier, bool bShift, CPDF_FormField *pTarget) override
void OnPage_OutView() override
void SetSelStart(int value)
void SetRCForTest(bool *pRC)
CPDFSDK_FormFillEnvironment * GetFormFillEnv() const
void ResetWillCommitForTest()
void SetValueForTest(WideString *pStr)
v8::Local< v8::Value > MaybeCoerceToNumber(v8::Local< v8::Value > value)
v8::Local< v8::Value > GetValueByNameFromGlobalObject(ByteStringView utf8Name)
bool AddEventToSet(const FieldEvent &event)
absl::optional< IJS_Runtime::JS_Error > ExecuteScript(const WideString &script) override
CJS_Runtime(CPDFSDK_FormFillEnvironment *pFormFillEnv)
CFX_Timer::HandlerIface * GetTimerHandler() const
void ReleaseEventContext(IJS_EventContext *pContext) override
void RemoveEventFromSet(const FieldEvent &event)
CJS_Runtime * AsCJSRuntime() override
bool SetValueByNameInGlobalObject(ByteStringView utf8Name, v8::Local< v8::Value > pValue)
CJS_EventContext * GetCurrentEventContext() const
IJS_EventContext * NewEventContext() override
CPDFSDK_FormFillEnvironment * GetFormFillEnv() const override
WideString GetPlatform() override
RetainPtr< IFX_SeekableReadStream > DownloadURL(const WideString &wsURL) override
bool PostRequestURL(const WideString &wsURL, const WideString &wsData, const WideString &wsContentType, const WideString &wsEncode, const WideString &wsHeader, WideString &wsResponse) override
RetainPtr< CPDFXFA_Page > GetXFAPage(CXFA_FFPageView *pPage) const
void SetOriginalPageCount(int count)
FormType GetFormType() const
WideString GetAppTitle() const override
WideString Response(const WideString &wsQuestion, const WideString &wsTitle, const WideString &wsDefaultAnswer, bool bMark) override
bool SaveDatasetsPackage(const RetainPtr< IFX_SeekableStream > &pStream)
~CPDFXFA_Context() override
void SetFormFillEnv(CPDFSDK_FormFillEnvironment *pFormFillEnv)
bool PutRequestURL(const WideString &wsURL, const WideString &wsData, const WideString &wsEncode) override
void SendPreSaveToXFADoc(std::vector< RetainPtr< IFX_SeekableStream > > *fileList)
CPDFSDK_FormFillEnvironment * GetFormFillEnv() const
CXFA_FFDocView * GetXFADocView() const
void SendPostSaveToXFADoc()
WideString GetAppName() override
bool SaveFormPackage(const RetainPtr< IFX_SeekableStream > &pStream)
CFX_Timer::HandlerIface * GetTimerHandler() const override
void Beep(uint32_t dwType) override
bool ContainsExtensionForegroundForm() const override
CPDFXFA_Context(CPDF_Document *pPDFDoc)
RetainPtr< CPDFXFA_Page > GetOrCreateXFAPage(int page_index)
bool ContainsExtensionForm() const override
int GetOriginalPageCount() const
WideString GetLanguage() override
RetainPtr< CPDFXFA_Page > GetXFAPage(int page_index)
void DeletePage(int page_index) override
LoadStatus GetLoadStatus() const
bool ContainsExtensionFullForm() const override
int GetPageCount() const override
cppgc::Heap * GetGCHeap() const override
CFX_XMLDocument * GetXMLDoc()
int32_t MsgBox(const WideString &wsMessage, const WideString &wsTitle, uint32_t dwIconType, uint32_t dwButtonType) override
CPDF_Document * GetPDFDoc() const
bool IsValidationsEnabled(const CXFA_FFDoc *hDoc) const override
void DisplayCaret(CXFA_FFWidget *hWidget, bool bVisible, const CFX_RectF *pRtAnchor) override
~CPDFXFA_DocEnvironment() override
void InvalidateRect(CXFA_FFPageView *pPageView, const CFX_RectF &rt) override
void SetCalculationsEnabled(CXFA_FFDoc *hDoc, bool bEnabled) override
bool IsCalculationsEnabled(const CXFA_FFDoc *hDoc) const override
void WidgetPostAdd(CXFA_FFWidget *hWidget) override
void Print(CXFA_FFDoc *hDoc, int32_t nStartPage, int32_t nEndPage, Mask< XFA_PrintOpt > dwOptions) override
void ExportData(CXFA_FFDoc *hDoc, const WideString &wsFilePath, bool bXDP) override
RetainPtr< IFX_SeekableReadStream > OpenLinkedFile(CXFA_FFDoc *hDoc, const WideString &wsLink) override
int32_t GetCurrentPage(const CXFA_FFDoc *hDoc) const override
void SetFocusWidget(CXFA_FFDoc *hDoc, CXFA_FFWidget *hWidget) override
FX_ARGB GetHighlightColor(const CXFA_FFDoc *hDoc) const override
void SetCurrentPage(CXFA_FFDoc *hDoc, int32_t iCurPage) override
IJS_Runtime * GetIJSRuntime(const CXFA_FFDoc *hDoc) const override
CFX_XMLDocument * GetXMLDoc() const override
void SetChangeMark(CXFA_FFDoc *hDoc) override
void GotoURL(CXFA_FFDoc *hDoc, const WideString &bsURL) override
void SetTitle(CXFA_FFDoc *hDoc, const WideString &wsTitle) override
int32_t CountPages(const CXFA_FFDoc *hDoc) const override
bool PopupMenu(CXFA_FFWidget *hWidget, const CFX_PointF &ptPopup) override
void SetValidationsEnabled(CXFA_FFDoc *hDoc, bool bEnabled) override
void OnPageViewEvent(CXFA_FFPageView *pPageView, CXFA_FFDoc::PageViewEvent eEvent) override
WideString GetTitle(const CXFA_FFDoc *hDoc) const override
void WidgetPreRemove(CXFA_FFWidget *hWidget) override
bool GetPopupPos(CXFA_FFWidget *hWidget, float fMinPopup, float fMaxPopup, const CFX_RectF &rtAnchor, CFX_RectF *pPopupRect) override
CPDFXFA_DocEnvironment(CPDFXFA_Context *)
absl::optional< CFX_PointF > PageToDevice(const FX_RECT &rect, int rotate, const CFX_PointF &page_point) const override
CXFA_FFPageView * GetXFAPageView() const
CPDF_Document * GetDocument() const override
CFX_Matrix GetDisplayMatrix(const FX_RECT &rect, int iRotate) const override
CPDFXFA_Page * AsXFAPage() override
CPDF_Page * AsPDFPage() override
float GetPageWidth() const override
CPDFSDK_Annot * GetLastXFAAnnot(CPDFSDK_PageView *page_view) const
void SetXFAPageViewIndex(int index)
CPDFSDK_Annot * GetPrevXFAAnnot(CPDFSDK_Annot *pSDKAnnot) const
CPDFSDK_Annot * GetFirstXFAAnnot(CPDFSDK_PageView *page_view) const
CPDFSDK_Annot * GetNextXFAAnnot(CPDFSDK_Annot *pSDKAnnot) const
absl::optional< CFX_PointF > DeviceToPage(const FX_RECT &rect, int rotate, const CFX_PointF &device_point) const override
void DrawFocusAnnot(CFX_RenderDevice *pDevice, CPDFSDK_Annot *pAnnot, const CFX_Matrix &mtUser2Device, const FX_RECT &rtClip)
int HasFormFieldAtPoint(const CFX_PointF &point) const
float GetPageHeight() const override
void LoadPDFPageFromDict(RetainPtr< CPDF_Dictionary > pPageDict)
const CPDF_Dictionary * GetRoot() const
void SetStatusBits(Mask< XFA_WidgetStatus > val)
void InsertAfter(CXFA_ContentLayoutItem *pNext)
CXFA_ContentLayoutItem * GetPrev() const
CXFA_ContentLayoutItem * GetNext() const
CFX_RectF GetAbsoluteRect() const
bool TestStatusBits(Mask< XFA_WidgetStatus > val) const
CFX_RectF GetRelativeRect() const
~CXFA_ContentLayoutItem() override
CXFA_ContentLayoutItem * GetLast()
CXFA_FFWidget * GetFFWidget()
void ClearStatusBits(Mask< XFA_WidgetStatus > val)
CXFA_ContentLayoutItem * GetFirst()
virtual void SetHasChangedContainer()=0
void SetDocument(CXFA_Document *pDocument)
virtual void Trace(cppgc::Visitor *visitor) const
virtual ~LayoutProcessorIface()
virtual void SetForceRelayout()=0
CXFA_Document * GetDocument() const
cppgc::Heap * GetHeap() const
CXFA_Node * GetNodeByID(CXFA_Node *pRoot, WideStringView wsID) const
CXFA_FFNotify * GetNotify() const
void Trace(cppgc::Visitor *visitor) const
CFXJSE_Engine * InitScriptContext(CJS_Runtime *fxjs_runtime)
CXFA_Node * DataMerge_CopyContainer(CXFA_Node *pTemplateNode, CXFA_Node *pFormNode, CXFA_Node *pDataScope, bool bOneInstance, bool bDataMerge, bool bUpLevel)
void set_is_strict_scoping()
CXFA_LocaleMgr * GetLocaleMgr()
XFA_VERSION RecognizeXFAVersionNumber(const WideString &wsTemplateNS)
void AppendPendingNode(CXFA_Node *node)
CXFA_Node * GetNotBindNode(pdfium::span< cppgc::Member< CXFA_Object > > arrayNodes) const
void DataMerge_UpdateBindingRelations(CXFA_Node *pFormUpdateRoot)
bool HasScriptContext() const
void SetRoot(CXFA_Node *pNewRoot)
CXFA_Node * CreateNode(XFA_PacketType packet, XFA_Element eElement)
size_t GetPendingNodesCount() const
XFA_VERSION GetCurVersionMode() const
CFXJSE_Engine * GetScriptContext() const
bool is_scripting() const
CXFA_Object * GetXFAObject(XFA_HashCode wsNodeNameHash)
void SetPendingNodesUnusedAndUnbound()
CXFA_NodeOwner * GetNodeOwner()
void RegisterGlobalBinding(uint32_t dwNameHash, CXFA_Node *pDataNode)
CXFA_Node * GetPendingNodeAtIndex(size_t index) const
FormType GetFormType() const
CXFA_Node * GetGlobalBinding(uint32_t dwNameHash)
LayoutProcessorIface * GetLayoutProcessor() const
CXFA_Node * GetRoot() const
bool is_strict_scoping() const
WideString GetNewText() const
WideString m_wsPrevContentType
CXFA_EventParam & operator=(CXFA_EventParam &&other) noexcept
CXFA_EventParam & operator=(const CXFA_EventParam &other)
WideString m_wsSoapFaultCode
WideString m_wsNewContentType
CXFA_EventParam(const CXFA_EventParam &other)
CXFA_EventParam(XFA_EVENTTYPE type)
WideString m_wsSoapFaultString
virtual WideString GetAppName()=0
virtual ~CallbackIface()=default
virtual WideString GetAppTitle() const =0
virtual WideString GetPlatform()=0
virtual void Beep(uint32_t dwType)=0
virtual int32_t MsgBox(const WideString &wsMessage, const WideString &wsTitle, uint32_t dwIconType, uint32_t dwButtonType)=0
virtual CFX_Timer::HandlerIface * GetTimerHandler() const =0
virtual bool PostRequestURL(const WideString &wsURL, const WideString &wsData, const WideString &wsContentType, const WideString &wsEncode, const WideString &wsHeader, WideString &wsResponse)=0
virtual bool PutRequestURL(const WideString &wsURL, const WideString &wsData, const WideString &wsEncode)=0
virtual RetainPtr< IFX_SeekableReadStream > DownloadURL(const WideString &wsURL)=0
virtual WideString Response(const WideString &wsQuestion, const WideString &wsTitle, const WideString &wsDefaultAnswer, bool bMask)=0
virtual WideString GetLanguage()=0
virtual cppgc::Heap * GetGCHeap() const =0
CallbackIface * GetAppProvider() const
void Trace(cppgc::Visitor *visitor) const override
bool LoadFWLTheme(CXFA_FFDoc *doc)
CFWL_WidgetMgr * GetFWLWidgetMgr() const
CFX_Timer::HandlerIface * GetTimerHandler() override
CFWL_App * GetFWLApp() const
CFWL_WidgetMgr::AdapterIface * GetWidgetMgrAdapter() override
IFWL_ThemeProvider * GetThemeProvider() override
CXFA_FontMgr * GetXFAFontMgr() const
cppgc::Heap * GetHeap() override
UpdateScope(CXFA_FFDocView *pDocView)
void InvalidateRect(CXFA_FFPageView *pPageView, const CFX_RectF &rtInvalidate)
CXFA_FFWidgetHandler * GetWidgetHandler()
LayoutStatus GetLayoutStatus() const
void AddValidateNode(CXFA_Node *node)
void ResetNode(CXFA_Node *pNode)
void AddCalculateNodeNotify(CXFA_Node *pNodeChange)
bool InLayoutStatus() const
CXFA_Node * GetFocusNode() const
CXFA_FFDoc * GetDoc() const
bool SetFocus(CXFA_FFWidget *pNewFocus)
void DeleteLayoutItem(CXFA_FFWidget *pWidget)
void AddNewFormNode(CXFA_Node *pNode)
void AddBindItem(CXFA_BindItems *item)
void OnPageViewEvent(CXFA_ViewLayoutItem *pSender, CXFA_FFDoc::PageViewEvent eEvent)
CXFA_FFWidget * GetWidgetByName(const WideString &wsName, CXFA_FFWidget *pRefWidget)
CXFA_FFPageView * GetPageView(int32_t nIndex) const
void SetFocusNode(CXFA_Node *pNode)
void Trace(cppgc::Visitor *visitor) const
void AddCalculateNode(CXFA_Node *node)
CXFA_LayoutProcessor * GetLayoutProcessor() const
int32_t CountPageViews() const
XFA_EventError ExecEventActivityByDeepFirst(CXFA_Node *pFormNode, XFA_EVENTTYPE eEventType, bool bIsFormReady, bool bRecursive)
CXFA_FFWidget * GetFocusWidget() const
CXFA_Node * GetRootSubform()
void AddNullTestMsg(const WideString &msg)
void ProcessValueChanged(CXFA_Node *node)
void UpdateUIDisplay(CXFA_Node *pNode, CXFA_FFWidget *pExcept)
CXFA_FFWidget * GetWidgetForNode(CXFA_Node *node)
void AddIndexChangedSubform(CXFA_Subform *pNode)
virtual void OnPageViewEvent(CXFA_FFPageView *pPageView, PageViewEvent eEvent)=0
virtual void SetValidationsEnabled(CXFA_FFDoc *hDoc, bool bEnabled)=0
virtual int32_t CountPages(const CXFA_FFDoc *hDoc) const =0
virtual void SetCurrentPage(CXFA_FFDoc *hDoc, int32_t iCurPage)=0
virtual void SetFocusWidget(CXFA_FFDoc *hDoc, CXFA_FFWidget *hWidget)=0
virtual void GotoURL(CXFA_FFDoc *hDoc, const WideString &bsURL)=0
virtual int32_t GetCurrentPage(const CXFA_FFDoc *hDoc) const =0
virtual void WidgetPreRemove(CXFA_FFWidget *hWidget)=0
virtual IJS_Runtime * GetIJSRuntime(const CXFA_FFDoc *hDoc) const =0
virtual void SetCalculationsEnabled(CXFA_FFDoc *hDoc, bool bEnabled)=0
virtual void SetTitle(CXFA_FFDoc *hDoc, const WideString &wsTitle)=0
virtual WideString GetTitle(const CXFA_FFDoc *hDoc) const =0
virtual bool PopupMenu(CXFA_FFWidget *hWidget, const CFX_PointF &ptPopup)=0
virtual void Print(CXFA_FFDoc *hDoc, int32_t nStartPage, int32_t nEndPage, Mask< XFA_PrintOpt > dwOptions)=0
virtual bool IsValidationsEnabled(const CXFA_FFDoc *hDoc) const =0
virtual void ExportData(CXFA_FFDoc *hDoc, const WideString &wsFilePath, bool bXDP)=0
virtual RetainPtr< IFX_SeekableReadStream > OpenLinkedFile(CXFA_FFDoc *hDoc, const WideString &wsLink)=0
virtual FX_ARGB GetHighlightColor(const CXFA_FFDoc *hDoc) const =0
virtual void InvalidateRect(CXFA_FFPageView *pPageView, const CFX_RectF &rt)=0
virtual CFX_XMLDocument * GetXMLDoc() const =0
virtual void WidgetPostAdd(CXFA_FFWidget *hWidget)=0
virtual void SetChangeMark(CXFA_FFDoc *hDoc)=0
virtual bool GetPopupPos(CXFA_FFWidget *hWidget, float fMinPopup, float fMaxPopup, const CFX_RectF &rtAnchor, CFX_RectF *pPopupRect)=0
virtual void DisplayCaret(CXFA_FFWidget *hWidget, bool bVisible, const CFX_RectF *pRtAnchor)=0
virtual ~CallbackIface()=default
virtual bool IsCalculationsEnabled(const CXFA_FFDoc *hDoc) const =0
CPDF_Document * GetPDFDoc() const
bool SavePackage(CXFA_Node *pNode, const RetainPtr< IFX_SeekableStream > &pFile)
CFX_XMLDocument * GetXMLDocument() const
void InvalidateRect(CXFA_FFPageView *pPageView, const CFX_RectF &rt)
CXFA_FFDocView * CreateDocView()
void WidgetPostAdd(CXFA_FFWidget *hWidget)
RetainPtr< CFGAS_GEFont > GetPDFFont(const WideString &family, uint32_t styles, bool strict)
cppgc::Heap * GetHeap() const
void Print(int32_t nStartPage, int32_t nEndPage, Mask< XFA_PrintOpt > dwOptions)
void Trace(cppgc::Visitor *visitor) const
CXFA_Document * GetXFADoc() const
FX_ARGB GetHighlightColor() const
void SetCurrentPage(int32_t iCurPage)
void SetCalculationsEnabled(bool bEnabled)
void OnPageViewEvent(CXFA_FFPageView *pPageView, PageViewEvent eEvent)
FormType GetFormType() const
void DisplayCaret(CXFA_FFWidget *hWidget, bool bVisible, const CFX_RectF *pRtAnchor)
bool IsCalculationsEnabled() const
bool PopupMenu(CXFA_FFWidget *hWidget, const CFX_PointF &ptPopup)
CXFA_FFDocView * GetDocView(CXFA_LayoutProcessor *pLayout)
CXFA_FFDocView * GetDocView()
void SetFocusWidget(CXFA_FFWidget *hWidget)
void SetValidationsEnabled(bool bEnabled)
bool OpenDoc(CFX_XMLDocument *pXML)
void GotoURL(const WideString &bsURL)
WideString GetTitle() const
int32_t GetCurrentPage() const
bool IsValidationsEnabled() const
CXFA_FFApp * GetApp() const
void ExportData(const WideString &wsFilePath, bool bXDP)
void SetTitle(const WideString &wsTitle)
IJS_Runtime * GetIJSRuntime() const
void WidgetPreRemove(CXFA_FFWidget *hWidget)
RetainPtr< CFX_DIBitmap > GetPDFNamedImage(WideStringView wsName, int32_t &iImageXDpi, int32_t &iImageYDpi)
RetainPtr< IFX_SeekableReadStream > OpenLinkedFile(const WideString &wsLink)
bool GetPopupPos(CXFA_FFWidget *hWidget, float fMinPopup, float fMaxPopup, const CFX_RectF &rtAnchor, CFX_RectF *pPopupRect) const
int32_t CountPages() const
CXFA_ViewLayoutItem * GetLayoutItem() const
CXFA_FFDocView * GetDocView() const
void SetLayoutItem(CXFA_ViewLayoutItem *pItem)
void Trace(cppgc::Visitor *visitor) const
CFX_Matrix GetDisplayMatrix(const FX_RECT &rtDisp, int32_t iRotate) const
CXFA_FFWidget::IteratorIface * CreateGCedTraverseWidgetIterator(Mask< XFA_WidgetStatus > dwWidgetFilter)
CFX_RectF GetPageViewRect() const
~CXFA_FFPageWidgetIterator() override
CXFA_FFPageWidgetIterator(CXFA_FFPageView *pPageView, Mask< XFA_WidgetStatus > dwFilter)
CXFA_FFWidget * MoveToLast() override
CXFA_FFWidget * MoveToNext() override
CXFA_FFWidget * MoveToFirst() override
bool SetCurrentWidget(CXFA_FFWidget *hWidget) override
CXFA_FFWidget * GetCurrentWidget() override
CXFA_FFWidget * MoveToPrevious() override
~CXFA_FFTabOrderPageWidgetIterator() override
CXFA_FFWidget * MoveToFirst() override
CXFA_FFWidget * MoveToLast() override
CXFA_FFWidget * MoveToNext() override
CXFA_FFWidget * GetCurrentWidget() override
void Trace(cppgc::Visitor *visitor) const
CXFA_FFWidget * MoveToPrevious() override
bool SetCurrentWidget(CXFA_FFWidget *hWidget) override
void Trace(cppgc::Visitor *visitor) const
RetainPtr< CFGAS_GEFont > GetFont(CXFA_FFDoc *hDoc, const WideString &wsFontFamily, uint32_t dwFontStyles)
bool IsContentLayoutItem() const
const CXFA_ViewLayoutItem * GetPage() const
CXFA_ViewLayoutItem * AsViewLayoutItem()
bool IsViewLayoutItem() const
void SetFormNode(CXFA_Node *pNode)
~CXFA_LayoutItem() override
CXFA_ContentLayoutItem * AsContentLayoutItem()
CXFA_Node * GetFormNode() const
CXFA_LayoutItem(CXFA_Node *pNode, ItemType type)
const CXFA_ContentLayoutItem * AsContentLayoutItem() const
const CXFA_ViewLayoutItem * AsViewLayoutItem() const
void Trace(cppgc::Visitor *visitor) const
void SetDefLocale(GCedLocaleIface *pLocale)
absl::optional< WideString > GetConfigLocaleName(CXFA_Node *pConfig) const
~CXFA_LocaleMgr() override
GCedLocaleIface * GetDefLocale() override
GCedLocaleIface * GetLocaleByName(const WideString &wsLocaleName) override
bool SetCurrent(NodeType *pNode)
CXFA_NodeIteratorTemplate(NodeType *pRoot)
NodeType * GetCurrent() const
NodeType * GetRoot() const
NodeType * SkipChildrenAndMoveToNext()
void PersistList(CXFA_List *list)
void Trace(cppgc::Visitor *visitor) const
CFX_XMLNode * GetXMLMappingNode() const
FX_ARGB GetTextColor() const
void RemoveChildAndNotify(CXFA_Node *pNode, bool bNotify)
CXFA_Caption * GetCaptionIfExists() const
bool HasButtonDown() const
XFA_Attribute GetAttribute(size_t i) const
CXFA_Font * GetOrCreateFontIfPossible()
float GetFontSize() const
CXFA_Node * GetFirstContainerChild() const
CXFA_Value * GetFormValueIfExists() const
absl::optional< bool > GetDefaultBoolean(XFA_Attribute attr) const
bool LoadCaption(CXFA_FFDoc *doc)
CXFA_Node(CXFA_Document *pDoc, XFA_PacketType ePacket, Mask< XFA_XDPPACKET > validPackets, XFA_ObjectType oType, XFA_Element eType, pdfium::span< const PropertyData > properties, pdfium::span< const AttributeData > attributes, CJX_Object *js_object)
bool IsVerticalScrollPolicyOff()
bool LoadLayoutImage(CXFA_FFDoc *doc)
bool HasProperty(XFA_Element property) const
WideString NormalizeNumStr(const WideString &wsValue)
int32_t GetFracDigits() const
WideString GetValue(XFA_ValuePicture eValueType)
bool LoadEditImage(CXFA_FFDoc *doc)
CXFA_Node * GetExclGroupIfExists()
int32_t GetLeadDigits() const
void Trace(cppgc::Visitor *visitor) const override
CXFA_Occur * GetOccurIfExists()
bool IsOpenAccess() const
void SetNodeAndDescendantsUnused()
CXFA_Node * GetFirstChildByName(uint32_t dwNodeNameHash) const
bool SetValue(XFA_ValuePicture eValueType, const WideString &wsValue)
std::vector< CXFA_Event * > GetEventByActivity(XFA_AttributeValue iActivity, bool bIsFormReady)
size_t GetIndexByClassName()
bool IsFormContainer() const
void SetTemplateNode(CXFA_Node *pTemplateNode)
std::vector< CXFA_Node * > GetBindItemsCopy() const
WideString GetRawValue() const
CXFA_Node * GetContainerParent() const
CXFA_Node * Clone(bool bRecursive)
CXFA_Node * GetNextContainerSibling() const
XFA_AttributeValue GetIntact()
void InsertChildAndNotify(CXFA_Node *pNode, CXFA_Node *pBeforeNode)
float GetCheckButtonSize()
bool IsLayoutGeneratedNode() const
size_t CountChoiceListItems(bool bSaveValue)
CXFA_Validate * GetValidateIfExists() const
int32_t GetSelectedItem(int32_t nIndex)
CXFA_Node * GetFirstChildByName(WideStringView wsNodeName) const
CXFA_TextLayout * GetTextLayout()
int32_t GetRotate() const
absl::optional< XFA_AttributeValue > GetDefaultEnum(XFA_Attribute attr) const
void SetDataDescriptionNode(CXFA_Node *pDataDescriptionNode)
void SetItemState(int32_t nIndex, bool bSelected, bool bNotify, bool bScriptModify)
CXFA_Node * GetNextSameNameSibling(uint32_t dwNodeNameHash) const
CXFA_Para * GetParaIfExists() const
CXFA_Node * GetInstanceMgrOfSubform()
RetainPtr< CFX_DIBitmap > GetLayoutImage()
static CXFA_Node * Create(CXFA_Document *doc, XFA_Element element, XFA_PacketType packet)
CXFA_Node * CreateInstanceIfPossible(bool bDataMerge)
virtual XFA_Element GetValueNodeType() const
WideString NumericLimit(const WideString &wsValue)
void SetSelectedMemberByValue(WideStringView wsValue, bool bNotify, bool bScriptModify, bool bSyncData)
void InsertItem(const WideString &wsLabel, const WideString &wsValue, bool bNotify)
void SetBindingNode(CXFA_Node *node)
CXFA_Node * GetSelectedMember()
CXFA_Node * GetOrCreateProperty(int32_t index, XFA_Element eProperty)
void SendAttributeChangeMessage(XFA_Attribute eAttribute, bool bScriptModify)
void AddBindItem(CXFA_Node *pFormNode)
bool IsHorizontalScrollPolicyOff()
WideString GetFormatDataValue(const WideString &wsValue)
CXFA_Calculate * GetCalculateIfExists() const
float GetLineHeight() const
absl::optional< float > TryWidth()
bool HasBindItems() const
bool DeleteItem(int32_t nIndex, bool bNotify, bool bScriptModify)
void SetFlag(XFA_NodeFlag dwFlag)
XFA_EventError ExecuteScript(CXFA_FFDocView *pDocView, CXFA_Script *script, CXFA_EventParam *pEventParam)
bool IsChoiceListMultiSelect()
std::vector< CXFA_Node * > GetNodeListWithFilter(Mask< XFA_NodeFilter > dwFilter)
absl::optional< int32_t > GetDefaultInteger(XFA_Attribute attr) const
CXFA_Node * GetOneChildOfClass(WideStringView wsClass)
T * GetNextSameClassSibling(XFA_Element eType) const
CXFA_Node * CreateSamePacketNode(XFA_Element eType)
void SetPreNull(bool val)
std::vector< int32_t > GetSelectedItems()
bool GetItemState(int32_t nIndex)
void ClearFlag(XFA_NodeFlag dwFlag)
RetainPtr< CFX_DIBitmap > GetEditImage()
WideString GetNameExpression()
bool HasAttribute(XFA_Attribute attr) const
uint8_t PropertyOccurrenceCount(XFA_Element property) const
int32_t CountSelectedItems()
CXFA_Node * GetTemplateNodeIfExists() const
WideString GetNormalizeDataValue(const WideString &wsValue)
absl::optional< WideString > GetDefaultCData(XFA_Attribute attr) const
size_t GetIndex(bool bIsProperty, bool bIsClassIndex)
CXFA_Border * GetOrCreateBorderIfPossible()
std::vector< CXFA_Node * > GetSiblings(bool bIsClassName)
absl::optional< WideString > GetChoiceListItem(int32_t nIndex, bool bSaveValue)
CFX_Size GetLayoutImageDpi() const
std::vector< WideString > GetChoiceListItems(bool bSaveValue)
CXFA_Node * GetExclGroupFirstMember()
CXFA_Node * GetDataDescriptionNode()
CXFA_Node * GetPrevContainerSibling() const
void SetEditImage(RetainPtr< CFX_DIBitmap > newImage)
CXFA_Node * GetOneChildNamed(WideStringView wsName)
CXFA_Node * GetBindData()
uint32_t GetNameHash() const
GCedLocaleIface * GetLocale()
CXFA_Node * GetExclGroupNextMember(CXFA_Node *pNode)
CFX_XMLNode * CreateXMLMappingNode()
void SetXMLMappingNode(CFX_XMLNode *node)
CXFA_Node * SetSelectedMember(WideStringView wsName)
void SetToXML(const WideString &value)
bool IsUserInteractive() const
std::pair< CXFA_Node *, int32_t > GetProperty(int32_t index, XFA_Element eProperty) const
CXFA_Node * CloneTemplateToForm(bool bRecursive)
void ClearAllSelections()
bool HasButtonRollover() const
CXFA_Font * GetFontIfExists() const
CXFA_Node * GetContainerNode()
T * GetFirstChildByClass(XFA_Element eType) const
bool RemoveBindItem(CXFA_Node *pFormNode)
absl::optional< WideString > GetLocaleName()
WideString GetPictureContent(XFA_ValuePicture ePicture)
void SetSelectedItems(const std::vector< int32_t > &iSelArray, bool bNotify, bool bScriptModify, bool bSyncData)
CXFA_TextLayout * GetCaptionTextLayout()
bool IsUnusedNode() const
XFA_EventError ProcessEvent(CXFA_FFDocView *pDocView, XFA_AttributeValue iActivity, CXFA_EventParam *pEventParam)
T * GetChild(size_t index, XFA_Element eType, bool bOnlyChild)
std::vector< WideString > GetSelectedItemsValue()
void InsertChildAndNotify(int32_t index, CXFA_Node *pNode)
absl::optional< float > FindSplitPos(CXFA_FFDocView *pDocView, size_t szBlockIndex, float fCalcHeight)
CFX_Size GetEditImageDpi() const
bool IsWidgetReady() const
bool HasPropertyFlag(XFA_Element property, XFA_PropertyFlag flag) const
absl::optional< CXFA_Measurement > GetDefaultMeasurement(XFA_Attribute attr) const
CXFA_Validate * GetOrCreateValidateIfPossible()
BoolScriptResult ExecuteBoolScript(CXFA_FFDocView *pDocView, CXFA_Script *script, CXFA_EventParam *pEventParam)
size_t CountChildren(XFA_Element eType, bool bOnlyChild)
XFA_AttributeType GetAttributeType(XFA_Attribute type) const
RetainPtr< CFGAS_GEFont > GetFGASFont(CXFA_FFDoc *doc)
CXFA_Node * GetUIChildNode()
XFA_PacketType GetPacketType() const
CXFA_Border * GetUIBorder()
void SetCheckState(XFA_CheckState eCheckState)
XFA_FFWidgetType GetFFWidgetType()
CXFA_Margin * GetMarginIfExists() const
void InsertItem(CXFA_Node *pNewInstance, int32_t iPos, int32_t iCount, bool bMoveDataBindingNodes)
std::vector< CXFA_Node * > GetNodeListForType(XFA_Element eTypeFilter)
XFA_EventError ProcessValidate(CXFA_FFDocView *pDocView, int32_t iFlags)
T * GetNextSameNameSibling(WideStringView wsNodeName) const
bool IsChoiceListAllowTextEntry()
void SetLayoutImage(RetainPtr< CFX_DIBitmap > newImage)
WideString GetItemValue(WideStringView wsLabel)
CXFA_Node * GetItemIfExists(int32_t iIndex)
bool IsChoiceListCommitOnSelect()
XFA_EventError ProcessCalculate(CXFA_FFDocView *pDocView)
void StartWidgetLayout(CXFA_FFDoc *doc, float *pCalcWidth, float *pCalcHeight)
virtual XFA_FFWidgetType GetDefaultFFWidgetType() const
bool PresenceRequiresSpace() const
bool IsTransparent() const
bool IsAncestorOf(const CXFA_Node *that) const
void RemoveItem(CXFA_Node *pRemoveInstance, bool bRemoveDataBinding)
XFA_CheckState GetCheckState()
const T * GetChild(size_t index, XFA_Element eType, bool bOnlyChild) const
bool IsNeedSavingXMLNode() const
std::pair< XFA_Element, int32_t > GetMaxChars() const
absl::optional< int32_t > GetNumberOfCells()
void SetInitializedFlagAndNotify()
bool IsInitialized() const
CXFA_Node * GetModelNode()
bool HasRemovedChildren() const
CXFA_Border * GetBorderIfExists() const
XFA_Element GetElementType() const
WideString GetSOMExpression()
cppgc::WeakMember< CXFA_Document > m_pDocument
bool IsContentNode() const
const ByteStringView m_elementName
bool HasCreatedUIWidget() const
uint32_t GetClassHashCode() const
cppgc::Member< CJX_Object > m_pJSObject
ByteStringView GetClassName() const
const XFA_Element m_elementType
const XFA_ObjectType m_objectType
const uint32_t m_elementNameHash
CXFA_Document * GetDocument() const
XFA_ObjectType GetObjectType() const
const CJX_Object * JSObject() const
CXFA_TreeList * AsTreeList()
virtual void Trace(cppgc::Visitor *visitor) const
CXFA_Object(CXFA_Document *pDocument, XFA_ObjectType objectType, XFA_Element eType, CJX_Object *jsObject)
CXFA_ThisProxy * AsThisProxy()
bool IsContainerNode() const
~CXFA_ReadyNodeIterator()
CXFA_ReadyNodeIterator(CXFA_Node *pTravelRoot)
static CXFA_LayoutItem * GetNextSibling(CXFA_LayoutItem *pLayoutItem)
static CXFA_LayoutItem * GetFirstChild(CXFA_LayoutItem *pLayoutItem)
static CXFA_LayoutItem * GetParent(CXFA_LayoutItem *pLayoutItem)
static CXFA_Node * GetNextSibling(CXFA_Node *pTemplateNode)
static CXFA_Node * GetParent(CXFA_Node *pTemplateNode)
static CXFA_Node * GetFirstChild(CXFA_Node *pTemplateNode)
~CXFA_ViewLayoutItem() override
CXFA_Node * GetMasterPage() const
CFX_SizeF GetPageSize() const
void SetOldSubform(CXFA_Node *pSubform)
CXFA_Node * GetOldSubform() const
CXFA_LayoutProcessor * GetLayout() const
int32_t GetPageIndex() const
CXFA_FFPageView * GetPageView() const
virtual ~ExtensionIface()=default
ExtensionIface * GetExtension()
void SetExtension(std::unique_ptr< ExtensionIface > extension)
uint32_t CurrentMaxObjDefinitionID() const
CFXJS_ObjDefinition * ObjDefinitionForID(uint32_t id) const
V8TemplateMap * GetDynamicObjsMap()
uint32_t AssignIDForObjDefinition(std::unique_ptr< CFXJS_ObjDefinition > pDefn)
virtual void Trace(cppgc::Visitor *visitor) const
virtual WideString GetDayName(int32_t nWeek, bool bAbbr) const =0
virtual WideString GetDecimalSymbol() const =0
virtual WideString GetMonthName(int32_t nMonth, bool bAbbr) const =0
virtual WideString GetNumPattern(NumSubcategory eType) const =0
virtual WideString GetDatePattern(DateTimeSubcategory eType) const =0
virtual int GetTimeZoneInMinutes() const =0
virtual WideString GetMeridiemName(bool bAM) const =0
virtual WideString GetName() const =0
virtual WideString GetCurrencySymbol() const =0
virtual WideString GetDateTimeSymbols() const =0
virtual ~LocaleIface()=default
virtual WideString GetTimePattern(DateTimeSubcategory eType) const =0
virtual WideString GetPercentSymbol() const =0
virtual WideString GetGroupingSymbol() const =0
virtual WideString GetEraName(bool bAD) const =0
virtual WideString GetMinusSymbol() const =0
virtual ~LocaleMgrIface()=default
virtual LocaleIface * GetLocaleByName(const WideString &wsLCID)=0
virtual LocaleIface * GetDefLocale()=0
static void InitializeGlobals()
static void DestroyGlobals()
static WideString FromUTF16LE(pdfium::span< const uint8_t > data)
GCedTreeNodeMixin & operator=(const GCedTreeNodeMixin &that)=delete
virtual void Trace(cppgc::Visitor *visitor) const
GCedTreeNodeMixin(const GCedTreeNodeMixin &that)=delete
GCedTreeNodeMixin()=default
GCedTreeNode & operator=(const GCedTreeNode &that)=delete
virtual void Trace(cppgc::Visitor *visitor) const
GCedTreeNode(const GCedTreeNode &that)=delete
void CPDFXFA_ModuleInit()
void CPDFXFA_ModuleDestroy()
CXFA_FFWidget * GetFFWidget(CXFA_ContentLayoutItem *item)
@ XFA_EVENT_InitCalculate
@ XFA_EVENT_InitVariables
const XFA_AttributeValue kXFAEventActivity[]
CXFA_ContentLayoutItem * ToContentLayoutItem(CXFA_LayoutItem *item)
CXFA_ViewLayoutItem * ToViewLayoutItem(CXFA_LayoutItem *item)
void XFA_ReleaseLayoutItem(CXFA_LayoutItem *pLayoutItem)
CXFA_ThisProxy * ToThisProxy(CXFA_Object *pObj)
CXFA_TreeList * ToTreeList(CXFA_Object *pObj)
CXFA_Node * ToNode(CXFA_Object *pObj)
CXFA_List * ToList(CXFA_Object *pObj)
@ XFA_HASHCODE_Stylesheet
@ XFA_HASHCODE_DataWindow
@ XFA_HASHCODE_ConnectionSet
@ XFA_HASHCODE_DataDescription
FXGCScopedHeap FXGC_CreateHeap()
void FXGC_Initialize(v8::Platform *platform, v8::Isolate *isolate)
void FXGC_ForceGarbageCollection(cppgc::Heap *heap)
#define CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED
#define CONSTRUCT_VIA_MAKE_RETAIN
UNOWNED_PTR_EXCLUSION void * default_value
XFA_EventError xfa_event_result
constexpr PropertyData(XFA_Element property, uint8_t occurrence_count, Mask< XFA_PropertyFlag > flags)
Mask< XFA_PropertyFlag > flags
void operator()(cppgc::Heap *heap)
FX_IMAGEDIB_AND_DPI(const FX_IMAGEDIB_AND_DPI &that)
FX_IMAGEDIB_AND_DPI(const RetainPtr< CFX_DIBBase > &pDib, int32_t xDpi, int32_t yDpi)
RetainPtr< CFX_DIBBase > pDibSource
#define UNOWNED_PTR_EXCLUSION