• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_FXFA_BASIC_H_
8  #define XFA_FXFA_FXFA_BASIC_H_
9  
10  #include "fxjs/fxjse.h"
11  
12  class CJX_Object;
13  class CXFA_Measurement;
14  enum class XFA_ObjectType;
15  
16  enum XFA_HashCode : uint32_t {
17    XFA_HASHCODE_None = 0,
18  
19    XFA_HASHCODE_Config = 0x4e1e39b6,
20    XFA_HASHCODE_ConnectionSet = 0xe14c801c,
21    XFA_HASHCODE_Data = 0xbde9abda,
22    XFA_HASHCODE_DataDescription = 0x2b5df51e,
23    XFA_HASHCODE_Datasets = 0x99b95079,
24    XFA_HASHCODE_DataWindow = 0x83a550d2,
25    XFA_HASHCODE_Event = 0x185e41e2,
26    XFA_HASHCODE_Form = 0xcd309ff4,
27    XFA_HASHCODE_Group = 0xf7f75fcd,
28    XFA_HASHCODE_Host = 0xdb075bde,
29    XFA_HASHCODE_Layout = 0x7e7e845e,
30    XFA_HASHCODE_LocaleSet = 0x5473b6dc,
31    XFA_HASHCODE_Log = 0x0b1b3d22,
32    XFA_HASHCODE_Name = 0x31b19c1,
33    XFA_HASHCODE_Occur = 0xf7eebe1c,
34    XFA_HASHCODE_Pdf = 0xb843dba,
35    XFA_HASHCODE_Record = 0x5779d65f,
36    XFA_HASHCODE_Signature = 0x8b036f32,
37    XFA_HASHCODE_SourceSet = 0x811929d,
38    XFA_HASHCODE_Stylesheet = 0x6038580a,
39    XFA_HASHCODE_Template = 0x803550fc,
40    XFA_HASHCODE_This = 0x2d574d58,
41    XFA_HASHCODE_Xdc = 0xc56afbf,
42    XFA_HASHCODE_XDP = 0xc56afcc,
43    XFA_HASHCODE_Xfa = 0xc56b9ff,
44    XFA_HASHCODE_Xfdf = 0x48d004a8,
45    XFA_HASHCODE_Xmpmeta = 0x132a8fbc
46  };
47  
48  enum class XFA_PacketType : uint8_t {
49    User,
50    SourceSet,
51    Pdf,
52    Xdc,
53    Xdp,
54    Xmpmeta,
55    Xfdf,
56    Config,
57    LocaleSet,
58    Stylesheet,
59    Template,
60    Signature,
61    Datasets,
62    Form,
63    ConnectionSet,
64  };
65  
66  enum XFA_XDPPACKET {
67    XFA_XDPPACKET_UNKNOWN = 0,
68    XFA_XDPPACKET_Config = 1 << static_cast<uint8_t>(XFA_PacketType::Config),
69    XFA_XDPPACKET_Template = 1 << static_cast<uint8_t>(XFA_PacketType::Template),
70    XFA_XDPPACKET_Datasets = 1 << static_cast<uint8_t>(XFA_PacketType::Datasets),
71    XFA_XDPPACKET_Form = 1 << static_cast<uint8_t>(XFA_PacketType::Form),
72    XFA_XDPPACKET_LocaleSet = 1
73                              << static_cast<uint8_t>(XFA_PacketType::LocaleSet),
74    XFA_XDPPACKET_ConnectionSet =
75        1 << static_cast<uint8_t>(XFA_PacketType::ConnectionSet),
76    XFA_XDPPACKET_SourceSet = 1
77                              << static_cast<uint8_t>(XFA_PacketType::SourceSet),
78    XFA_XDPPACKET_Xdc = 1 << static_cast<uint8_t>(XFA_PacketType::Xdc),
79    XFA_XDPPACKET_Pdf = 1 << static_cast<uint8_t>(XFA_PacketType::Pdf),
80    XFA_XDPPACKET_Xfdf = 1 << static_cast<uint8_t>(XFA_PacketType::Xfdf),
81    XFA_XDPPACKET_Xmpmeta = 1 << static_cast<uint8_t>(XFA_PacketType::Xmpmeta),
82    XFA_XDPPACKET_Signature = 1
83                              << static_cast<uint8_t>(XFA_PacketType::Signature),
84    XFA_XDPPACKET_Stylesheet =
85        1 << static_cast<uint8_t>(XFA_PacketType::Stylesheet),
86    XFA_XDPPACKET_USER = 1 << static_cast<uint8_t>(XFA_PacketType::User),
87    XFA_XDPPACKET_XDP = 1 << static_cast<uint8_t>(XFA_PacketType::Xdp)
88  };
89  
90  enum XFA_XDPPACKET_FLAGS {
91    XFA_XDPPACKET_FLAGS_COMPLETEMATCH = 1,
92    XFA_XDPPACKET_FLAGS_PREFIXMATCH = 2,
93    XFA_XDPPACKET_FLAGS_NOMATCH = 4,
94    XFA_XDPPACKET_FLAGS_SUPPORTONE = 8,
95    XFA_XDPPACKET_FLAGS_SUPPORTMANY = 16,
96  };
97  
98  enum class XFA_AttributeEnum : uint32_t {
99    Asterisk,
100    Slash,
101    Backslash,
102    On,
103    Tb,
104    Up,
105    MetaData,
106    Delegate,
107    PostSubmit,
108    Name,
109    Cross,
110    Next,
111    None,
112    ShortEdge,
113    Checksum_1mod10_1mod11,
114    Height,
115    CrossDiagonal,
116    All,
117    Any,
118    ToRight,
119    MatchTemplate,
120    Dpl,
121    Invisible,
122    Fit,
123    Width,
124    PreSubmit,
125    Ipl,
126    FlateCompress,
127    Med,
128    Odd,
129    Off,
130    Pdf,
131    Row,
132    Top,
133    Xdp,
134    Xfd,
135    Xml,
136    Zip,
137    Zpl,
138    Visible,
139    Exclude,
140    MouseEnter,
141    Pair,
142    Filter,
143    MoveLast,
144    ExportAndImport,
145    Push,
146    Portrait,
147    Default,
148    StoredProc,
149    StayBOF,
150    StayEOF,
151    PostPrint,
152    UsCarrier,
153    Right,
154    PreOpen,
155    Actual,
156    Rest,
157    TopCenter,
158    StandardSymbol,
159    Initialize,
160    JustifyAll,
161    Normal,
162    Landscape,
163    NonInteractive,
164    MouseExit,
165    Minus,
166    DiagonalLeft,
167    SimplexPaginated,
168    Document,
169    Warning,
170    Auto,
171    Below,
172    BottomLeft,
173    BottomCenter,
174    Tcpl,
175    Text,
176    Grouping,
177    SecureSymbol,
178    PreExecute,
179    DocClose,
180    Keyset,
181    Vertical,
182    PreSave,
183    PreSign,
184    Bottom,
185    ToTop,
186    Verify,
187    First,
188    ContentArea,
189    Solid,
190    Pessimistic,
191    DuplexPaginated,
192    Round,
193    Remerge,
194    Ordered,
195    Percent,
196    Even,
197    Exit,
198    ToolTip,
199    OrderedOccurrence,
200    ReadOnly,
201    Currency,
202    Concat,
203    Thai,
204    Embossed,
205    Formdata,
206    Greek,
207    Decimal,
208    Select,
209    LongEdge,
210    Protected,
211    BottomRight,
212    Zero,
213    ForwardOnly,
214    DocReady,
215    Hidden,
216    Include,
217    Dashed,
218    MultiSelect,
219    Inactive,
220    Embed,
221    Static,
222    OnEntry,
223    Cyrillic,
224    NonBlank,
225    TopRight,
226    Hebrew,
227    TopLeft,
228    Center,
229    MoveFirst,
230    Diamond,
231    PageOdd,
232    Checksum_1mod10,
233    Korean,
234    AboveEmbedded,
235    ZipCompress,
236    Numeric,
237    Circle,
238    ToBottom,
239    Inverted,
240    Update,
241    Isoname,
242    Server,
243    Position,
244    MiddleCenter,
245    Optional,
246    UsePrinterSetting,
247    Outline,
248    IndexChange,
249    Change,
250    PageArea,
251    Once,
252    Only,
253    Open,
254    Caption,
255    Raised,
256    Justify,
257    RefAndDescendants,
258    Short,
259    PageFront,
260    Monospace,
261    Middle,
262    PrePrint,
263    Always,
264    Unknown,
265    ToLeft,
266    Above,
267    DashDot,
268    Gregorian,
269    Roman,
270    MouseDown,
271    Symbol,
272    PageEven,
273    Sign,
274    AddNew,
275    Star,
276    Optimistic,
277    Rl_tb,
278    MiddleRight,
279    Maintain,
280    Package,
281    SimplifiedChinese,
282    ToCenter,
283    Back,
284    Unspecified,
285    BatchOptimistic,
286    Bold,
287    Both,
288    Butt,
289    Client,
290    Checksum_2mod10,
291    ImageOnly,
292    Horizontal,
293    Dotted,
294    UserControl,
295    DiagonalRight,
296    ConsumeData,
297    Check,
298    Data,
299    Down,
300    SansSerif,
301    Inline,
302    TraditionalChinese,
303    Warn,
304    RefOnly,
305    InteractiveForms,
306    Word,
307    Unordered,
308    Required,
309    ImportOnly,
310    BelowEmbedded,
311    Japanese,
312    Full,
313    Rl_row,
314    Vietnamese,
315    EastEuropeanRoman,
316    MouseUp,
317    ExportOnly,
318    Clear,
319    Click,
320    Base64,
321    Close,
322    Host,
323    Global,
324    Blank,
325    Table,
326    Import,
327    Custom,
328    MiddleLeft,
329    PostExecute,
330    Radix,
331    PostOpen,
332    Enter,
333    Ignore,
334    Lr_tb,
335    Fantasy,
336    Italic,
337    Author,
338    ToEdge,
339    Choice,
340    Disabled,
341    CrossHatch,
342    DataRef,
343    DashDotDot,
344    Square,
345    Dynamic,
346    Manual,
347    Etched,
348    ValidationState,
349    Cursive,
350    Last,
351    Left,
352    Link,
353    Long,
354    InternationalCarrier,
355    PDF1_3,
356    PDF1_6,
357    Serif,
358    PostSave,
359    Ready,
360    PostSign,
361    Arabic,
362    Error,
363    Urlencoded,
364    Lowered
365  };
366  
367  enum class XFA_Attribute : uint8_t {
368    H = 0,
369    W,
370    X,
371    Y,
372    Id,
373    To,
374    LineThrough,
375    HAlign,
376    Typeface,
377    BeforeTarget,
378    Name,
379    Next,
380    DataRowCount,
381    Break,
382    VScrollPolicy,
383    FontHorizontalScale,
384    TextIndent,
385    Context,
386    TrayOut,
387    Cap,
388    Max,
389    Min,
390    Ref,
391    Rid,
392    Url,
393    Use,
394    LeftInset,
395    Widows,
396    Level,
397    BottomInset,
398    OverflowTarget,
399    AllowMacro,
400    PagePosition,
401    ColumnWidths,
402    OverflowLeader,
403    Action,
404    NonRepudiation,
405    Rate,
406    AllowRichText,
407    Role,
408    OverflowTrailer,
409    Operation,
410    Timeout,
411    TopInset,
412    Access,
413    CommandType,
414    Format,
415    DataPrep,
416    WidgetData,
417    Abbr,
418    MarginRight,
419    DataDescription,
420    EncipherOnly,
421    KerningMode,
422    Rotate,
423    WordCharacterCount,
424    Type,
425    Reserve,
426    TextLocation,
427    Priority,
428    Underline,
429    ModuleWidth,
430    Hyphenate,
431    Listen,
432    Delimiter,
433    ContentType,
434    StartNew,
435    EofAction,
436    AllowNeutral,
437    Connection,
438    BaselineShift,
439    OverlinePeriod,
440    FracDigits,
441    Orientation,
442    TimeStamp,
443    PrintCheckDigit,
444    MarginLeft,
445    Stroke,
446    ModuleHeight,
447    TransferEncoding,
448    Usage,
449    Presence,
450    RadixOffset,
451    Preserve,
452    AliasNode,
453    MultiLine,
454    Version,
455    StartChar,
456    ScriptTest,
457    StartAngle,
458    CursorType,
459    DigitalSignature,
460    CodeType,
461    Output,
462    BookendTrailer,
463    ImagingBBox,
464    ExcludeInitialCap,
465    Force,
466    CrlSign,
467    Previous,
468    PushCharacterCount,
469    NullTest,
470    RunAt,
471    SpaceBelow,
472    SweepAngle,
473    NumberOfCells,
474    LetterSpacing,
475    LockType,
476    PasswordChar,
477    VAlign,
478    SourceBelow,
479    Inverted,
480    Mark,
481    MaxH,
482    MaxW,
483    Truncate,
484    MinH,
485    MinW,
486    Initial,
487    Mode,
488    Layout,
489    Server,
490    EmbedPDF,
491    OddOrEven,
492    TabDefault,
493    Contains,
494    RightInset,
495    MaxChars,
496    Open,
497    Relation,
498    WideNarrowRatio,
499    Relevant,
500    SignatureType,
501    LineThroughPeriod,
502    Shape,
503    TabStops,
504    OutputBelow,
505    Short,
506    FontVerticalScale,
507    Thickness,
508    CommitOn,
509    RemainCharacterCount,
510    KeyAgreement,
511    ErrorCorrectionLevel,
512    UpsMode,
513    MergeMode,
514    Circular,
515    PsName,
516    Trailer,
517    UnicodeRange,
518    ExecuteType,
519    DuplexImposition,
520    TrayIn,
521    BindingNode,
522    BofAction,
523    Save,
524    TargetType,
525    KeyEncipherment,
526    CredentialServerPolicy,
527    Size,
528    InitialNumber,
529    Slope,
530    CSpace,
531    ColSpan,
532    Binding,
533    Checksum,
534    CharEncoding,
535    Bind,
536    TextEntry,
537    Archive,
538    Uuid,
539    Posture,
540    After,
541    Orphans,
542    QualifiedName,
543    Usehref,
544    Locale,
545    Weight,
546    UnderlinePeriod,
547    Data,
548    Desc,
549    Numbered,
550    DataColumnCount,
551    Overline,
552    UrlPolicy,
553    AnchorType,
554    LabelRef,
555    BookendLeader,
556    MaxLength,
557    AccessKey,
558    CursorLocation,
559    DelayedOpen,
560    Target,
561    DataEncipherment,
562    AfterTarget,
563    Leader,
564    Picker,
565    From,
566    BaseProfile,
567    Aspect,
568    RowColumnRatio,
569    LineHeight,
570    Highlight,
571    ValueRef,
572    MaxEntries,
573    DataLength,
574    Activity,
575    Input,
576    Value,
577    BlankOrNotBlank,
578    AddRevocationInfo,
579    GenericFamily,
580    Hand,
581    Href,
582    TextEncoding,
583    LeadDigits,
584    Permissions,
585    SpaceAbove,
586    CodeBase,
587    Stock,
588    IsNull,
589    RestoreState,
590    ExcludeAllCaps,
591    FormatTest,
592    HScrollPolicy,
593    Join,
594    KeyCertSign,
595    Radius,
596    SourceAbove,
597    Override,
598    ClassId,
599    Disable,
600    Scope,
601    Match,
602    Placement,
603    Before,
604    WritingScript,
605    EndChar,
606    Lock,
607    Long,
608    Intact,
609    XdpContent,
610    DecipherOnly,
611    Unknown = 255,
612  };
613  
614  enum class XFA_Element : int32_t {
615    Unknown = -1,
616  
617    Ps,
618    To,
619    Ui,
620    RecordSet,
621    SubsetBelow,
622    SubformSet,
623    AdobeExtensionLevel,
624    Typeface,
625    Break,
626    FontInfo,
627    NumberPattern,
628    DynamicRender,
629    PrintScaling,
630    CheckButton,
631    DatePatterns,
632    SourceSet,
633    Amd,
634    Arc,
635    Day,
636    Era,
637    Jog,
638    Log,
639    Map,
640    Mdp,
641    BreakBefore,
642    Oid,
643    Pcl,
644    Pdf,
645    Ref,
646    Uri,
647    Xdc,
648    Xdp,
649    Xfa,
650    Xsl,
651    Zpl,
652    Cache,
653    Margin,
654    KeyUsage,
655    Exclude,
656    ChoiceList,
657    Level,
658    LabelPrinter,
659    CalendarSymbols,
660    Para,
661    Part,
662    Pdfa,
663    Filter,
664    Present,
665    Pagination,
666    Encoding,
667    Event,
668    Whitespace,
669    DefaultUi,
670    DataModel,
671    Barcode,
672    TimePattern,
673    BatchOutput,
674    Enforce,
675    CurrencySymbols,
676    AddSilentPrint,
677    Rename,
678    Operation,
679    Typefaces,
680    SubjectDNs,
681    Issuers,
682    SignaturePseudoModel,
683    WsdlConnection,
684    Debug,
685    Delta,
686    EraNames,
687    ModifyAnnots,
688    StartNode,
689    Button,
690    Format,
691    Border,
692    Area,
693    Hyphenation,
694    Text,
695    Time,
696    Type,
697    Overprint,
698    Certificates,
699    EncryptionMethods,
700    SetProperty,
701    PrinterName,
702    StartPage,
703    PageOffset,
704    DateTime,
705    Comb,
706    Pattern,
707    IfEmpty,
708    SuppressBanner,
709    OutputBin,
710    Field,
711    Agent,
712    OutputXSL,
713    AdjustData,
714    AutoSave,
715    ContentArea,
716    EventPseudoModel,
717    WsdlAddress,
718    Solid,
719    DateTimeSymbols,
720    EncryptionLevel,
721    Edge,
722    Stipple,
723    Attributes,
724    VersionControl,
725    Meridiem,
726    ExclGroup,
727    ToolTip,
728    Compress,
729    Reason,
730    Execute,
731    ContentCopy,
732    DateTimeEdit,
733    Config,
734    Image,
735    SharpxHTML,
736    NumberOfCopies,
737    BehaviorOverride,
738    TimeStamp,
739    Month,
740    ViewerPreferences,
741    ScriptModel,
742    Decimal,
743    Subform,
744    Select,
745    Window,
746    LocaleSet,
747    Handler,
748    HostPseudoModel,
749    Presence,
750    Record,
751    Embed,
752    Version,
753    Command,
754    Copies,
755    Staple,
756    SubmitFormat,
757    Boolean,
758    Message,
759    Output,
760    PsMap,
761    ExcludeNS,
762    Assist,
763    Picture,
764    Traversal,
765    SilentPrint,
766    WebClient,
767    LayoutPseudoModel,
768    Producer,
769    Corner,
770    MsgId,
771    Color,
772    Keep,
773    Query,
774    Insert,
775    ImageEdit,
776    Validate,
777    DigestMethods,
778    NumberPatterns,
779    PageSet,
780    Integer,
781    SoapAddress,
782    Equate,
783    FormFieldFilling,
784    PageRange,
785    Update,
786    ConnectString,
787    Mode,
788    Layout,
789    Sharpxml,
790    XsdConnection,
791    Traverse,
792    Encodings,
793    Template,
794    Acrobat,
795    ValidationMessaging,
796    Signing,
797    DataWindow,
798    Script,
799    AddViewerPreferences,
800    AlwaysEmbed,
801    PasswordEdit,
802    NumericEdit,
803    EncryptionMethod,
804    Change,
805    PageArea,
806    SubmitUrl,
807    Oids,
808    Signature,
809    ADBE_JSConsole,
810    Caption,
811    Relevant,
812    FlipLabel,
813    ExData,
814    DayNames,
815    SoapAction,
816    DefaultTypeface,
817    Manifest,
818    Overflow,
819    Linear,
820    CurrencySymbol,
821    Delete,
822    Deltas,
823    DigestMethod,
824    InstanceManager,
825    EquateRange,
826    Medium,
827    TextEdit,
828    TemplateCache,
829    CompressObjectStream,
830    DataValue,
831    AccessibleContent,
832    TreeList,
833    IncludeXDPContent,
834    XmlConnection,
835    ValidateApprovalSignatures,
836    SignData,
837    Packets,
838    DatePattern,
839    DuplexOption,
840    Base,
841    Bind,
842    Compression,
843    User,
844    Rectangle,
845    EffectiveOutputPolicy,
846    ADBE_JSDebugger,
847    Acrobat7,
848    Interactive,
849    Locale,
850    CurrentPage,
851    Data,
852    Date,
853    Desc,
854    Encrypt,
855    Draw,
856    Encryption,
857    MeridiemNames,
858    Messaging,
859    Speak,
860    DataGroup,
861    Common,
862    Sharptext,
863    PaginationOverride,
864    Reasons,
865    SignatureProperties,
866    Threshold,
867    AppearanceFilter,
868    Fill,
869    Font,
870    Form,
871    MediumInfo,
872    Certificate,
873    Password,
874    RunScripts,
875    Trace,
876    Float,
877    RenderPolicy,
878    LogPseudoModel,
879    Destination,
880    Value,
881    Bookend,
882    ExObject,
883    OpenAction,
884    NeverEmbed,
885    BindItems,
886    Calculate,
887    Print,
888    Extras,
889    Proto,
890    DSigData,
891    Creator,
892    Connect,
893    Permissions,
894    ConnectionSet,
895    Submit,
896    Range,
897    Linearized,
898    Packet,
899    RootElement,
900    PlaintextMetadata,
901    NumberSymbols,
902    PrintHighQuality,
903    Driver,
904    IncrementalLoad,
905    SubjectDN,
906    CompressLogicalStructure,
907    IncrementalMerge,
908    Radial,
909    Variables,
910    TimePatterns,
911    EffectiveInputPolicy,
912    NameAttr,
913    Conformance,
914    Transform,
915    LockDocument,
916    BreakAfter,
917    Line,
918    List,
919    Source,
920    Occur,
921    PickTrayByPDFSize,
922    MonthNames,
923    Severity,
924    GroupParent,
925    DocumentAssembly,
926    NumberSymbol,
927    Tagged,
928    Items
929  };
930  
931  enum class XFA_AttributeType : uint8_t {
932    Enum,
933    CData,
934    Boolean,
935    Integer,
936    Measure,
937  };
938  
939  struct XFA_SCRIPTHIERARCHY {
940    uint16_t wAttributeStart;
941    uint16_t wAttributeCount;
942    int16_t wParentIndex;
943  };
944  
945  #define XFA_PROPERTYFLAG_OneOf 0x01
946  #define XFA_PROPERTYFLAG_DefaultOneOf 0x02
947  
948  struct XFA_AttributeEnumInfo {
949    uint32_t uHash;
950    const wchar_t* pName;
951    XFA_AttributeEnum eName;
952  };
953  
954  enum class XFA_Unit : uint8_t {
955    Percent = 0,
956    Em,
957    Pt,
958    In,
959    Pc,
960    Cm,
961    Mm,
962    Mp,
963  
964    Unknown = 255,
965  };
966  
967  typedef void (CJX_Object::*XFA_ATTRIBUTE_CALLBACK)(CFXJSE_Value* pValue,
968                                                     bool bSetting,
969                                                     XFA_Attribute eAttribute);
970  enum class XFA_ScriptType : uint8_t {
971    Basic,
972    Object,
973  };
974  
975  struct XFA_SCRIPTATTRIBUTEINFO {
976    uint32_t uHash;
977    const wchar_t* pName;
978    XFA_ATTRIBUTE_CALLBACK callback;
979    XFA_Attribute attribute;
980    XFA_ScriptType eValueType;
981  };
982  
983  #endif  // XFA_FXFA_FXFA_BASIC_H_
984