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 _SCRIPT_LAYOUTPSEUDOMODEL_H_
8 #define _SCRIPT_LAYOUTPSEUDOMODEL_H_
9 enum XFA_LAYOUTMODEL_HWXY {
10   XFA_LAYOUTMODEL_H,
11   XFA_LAYOUTMODEL_W,
12   XFA_LAYOUTMODEL_X,
13   XFA_LAYOUTMODEL_Y
14 };
15 class CScript_LayoutPseudoModel : public CXFA_OrdinaryObject {
16  public:
17   CScript_LayoutPseudoModel(CXFA_Document* pDocument);
18   ~CScript_LayoutPseudoModel();
19 
20   void Script_LayoutPseudoModel_Ready(FXJSE_HVALUE hValue,
21                                       FX_BOOL bSetting,
22                                       XFA_ATTRIBUTE eAttribute);
23 
24   void Script_LayoutPseudoModel_HWXY(CFXJSE_Arguments* pArguments,
25                                      XFA_LAYOUTMODEL_HWXY layoutModel);
26   void Script_LayoutPseudoModel_H(CFXJSE_Arguments* pArguments);
27   void Script_LayoutPseudoModel_W(CFXJSE_Arguments* pArguments);
28   void Script_LayoutPseudoModel_X(CFXJSE_Arguments* pArguments);
29   void Script_LayoutPseudoModel_Y(CFXJSE_Arguments* pArguments);
30   void Script_LayoutPseudoModel_NumberedPageCount(CFXJSE_Arguments* pArguments,
31                                                   FX_BOOL bNumbered);
32   void Script_LayoutPseudoModel_PageCount(CFXJSE_Arguments* pArguments);
33   void Script_LayoutPseudoModel_PageSpan(CFXJSE_Arguments* pArguments);
34   void Script_LayoutPseudoModel_Page(CFXJSE_Arguments* pArguments);
35   void Script_LayoutPseudoModel_PageContent(CFXJSE_Arguments* pArguments);
36   void Script_LayoutPseudoModel_AbsPageCount(CFXJSE_Arguments* pArguments);
37   void Script_LayoutPseudoModel_AbsPageCountInBatch(
38       CFXJSE_Arguments* pArguments);
39   void Script_LayoutPseudoModel_SheetCountInBatch(CFXJSE_Arguments* pArguments);
40   void Script_LayoutPseudoModel_Relayout(CFXJSE_Arguments* pArguments);
41   void Script_LayoutPseudoModel_AbsPageSpan(CFXJSE_Arguments* pArguments);
42   void Script_LayoutPseudoModel_AbsPageInBatch(CFXJSE_Arguments* pArguments);
43   void Script_LayoutPseudoModel_SheetInBatch(CFXJSE_Arguments* pArguments);
44   void Script_LayoutPseudoModel_Sheet(CFXJSE_Arguments* pArguments);
45   void Script_LayoutPseudoModel_RelayoutPageArea(CFXJSE_Arguments* pArguments);
46   void Script_LayoutPseudoModel_SheetCount(CFXJSE_Arguments* pArguments);
47   void Script_LayoutPseudoModel_AbsPage(CFXJSE_Arguments* pArguments);
48 
49  protected:
50   void Script_LayoutPseudoModel_GetObjArray(IXFA_DocLayout* pDocLayout,
51                                             int32_t iPageNo,
52                                             const CFX_WideString& wsType,
53                                             FX_BOOL bOnPageArea,
54                                             CXFA_NodeArray& retArray);
55   void Script_LayoutPseudoModel_PageImp(CFXJSE_Arguments* pArguments,
56                                         FX_BOOL bAbsPage);
57 };
58 #endif
59