1 // Copyright 2014 PDFium Authors. All rights reserved. 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_XFA_SCRIPT_LAYOUTPSEUDOMODEL_H_ 8 #define XFA_FXFA_PARSER_XFA_SCRIPT_LAYOUTPSEUDOMODEL_H_ 9 10 #include "fxjs/include/cfxjse_arguments.h" 11 #include "xfa/fxfa/parser/xfa_doclayout.h" 12 #include "xfa/fxfa/parser/xfa_object.h" 13 14 enum XFA_LAYOUTMODEL_HWXY { 15 XFA_LAYOUTMODEL_H, 16 XFA_LAYOUTMODEL_W, 17 XFA_LAYOUTMODEL_X, 18 XFA_LAYOUTMODEL_Y 19 }; 20 21 class CScript_LayoutPseudoModel : public CXFA_Object { 22 public: 23 explicit CScript_LayoutPseudoModel(CXFA_Document* pDocument); 24 ~CScript_LayoutPseudoModel() override; 25 26 void Ready(CFXJSE_Value* pValue, FX_BOOL bSetting, XFA_ATTRIBUTE eAttribute); 27 28 void HWXY(CFXJSE_Arguments* pArguments, XFA_LAYOUTMODEL_HWXY layoutModel); 29 void H(CFXJSE_Arguments* pArguments); 30 void W(CFXJSE_Arguments* pArguments); 31 void X(CFXJSE_Arguments* pArguments); 32 void Y(CFXJSE_Arguments* pArguments); 33 void NumberedPageCount(CFXJSE_Arguments* pArguments, FX_BOOL bNumbered); 34 void PageCount(CFXJSE_Arguments* pArguments); 35 void PageSpan(CFXJSE_Arguments* pArguments); 36 void Page(CFXJSE_Arguments* pArguments); 37 void PageContent(CFXJSE_Arguments* pArguments); 38 void AbsPageCount(CFXJSE_Arguments* pArguments); 39 void AbsPageCountInBatch(CFXJSE_Arguments* pArguments); 40 void SheetCountInBatch(CFXJSE_Arguments* pArguments); 41 void Relayout(CFXJSE_Arguments* pArguments); 42 void AbsPageSpan(CFXJSE_Arguments* pArguments); 43 void AbsPageInBatch(CFXJSE_Arguments* pArguments); 44 void SheetInBatch(CFXJSE_Arguments* pArguments); 45 void Sheet(CFXJSE_Arguments* pArguments); 46 void RelayoutPageArea(CFXJSE_Arguments* pArguments); 47 void SheetCount(CFXJSE_Arguments* pArguments); 48 void AbsPage(CFXJSE_Arguments* pArguments); 49 50 protected: 51 void GetObjArray(CXFA_LayoutProcessor* pDocLayout, 52 int32_t iPageNo, 53 const CFX_WideString& wsType, 54 FX_BOOL bOnPageArea, 55 CXFA_NodeArray& retArray); 56 void PageImp(CFXJSE_Arguments* pArguments, FX_BOOL bAbsPage); 57 }; 58 59 #endif // XFA_FXFA_PARSER_XFA_SCRIPT_LAYOUTPSEUDOMODEL_H_ 60