Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
cxfa_node.h
Go to the documentation of this file.
1// Copyright 2017 The PDFium Authors
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#ifndef XFA_FXFA_PARSER_CXFA_NODE_H_
8#define XFA_FXFA_PARSER_CXFA_NODE_H_
9
10#include <stddef.h>
11#include <stdint.h>
12
13#include <utility>
14#include <vector>
15
16#include "core/fxcrt/fx_coordinates.h"
17#include "core/fxcrt/mask.h"
18#include "core/fxcrt/retain_ptr.h"
19#include "core/fxcrt/unowned_ptr.h"
20#include "core/fxcrt/unowned_ptr_exclusion.h"
21#include "core/fxcrt/widestring.h"
22#include "core/fxge/dib/fx_dib.h"
23#include "fxjs/gc/gced_tree_node_mixin.h"
24#include "third_party/abseil-cpp/absl/types/optional.h"
25#include "third_party/base/containers/span.h"
26#include "v8/include/cppgc/member.h"
27#include "v8/include/cppgc/visitor.h"
28#include "xfa/fxfa/cxfa_ffwidget_type.h"
29#include "xfa/fxfa/fxfa.h"
30#include "xfa/fxfa/parser/cxfa_object.h"
31
32class CFGAS_GEFont;
33class CFX_DIBitmap;
34class CFX_XMLDocument;
35class CFX_XMLNode;
36class CXFA_Bind;
37class CXFA_Border;
38class CXFA_Calculate;
39class CXFA_Caption;
40class CXFA_Event;
41class CXFA_EventParam;
42class CXFA_FFDoc;
43class CXFA_FFDocView;
44class CXFA_Font;
45class CXFA_Keep;
46class CXFA_Margin;
48class CXFA_Occur;
49class CXFA_Para;
50class CXFA_Script;
51class CXFA_TextLayout;
52class CXFA_Ui;
53class CXFA_Validate;
54class CXFA_Value;
56class GCedLocaleIface;
57
58enum class XFA_NodeFilter : uint8_t {
59 kChildren = 1 << 0,
60 kProperties = 1 << 1,
61 kOneOfProperty = 1 << 2,
62};
63
64enum class XFA_CheckState : uint8_t {
65 kOn = 0,
66 kOff = 1,
67 kNeutral = 2,
68};
69
71 kRaw = 0,
73 kEdit,
75};
76
77enum class XFA_NodeFlag : uint8_t {
78 kNone = 0,
79 kInitialized = 1 << 0,
80 kHasRemovedChildren = 1 << 1,
81 kNeedsInitApp = 1 << 2,
82 kBindFormItems = 1 << 3,
83 kUserInteractive = 1 << 4,
84 kUnusedNode = 1 << 5,
86};
87
89 kOneOf = 1 << 0,
90 kDefaultOneOf = 1 << 1,
91};
92
94 public:
95 struct PropertyData {
96 PropertyData() = delete;
97 constexpr PropertyData(XFA_Element property,
98 uint8_t occurrence_count,
100 : property(property),
101 occurrence_count(occurrence_count),
102 flags(flags) {}
103
107 };
108
114
119
120 // Node is created from cppgc heap.
121 static CXFA_Node* Create(CXFA_Document* doc,
122 XFA_Element element,
123 XFA_PacketType packet);
124
125 ~CXFA_Node() override;
126
127 // CXFA_Object:
128 void Trace(cppgc::Visitor* visitor) const override;
129
130 bool HasProperty(XFA_Element property) const;
131 bool HasPropertyFlag(XFA_Element property, XFA_PropertyFlag flag) const;
132 uint8_t PropertyOccurrenceCount(XFA_Element property) const;
133
134 std::pair<CXFA_Node*, int32_t> GetProperty(int32_t index,
135 XFA_Element eProperty) const;
136 CXFA_Node* GetOrCreateProperty(int32_t index, XFA_Element eProperty);
137
138 void SendAttributeChangeMessage(XFA_Attribute eAttribute, bool bScriptModify);
139
140 bool HasAttribute(XFA_Attribute attr) const;
142
143 // Note: returns XFA_Attribute::Unknown for invalid indicies.
144 XFA_Attribute GetAttribute(size_t i) const;
145
146 XFA_PacketType GetPacketType() const { return m_ePacket; }
147
149 void SetFlag(XFA_NodeFlag dwFlag);
150 void ClearFlag(XFA_NodeFlag dwFlag);
151
152 CXFA_Node* CreateInstanceIfPossible(bool bDataMerge);
153 int32_t GetCount();
154 CXFA_Node* GetItemIfExists(int32_t iIndex);
155 void RemoveItem(CXFA_Node* pRemoveInstance, bool bRemoveDataBinding);
156 void InsertItem(CXFA_Node* pNewInstance,
157 int32_t iPos,
158 int32_t iCount,
159 bool bMoveDataBindingNodes);
160
161 bool IsInitialized() const { return HasFlag(XFA_NodeFlag::kInitialized); }
162 bool IsUserInteractive() const {
163 return HasFlag(XFA_NodeFlag::kUserInteractive);
164 }
165 bool IsUnusedNode() const { return HasFlag(XFA_NodeFlag::kUnusedNode); }
168 }
169
170 bool PresenceRequiresSpace() const;
171 void SetBindingNode(CXFA_Node* node);
173
174 bool HasRemovedChildren() const {
175 return HasFlag(XFA_NodeFlag::kHasRemovedChildren);
176 }
177
178 bool IsAttributeInXML();
179 bool IsFormContainer() const {
180 return m_ePacket == XFA_PacketType::Form && IsContainerNode();
181 }
182
183 void SetXMLMappingNode(CFX_XMLNode* node) { xml_node_ = node; }
184 CFX_XMLNode* GetXMLMappingNode() const { return xml_node_; }
186 bool IsNeedSavingXMLNode() const;
187
188 void SetToXML(const WideString& value);
189
190 uint32_t GetNameHash() const { return m_dwNameHash; }
191 bool IsUnnamed() const { return m_dwNameHash == 0; }
193 void UpdateNameHash();
194
195 size_t CountChildren(XFA_Element eType, bool bOnlyChild);
196
197 template <typename T>
198 T* GetChild(size_t index, XFA_Element eType, bool bOnlyChild) {
199 return static_cast<T*>(GetChildInternal(index, eType, bOnlyChild));
200 }
201
202 template <typename T>
203 const T* GetChild(size_t index, XFA_Element eType, bool bOnlyChild) const {
204 return static_cast<const T*>(GetChildInternal(index, eType, bOnlyChild));
205 }
206
207 bool IsAncestorOf(const CXFA_Node* that) const;
208
209 void InsertChildAndNotify(int32_t index, CXFA_Node* pNode);
210 void InsertChildAndNotify(CXFA_Node* pNode, CXFA_Node* pBeforeNode);
211 void RemoveChildAndNotify(CXFA_Node* pNode, bool bNotify);
212
213 CXFA_Node* Clone(bool bRecursive);
214
219
223 CXFA_Node* CloneTemplateToForm(bool bRecursive);
225 void SetTemplateNode(CXFA_Node* pTemplateNode);
227 void SetDataDescriptionNode(CXFA_Node* pDataDescriptionNode);
229 bool HasBindItems() const { return !binding_nodes_.empty(); }
231 void AddBindItem(CXFA_Node* pFormNode);
232 // Returns true if there are still more items.
233 bool RemoveBindItem(CXFA_Node* pFormNode);
234 bool HasBindItem() const;
239 WideString GetNameExpression();
240
241 CXFA_Node* GetFirstChildByName(WideStringView wsNodeName) const;
242 CXFA_Node* GetFirstChildByName(uint32_t dwNodeNameHash) const;
243 template <typename T>
245 return static_cast<T*>(GetFirstChildByClassInternal(eType));
246 }
247 CXFA_Node* GetNextSameNameSibling(uint32_t dwNodeNameHash) const;
248 template <typename T>
249 T* GetNextSameNameSibling(WideStringView wsNodeName) const {
250 return static_cast<T*>(GetNextSameNameSiblingInternal(wsNodeName));
251 }
252 template <typename T>
254 return static_cast<T*>(GetNextSameClassSiblingInternal(eType));
255 }
256
257 CXFA_Node* GetOneChildNamed(WideStringView wsName);
258 CXFA_Node* GetOneChildOfClass(WideStringView wsClass);
259
260 std::vector<CXFA_Node*> GetSiblings(bool bIsClassName);
261 size_t GetIndex(bool bIsProperty, bool bIsClassIndex);
264
266
267 absl::optional<bool> GetDefaultBoolean(XFA_Attribute attr) const;
270 XFA_Attribute attr) const;
273
274 bool IsOpenAccess() const;
275
276 CXFA_Occur* GetOccurIfExists();
277 CXFA_Border* GetBorderIfExists() const;
278 CXFA_Border* GetOrCreateBorderIfPossible();
279 CXFA_Caption* GetCaptionIfExists() const;
280 CXFA_Font* GetFontIfExists() const;
281 CXFA_Font* GetOrCreateFontIfPossible();
282
283 float GetFontSize() const;
284 FX_ARGB GetTextColor() const;
285 float GetLineHeight() const;
286
287 CXFA_Margin* GetMarginIfExists() const;
288 CXFA_Para* GetParaIfExists() const;
289 CXFA_Calculate* GetCalculateIfExists() const;
290 CXFA_Validate* GetValidateIfExists() const;
291 CXFA_Validate* GetOrCreateValidateIfPossible();
292
293 CXFA_Value* GetFormValueIfExists() const;
294 WideString GetRawValue() const;
295
296 int32_t GetRotate() const;
297 absl::optional<float> TryWidth();
298
300
302 XFA_AttributeValue iActivity,
303 CXFA_EventParam* pEventParam);
305 XFA_EventError ProcessValidate(CXFA_FFDocView* pDocView, int32_t iFlags);
307 CXFA_Script* script,
308 CXFA_EventParam* pEventParam);
310 CXFA_Script* script,
311 CXFA_EventParam* pEventParam);
312
314
315 // NOTE: value returned is often determined by child UI node, and
316 // can't be used to infer anything about this particual node itself.
318
320 CXFA_Border* GetUIBorder();
321
322 void SetPreNull(bool val) { m_bPreNull = val; }
323 bool IsNull() const { return m_bIsNull; }
324 void SetIsNull(bool val) { m_bIsNull = val; }
325
326 void SetWidgetReady() { is_widget_ready_ = true; }
327 bool IsWidgetReady() const { return is_widget_ready_; }
329 bool bIsFormReady);
330
331 void ResetData();
333 float* pCalcWidth,
334 float* pCalcHeight);
335 absl::optional<float> FindSplitPos(CXFA_FFDocView* pDocView,
336 size_t szBlockIndex,
337 float fCalcHeight);
338
339 bool LoadCaption(CXFA_FFDoc* doc);
340 CXFA_TextLayout* GetCaptionTextLayout();
341 CXFA_TextLayout* GetTextLayout();
342
343 bool LoadLayoutImage(CXFA_FFDoc* doc);
344 bool LoadEditImage(CXFA_FFDoc* doc);
345 CFX_Size GetLayoutImageDpi() const;
346 CFX_Size GetEditImageDpi() const;
347 RetainPtr<CFX_DIBitmap> GetLayoutImage();
348 RetainPtr<CFX_DIBitmap> GetEditImage();
349 void SetLayoutImage(RetainPtr<CFX_DIBitmap> newImage);
350 void SetEditImage(RetainPtr<CFX_DIBitmap> newImage);
351
352 RetainPtr<CFGAS_GEFont> GetFGASFont(CXFA_FFDoc* doc);
353
354 bool IsListBox();
355 bool IsRadioButton();
356 bool IsMultiLine();
357
358 bool HasButtonRollover() const;
359 bool HasButtonDown() const;
360
361 float GetCheckButtonSize();
362
364 void SetCheckState(XFA_CheckState eCheckState);
365
367 CXFA_Node* SetSelectedMember(WideStringView wsName);
368 void SetSelectedMemberByValue(WideStringView wsValue,
369 bool bNotify,
370 bool bScriptModify,
371 bool bSyncData);
372
375
377 size_t CountChoiceListItems(bool bSaveValue);
378 absl::optional<WideString> GetChoiceListItem(int32_t nIndex, bool bSaveValue);
381 std::vector<WideString> GetChoiceListItems(bool bSaveValue);
382
383 int32_t CountSelectedItems();
384 int32_t GetSelectedItem(int32_t nIndex);
387 void SetSelectedItems(const std::vector<int32_t>& iSelArray,
388 bool bNotify,
389 bool bScriptModify,
390 bool bSyncData);
391 void InsertItem(const WideString& wsLabel,
392 const WideString& wsValue,
393 bool bNotify);
394 bool DeleteItem(int32_t nIndex, bool bNotify, bool bScriptModify);
395 void ClearAllSelections();
396
397 bool GetItemState(int32_t nIndex);
398 void SetItemState(int32_t nIndex,
399 bool bSelected,
400 bool bNotify,
401 bool bScriptModify);
402
403 WideString GetItemValue(WideStringView wsLabel);
404
408
409 bool SetValue(XFA_ValuePicture eValueType, const WideString& wsValue);
410 WideString GetValue(XFA_ValuePicture eValueType);
411 WideString GetPictureContent(XFA_ValuePicture ePicture);
412 WideString GetNormalizeDataValue(const WideString& wsValue);
413 WideString GetFormatDataValue(const WideString& wsValue);
414 WideString NormalizeNumStr(const WideString& wsValue);
415
416 std::pair<XFA_Element, int32_t> GetMaxChars() const;
417 int32_t GetFracDigits() const;
418 int32_t GetLeadDigits() const;
419
420 WideString NumericLimit(const WideString& wsValue);
421
422 bool IsTransparent() const;
423 bool IsProperty() const;
424
425 protected:
426 CXFA_Node(CXFA_Document* pDoc,
427 XFA_PacketType ePacket,
428 Mask<XFA_XDPPACKET> validPackets,
429 XFA_ObjectType oType,
430 XFA_Element eType,
431 pdfium::span<const PropertyData> properties,
432 pdfium::span<const AttributeData> attributes,
433 CJX_Object* js_object);
434
435 virtual XFA_Element GetValueNodeType() const;
437
438 private:
439 void ProcessScriptTestValidate(CXFA_FFDocView* pDocView,
440 CXFA_Validate* validate,
441 bool bVersionFlag);
442 XFA_EventError ProcessFormatTestValidate(CXFA_FFDocView* pDocView,
443 CXFA_Validate* validate,
444 bool bVersionFlag);
445 XFA_EventError ProcessNullTestValidate(CXFA_FFDocView* pDocView,
446 CXFA_Validate* validate,
447 int32_t iFlags,
448 bool bVersionFlag);
449 WideString GetValidateCaptionName(bool bVersionFlag);
450 WideString GetValidateMessage(bool bError, bool bVersionFlag);
451
452 bool HasFlag(XFA_NodeFlag dwFlag) const;
453 const PropertyData* GetPropertyData(XFA_Element property) const;
454 const AttributeData* GetAttributeData(XFA_Attribute attr) const;
455 absl::optional<XFA_Element> GetFirstPropertyWithFlag(
456 XFA_PropertyFlag flag) const;
457 void OnRemoved(bool bNotify) const;
458 absl::optional<void*> GetDefaultValue(XFA_Attribute attr,
459 XFA_AttributeType eType) const;
460 CXFA_Node* GetChildInternal(size_t index,
461 XFA_Element eType,
462 bool bOnlyChild) const;
463 CXFA_Node* GetFirstChildByClassInternal(XFA_Element eType) const;
464 CXFA_Node* GetNextSameNameSiblingInternal(WideStringView wsNodeName) const;
465 CXFA_Node* GetNextSameClassSiblingInternal(XFA_Element eType) const;
466 void CalcCaptionSize(CXFA_FFDoc* doc, CFX_SizeF* pszCap);
467 bool CalculateFieldAutoSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
468 bool CalculateWidgetAutoSize(CFX_SizeF* pSize);
469 bool CalculateTextEditAutoSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
470 bool CalculateCheckButtonAutoSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
471 bool CalculatePushButtonAutoSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
472 CFX_SizeF CalculateImageSize(float img_width,
473 float img_height,
474 const CFX_Size& dpi);
475 bool CalculateImageEditAutoSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
476 bool CalculateImageAutoSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
477 float CalculateWidgetAutoHeight(float fHeightCalc);
478 float CalculateWidgetAutoWidth(float fWidthCalc);
479 float GetWidthWithoutMargin(float fWidthCalc) const;
480 float GetHeightWithoutMargin(float fHeightCalc) const;
481 void CalculateTextContentSize(CXFA_FFDoc* doc, CFX_SizeF* pSize);
482 CFX_SizeF CalculateAccWidthAndHeight(CXFA_FFDoc* doc, float fWidth);
483 void InitLayoutData(CXFA_FFDoc* doc);
484 void StartTextLayout(CXFA_FFDoc* doc, float* pCalcWidth, float* pCalcHeight);
485
486 void InsertListTextItem(CXFA_Node* pItems,
487 const WideString& wsText,
488 int32_t nIndex);
489 WideString GetItemLabel(WideStringView wsValue) const;
490
491 std::pair<XFA_FFWidgetType, CXFA_Ui*> CreateChildUIAndValueNodesIfNeeded();
492 void CreateValueNodeIfNeeded(CXFA_Value* value, CXFA_Node* pUIChild);
493 CXFA_Node* CreateUINodeIfNeeded(CXFA_Ui* ui, XFA_Element type);
494 bool IsValidInPacket(XFA_PacketType packet) const;
495 void SetImageEdit(const WideString& wsContentType,
496 const WideString& wsHref,
497 const WideString& wsData);
498 CXFA_Node* GetBindingNode() const {
499 if (binding_nodes_.empty())
500 return nullptr;
501 return binding_nodes_[0];
502 }
503 bool BindsFormItems() const { return HasFlag(XFA_NodeFlag::kBindFormItems); }
504 bool NeedsInitApp() const { return HasFlag(XFA_NodeFlag::kNeedsInitApp); }
505 void SyncValue(const WideString& wsValue, bool bNotify);
506 CXFA_Value* GetDefaultValueIfExists();
507 CXFA_Bind* GetBindIfExists() const;
508 absl::optional<XFA_AttributeValue> GetIntactFromKeep(
509 const CXFA_Keep* pKeep,
510 XFA_AttributeValue eLayoutType) const;
511 CXFA_Node* GetTransparentParent();
512
513 absl::optional<float> TryHeight();
514 absl::optional<float> TryMinWidth();
515 absl::optional<float> TryMinHeight();
516 absl::optional<float> TryMaxWidth();
517 absl::optional<float> TryMaxHeight();
518 XFA_EventError ProcessEventInternal(CXFA_FFDocView* pDocView,
519 XFA_AttributeValue iActivity,
520 CXFA_Event* event,
521 CXFA_EventParam* pEventParam);
522
523 CFX_XMLDocument* GetXMLDocument() const;
524
526 bool m_bIsNull = true;
527 bool m_bPreNull = true;
528 bool is_widget_ready_ = false;
529 const pdfium::span<const PropertyData> m_Properties;
530 const pdfium::span<const AttributeData> m_Attributes;
531 const Mask<XFA_XDPPACKET> m_ValidPackets;
532 UnownedPtr<CFX_XMLNode> xml_node_;
533 const XFA_PacketType m_ePacket;
534 uint8_t m_ExecuteRecursionDepth = 0;
535 Mask<XFA_NodeFlag> m_uNodeFlags = XFA_NodeFlag::kNone;
536 uint32_t m_dwNameHash = 0;
537 cppgc::Member<CXFA_Node> m_pAuxNode;
538 cppgc::Member<CXFA_WidgetLayoutData> m_pLayoutData;
539 cppgc::Member<CXFA_Ui> ui_;
541};
542
543#endif // XFA_FXFA_PARSER_CXFA_NODE_H_
BC_TEXT_LOC
Definition BC_Library.h:12
BC_TYPE
Definition BC_Library.h:25
void BC_Library_Init()
void BC_Library_Destroy()
BC_CHAR_ENCODING
Definition BC_Library.h:20
FDE_TextAlignment
Definition cfde_data.h:12
CFWL_PartState
FWLTHEME_DIRECTION
Definition cfwl_utils.h:17
FWLTHEME_STATE
Definition cfwl_utils.h:15
#define FWL_STYLE_WGT_Child
Definition cfwl_widget.h:34
FWL_Type
Definition cfwl_widget.h:46
@ DateTimePicker
size_t FXJS_GlobalIsolateRefCount()
void FXJS_Release()
FXJSOBJTYPE
@ FXJSOBJTYPE_DYNAMIC
@ FXJSOBJTYPE_STATIC
@ FXJSOBJTYPE_GLOBAL
static CFGAS_GEModule * Get()
static void Destroy()
CFGAS_FontMgr * GetFontMgr()
static void Create()
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
Definition cfwl_app.h:47
CFWL_WidgetMgr * GetWidgetMgr() const
Definition cfwl_app.h:46
IFWL_ThemeProvider * GetThemeProvider() const
Definition cfwl_app.h:42
CFX_Timer::HandlerIface * GetTimerHandler() const
Definition cfwl_app.h:39
CFWL_WidgetMgr::AdapterIface * GetWidgetMgrAdapter() const
Definition cfwl_app.h:36
cppgc::Heap * GetHeap() const
Definition cfwl_app.h:45
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
Type GetType() const
CFWL_Widget * GetDstTarget() const
CFWL_Message(Type type, CFWL_Widget *pDstTarget)
CFWL_Message(const CFWL_Message &that)=delete
virtual ~CFWL_Message()
void SetDstTarget(CFWL_Widget *pWidget)
CFWL_Widget * GetWidget() const
Mask< CFWL_PartState > m_dwStates
CFWL_ThemePart(Part iPart, CFWL_Widget *pWidget)
CFX_RectF m_PartRect
FWLTHEME_STATE GetThemeState() const
CFX_Matrix m_matrix
UnownedPtr< const CFX_RectF > m_pRtData
Part GetPart() const
virtual bool GetPopupPos(CFWL_Widget *pWidget, float fMinHeight, float fMaxHeight, const CFX_RectF &rtAnchor, CFX_RectF *pPopupRect)=0
virtual ~AdapterIface()=default
virtual void RepaintWidget(CFWL_Widget *pWidget)=0
void OnProcessMessageToForm(CFWL_Message *pMessage)
CFWL_Widget * GetNextSiblingWidget(CFWL_Widget *pWidget) const
CFWL_Widget * GetWidgetAtPoint(CFWL_Widget *pParent, const CFX_PointF &point) const
CFWL_Widget * GetDefaultButton(CFWL_Widget *pParent) const
void OnDrawWidget(CFWL_Widget *pWidget, CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix)
CFWL_Widget * GetFirstChildWidget(CFWL_Widget *pWidget) const
void InsertWidget(CFWL_Widget *pParent, CFWL_Widget *pChild)
void GetAdapterPopupPos(CFWL_Widget *pWidget, float fMinHeight, float fMaxHeight, const CFX_RectF &rtAnchor, CFX_RectF *pPopupRect) const
void RepaintWidget(CFWL_Widget *pWidget, const CFX_RectF &pRect)
CFWL_Widget * GetParentWidget(const CFWL_Widget *pWidget) const
void RemoveWidget(CFWL_Widget *pWidget)
virtual void DisplayCaret(bool bVisible, const CFX_RectF *pRtAnchor)=0
virtual ~AdapterIface()=default
virtual void GetBorderColorAndThickness(FX_ARGB *cr, float *fWidth)=0
virtual CFX_Matrix GetRotateMatrix()=0
ScopedUpdateLock(CFWL_Widget *widget)
void InflateWidgetRect(CFX_RectF &rect)
uint32_t GetStyleExts() const
CFWL_Widget(CFWL_App *app, const Properties &properties, CFWL_Widget *pOuter)
virtual void SetStates(uint32_t dwStates)
Properties m_Properties
CFWL_Widget * GetOuter() const
bool IsOverLapper() const
void OnProcessMessage(CFWL_Message *pMessage) override
uint32_t GetStates() const
bool IsVisible() const
virtual FWL_WidgetHit HitTest(const CFX_PointF &point)
AdapterIface * GetAdapterIface() const
void SetDelegate(IFWL_WidgetDelegate *delegate)
float GetCXBorderSize() const
CFX_RectF GetEdgeRect() const
virtual bool IsForm() const
CFX_PointF TransformTo(CFWL_Widget *pWidget, const CFX_PointF &point)
void SetEventKey(uint64_t key)
bool HasBorder() const
CFX_RectF m_WidgetRect
const IFWL_WidgetDelegate * GetDelegate() const
void DrawBorder(CFGAS_GEGraphics *pGraphics, CFWL_ThemePart::Part iPartBorder, const CFX_Matrix &pMatrix)
void RepaintRect(const CFX_RectF &pRect)
void SetAdapterIface(AdapterIface *pItem)
virtual void ModifyStyleExts(uint32_t dwStyleExtsAdded, uint32_t dwStyleExtsRemoved)
float GetCYBorderSize() const
virtual CFX_RectF GetWidgetRect()
virtual void Update()=0
IFWL_ThemeProvider * GetThemeProvider() const
void CalcTextRect(const WideString &wsText, const FDE_TextStyle &dwTTOStyles, FDE_TextAlignment iTTOAlign, CFX_RectF *pRect)
virtual FWL_Type GetClassID() const =0
bool IsEnabled() const
void SetGrab(bool bSet)
virtual CFX_RectF GetClientRect()
CFWL_WidgetMgr * GetWidgetMgr() const
void ModifyStyles(uint32_t dwStylesAdded, uint32_t dwStylesRemoved)
CFX_Matrix GetMatrix() const
virtual void RemoveStates(uint32_t dwStates)
bool IsPopup() const
~CFWL_Widget() override
void DispatchEvent(CFWL_Event *pEvent)
void OnProcessEvent(CFWL_Event *pEvent) override
CFWL_Widget * GetOutmost() const
void SetWidgetRect(const CFX_RectF &rect)
bool IsLocked() const
virtual void DrawWidget(CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix)=0
virtual void PreFinalize()
CFX_SizeF CalcTextSize(const WideString &wsText, bool bMultiLine)
CFX_RectF GetRelativeRect() const
void UnregisterEventTarget()
uint64_t GetEventKey() const
CFWL_App * GetFWLApp() const
IFWL_WidgetDelegate * GetDelegate()
bool IsChild() const
virtual CFX_RectF GetAutosizedWidgetRect()
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)
~CFXJS_Engine() override
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 InitializeEngine()
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)
Definition cfx_v8.cpp:106
v8::Local< v8::Number > NewNumber(double number)
Definition cfx_v8.cpp:67
void PutObjectProperty(v8::Local< v8::Object > pObj, ByteStringView bsUTF8PropertyName, v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:28
v8::Local< v8::Number > NewNumber(float number)
Definition cfx_v8.cpp:71
double ToDouble(v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:110
WideString ToWideString(v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:114
std::vector< WideString > GetObjectPropertyNames(v8::Local< v8::Object > pObj)
Definition cfx_v8.cpp:23
v8::Isolate * GetIsolate() const
Definition cfx_v8.h:23
v8::Local< v8::Boolean > NewBoolean(bool b)
Definition cfx_v8.cpp:75
v8::Local< v8::Object > ToObject(v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:122
ByteString ToByteString(v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:118
v8::Local< v8::String > NewString(WideStringView str)
Definition cfx_v8.cpp:83
v8::Local< v8::Array > NewArray()
Definition cfx_v8.cpp:40
v8::Local< v8::Array > ToArray(v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:126
v8::Local< v8::Date > NewDate(double d)
Definition cfx_v8.cpp:98
size_t GetArrayLength(v8::Local< v8::Array > pArray)
Definition cfx_v8.cpp:59
v8::Local< v8::Value > NewNull()
Definition cfx_v8.cpp:90
void DisposeIsolate()
Definition cfx_v8.cpp:35
int ToInt32(v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:102
v8::Local< v8::Object > NewObject()
Definition cfx_v8.cpp:44
virtual ~CFX_V8()
v8::Local< v8::Value > GetObjectProperty(v8::Local< v8::Object > pObj, ByteStringView bsUTF8PropertyName)
Definition cfx_v8.cpp:16
v8::Local< v8::Number > NewNumber(int number)
Definition cfx_v8.cpp:63
v8::Local< v8::Value > GetArrayElement(v8::Local< v8::Array > pArray, size_t index)
Definition cfx_v8.cpp:54
v8::Local< v8::String > NewString(ByteStringView str)
Definition cfx_v8.cpp:79
void PutArrayElement(v8::Local< v8::Array > pArray, size_t index, v8::Local< v8::Value > pValue)
Definition cfx_v8.cpp:48
v8::Local< v8::Value > NewUndefined()
Definition cfx_v8.cpp:94
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
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
WideString & Value()
bool WillCommit() const
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 SetValueForTest(WideString *pStr)
v8::Local< v8::Value > MaybeCoerceToNumber(v8::Local< v8::Value > value)
void BeginBlock()
Definition cjs_runtime.h:47
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)
~CJS_Runtime() override
CFX_Timer::HandlerIface * GetTimerHandler() const
void ReleaseEventContext(IJS_EventContext *pContext) override
void RemoveEventFromSet(const FieldEvent &event)
CJS_Runtime * AsCJSRuntime() override
void EndBlock()
Definition cjs_runtime.h:48
bool SetValueByNameInGlobalObject(ByteStringView utf8Name, v8::Local< v8::Value > pValue)
CJS_EventContext * GetCurrentEventContext() const
bool IsBlocking() const
Definition cjs_runtime.h:49
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
WideString GetAppName() override
bool SaveFormPackage(const RetainPtr< IFX_SeekableStream > &pStream)
CFX_Timer::HandlerIface * GetTimerHandler() const override
CXFA_FFDoc * GetXFADoc()
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
~CPDFXFA_Page() override
CPDFSDK_Annot * GetLastXFAAnnot(CPDFSDK_PageView *page_view) const
int GetPageIndex() 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
bool TestStatusBits(Mask< XFA_WidgetStatus > val) const
~CXFA_ContentLayoutItem() override
CXFA_ContentLayoutItem * GetLast()
void ClearStatusBits(Mask< XFA_WidgetStatus > val)
CXFA_ContentLayoutItem * GetFirst()
void SetDocument(CXFA_Document *pDocument)
virtual void Trace(cppgc::Visitor *visitor) const
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)
void set_is_scripting()
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 m_wsPrevText
WideString GetNewText() const
WideString m_wsPrevContentType
CXFA_EventParam & operator=(CXFA_EventParam &&other) noexcept
XFA_EVENTTYPE m_eType
WideString m_wsResult
CXFA_EventParam & operator=(const CXFA_EventParam &other)
WideString m_wsChange
WideString m_wsSoapFaultCode
WideString m_wsNewContentType
CXFA_EventParam(const CXFA_EventParam &other)
WideString m_wsFullText
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
Definition cxfa_ffapp.h:144
void Trace(cppgc::Visitor *visitor) const override
bool LoadFWLTheme(CXFA_FFDoc *doc)
CFWL_WidgetMgr * GetFWLWidgetMgr() const
Definition cxfa_ffapp.h:143
CFX_Timer::HandlerIface * GetTimerHandler() override
CFWL_App * GetFWLApp() const
Definition cxfa_ffapp.h:145
CFWL_WidgetMgr::AdapterIface * GetWidgetMgrAdapter() override
IFWL_ThemeProvider * GetThemeProvider() override
~CXFA_FFApp() override
CXFA_FontMgr * GetXFAFontMgr() const
Definition cxfa_ffapp.h:146
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
Definition cxfa_ffdoc.h:169
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
Definition cxfa_ffdoc.h:166
void Print(int32_t nStartPage, int32_t nEndPage, Mask< XFA_PrintOpt > dwOptions)
void Trace(cppgc::Visitor *visitor) const
CXFA_Document * GetXFADoc() const
Definition cxfa_ffdoc.h:167
FX_ARGB GetHighlightColor() const
void SetCurrentPage(int32_t iCurPage)
void SetCalculationsEnabled(bool bEnabled)
void OnPageViewEvent(CXFA_FFPageView *pPageView, PageViewEvent eEvent)
void PreFinalize()
FormType GetFormType() const
Definition cxfa_ffdoc.h:165
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
Definition cxfa_ffdoc.h:168
void ExportData(const WideString &wsFilePath, bool bXDP)
void SetTitle(const WideString &wsTitle)
IJS_Runtime * GetIJSRuntime() const
void SetChangeMark()
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_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
bool OnMouseMove(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
bool OnLButtonDblClk(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
bool OnRButtonUp(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
WideString GetText(CXFA_FFWidget *widget)
void Trace(cppgc::Visitor *visitor) const
bool Redo(CXFA_FFWidget *widget)
bool CanUndo(CXFA_FFWidget *widget)
bool OnKeyDown(CXFA_FFWidget *hWidget, XFA_FWL_VKEYCODE dwKeyCode, Mask< XFA_FWL_KeyFlag > dwFlags)
bool CanRedo(CXFA_FFWidget *widget)
bool OnChar(CXFA_FFWidget *hWidget, uint32_t dwChar, Mask< XFA_FWL_KeyFlag > dwFlags)
bool OnLButtonDown(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
FWL_WidgetHit HitTest(CXFA_FFWidget *pWidget, const CFX_PointF &point)
XFA_EventError ProcessEvent(CXFA_Node *pNode, CXFA_EventParam *pParam)
bool OnMouseEnter(CXFA_FFWidget *hWidget)
bool HasEvent(CXFA_Node *pNode, XFA_EVENTTYPE eEventType)
bool OnRButtonDown(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
WideString GetSelectedText(CXFA_FFWidget *widget)
void RenderWidget(CXFA_FFWidget *hWidget, CFGAS_GEGraphics *pGS, const CFX_Matrix &matrix, bool bHighlight)
bool SelectAllText(CXFA_FFWidget *widget)
bool Undo(CXFA_FFWidget *widget)
void PasteText(CXFA_FFWidget *widget, const WideString &text)
bool OnMouseExit(CXFA_FFWidget *hWidget)
bool OnLButtonUp(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
bool OnMouseWheel(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point, const CFX_Vector &delta)
bool OnRButtonDblClk(CXFA_FFWidget *hWidget, Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual CXFA_FFWidget * MoveToLast()=0
virtual CXFA_FFWidget * MoveToFirst()=0
virtual CXFA_FFWidget * MoveToPrevious()=0
virtual CXFA_FFWidget * GetCurrentWidget()=0
virtual CXFA_FFWidget * MoveToNext()=0
virtual bool SetCurrentWidget(CXFA_FFWidget *hWidget)=0
virtual ~IteratorIface()=default
virtual bool PtInActiveRect(const CFX_PointF &point)
void DrawBorderWithFlag(CFGAS_GEGraphics *pGS, CXFA_Box *box, const CFX_RectF &rtBorder, const CFX_Matrix &matrix, bool forceRound)
static CXFA_FFWidget * FromLayoutItem(CXFA_LayoutItem *pLayoutItem)
CFX_Matrix GetRotateMatrix() override
virtual bool PerformLayout()
const CFX_RectF & RecacheWidgetRect() const
CXFA_FFWidget * GetNextFFWidget() const
cppgc::Member< CXFA_Node > const m_pNode
virtual absl::optional< WideString > Copy()
virtual bool Paste(const WideString &wsPaste)
virtual bool OnSetFocus(CXFA_FFWidget *pOldWidget)
virtual bool OnLButtonUp(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
const CFX_RectF & GetWidgetRect() const
virtual void RenderWidget(CFGAS_GEGraphics *pGS, const CFX_Matrix &matrix, HighlightOption highlight)
virtual bool OnMouseExit()
CXFA_LayoutItem * GetParent()
void DisplayCaret(bool bVisible, const CFX_RectF *pRtAnchor) override
CXFA_FFWidget(CXFA_Node *pNode)
void SetPageView(CXFA_FFPageView *pPageView)
virtual bool OnRButtonUp(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool Undo()
virtual bool AcceptsFocusOnButtonDown(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point, CFWL_MessageMouse::MouseCommand command)
cppgc::Member< CXFA_FFDocView > m_pDocView
virtual bool Redo()
virtual bool CanUndo()
bool HasEventUnderHandler(XFA_EVENTTYPE eEventType, CXFA_FFWidgetHandler *pHandler)
virtual absl::optional< WideString > Cut()
virtual bool UpdateFWLData()
virtual void UpdateWidgetProperty()
virtual bool CanCopy()
bool IsFocused() const
bool IsAncestorOf(CXFA_FFWidget *pWidget)
virtual bool CanDeSelect()
virtual bool OnRButtonDblClk(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
bool HasVisibleStatus() const
virtual bool OnLButtonDown(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool CanPaste()
virtual bool IsLoaded()
CFWL_App * GetFWLApp() const
CXFA_FFApp::CallbackIface * GetAppProvider()
void SetDocView(CXFA_FFDocView *pDocView)
CXFA_Node * GetNode() const
cppgc::Member< CXFA_ContentLayoutItem > m_pLayoutItem
void Trace(cppgc::Visitor *visitor) const override
void DrawBorder(CFGAS_GEGraphics *pGS, CXFA_Box *box, const CFX_RectF &rtBorder, const CFX_Matrix &matrix)
virtual bool OnChar(uint32_t dwChar, Mask< XFA_FWL_KeyFlag > dwFlags)
virtual FormFieldType GetFormFieldType()
void GetBorderColorAndThickness(FX_ARGB *cr, float *fWidth) override
virtual void Delete()
virtual bool LoadWidget()
void SetButtonDown(bool bSet)
void SetLayoutItem(CXFA_ContentLayoutItem *pItem)
bool ProcessEventUnderHandler(CXFA_EventParam *params, CXFA_FFWidgetHandler *pHandler)
virtual bool OnMouseMove(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool CanCut()
virtual CFX_RectF GetBBox(FocusOption focus)
CXFA_FFDoc * GetDoc()
CXFA_FFApp * GetApp()
cppgc::Member< CXFA_FFPageView > m_pPageView
virtual bool OnKeyDown(XFA_FWL_VKEYCODE dwKeyCode, Mask< XFA_FWL_KeyFlag > dwFlags)
void ModifyStatus(Mask< XFA_WidgetStatus > dwAdded, Mask< XFA_WidgetStatus > dwRemoved)
virtual bool OnLButtonDblClk(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual void DeSelect()
CFX_RectF GetRectWithoutRotate()
CXFA_ContentLayoutItem * GetLayoutItem() const
virtual bool OnKillFocus(CXFA_FFWidget *pNewWidget)
CFX_PointF Rotate2Normal(const CFX_PointF &point)
virtual void SelectAll()
virtual bool OnMouseWheel(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point, const CFX_Vector &delta)
virtual bool CanDelete()
virtual FWL_WidgetHit HitTest(const CFX_PointF &point)
virtual bool CanSelectAll()
CFX_RectF m_WidgetRect
~CXFA_FFWidget() override
CXFA_FFPageView * GetPageView() const
CXFA_FFDocView * GetDocView() const
virtual CXFA_FFField * AsField()
virtual bool CanRedo()
virtual bool OnRButtonDown(Mask< XFA_FWL_KeyFlag > dwFlags, const CFX_PointF &point)
virtual bool OnMouseEnter()
virtual WideString GetText()
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
void PersistList(CXFA_List *list)
void Trace(cppgc::Visitor *visitor) const
CFX_XMLNode * GetXMLMappingNode() const
Definition cxfa_node.h:184
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 IsListBox()
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)
~CXFA_Node() override
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
Definition cxfa_node.h:179
void SetTemplateNode(CXFA_Node *pTemplateNode)
std::vector< CXFA_Node * > GetBindItemsCopy() const
WideString GetRawValue() const
bool IsProperty() 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
Definition cxfa_node.h:166
size_t CountChoiceListItems(bool bSaveValue)
CXFA_Validate * GetValidateIfExists() const
bool IsAttributeInXML()
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
Definition cxfa_node.h:229
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
Definition cxfa_node.h:253
CXFA_Node * CreateSamePacketNode(XFA_Element eType)
void SetPreNull(bool val)
Definition cxfa_node.h:322
std::vector< int32_t > GetSelectedItems()
void UpdateNameHash()
bool GetItemState(int32_t nIndex)
void ClearFlag(XFA_NodeFlag dwFlag)
RetainPtr< CFX_DIBitmap > GetEditImage()
WideString GetNameExpression()
bool HasAttribute(XFA_Attribute attr) const
void SetWidgetReady()
Definition cxfa_node.h:326
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
CFX_RectF GetUIMargin()
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
Definition cxfa_node.h:190
GCedLocaleIface * GetLocale()
CXFA_Node * GetExclGroupNextMember(CXFA_Node *pNode)
CFX_XMLNode * CreateXMLMappingNode()
void SetXMLMappingNode(CFX_XMLNode *node)
Definition cxfa_node.h:183
CXFA_Node * SetSelectedMember(WideStringView wsName)
void SetToXML(const WideString &value)
bool IsUserInteractive() const
Definition cxfa_node.h:162
std::pair< CXFA_Node *, int32_t > GetProperty(int32_t index, XFA_Element eProperty) const
CXFA_Node * CloneTemplateToForm(bool bRecursive)
void ClearAllSelections()
bool HasButtonRollover() const
bool IsUnnamed() const
Definition cxfa_node.h:191
CXFA_Font * GetFontIfExists() const
bool IsNull() const
Definition cxfa_node.h:323
CXFA_Node * GetContainerNode()
T * GetFirstChildByClass(XFA_Element eType) const
Definition cxfa_node.h:244
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
Definition cxfa_node.h:165
XFA_EventError ProcessEvent(CXFA_FFDocView *pDocView, XFA_AttributeValue iActivity, CXFA_EventParam *pEventParam)
bool IsMultiLine()
T * GetChild(size_t index, XFA_Element eType, bool bOnlyChild)
Definition cxfa_node.h:198
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
Definition cxfa_node.h:327
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)
bool HasBindItem() const
void ResetData()
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
Definition cxfa_node.h:146
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
Definition cxfa_node.h:249
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
void SetIsNull(bool val)
Definition cxfa_node.h:324
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
Definition cxfa_node.h:203
bool IsNeedSavingXMLNode() const
std::pair< XFA_Element, int32_t > GetMaxChars() const
absl::optional< int32_t > GetNumberOfCells()
void SetInitializedFlagAndNotify()
bool IsInitialized() const
Definition cxfa_node.h:161
size_t GetIndexByName()
int32_t GetCount()
CXFA_Node * GetModelNode()
bool IsRadioButton()
bool HasRemovedChildren() const
Definition cxfa_node.h:174
CXFA_Border * GetBorderIfExists() const
bool IsContainerNode() const
Definition cxfa_object.h:69
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
CXFA_FFPageView * GetPageView() const
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 ~IFWL_WidgetDelegate()=default
virtual void OnDrawWidget(CFGAS_GEGraphics *pGraphics, const CFX_Matrix &matrix)=0
virtual void OnProcessEvent(CFWL_Event *pEvent)=0
virtual void OnProcessMessage(CFWL_Message *pMessage)=0
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 WideString FromUTF16LE(pdfium::span< const uint8_t > data)
GCedTreeNode & operator=(const GCedTreeNode &that)=delete
GCedTreeNode()=default
virtual void Trace(cppgc::Visitor *visitor) const
GCedTreeNode(const GCedTreeNode &that)=delete
FormFieldType
void CPDFXFA_ModuleInit()
void CPDFXFA_ModuleDestroy()
CXFA_FFWidget * GetFFWidget(CXFA_ContentLayoutItem *item)
XFA_VERSION
@ XFA_VERSION_UNKNOWN
@ XFA_VERSION_207
@ XFA_VERSION_306
@ XFA_VERSION_206
@ XFA_VERSION_MAX
@ XFA_VERSION_205
@ XFA_VERSION_300
@ XFA_VERSION_208
@ XFA_VERSION_200
@ XFA_VERSION_204
@ XFA_VERSION_202
@ XFA_VERSION_301
@ XFA_VERSION_303
@ XFA_VERSION_MIN
@ XFA_VERSION_DEFAULT
XFA_EVENTTYPE
@ XFA_EVENT_PostOpen
@ XFA_EVENT_Click
@ XFA_EVENT_MouseDown
@ XFA_EVENT_InitCalculate
@ XFA_EVENT_InitVariables
@ XFA_EVENT_MouseEnter
@ XFA_EVENT_Initialize
@ XFA_EVENT_PostSave
@ XFA_EVENT_PreOpen
@ XFA_EVENT_PostPrint
@ XFA_EVENT_PostExecute
@ XFA_EVENT_PreSign
@ XFA_EVENT_PreSubmit
@ XFA_EVENT_Exit
@ XFA_EVENT_Change
@ XFA_EVENT_DocReady
@ XFA_EVENT_Unknown
@ XFA_EVENT_PreSave
@ XFA_EVENT_Calculate
@ XFA_EVENT_PrePrint
@ XFA_EVENT_PostSign
@ XFA_EVENT_MouseUp
@ XFA_EVENT_Validate
@ XFA_EVENT_Ready
@ XFA_EVENT_IndexChange
@ XFA_EVENT_PreExecute
@ XFA_EVENT_DocClose
@ XFA_EVENT_PostSubmit
@ XFA_EVENT_Full
@ XFA_EVENT_MouseExit
@ XFA_EVENT_Enter
const XFA_AttributeValue kXFAEventActivity[]
float XFA_UnitPx2Pt(float fPx, float fDpi)
CXFA_FFField * ToField(CXFA_FFWidget *widget)
constexpr float kXFAWidgetPrecision
RetainPtr< CFX_DIBitmap > XFA_LoadImageFromBuffer(RetainPtr< IFX_SeekableReadStream > pImageFileRead, FXCODEC_IMAGE_TYPE type, int32_t &iImageXDpi, int32_t &iImageYDpi)
void XFA_RectWithoutMargin(CFX_RectF *rt, const CXFA_Margin *margin)
void XFA_DrawImage(CFGAS_GEGraphics *pGS, const CFX_RectF &rtImage, const CFX_Matrix &matrix, RetainPtr< CFX_DIBitmap > pDIBitmap, XFA_AttributeValue iAspect, const CFX_Size &dpi, XFA_AttributeValue iHorzAlign, XFA_AttributeValue iVertAlign)
XFA_FFWidgetType
CXFA_ContentLayoutItem * ToContentLayoutItem(CXFA_LayoutItem *item)
CXFA_ViewLayoutItem * ToViewLayoutItem(CXFA_LayoutItem *item)
void XFA_ReleaseLayoutItem(CXFA_LayoutItem *pLayoutItem)
XFA_PropertyFlag
Definition cxfa_node.h:88
XFA_NodeFilter
Definition cxfa_node.h:58
XFA_NodeFlag
Definition cxfa_node.h:77
XFA_ValuePicture
Definition cxfa_node.h:70
XFA_CheckState
Definition cxfa_node.h:64
XFA_ObjectType
Definition cxfa_object.h:21
CXFA_Node * ToNode(CXFA_Object *pObj)
#define JSPLATFORM_ALERT_BUTTON_DEFAULT
#define JSPLATFORM_ALERT_ICON_ASTERISK
#define JSPLATFORM_ALERT_BUTTON_OKCANCEL
#define JSPLATFORM_ALERT_ICON_ERROR
#define JSPLATFORM_ALERT_BUTTON_YESNO
#define JSPLATFORM_ALERT_ICON_DEFAULT
#define JSPLATFORM_ALERT_ICON_WARNING
#define JSPLATFORM_ALERT_BUTTON_OK
#define JSPLATFORM_ALERT_ICON_QUESTION
#define JSPLATFORM_ALERT_ICON_STATUS
#define JSPLATFORM_ALERT_BUTTON_YESNOCANCEL
XFA_FWL_KeyFlag
XFA_FWL_VKEYCODE
@ XFA_FWL_VKEY_N
@ XFA_FWL_VKEY_C
@ XFA_FWL_VKEY_RShift
@ XFA_FWL_VKEY_Y
@ XFA_FWL_VKEY_NumPad4
@ XFA_FWL_VKEY_F24
@ XFA_FWL_VKEY_MEDIA_LAUNCH_APP1
@ XFA_FWL_VKEY_BROWSER_Back
@ XFA_FWL_VKEY_LWin
@ XFA_FWL_VKEY_Next
@ XFA_FWL_VKEY_Down
@ XFA_FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select
@ XFA_FWL_VKEY_6
@ XFA_FWL_VKEY_Execute
@ XFA_FWL_VKEY_F10
@ XFA_FWL_VKEY_F11
@ XFA_FWL_VKEY_F6
@ XFA_FWL_VKEY_F3
@ XFA_FWL_VKEY_Crsel
@ XFA_FWL_VKEY_F9
@ XFA_FWL_VKEY_Convert
@ XFA_FWL_VKEY_PA1
@ XFA_FWL_VKEY_OEM_Comma
@ XFA_FWL_VKEY_J
@ XFA_FWL_VKEY_Control
@ XFA_FWL_VKEY_F12
@ XFA_FWL_VKEY_F20
@ XFA_FWL_VKEY_OEM_1
@ XFA_FWL_VKEY_MEDIA_LAUNCH_Mail
@ XFA_FWL_VKEY_8
@ XFA_FWL_VKEY_LMenu
@ XFA_FWL_VKEY_Unknown
@ XFA_FWL_VKEY_U
@ XFA_FWL_VKEY_W
@ XFA_FWL_VKEY_Back
@ XFA_FWL_VKEY_B
@ XFA_FWL_VKEY_NumPad7
@ XFA_FWL_VKEY_Ereof
@ XFA_FWL_VKEY_P
@ XFA_FWL_VKEY_Prior
@ XFA_FWL_VKEY_Attn
@ XFA_FWL_VKEY_Decimal
@ XFA_FWL_VKEY_Left
@ XFA_FWL_VKEY_Divide
@ XFA_FWL_VKEY_OEM_Minus
@ XFA_FWL_VKEY_BROWSER_Favorites
@ XFA_FWL_VKEY_E
@ XFA_FWL_VKEY_T
@ XFA_FWL_VKEY_Help
@ XFA_FWL_VKEY_F13
@ XFA_FWL_VKEY_Space
@ XFA_FWL_VKEY_MEDIA_Stop
@ XFA_FWL_VKEY_X
@ XFA_FWL_VKEY_9
@ XFA_FWL_VKEY_O
@ XFA_FWL_VKEY_Print
@ XFA_FWL_VKEY_G
@ XFA_FWL_VKEY_L
@ XFA_FWL_VKEY_Delete
@ XFA_FWL_VKEY_OEM_Plus
@ XFA_FWL_VKEY_Capital
@ XFA_FWL_VKEY_NumPad9
@ XFA_FWL_VKEY_OEM_102
@ XFA_FWL_VKEY_NumPad1
@ XFA_FWL_VKEY_Exsel
@ XFA_FWL_VKEY_Home
@ XFA_FWL_VKEY_Q
@ XFA_FWL_VKEY_Packet
@ XFA_FWL_VKEY_NewLine
@ XFA_FWL_VKEY_LControl
@ XFA_FWL_VKEY_D
@ XFA_FWL_VKEY_7
@ XFA_FWL_VKEY_LShift
@ XFA_FWL_VKEY_Menu
@ XFA_FWL_VKEY_2
@ XFA_FWL_VKEY_Apps
@ XFA_FWL_VKEY_NumPad0
@ XFA_FWL_VKEY_OEM_Period
@ XFA_FWL_VKEY_5
@ XFA_FWL_VKEY_MEDIA_NEXT_Track
@ XFA_FWL_VKEY_MEDIA_LAUNCH_APP2
@ XFA_FWL_VKEY_BROWSER_Stop
@ XFA_FWL_VKEY_NoName
@ XFA_FWL_VKEY_Kana
@ XFA_FWL_VKEY_K
@ XFA_FWL_VKEY_V
@ XFA_FWL_VKEY_Shift
@ XFA_FWL_VKEY_Add
@ XFA_FWL_VKEY_Insert
@ XFA_FWL_VKEY_RControl
@ XFA_FWL_VKEY_I
@ XFA_FWL_VKEY_Escape
@ XFA_FWL_VKEY_OEM_3
@ XFA_FWL_VKEY_Hangul
@ XFA_FWL_VKEY_ProcessKey
@ XFA_FWL_VKEY_Z
@ XFA_FWL_VKEY_F21
@ XFA_FWL_VKEY_F7
@ XFA_FWL_VKEY_F17
@ XFA_FWL_VKEY_End
@ XFA_FWL_VKEY_F1
@ XFA_FWL_VKEY_RMenu
@ XFA_FWL_VKEY_NumPad6
@ XFA_FWL_VKEY_Pause
@ XFA_FWL_VKEY_Junja
@ XFA_FWL_VKEY_VOLUME_Down
@ XFA_FWL_VKEY_OEM_6
@ XFA_FWL_VKEY_A
@ XFA_FWL_VKEY_RWin
@ XFA_FWL_VKEY_H
@ XFA_FWL_VKEY_OEM_7
@ XFA_FWL_VKEY_Final
@ XFA_FWL_VKEY_F4
@ XFA_FWL_VKEY_F19
@ XFA_FWL_VKEY_F8
@ XFA_FWL_VKEY_Return
@ XFA_FWL_VKEY_VOLUME_Mute
@ XFA_FWL_VKEY_Select
@ XFA_FWL_VKEY_Hanja
@ XFA_FWL_VKEY_OEM_8
@ XFA_FWL_VKEY_M
@ XFA_FWL_VKEY_0
@ XFA_FWL_VKEY_F22
@ XFA_FWL_VKEY_NumPad5
@ XFA_FWL_VKEY_R
@ XFA_FWL_VKEY_F15
@ XFA_FWL_VKEY_OEM_2
@ XFA_FWL_VKEY_OEM_Clear
@ XFA_FWL_VKEY_Tab
@ XFA_FWL_VKEY_MEDIA_PREV_Track
@ XFA_FWL_VKEY_ModeChange
@ XFA_FWL_VKEY_Subtract
@ XFA_FWL_VKEY_NumPad8
@ XFA_FWL_VKEY_Zoom
@ XFA_FWL_VKEY_MEDIA_PLAY_Pause
@ XFA_FWL_VKEY_Command
@ XFA_FWL_VKEY_Snapshot
@ XFA_FWL_VKEY_Scroll
@ XFA_FWL_VKEY_F23
@ XFA_FWL_VKEY_NonConvert
@ XFA_FWL_VKEY_NunLock
@ XFA_FWL_VKEY_F18
@ XFA_FWL_VKEY_OEM_5
@ XFA_FWL_VKEY_BROWSER_Forward
@ XFA_FWL_VKEY_F16
@ XFA_FWL_VKEY_Play
@ XFA_FWL_VKEY_Up
@ XFA_FWL_VKEY_BROWSER_Refresh
@ XFA_FWL_VKEY_Sleep
@ XFA_FWL_VKEY_BROWSER_Search
@ XFA_FWL_VKEY_Right
@ XFA_FWL_VKEY_NumPad2
@ XFA_FWL_VKEY_VOLUME_Up
@ XFA_FWL_VKEY_4
@ XFA_FWL_VKEY_Clear
@ XFA_FWL_VKEY_NumPad3
@ XFA_FWL_VKEY_3
@ XFA_FWL_VKEY_F14
@ XFA_FWL_VKEY_Accept
@ XFA_FWL_VKEY_Multiply
@ XFA_FWL_VKEY_BROWSER_Home
@ XFA_FWL_VKEY_OEM_4
@ XFA_FWL_VKEY_Separator
@ XFA_FWL_VKEY_S
@ XFA_FWL_VKEY_F2
@ XFA_FWL_VKEY_1
@ XFA_FWL_VKEY_F5
@ XFA_FWL_VKEY_F
@ XFA_FWL_VKEY_Kanji
FWL_WidgetHit
AlertIcon
Definition fxfa.h:20
XFA_PrintOpt
Definition fxfa.h:45
AlertButton
Definition fxfa.h:11
XFA_EventError
Definition fxfa.h:54
AlertReturn
Definition fxfa.h:30
XFA_WidgetStatus
Definition fxfa.h:61
FormType
Definition fxfa.h:38
@ kXFAForeground
XFA_Unit
Definition fxfa_basic.h:91
XFA_AttributeType
Definition fxfa_basic.h:83
XFA_Attribute
Definition fxfa_basic.h:67
XFA_XDPPACKET
Definition fxfa_basic.h:51
XFA_HashCode
Definition fxfa_basic.h:12
@ XFA_HASHCODE_Host
Definition fxfa_basic.h:24
@ XFA_HASHCODE_Log
Definition fxfa_basic.h:27
@ XFA_HASHCODE_Config
Definition fxfa_basic.h:15
@ XFA_HASHCODE_LocaleSet
Definition fxfa_basic.h:26
@ XFA_HASHCODE_Stylesheet
Definition fxfa_basic.h:34
@ XFA_HASHCODE_Xfdf
Definition fxfa_basic.h:40
@ XFA_HASHCODE_Name
Definition fxfa_basic.h:28
@ XFA_HASHCODE_XDP
Definition fxfa_basic.h:38
@ XFA_HASHCODE_DataWindow
Definition fxfa_basic.h:20
@ XFA_HASHCODE_Xfa
Definition fxfa_basic.h:39
@ XFA_HASHCODE_Template
Definition fxfa_basic.h:35
@ XFA_HASHCODE_None
Definition fxfa_basic.h:13
@ XFA_HASHCODE_Signature
Definition fxfa_basic.h:32
@ XFA_HASHCODE_Xdc
Definition fxfa_basic.h:37
@ XFA_HASHCODE_Data
Definition fxfa_basic.h:17
@ XFA_HASHCODE_Datasets
Definition fxfa_basic.h:19
@ XFA_HASHCODE_Form
Definition fxfa_basic.h:22
@ XFA_HASHCODE_Event
Definition fxfa_basic.h:21
@ XFA_HASHCODE_Pdf
Definition fxfa_basic.h:30
@ XFA_HASHCODE_ConnectionSet
Definition fxfa_basic.h:16
@ XFA_HASHCODE_Group
Definition fxfa_basic.h:23
@ XFA_HASHCODE_SourceSet
Definition fxfa_basic.h:33
@ XFA_HASHCODE_Record
Definition fxfa_basic.h:31
@ XFA_HASHCODE_Xmpmeta
Definition fxfa_basic.h:41
@ XFA_HASHCODE_This
Definition fxfa_basic.h:36
@ XFA_HASHCODE_DataDescription
Definition fxfa_basic.h:18
@ XFA_HASHCODE_Occur
Definition fxfa_basic.h:29
@ XFA_HASHCODE_Layout
Definition fxfa_basic.h:25
XFA_Element
Definition fxfa_basic.h:75
XFA_AttributeValue
Definition fxfa_basic.h:60
XFA_PacketType
Definition fxfa_basic.h:44
XFA_ScriptType
Definition fxfa_basic.h:104
FXGCScopedHeap FXGC_CreateHeap()
Definition heap.cpp:66
void FXGC_Release()
Definition heap.cpp:59
void FXGC_Initialize(v8::Platform *platform, v8::Isolate *isolate)
Definition heap.cpp:51
void FXGC_ForceGarbageCollection(cppgc::Heap *heap)
Definition heap.cpp:86
#define CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED
Definition heap.h:32
Definition heap.h:12
#define CONSTRUCT_VIA_MAKE_RETAIN
Definition retain_ptr.h:224
XFA_AttributeType type
Definition cxfa_node.h:111
UNOWNED_PTR_EXCLUSION void * default_value
Definition cxfa_node.h:112
XFA_Attribute attribute
Definition cxfa_node.h:110
XFA_EventError xfa_event_result
Definition cxfa_node.h:116
constexpr PropertyData(XFA_Element property, uint8_t occurrence_count, Mask< XFA_PropertyFlag > flags)
Definition cxfa_node.h:97
Mask< XFA_PropertyFlag > flags
Definition cxfa_node.h:106
FDE_TextStyle()=default
~FDE_TextStyle()=default
bool last_line_height_
Definition cfde_data.h:31
bool single_line_
Definition cfde_data.h:29
bool line_wrap_
Definition cfde_data.h:30
void Reset()
Definition cfde_data.h:23
void operator()(cppgc::Heap *heap)
Definition heap.cpp:91
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
Definition cxfa_ffdoc.h:50
#define UNOWNED_PTR_EXCLUSION