diff --git a/autoclass/adapter/docx/NumberingAdapter@DOCX.tsf b/autoclass/adapter/docx/NumberingAdapter@DOCX.tsf new file mode 100644 index 0000000..3aa7289 --- /dev/null +++ b/autoclass/adapter/docx/NumberingAdapter@DOCX.tsf @@ -0,0 +1,55 @@ +type NumberingAdapter = class +public + function Create(_obj: Numbering); + function Init(); + + property AbstractNumId read ReadAbstractNumId write WriteAbstractNumId; + property NumId read ReadNumId write WriteNumId; + function ReadAbstractNumId(_key: string); + function WriteAbstractNumId(_key: string; _value: tslobj); + function ReadNumId(_key: string); + function WriteNumId(_key: string; _value: tslobj); + +private + object_: Numbering; + abstractnum_hash_: tableArray; + num_hash_: tableArray; +end; + +function NumberingAdapter.Create(_obj: Numbering); +begin + object_ := _obj; + abstractnum_hash_ := array(); + num_hash_ := array(); + self.Init(); +end; + +function NumberingAdapter.Init(); +begin + elements := object_.AbstractNums; + for k,v in elements do + abstractnum_hash_[v.AbstractNumId] := v; + elements := object_.Nums; + for k,v in elements do + num_hash_[v.NumId] := v; +end; + +function NumberingAdapter.ReadAbstractNumId(_key: string); +begin + return abstractnum_hash_[_key]; +end; + +function NumberingAdapter.WriteAbstractNumId(_key: string; _value: tslobj); +begin + abstractnum_hash_[_key] := _value; +end; + +function NumberingAdapter.ReadNumId(_key: string); +begin + return num_hash_[_key]; +end; + +function NumberingAdapter.WriteNumId(_key: string; _value: tslobj); +begin + num_hash_[_key] := _value; +end; diff --git a/autoclass/adapter/docx/RelationshipsAdapter@DOCX.tsf b/autoclass/adapter/docx/RelationshipsAdapter@DOCX.tsf new file mode 100644 index 0000000..261493a --- /dev/null +++ b/autoclass/adapter/docx/RelationshipsAdapter@DOCX.tsf @@ -0,0 +1,37 @@ +type RelationshipsAdapter = class +public + function Create(_obj: Relationships); + function Init(); + + property Id read ReadId write WriteId; + function ReadId(_key: string); + function WriteId(_key: string; _value: tslobj); + +private + object_: Relationships; + relationship_hash_: tableArray; +end; + +function RelationshipsAdapter.Create(_obj: Relationships); +begin + object_ := _obj; + relationship_hash_ := array(); + self.Init(); +end; + +function RelationshipsAdapter.Init(); +begin + elements := object_.Relationships; + for k,v in elements do + relationship_hash_[v.Id] := v; +end; + +function RelationshipsAdapter.ReadId(_key: string); +begin + return relationship_hash_[_key]; +end; + +function RelationshipsAdapter.WriteId(_key: string; _value: tslobj); +begin + relationship_hash_[_key] := _value; +end; diff --git a/autoclass/adapter/docx/StylesAdapter@DOCX.tsf b/autoclass/adapter/docx/StylesAdapter@DOCX.tsf new file mode 100644 index 0000000..f42337c --- /dev/null +++ b/autoclass/adapter/docx/StylesAdapter@DOCX.tsf @@ -0,0 +1,37 @@ +type StylesAdapter = class +public + function Create(_obj: Styles); + function Init(); + + property StyleId read ReadStyleId write WriteStyleId; + function ReadStyleId(_key: string); + function WriteStyleId(_key: string; _value: tslobj); + +private + object_: Styles; + style_hash_: tableArray; +end; + +function StylesAdapter.Create(_obj: Styles); +begin + object_ := _obj; + style_hash_ := array(); + self.Init(); +end; + +function StylesAdapter.Init(); +begin + elements := object_.Styles; + for k,v in elements do + style_hash_[v.StyleId] := v; +end; + +function StylesAdapter.ReadStyleId(_key: string); +begin + return style_hash_[_key]; +end; + +function StylesAdapter.WriteStyleId(_key: string; _value: tslobj); +begin + style_hash_[_key] := _value; +end; diff --git a/autoclass/decorator/docx/APPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/APPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..470e919 --- /dev/null +++ b/autoclass/decorator/docx/APPrUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type APPrUnitDecorator = class(APPr) +uses TSSafeUnitConverter; +public + function Create(_obj: APPr); + function Converte(); +private + object_: APPr; +end; + +function APPrUnitDecorator.Create(_obj: APPr); +begin + class(APPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function APPrUnitDecorator.Converte(); +begin + self.DefRPr := new ARPrUnitDecorator(object_.DefRPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ARPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ARPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..fe6eaaa --- /dev/null +++ b/autoclass/decorator/docx/ARPrUnitDecorator@DOCX.tsf @@ -0,0 +1,33 @@ +type ARPrUnitDecorator = class(ARPr) +uses TSSafeUnitConverter; +public + function Create(_obj: ARPr); + function Converte(); +private + object_: ARPr; +end; + +function ARPrUnitDecorator.Create(_obj: ARPr); +begin + class(ARPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function ARPrUnitDecorator.Converte(); +begin + self.XmlAttrLang.Value := object_.XmlAttrLang.Value; + self.XmlAttrAltLang.Value := object_.XmlAttrAltLang.Value; + self.XmlAttrB.Value := object_.XmlAttrB.Value; + self.XmlAttrBaseline.Value := object_.XmlAttrBaseline.Value; + self.XmlAttrI.Value := object_.XmlAttrI.Value; + self.XmlAttrKern.Value := object_.XmlAttrKern.Value; + self.XmlAttrSpc.Value := object_.XmlAttrSpc.Value; + self.XmlAttrStrike.Value := object_.XmlAttrStrike.Value; + self.XmlAttrSz.Value := object_.XmlAttrSz.Value; + self.XmlAttrU.Value := object_.XmlAttrU.Value; + self.SolidFill := new SolidFillUnitDecorator(object_.SolidFill); + self.Latin := new LatinUnitDecorator(object_.Latin); + self.Ea := new LatinUnitDecorator(object_.Ea); + self.Cs := new LatinUnitDecorator(object_.Cs); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ARUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ARUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..41c26f3 --- /dev/null +++ b/autoclass/decorator/docx/ARUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ARUnitDecorator = class(AR) +uses TSSafeUnitConverter; +public + function Create(_obj: AR); + function Converte(); +private + object_: AR; +end; + +function ARUnitDecorator.Create(_obj: AR); +begin + class(AR).Create(); + object_ := _obj; + self.Converte(); +end; + +function ARUnitDecorator.Converte(); +begin + self.RPr := new ARPrUnitDecorator(object_.RPr); + self.T := new TUnitDecorator(object_.T); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/AbstractNumUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/AbstractNumUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8b8c985 --- /dev/null +++ b/autoclass/decorator/docx/AbstractNumUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type AbstractNumUnitDecorator = class(AbstractNum) +uses TSSafeUnitConverter; +public + function Create(_obj: AbstractNum); + function Converte(); +private + object_: AbstractNum; +end; + +function AbstractNumUnitDecorator.Create(_obj: AbstractNum); +begin + class(AbstractNum).Create(); + object_ := _obj; + self.Converte(); +end; + +function AbstractNumUnitDecorator.Converte(); +begin + self.XmlAttrAbstractNumId.Value := object_.XmlAttrAbstractNumId.Value; + self.XmlAttrRestartNumberingAfterBreak.Value := object_.XmlAttrRestartNumberingAfterBreak.Value; + self.Nsid := new PureWValUnitDecorator(object_.Nsid); + self.MultiLevelType := new PureWValUnitDecorator(object_.MultiLevelType); + self.Tmpl := new PureWValUnitDecorator(object_.Tmpl); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/AlternateContentUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/AlternateContentUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..14ace73 --- /dev/null +++ b/autoclass/decorator/docx/AlternateContentUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type AlternateContentUnitDecorator = class(AlternateContent) +uses TSSafeUnitConverter; +public + function Create(_obj: AlternateContent); + function Converte(); +private + object_: AlternateContent; +end; + +function AlternateContentUnitDecorator.Create(_obj: AlternateContent); +begin + class(AlternateContent).Create(); + object_ := _obj; + self.Converte(); +end; + +function AlternateContentUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.Choice := new ChoiceUnitDecorator(object_.Choice); + self.Fallback := new FallbackUnitDecorator(object_.Fallback); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ApUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ApUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3c4e517 --- /dev/null +++ b/autoclass/decorator/docx/ApUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ApUnitDecorator = class(Ap) +uses TSSafeUnitConverter; +public + function Create(_obj: Ap); + function Converte(); +private + object_: Ap; +end; + +function ApUnitDecorator.Create(_obj: Ap); +begin + class(Ap).Create(); + object_ := _obj; + self.Converte(); +end; + +function ApUnitDecorator.Converte(); +begin + self.PPr := new APPrUnitDecorator(object_.PPr); + self.EndParaRPr := new ARPrUnitDecorator(object_.EndParaRPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/AxUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/AxUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2329740 --- /dev/null +++ b/autoclass/decorator/docx/AxUnitDecorator@DOCX.tsf @@ -0,0 +1,36 @@ +type AxUnitDecorator = class(Ax) +uses TSSafeUnitConverter; +public + function Create(_obj: Ax); + function Converte(); +private + object_: Ax; +end; + +function AxUnitDecorator.Create(_obj: Ax); +begin + class(Ax).Create(); + object_ := _obj; + self.Converte(); +end; + +function AxUnitDecorator.Converte(); +begin + self.AxId := new PureValUnitDecorator(object_.AxId); + self.Scaling := new ScalingUnitDecorator(object_.Scaling); + self._Delete := new PureValUnitDecorator(object_._Delete); + self.AxPos := new PureValUnitDecorator(object_.AxPos); + self.NumFmt := new NumFmtUnitDecorator(object_.NumFmt); + self.MajorTickMark := new PureValUnitDecorator(object_.MajorTickMark); + self.MinorTickMark := new PureValUnitDecorator(object_.MinorTickMark); + self.TickLblPos := new PureValUnitDecorator(object_.TickLblPos); + self.SpPr := new SpPrUnitDecorator(object_.SpPr); + self.TxPr := new TxPrUnitDecorator(object_.TxPr); + self.CrossAx := new PureValUnitDecorator(object_.CrossAx); + self.Crosses := new PureValUnitDecorator(object_.Crosses); + self.CrossBetween := new PureValUnitDecorator(object_.CrossBetween); + self.Auto := new PureValUnitDecorator(object_.Auto); + self.LblAlgn := new PureValUnitDecorator(object_.LblAlgn); + self.LblOffset := new PureValUnitDecorator(object_.LblOffset); + self.NoMultiLvlLbl := new PureValUnitDecorator(object_.NoMultiLvlLbl); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BarChartUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BarChartUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..95b71d6 --- /dev/null +++ b/autoclass/decorator/docx/BarChartUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type BarChartUnitDecorator = class(BarChart) +uses TSSafeUnitConverter; +public + function Create(_obj: BarChart); + function Converte(); +private + object_: BarChart; +end; + +function BarChartUnitDecorator.Create(_obj: BarChart); +begin + class(BarChart).Create(); + object_ := _obj; + self.Converte(); +end; + +function BarChartUnitDecorator.Converte(); +begin + self.BarDir := new PureValUnitDecorator(object_.BarDir); + self.Grouping := new PureValUnitDecorator(object_.Grouping); + self.VaryColors := new PureValUnitDecorator(object_.VaryColors); + self.GapWidth := new PureValUnitDecorator(object_.GapWidth); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BlipFillUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BlipFillUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..ac5397f --- /dev/null +++ b/autoclass/decorator/docx/BlipFillUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type BlipFillUnitDecorator = class(BlipFill) +uses TSSafeUnitConverter; +public + function Create(_obj: BlipFill); + function Converte(); +private + object_: BlipFill; +end; + +function BlipFillUnitDecorator.Create(_obj: BlipFill); +begin + class(BlipFill).Create(); + object_ := _obj; + self.Converte(); +end; + +function BlipFillUnitDecorator.Converte(); +begin + self.Blip := new BlipUnitDecorator(object_.Blip); + self.Stretch := new StretchUnitDecorator(object_.Stretch); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BlipUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BlipUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..a455087 --- /dev/null +++ b/autoclass/decorator/docx/BlipUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type BlipUnitDecorator = class(Blip) +uses TSSafeUnitConverter; +public + function Create(_obj: Blip); + function Converte(); +private + object_: Blip; +end; + +function BlipUnitDecorator.Create(_obj: Blip); +begin + class(Blip).Create(); + object_ := _obj; + self.Converte(); +end; + +function BlipUnitDecorator.Converte(); +begin + self.XmlAttrEmbed.Value := object_.XmlAttrEmbed.Value; + self.XmlAttrCstate.Value := object_.XmlAttrCstate.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BodyPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BodyPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9f4b420 --- /dev/null +++ b/autoclass/decorator/docx/BodyPrUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type BodyPrUnitDecorator = class(BodyPr) +uses TSSafeUnitConverter; +public + function Create(_obj: BodyPr); + function Converte(); +private + object_: BodyPr; +end; + +function BodyPrUnitDecorator.Create(_obj: BodyPr); +begin + class(BodyPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function BodyPrUnitDecorator.Converte(); +begin + self.XmlAttrRot.Value := object_.XmlAttrRot.Value; + self.XmlAttrSpcFirstLastPara.Value := object_.XmlAttrSpcFirstLastPara.Value; + self.XmlAttrVertOverflow.Value := object_.XmlAttrVertOverflow.Value; + self.XmlAttrVert.Value := object_.XmlAttrVert.Value; + self.XmlAttrWrap.Value := object_.XmlAttrWrap.Value; + self.XmlAttrAnchor.Value := object_.XmlAttrAnchor.Value; + self.XmlAttrAnchorCtr.Value := object_.XmlAttrAnchorCtr.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BodyUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BodyUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f592a2b --- /dev/null +++ b/autoclass/decorator/docx/BodyUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type BodyUnitDecorator = class(Body) +uses TSSafeUnitConverter; +public + function Create(_obj: Body); + function Converte(); +private + object_: Body; +end; + +function BodyUnitDecorator.Create(_obj: Body); +begin + class(Body).Create(); + object_ := _obj; + self.Converte(); +end; + +function BodyUnitDecorator.Converte(); +begin + self.SectPr := new SectPrUnitDecorator(object_.SectPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BookmarkUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BookmarkUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..c39d0ee --- /dev/null +++ b/autoclass/decorator/docx/BookmarkUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type BookmarkUnitDecorator = class(Bookmark) +uses TSSafeUnitConverter; +public + function Create(_obj: Bookmark); + function Converte(); +private + object_: Bookmark; +end; + +function BookmarkUnitDecorator.Create(_obj: Bookmark); +begin + class(Bookmark).Create(); + object_ := _obj; + self.Converte(); +end; + +function BookmarkUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.XmlAttrId.Value := object_.XmlAttrId.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/BrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/BrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..918fb92 --- /dev/null +++ b/autoclass/decorator/docx/BrUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type BrUnitDecorator = class(Br) +uses TSSafeUnitConverter; +public + function Create(_obj: Br); + function Converte(); +private + object_: Br; +end; + +function BrUnitDecorator.Create(_obj: Br); +begin + class(Br).Create(); + object_ := _obj; + self.Converte(); +end; + +function BrUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CNvGraphicFramePrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CNvGraphicFramePrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f18ee4c --- /dev/null +++ b/autoclass/decorator/docx/CNvGraphicFramePrUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type CNvGraphicFramePrUnitDecorator = class(CNvGraphicFramePr) +uses TSSafeUnitConverter; +public + function Create(_obj: CNvGraphicFramePr); + function Converte(); +private + object_: CNvGraphicFramePr; +end; + +function CNvGraphicFramePrUnitDecorator.Create(_obj: CNvGraphicFramePr); +begin + class(CNvGraphicFramePr).Create(); + object_ := _obj; + self.Converte(); +end; + +function CNvGraphicFramePrUnitDecorator.Converte(); +begin + self.GraphicFrameLocks := new GraphicFrameLocksUnitDecorator(object_.GraphicFrameLocks); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CNvPicPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CNvPicPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0e59b85 --- /dev/null +++ b/autoclass/decorator/docx/CNvPicPrUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type CNvPicPrUnitDecorator = class(CNvPicPr) +uses TSSafeUnitConverter; +public + function Create(_obj: CNvPicPr); + function Converte(); +private + object_: CNvPicPr; +end; + +function CNvPicPrUnitDecorator.Create(_obj: CNvPicPr); +begin + class(CNvPicPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function CNvPicPrUnitDecorator.Converte(); +begin + self.PicLocks := new PicLocksUnitDecorator(object_.PicLocks); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CNvPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CNvPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6b42b0d --- /dev/null +++ b/autoclass/decorator/docx/CNvPrUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type CNvPrUnitDecorator = class(CNvPr) +uses TSSafeUnitConverter; +public + function Create(_obj: CNvPr); + function Converte(); +private + object_: CNvPr; +end; + +function CNvPrUnitDecorator.Create(_obj: CNvPr); +begin + class(CNvPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function CNvPrUnitDecorator.Converte(); +begin + self.XmlAttrId.Value := object_.XmlAttrId.Value; + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.XmlAttrDescr.Value := object_.XmlAttrDescr.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CXYUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CXYUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..1b1b531 --- /dev/null +++ b/autoclass/decorator/docx/CXYUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type CXYUnitDecorator = class(CXY) +uses TSSafeUnitConverter; +public + function Create(_obj: CXY); + function Converte(); +private + object_: CXY; +end; + +function CXYUnitDecorator.Create(_obj: CXY); +begin + class(CXY).Create(); + object_ := _obj; + self.Converte(); +end; + +function CXYUnitDecorator.Converte(); +begin + self.XmlAttrCx.Value := TSSafeUnitConverter.EmusToPoints(object_.XmlAttrCx.Value); + self.XmlAttrCy.Value := TSSafeUnitConverter.EmusToPoints(object_.XmlAttrCy.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CacheUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CacheUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..91542c2 --- /dev/null +++ b/autoclass/decorator/docx/CacheUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type CacheUnitDecorator = class(Cache) +uses TSSafeUnitConverter; +public + function Create(_obj: Cache); + function Converte(); +private + object_: Cache; +end; + +function CacheUnitDecorator.Create(_obj: Cache); +begin + class(Cache).Create(); + object_ := _obj; + self.Converte(); +end; + +function CacheUnitDecorator.Converte(); +begin + self.PtCount := new PureValUnitDecorator(object_.PtCount); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CatUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CatUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..20c4fac --- /dev/null +++ b/autoclass/decorator/docx/CatUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type CatUnitDecorator = class(Cat) +uses TSSafeUnitConverter; +public + function Create(_obj: Cat); + function Converte(); +private + object_: Cat; +end; + +function CatUnitDecorator.Create(_obj: Cat); +begin + class(Cat).Create(); + object_ := _obj; + self.Converte(); +end; + +function CatUnitDecorator.Converte(); +begin + self.StrRef := new StrRefUnitDecorator(object_.StrRef); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ChartSpaceUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ChartSpaceUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6780394 --- /dev/null +++ b/autoclass/decorator/docx/ChartSpaceUnitDecorator@DOCX.tsf @@ -0,0 +1,29 @@ +type ChartSpaceUnitDecorator = class(ChartSpace) +uses TSSafeUnitConverter; +public + function Create(_obj: ChartSpace); + function Converte(); +private + object_: ChartSpace; +end; + +function ChartSpaceUnitDecorator.Create(_obj: ChartSpace); +begin + class(ChartSpace).Create(); + object_ := _obj; + self.Converte(); +end; + +function ChartSpaceUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsC.Value := object_.XmlAttrXmlnsC.Value; + self.XmlAttrXmlnsA.Value := object_.XmlAttrXmlnsA.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.Date1904 := new PureValUnitDecorator(object_.Date1904); + self.Lang := new PureValUnitDecorator(object_.Lang); + if not ifnil(object_.XmlChildLang.Value) then self.XmlChildLang.Value := object_.XmlChildLang.Value; + self.AlternateContent := new AlternateContentUnitDecorator(object_.AlternateContent); + self.Chart := new ChartUnitDecorator(object_.Chart); + self.SpPr := new SpPrUnitDecorator(object_.SpPr); + self.ExternalData := new ExternalDataUnitDecorator(object_.ExternalData); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ChartUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ChartUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..c691a34 --- /dev/null +++ b/autoclass/decorator/docx/ChartUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type ChartUnitDecorator = class(Chart) +uses TSSafeUnitConverter; +public + function Create(_obj: Chart); + function Converte(); +private + object_: Chart; +end; + +function ChartUnitDecorator.Create(_obj: Chart); +begin + class(Chart).Create(); + object_ := _obj; + self.Converte(); +end; + +function ChartUnitDecorator.Converte(); +begin + self.Title := new TitleUnitDecorator(object_.Title); + self.AutoTitleDeleted := new PureValUnitDecorator(object_.AutoTitleDeleted); + self.View3D := new View3DUnitDecorator(object_.View3D); + self.PlotArea := new PlotAreaUnitDecorator(object_.PlotArea); + self.Legend := new LegendUnitDecorator(object_.Legend); + self.PlotVisOnly := new PureValUnitDecorator(object_.PlotVisOnly); + self.DispBlanksAs := new PureValUnitDecorator(object_.DispBlanksAs); + self.ShowDLblsOverMax := new PureValUnitDecorator(object_.ShowDLblsOverMax); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ChoiceUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ChoiceUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..1700c06 --- /dev/null +++ b/autoclass/decorator/docx/ChoiceUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type ChoiceUnitDecorator = class(Choice) +uses TSSafeUnitConverter; +public + function Create(_obj: Choice); + function Converte(); +private + object_: Choice; +end; + +function ChoiceUnitDecorator.Create(_obj: Choice); +begin + class(Choice).Create(); + object_ := _obj; + self.Converte(); +end; + +function ChoiceUnitDecorator.Converte(); +begin + self.XmlAttrRequires.Value := object_.XmlAttrRequires.Value; + self.XmlAttrXmlnsC14.Value := object_.XmlAttrXmlnsC14.Value; + self.Style := new PureValUnitDecorator(object_.Style); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/Clr1UnitDecorator@DOCX.tsf b/autoclass/decorator/docx/Clr1UnitDecorator@DOCX.tsf new file mode 100644 index 0000000..dbbca49 --- /dev/null +++ b/autoclass/decorator/docx/Clr1UnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type Clr1UnitDecorator = class(Clr1) +uses TSSafeUnitConverter; +public + function Create(_obj: Clr1); + function Converte(); +private + object_: Clr1; +end; + +function Clr1UnitDecorator.Create(_obj: Clr1); +begin + class(Clr1).Create(); + object_ := _obj; + self.Converte(); +end; + +function Clr1UnitDecorator.Converte(); +begin + self.SysClr := new SysClrUnitDecorator(object_.SysClr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/Clr2UnitDecorator@DOCX.tsf b/autoclass/decorator/docx/Clr2UnitDecorator@DOCX.tsf new file mode 100644 index 0000000..63fa632 --- /dev/null +++ b/autoclass/decorator/docx/Clr2UnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type Clr2UnitDecorator = class(Clr2) +uses TSSafeUnitConverter; +public + function Create(_obj: Clr2); + function Converte(); +private + object_: Clr2; +end; + +function Clr2UnitDecorator.Create(_obj: Clr2); +begin + class(Clr2).Create(); + object_ := _obj; + self.Converte(); +end; + +function Clr2UnitDecorator.Converte(); +begin + self.SrgbClr := new SrgbClrUnitDecorator(object_.SrgbClr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ClrSchemeUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ClrSchemeUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e817bce --- /dev/null +++ b/autoclass/decorator/docx/ClrSchemeUnitDecorator@DOCX.tsf @@ -0,0 +1,32 @@ +type ClrSchemeUnitDecorator = class(ClrScheme) +uses TSSafeUnitConverter; +public + function Create(_obj: ClrScheme); + function Converte(); +private + object_: ClrScheme; +end; + +function ClrSchemeUnitDecorator.Create(_obj: ClrScheme); +begin + class(ClrScheme).Create(); + object_ := _obj; + self.Converte(); +end; + +function ClrSchemeUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.Dk1 := new Clr1UnitDecorator(object_.Dk1); + self.Lt1 := new Clr1UnitDecorator(object_.Lt1); + self.Dk2 := new Clr2UnitDecorator(object_.Dk2); + self.Lt2 := new Clr2UnitDecorator(object_.Lt2); + self.Accent1 := new Clr2UnitDecorator(object_.Accent1); + self.Accent2 := new Clr2UnitDecorator(object_.Accent2); + self.Accent3 := new Clr2UnitDecorator(object_.Accent3); + self.Accent4 := new Clr2UnitDecorator(object_.Accent4); + self.Accent5 := new Clr2UnitDecorator(object_.Accent5); + self.Accent6 := new Clr2UnitDecorator(object_.Accent6); + self.Hlink := new Clr2UnitDecorator(object_.Hlink); + self.FolHlink := new Clr2UnitDecorator(object_.FolHlink); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ColorUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ColorUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..69a79e6 --- /dev/null +++ b/autoclass/decorator/docx/ColorUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ColorUnitDecorator = class(Color) +uses TSSafeUnitConverter; +public + function Create(_obj: Color); + function Converte(); +private + object_: Color; +end; + +function ColorUnitDecorator.Create(_obj: Color); +begin + class(Color).Create(); + object_ := _obj; + self.Converte(); +end; + +function ColorUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrThemeColor.Value := object_.XmlAttrThemeColor.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ColsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ColsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7940d7c --- /dev/null +++ b/autoclass/decorator/docx/ColsUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type ColsUnitDecorator = class(Cols) +uses TSSafeUnitConverter; +public + function Create(_obj: Cols); + function Converte(); +private + object_: Cols; +end; + +function ColsUnitDecorator.Create(_obj: Cols); +begin + class(Cols).Create(); + object_ := _obj; + self.Converte(); +end; + +function ColsUnitDecorator.Converte(); +begin + self.XmlAttrSpace.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrSpace.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CommentRangeUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CommentRangeUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..af14ec8 --- /dev/null +++ b/autoclass/decorator/docx/CommentRangeUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type CommentRangeUnitDecorator = class(CommentRange) +uses TSSafeUnitConverter; +public + function Create(_obj: CommentRange); + function Converte(); +private + object_: CommentRange; +end; + +function CommentRangeUnitDecorator.Create(_obj: CommentRange); +begin + class(CommentRange).Create(); + object_ := _obj; + self.Converte(); +end; + +function CommentRangeUnitDecorator.Converte(); +begin + self.XmlAttrId.Value := object_.XmlAttrId.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CommentUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CommentUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..333c311 --- /dev/null +++ b/autoclass/decorator/docx/CommentUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type CommentUnitDecorator = class(Comment) +uses TSSafeUnitConverter; +public + function Create(_obj: Comment); + function Converte(); +private + object_: Comment; +end; + +function CommentUnitDecorator.Create(_obj: Comment); +begin + class(Comment).Create(); + object_ := _obj; + self.Converte(); +end; + +function CommentUnitDecorator.Converte(); +begin + self.XmlAttrAuthor.Value := object_.XmlAttrAuthor.Value; + self.XmlAttrDate.Value := object_.XmlAttrDate.Value; + self.XmlAttrId.Value := object_.XmlAttrId.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CommentsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CommentsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6d25562 --- /dev/null +++ b/autoclass/decorator/docx/CommentsUnitDecorator@DOCX.tsf @@ -0,0 +1,37 @@ +type CommentsUnitDecorator = class(Comments) +uses TSSafeUnitConverter; +public + function Create(_obj: Comments); + function Converte(); +private + object_: Comments; +end; + +function CommentsUnitDecorator.Create(_obj: Comments); +begin + class(Comments).Create(); + object_ := _obj; + self.Converte(); +end; + +function CommentsUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsO.Value := object_.XmlAttrXmlnsO.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsWp14.Value := object_.XmlAttrXmlnsWp14.Value; + self.XmlAttrXmlnsWp.Value := object_.XmlAttrXmlnsWp.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW10.Value := object_.XmlAttrXmlnsW10.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrXmlnsWpsCustomData.Value := object_.XmlAttrXmlnsWpsCustomData.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CompatSettingUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CompatSettingUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..c08673b --- /dev/null +++ b/autoclass/decorator/docx/CompatSettingUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type CompatSettingUnitDecorator = class(CompatSetting) +uses TSSafeUnitConverter; +public + function Create(_obj: CompatSetting); + function Converte(); +private + object_: CompatSetting; +end; + +function CompatSettingUnitDecorator.Create(_obj: CompatSetting); +begin + class(CompatSetting).Create(); + object_ := _obj; + self.Converte(); +end; + +function CompatSettingUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.XmlAttrUri.Value := object_.XmlAttrUri.Value; + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CompatUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CompatUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..eb34e71 --- /dev/null +++ b/autoclass/decorator/docx/CompatUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type CompatUnitDecorator = class(Compat) +uses TSSafeUnitConverter; +public + function Create(_obj: Compat); + function Converte(); +private + object_: Compat; +end; + +function CompatUnitDecorator.Create(_obj: Compat); +begin + class(Compat).Create(); + object_ := _obj; + self.Converte(); +end; + +function CompatUnitDecorator.Converte(); +begin + if not ifnil(object_.XmlChildSpaceForUL.Value) then self.XmlChildSpaceForUL.Value := object_.XmlChildSpaceForUL.Value; + if not ifnil(object_.XmlChildBalanceSingleByteDoubleByteWidth.Value) then self.XmlChildBalanceSingleByteDoubleByteWidth.Value := object_.XmlChildBalanceSingleByteDoubleByteWidth.Value; + if not ifnil(object_.XmlChildDoNotLeaveBackslashAlone.Value) then self.XmlChildDoNotLeaveBackslashAlone.Value := object_.XmlChildDoNotLeaveBackslashAlone.Value; + if not ifnil(object_.XmlChildUlTrailSpace.Value) then self.XmlChildUlTrailSpace.Value := object_.XmlChildUlTrailSpace.Value; + if not ifnil(object_.XmlChildDoNotExpandShiftReturn.Value) then self.XmlChildDoNotExpandShiftReturn.Value := object_.XmlChildDoNotExpandShiftReturn.Value; + if not ifnil(object_.XmlChildAdjustLineHeightInTable.Value) then self.XmlChildAdjustLineHeightInTable.Value := object_.XmlChildAdjustLineHeightInTable.Value; + if not ifnil(object_.XmlChildUseFELayout.Value) then self.XmlChildUseFELayout.Value := object_.XmlChildUseFELayout.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CorePropertiesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CorePropertiesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..da81f4f --- /dev/null +++ b/autoclass/decorator/docx/CorePropertiesUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type CorePropertiesUnitDecorator = class(CoreProperties) +uses TSSafeUnitConverter; +public + function Create(_obj: CoreProperties); + function Converte(); +private + object_: CoreProperties; +end; + +function CorePropertiesUnitDecorator.Create(_obj: CoreProperties); +begin + class(CoreProperties).Create(); + object_ := _obj; + self.Converte(); +end; + +function CorePropertiesUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsCp.Value := object_.XmlAttrXmlnsCp.Value; + self.XmlAttrXmlnsDc.Value := object_.XmlAttrXmlnsDc.Value; + self.XmlAttrXmlnsDcterms.Value := object_.XmlAttrXmlnsDcterms.Value; + self.XmlAttrXmlnsDcmitype.Value := object_.XmlAttrXmlnsDcmitype.Value; + self.XmlAttrXmlnsXsi.Value := object_.XmlAttrXmlnsXsi.Value; + self.Created := new CreatedUnitDecorator(object_.Created); + self.Modified := new ModifiedUnitDecorator(object_.Modified); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/CreatedUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/CreatedUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..69eb27a --- /dev/null +++ b/autoclass/decorator/docx/CreatedUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type CreatedUnitDecorator = class(Created) +uses TSSafeUnitConverter; +public + function Create(_obj: Created); + function Converte(); +private + object_: Created; +end; + +function CreatedUnitDecorator.Create(_obj: Created); +begin + class(Created).Create(); + object_ := _obj; + self.Converte(); +end; + +function CreatedUnitDecorator.Converte(); +begin + self.XmlAttrXsiType.Value := object_.XmlAttrXsiType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DLblsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DLblsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7fc121e --- /dev/null +++ b/autoclass/decorator/docx/DLblsUnitDecorator@DOCX.tsf @@ -0,0 +1,28 @@ +type DLblsUnitDecorator = class(DLbls) +uses TSSafeUnitConverter; +public + function Create(_obj: DLbls); + function Converte(); +private + object_: DLbls; +end; + +function DLblsUnitDecorator.Create(_obj: DLbls); +begin + class(DLbls).Create(); + object_ := _obj; + self.Converte(); +end; + +function DLblsUnitDecorator.Converte(); +begin + self.SpPr := new SpPrUnitDecorator(object_.SpPr); + self.ShowLegendKey := new PureValUnitDecorator(object_.ShowLegendKey); + self.ShowVal := new PureValUnitDecorator(object_.ShowVal); + self.ShowCatName := new PureValUnitDecorator(object_.ShowCatName); + self.ShowSerName := new PureValUnitDecorator(object_.ShowSerName); + self.ShowPercent := new PureValUnitDecorator(object_.ShowPercent); + self.ShowBubbleSize := new PureValUnitDecorator(object_.ShowBubbleSize); + self.ShowLeaderLines := new PureValUnitDecorator(object_.ShowLeaderLines); + self.ExtLst := new ExtLstUnitDecorator(object_.ExtLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DTableUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DTableUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..47432fd --- /dev/null +++ b/autoclass/decorator/docx/DTableUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type DTableUnitDecorator = class(DTable) +uses TSSafeUnitConverter; +public + function Create(_obj: DTable); + function Converte(); +private + object_: DTable; +end; + +function DTableUnitDecorator.Create(_obj: DTable); +begin + class(DTable).Create(); + object_ := _obj; + self.Converte(); +end; + +function DTableUnitDecorator.Converte(); +begin + self.ShowHorzBorder := new PureValUnitDecorator(object_.ShowHorzBorder); + self.ShowVertBorder := new PureValUnitDecorator(object_.ShowVertBorder); + self.ShowOutline := new PureValUnitDecorator(object_.ShowOutline); + self.ShowKeys := new PureValUnitDecorator(object_.ShowKeys); + self.TxPr := new TxPrUnitDecorator(object_.TxPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DefaultUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DefaultUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0879a96 --- /dev/null +++ b/autoclass/decorator/docx/DefaultUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type DefaultUnitDecorator = class(Default) +uses TSSafeUnitConverter; +public + function Create(_obj: Default); + function Converte(); +private + object_: Default; +end; + +function DefaultUnitDecorator.Create(_obj: Default); +begin + class(Default).Create(); + object_ := _obj; + self.Converte(); +end; + +function DefaultUnitDecorator.Converte(); +begin + self.XmlAttrExtension.Value := object_.XmlAttrExtension.Value; + self.XmlAttrContentType.Value := object_.XmlAttrContentType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DocDefaultsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DocDefaultsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9d6c92e --- /dev/null +++ b/autoclass/decorator/docx/DocDefaultsUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type DocDefaultsUnitDecorator = class(DocDefaults) +uses TSSafeUnitConverter; +public + function Create(_obj: DocDefaults); + function Converte(); +private + object_: DocDefaults; +end; + +function DocDefaultsUnitDecorator.Create(_obj: DocDefaults); +begin + class(DocDefaults).Create(); + object_ := _obj; + self.Converte(); +end; + +function DocDefaultsUnitDecorator.Converte(); +begin + self.RPrDefault := new RPrDefaultUnitDecorator(object_.RPrDefault); + self.PPrDefault := new PPrDefaultUnitDecorator(object_.PPrDefault); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DocGridUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DocGridUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e47329f --- /dev/null +++ b/autoclass/decorator/docx/DocGridUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type DocGridUnitDecorator = class(DocGrid) +uses TSSafeUnitConverter; +public + function Create(_obj: DocGrid); + function Converte(); +private + object_: DocGrid; +end; + +function DocGridUnitDecorator.Create(_obj: DocGrid); +begin + class(DocGrid).Create(); + object_ := _obj; + self.Converte(); +end; + +function DocGridUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; + self.XmlAttrLinePitch.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrLinePitch.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DocPartObjUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DocPartObjUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..75ee2e2 --- /dev/null +++ b/autoclass/decorator/docx/DocPartObjUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type DocPartObjUnitDecorator = class(DocPartObj) +uses TSSafeUnitConverter; +public + function Create(_obj: DocPartObj); + function Converte(); +private + object_: DocPartObj; +end; + +function DocPartObjUnitDecorator.Create(_obj: DocPartObj); +begin + class(DocPartObj).Create(); + object_ := _obj; + self.Converte(); +end; + +function DocPartObjUnitDecorator.Converte(); +begin + self.DocPartGallery := new PureWValUnitDecorator(object_.DocPartGallery); + self.DocPartUnique := new PureValUnitDecorator(object_.DocPartUnique); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DocPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DocPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6549009 --- /dev/null +++ b/autoclass/decorator/docx/DocPrUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type DocPrUnitDecorator = class(DocPr) +uses TSSafeUnitConverter; +public + function Create(_obj: DocPr); + function Converte(); +private + object_: DocPr; +end; + +function DocPrUnitDecorator.Create(_obj: DocPr); +begin + class(DocPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function DocPrUnitDecorator.Converte(); +begin + self.XmlAttrId.Value := object_.XmlAttrId.Value; + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.XmlAttrDescr.Value := object_.XmlAttrDescr.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DocumentUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DocumentUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4c6bb79 --- /dev/null +++ b/autoclass/decorator/docx/DocumentUnitDecorator@DOCX.tsf @@ -0,0 +1,33 @@ +type DocumentUnitDecorator = class(Document) +uses TSSafeUnitConverter; +public + function Create(_obj: Document); + function Converte(); +private + object_: Document; +end; + +function DocumentUnitDecorator.Create(_obj: Document); +begin + class(Document).Create(); + object_ := _obj; + self.Converte(); +end; + +function DocumentUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; + self.Body := new BodyUnitDecorator(object_.Body); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/DrawingUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/DrawingUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..cb64ed7 --- /dev/null +++ b/autoclass/decorator/docx/DrawingUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type DrawingUnitDecorator = class(Drawing) +uses TSSafeUnitConverter; +public + function Create(_obj: Drawing); + function Converte(); +private + object_: Drawing; +end; + +function DrawingUnitDecorator.Create(_obj: Drawing); +begin + class(Drawing).Create(); + object_ := _obj; + self.Converte(); +end; + +function DrawingUnitDecorator.Converte(); +begin + self._Inline := new _InlineUnitDecorator(object_._Inline); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EffectExtentUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EffectExtentUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..bf0f0b9 --- /dev/null +++ b/autoclass/decorator/docx/EffectExtentUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type EffectExtentUnitDecorator = class(EffectExtent) +uses TSSafeUnitConverter; +public + function Create(_obj: EffectExtent); + function Converte(); +private + object_: EffectExtent; +end; + +function EffectExtentUnitDecorator.Create(_obj: EffectExtent); +begin + class(EffectExtent).Create(); + object_ := _obj; + self.Converte(); +end; + +function EffectExtentUnitDecorator.Converte(); +begin + self.XmlAttrL.Value := object_.XmlAttrL.Value; + self.XmlAttrT.Value := object_.XmlAttrT.Value; + self.XmlAttrR.Value := object_.XmlAttrR.Value; + self.XmlAttrB.Value := object_.XmlAttrB.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EffectLstUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EffectLstUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..aff4155 --- /dev/null +++ b/autoclass/decorator/docx/EffectLstUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type EffectLstUnitDecorator = class(EffectLst) +uses TSSafeUnitConverter; +public + function Create(_obj: EffectLst); + function Converte(); +private + object_: EffectLst; +end; + +function EffectLstUnitDecorator.Create(_obj: EffectLst); +begin + class(EffectLst).Create(); + object_ := _obj; + self.Converte(); +end; + +function EffectLstUnitDecorator.Converte(); +begin + self.OuterShdw := new OuterShdwUnitDecorator(object_.OuterShdw); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EffectStyleLstUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EffectStyleLstUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4e1bf17 --- /dev/null +++ b/autoclass/decorator/docx/EffectStyleLstUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type EffectStyleLstUnitDecorator = class(EffectStyleLst) +uses TSSafeUnitConverter; +public + function Create(_obj: EffectStyleLst); + function Converte(); +private + object_: EffectStyleLst; +end; + +function EffectStyleLstUnitDecorator.Create(_obj: EffectStyleLst); +begin + class(EffectStyleLst).Create(); + object_ := _obj; + self.Converte(); +end; + +function EffectStyleLstUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EffectStyleUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EffectStyleUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2df0f1d --- /dev/null +++ b/autoclass/decorator/docx/EffectStyleUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type EffectStyleUnitDecorator = class(EffectStyle) +uses TSSafeUnitConverter; +public + function Create(_obj: EffectStyle); + function Converte(); +private + object_: EffectStyle; +end; + +function EffectStyleUnitDecorator.Create(_obj: EffectStyle); +begin + class(EffectStyle).Create(); + object_ := _obj; + self.Converte(); +end; + +function EffectStyleUnitDecorator.Converte(); +begin + self.EffectLst := new EffectLstUnitDecorator(object_.EffectLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EndnotePrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EndnotePrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8997465 --- /dev/null +++ b/autoclass/decorator/docx/EndnotePrUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type EndnotePrUnitDecorator = class(EndnotePr) +uses TSSafeUnitConverter; +public + function Create(_obj: EndnotePr); + function Converte(); +private + object_: EndnotePr; +end; + +function EndnotePrUnitDecorator.Create(_obj: EndnotePr); +begin + class(EndnotePr).Create(); + object_ := _obj; + self.Converte(); +end; + +function EndnotePrUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EndnoteUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EndnoteUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..adcf13d --- /dev/null +++ b/autoclass/decorator/docx/EndnoteUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type EndnoteUnitDecorator = class(Endnote) +uses TSSafeUnitConverter; +public + function Create(_obj: Endnote); + function Converte(); +private + object_: Endnote; +end; + +function EndnoteUnitDecorator.Create(_obj: Endnote); +begin + class(Endnote).Create(); + object_ := _obj; + self.Converte(); +end; + +function EndnoteUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; + self.XmlAttrId.Value := object_.XmlAttrId.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/EndnotesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/EndnotesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..437ab56 --- /dev/null +++ b/autoclass/decorator/docx/EndnotesUnitDecorator@DOCX.tsf @@ -0,0 +1,52 @@ +type EndnotesUnitDecorator = class(Endnotes) +uses TSSafeUnitConverter; +public + function Create(_obj: Endnotes); + function Converte(); +private + object_: Endnotes; +end; + +function EndnotesUnitDecorator.Create(_obj: Endnotes); +begin + class(Endnotes).Create(); + object_ := _obj; + self.Converte(); +end; + +function EndnotesUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsCx.Value := object_.XmlAttrXmlnsCx.Value; + self.XmlAttrXmlnsCx1.Value := object_.XmlAttrXmlnsCx1.Value; + self.XmlAttrXmlnsCx2.Value := object_.XmlAttrXmlnsCx2.Value; + self.XmlAttrXmlnsCx3.Value := object_.XmlAttrXmlnsCx3.Value; + self.XmlAttrXmlnsCx4.Value := object_.XmlAttrXmlnsCx4.Value; + self.XmlAttrXmlnsCx5.Value := object_.XmlAttrXmlnsCx5.Value; + self.XmlAttrXmlnsCx6.Value := object_.XmlAttrXmlnsCx6.Value; + self.XmlAttrXmlnsCx7.Value := object_.XmlAttrXmlnsCx7.Value; + self.XmlAttrXmlnsCx8.Value := object_.XmlAttrXmlnsCx8.Value; + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsAink.Value := object_.XmlAttrXmlnsAink.Value; + self.XmlAttrXmlnsAm3d.Value := object_.XmlAttrXmlnsAm3d.Value; + self.XmlAttrXmlnsO.Value := object_.XmlAttrXmlnsO.Value; + self.XmlAttrXmlnsOel.Value := object_.XmlAttrXmlnsOel.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsWp14.Value := object_.XmlAttrXmlnsWp14.Value; + self.XmlAttrXmlnsWp.Value := object_.XmlAttrXmlnsWp.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ExtLstUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ExtLstUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..046a7bf --- /dev/null +++ b/autoclass/decorator/docx/ExtLstUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type ExtLstUnitDecorator = class(ExtLst) +uses TSSafeUnitConverter; +public + function Create(_obj: ExtLst); + function Converte(); +private + object_: ExtLst; +end; + +function ExtLstUnitDecorator.Create(_obj: ExtLst); +begin + class(ExtLst).Create(); + object_ := _obj; + self.Converte(); +end; + +function ExtLstUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ExtUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ExtUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..44e01a7 --- /dev/null +++ b/autoclass/decorator/docx/ExtUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type ExtUnitDecorator = class(Ext) +uses TSSafeUnitConverter; +public + function Create(_obj: Ext); + function Converte(); +private + object_: Ext; +end; + +function ExtUnitDecorator.Create(_obj: Ext); +begin + class(Ext).Create(); + object_ := _obj; + self.Converte(); +end; + +function ExtUnitDecorator.Converte(); +begin + self.XmlAttrUri.Value := object_.XmlAttrUri.Value; + self.XmlAttrXmlnsC16.Value := object_.XmlAttrXmlnsC16.Value; + self.Thm15ThemeFamily := new ThemeFamilyUnitDecorator(object_.Thm15ThemeFamily); + self.UniqueId := new PureValUnitDecorator(object_.UniqueId); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ExternalDataUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ExternalDataUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f0909bb --- /dev/null +++ b/autoclass/decorator/docx/ExternalDataUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ExternalDataUnitDecorator = class(ExternalData) +uses TSSafeUnitConverter; +public + function Create(_obj: ExternalData); + function Converte(); +private + object_: ExternalData; +end; + +function ExternalDataUnitDecorator.Create(_obj: ExternalData); +begin + class(ExternalData).Create(); + object_ := _obj; + self.Converte(); +end; + +function ExternalDataUnitDecorator.Converte(); +begin + self.XmlAttrId.Value := object_.XmlAttrId.Value; + self.AutoUpdate := new PureValUnitDecorator(object_.AutoUpdate); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FallbackUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FallbackUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..42cde3f --- /dev/null +++ b/autoclass/decorator/docx/FallbackUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type FallbackUnitDecorator = class(Fallback) +uses TSSafeUnitConverter; +public + function Create(_obj: Fallback); + function Converte(); +private + object_: Fallback; +end; + +function FallbackUnitDecorator.Create(_obj: Fallback); +begin + class(Fallback).Create(); + object_ := _obj; + self.Converte(); +end; + +function FallbackUnitDecorator.Converte(); +begin + self.Style := new PureValUnitDecorator(object_.Style); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FillStyleLstUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FillStyleLstUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2dc0552 --- /dev/null +++ b/autoclass/decorator/docx/FillStyleLstUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type FillStyleLstUnitDecorator = class(FillStyleLst) +uses TSSafeUnitConverter; +public + function Create(_obj: FillStyleLst); + function Converte(); +private + object_: FillStyleLst; +end; + +function FillStyleLstUnitDecorator.Create(_obj: FillStyleLst); +begin + class(FillStyleLst).Create(); + object_ := _obj; + self.Converte(); +end; + +function FillStyleLstUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FldCharUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FldCharUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..fb6d141 --- /dev/null +++ b/autoclass/decorator/docx/FldCharUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type FldCharUnitDecorator = class(FldChar) +uses TSSafeUnitConverter; +public + function Create(_obj: FldChar); + function Converte(); +private + object_: FldChar; +end; + +function FldCharUnitDecorator.Create(_obj: FldChar); +begin + class(FldChar).Create(); + object_ := _obj; + self.Converte(); +end; + +function FldCharUnitDecorator.Converte(); +begin + self.XmlAttrFldCharType.Value := object_.XmlAttrFldCharType.Value; + self.XmlAttrDirty.Value := object_.XmlAttrDirty.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FmtSchemeUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FmtSchemeUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..96e1477 --- /dev/null +++ b/autoclass/decorator/docx/FmtSchemeUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type FmtSchemeUnitDecorator = class(FmtScheme) +uses TSSafeUnitConverter; +public + function Create(_obj: FmtScheme); + function Converte(); +private + object_: FmtScheme; +end; + +function FmtSchemeUnitDecorator.Create(_obj: FmtScheme); +begin + class(FmtScheme).Create(); + object_ := _obj; + self.Converte(); +end; + +function FmtSchemeUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.FillStyleLst := new FillStyleLstUnitDecorator(object_.FillStyleLst); + self.LnStyleLst := new LnStyleLstUnitDecorator(object_.LnStyleLst); + self.EffectStyleLst := new EffectStyleLstUnitDecorator(object_.EffectStyleLst); + self.BgFillStyleLst := new FillStyleLstUnitDecorator(object_.BgFillStyleLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FontSchemeUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FontSchemeUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..b562acb --- /dev/null +++ b/autoclass/decorator/docx/FontSchemeUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type FontSchemeUnitDecorator = class(FontScheme) +uses TSSafeUnitConverter; +public + function Create(_obj: FontScheme); + function Converte(); +private + object_: FontScheme; +end; + +function FontSchemeUnitDecorator.Create(_obj: FontScheme); +begin + class(FontScheme).Create(); + object_ := _obj; + self.Converte(); +end; + +function FontSchemeUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.Majorfont := new MfontUnitDecorator(object_.Majorfont); + self.Minorfont := new MfontUnitDecorator(object_.Minorfont); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FontUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FontUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..120adf1 --- /dev/null +++ b/autoclass/decorator/docx/FontUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type FontUnitDecorator = class(Font) +uses TSSafeUnitConverter; +public + function Create(_obj: Font); + function Converte(); +private + object_: Font; +end; + +function FontUnitDecorator.Create(_obj: Font); +begin + class(Font).Create(); + object_ := _obj; + self.Converte(); +end; + +function FontUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.AltName := new PureWValUnitDecorator(object_.AltName); + self.Panosel := new PureWValUnitDecorator(object_.Panosel); + self.Charset := new PureWValUnitDecorator(object_.Charset); + self.Family := new PureWValUnitDecorator(object_.Family); + self.Pitch := new PureWValUnitDecorator(object_.Pitch); + self.Sig := new SigUnitDecorator(object_.Sig); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FontsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FontsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..17967c0 --- /dev/null +++ b/autoclass/decorator/docx/FontsUnitDecorator@DOCX.tsf @@ -0,0 +1,31 @@ +type FontsUnitDecorator = class(Fonts) +uses TSSafeUnitConverter; +public + function Create(_obj: Fonts); + function Converte(); +private + object_: Fonts; +end; + +function FontsUnitDecorator.Create(_obj: Fonts); +begin + class(Fonts).Create(); + object_ := _obj; + self.Converte(); +end; + +function FontsUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FootnotePrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FootnotePrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6422e42 --- /dev/null +++ b/autoclass/decorator/docx/FootnotePrUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type FootnotePrUnitDecorator = class(FootnotePr) +uses TSSafeUnitConverter; +public + function Create(_obj: FootnotePr); + function Converte(); +private + object_: FootnotePr; +end; + +function FootnotePrUnitDecorator.Create(_obj: FootnotePr); +begin + class(FootnotePr).Create(); + object_ := _obj; + self.Converte(); +end; + +function FootnotePrUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FootnoteUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FootnoteUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8438e51 --- /dev/null +++ b/autoclass/decorator/docx/FootnoteUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type FootnoteUnitDecorator = class(Footnote) +uses TSSafeUnitConverter; +public + function Create(_obj: Footnote); + function Converte(); +private + object_: Footnote; +end; + +function FootnoteUnitDecorator.Create(_obj: Footnote); +begin + class(Footnote).Create(); + object_ := _obj; + self.Converte(); +end; + +function FootnoteUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; + self.XmlAttrId.Value := object_.XmlAttrId.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FootnotesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FootnotesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e2d7a53 --- /dev/null +++ b/autoclass/decorator/docx/FootnotesUnitDecorator@DOCX.tsf @@ -0,0 +1,52 @@ +type FootnotesUnitDecorator = class(Footnotes) +uses TSSafeUnitConverter; +public + function Create(_obj: Footnotes); + function Converte(); +private + object_: Footnotes; +end; + +function FootnotesUnitDecorator.Create(_obj: Footnotes); +begin + class(Footnotes).Create(); + object_ := _obj; + self.Converte(); +end; + +function FootnotesUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsCx.Value := object_.XmlAttrXmlnsCx.Value; + self.XmlAttrXmlnsCx1.Value := object_.XmlAttrXmlnsCx1.Value; + self.XmlAttrXmlnsCx2.Value := object_.XmlAttrXmlnsCx2.Value; + self.XmlAttrXmlnsCx3.Value := object_.XmlAttrXmlnsCx3.Value; + self.XmlAttrXmlnsCx4.Value := object_.XmlAttrXmlnsCx4.Value; + self.XmlAttrXmlnsCx5.Value := object_.XmlAttrXmlnsCx5.Value; + self.XmlAttrXmlnsCx6.Value := object_.XmlAttrXmlnsCx6.Value; + self.XmlAttrXmlnsCx7.Value := object_.XmlAttrXmlnsCx7.Value; + self.XmlAttrXmlnsCx8.Value := object_.XmlAttrXmlnsCx8.Value; + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsAink.Value := object_.XmlAttrXmlnsAink.Value; + self.XmlAttrXmlnsAm3d.Value := object_.XmlAttrXmlnsAm3d.Value; + self.XmlAttrXmlnsO.Value := object_.XmlAttrXmlnsO.Value; + self.XmlAttrXmlnsOel.Value := object_.XmlAttrXmlnsOel.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsWp14.Value := object_.XmlAttrXmlnsWp14.Value; + self.XmlAttrXmlnsWp.Value := object_.XmlAttrXmlnsWp.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/FtrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/FtrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e69a82e --- /dev/null +++ b/autoclass/decorator/docx/FtrUnitDecorator@DOCX.tsf @@ -0,0 +1,34 @@ +type FtrUnitDecorator = class(Ftr) +uses TSSafeUnitConverter; +public + function Create(_obj: Ftr); + function Converte(); +private + object_: Ftr; +end; + +function FtrUnitDecorator.Create(_obj: Ftr); +begin + class(Ftr).Create(); + object_ := _obj; + self.Converte(); +end; + +function FtrUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsMo.Value := object_.XmlAttrXmlnsMo.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWp14.Value := object_.XmlAttrXmlnsWp14.Value; + self.XmlAttrXmlnsWp.Value := object_.XmlAttrXmlnsWp.Value; + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GradFillUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GradFillUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8835891 --- /dev/null +++ b/autoclass/decorator/docx/GradFillUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type GradFillUnitDecorator = class(GradFill) +uses TSSafeUnitConverter; +public + function Create(_obj: GradFill); + function Converte(); +private + object_: GradFill; +end; + +function GradFillUnitDecorator.Create(_obj: GradFill); +begin + class(GradFill).Create(); + object_ := _obj; + self.Converte(); +end; + +function GradFillUnitDecorator.Converte(); +begin + self.XmlAttrRotWithShape.Value := object_.XmlAttrRotWithShape.Value; + self.GsLst := new GsLstUnitDecorator(object_.GsLst); + self.Lin := new LinUnitDecorator(object_.Lin); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GraphicDataUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GraphicDataUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..87fbb00 --- /dev/null +++ b/autoclass/decorator/docx/GraphicDataUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type GraphicDataUnitDecorator = class(GraphicData) +uses TSSafeUnitConverter; +public + function Create(_obj: GraphicData); + function Converte(); +private + object_: GraphicData; +end; + +function GraphicDataUnitDecorator.Create(_obj: GraphicData); +begin + class(GraphicData).Create(); + object_ := _obj; + self.Converte(); +end; + +function GraphicDataUnitDecorator.Converte(); +begin + self.XmlAttrUri.Value := object_.XmlAttrUri.Value; + self.Pic := new PicUnitDecorator(object_.Pic); + self.Chart := new ChartUnitDecorator(object_.Chart); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GraphicFrameLocksUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GraphicFrameLocksUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..5ae766a --- /dev/null +++ b/autoclass/decorator/docx/GraphicFrameLocksUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type GraphicFrameLocksUnitDecorator = class(GraphicFrameLocks) +uses TSSafeUnitConverter; +public + function Create(_obj: GraphicFrameLocks); + function Converte(); +private + object_: GraphicFrameLocks; +end; + +function GraphicFrameLocksUnitDecorator.Create(_obj: GraphicFrameLocks); +begin + class(GraphicFrameLocks).Create(); + object_ := _obj; + self.Converte(); +end; + +function GraphicFrameLocksUnitDecorator.Converte(); +begin + self.XmlAttrNoChangeAspect.Value := object_.XmlAttrNoChangeAspect.Value; + self.XmlAttrXmlnsA.Value := object_.XmlAttrXmlnsA.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GraphicUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GraphicUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..42fbf8b --- /dev/null +++ b/autoclass/decorator/docx/GraphicUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type GraphicUnitDecorator = class(Graphic) +uses TSSafeUnitConverter; +public + function Create(_obj: Graphic); + function Converte(); +private + object_: Graphic; +end; + +function GraphicUnitDecorator.Create(_obj: Graphic); +begin + class(Graphic).Create(); + object_ := _obj; + self.Converte(); +end; + +function GraphicUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsA.Value := object_.XmlAttrXmlnsA.Value; + self.GraphicData := new GraphicDataUnitDecorator(object_.GraphicData); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GridColUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GridColUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f5e6277 --- /dev/null +++ b/autoclass/decorator/docx/GridColUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type GridColUnitDecorator = class(GridCol) +uses TSSafeUnitConverter; +public + function Create(_obj: GridCol); + function Converte(); +private + object_: GridCol; +end; + +function GridColUnitDecorator.Create(_obj: GridCol); +begin + class(GridCol).Create(); + object_ := _obj; + self.Converte(); +end; + +function GridColUnitDecorator.Converte(); +begin + self.XmlAttrw.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrw.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GsLstUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GsLstUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..a0d8618 --- /dev/null +++ b/autoclass/decorator/docx/GsLstUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type GsLstUnitDecorator = class(GsLst) +uses TSSafeUnitConverter; +public + function Create(_obj: GsLst); + function Converte(); +private + object_: GsLst; +end; + +function GsLstUnitDecorator.Create(_obj: GsLst); +begin + class(GsLst).Create(); + object_ := _obj; + self.Converte(); +end; + +function GsLstUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/GsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/GsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f83ba10 --- /dev/null +++ b/autoclass/decorator/docx/GsUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type GsUnitDecorator = class(Gs) +uses TSSafeUnitConverter; +public + function Create(_obj: Gs); + function Converte(); +private + object_: Gs; +end; + +function GsUnitDecorator.Create(_obj: Gs); +begin + class(Gs).Create(); + object_ := _obj; + self.Converte(); +end; + +function GsUnitDecorator.Converte(); +begin + self.XmlAttrPos.Value := object_.XmlAttrPos.Value; + self.SchemeClr := new SchemeClrUnitDecorator(object_.SchemeClr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/HdrShapeDefaultsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/HdrShapeDefaultsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7c3b944 --- /dev/null +++ b/autoclass/decorator/docx/HdrShapeDefaultsUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type HdrShapeDefaultsUnitDecorator = class(HdrShapeDefaults) +uses TSSafeUnitConverter; +public + function Create(_obj: HdrShapeDefaults); + function Converte(); +private + object_: HdrShapeDefaults; +end; + +function HdrShapeDefaultsUnitDecorator.Create(_obj: HdrShapeDefaults); +begin + class(HdrShapeDefaults).Create(); + object_ := _obj; + self.Converte(); +end; + +function HdrShapeDefaultsUnitDecorator.Converte(); +begin + self.ShapeDefaults := new ShapeDefaultsUnitDecorator(object_.ShapeDefaults); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/HdrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/HdrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9646d7b --- /dev/null +++ b/autoclass/decorator/docx/HdrUnitDecorator@DOCX.tsf @@ -0,0 +1,34 @@ +type HdrUnitDecorator = class(Hdr) +uses TSSafeUnitConverter; +public + function Create(_obj: Hdr); + function Converte(); +private + object_: Hdr; +end; + +function HdrUnitDecorator.Create(_obj: Hdr); +begin + class(Hdr).Create(); + object_ := _obj; + self.Converte(); +end; + +function HdrUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsMo.Value := object_.XmlAttrXmlnsMo.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWp14.Value := object_.XmlAttrXmlnsWp14.Value; + self.XmlAttrXmlnsWp.Value := object_.XmlAttrXmlnsWp.Value; + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/HyperLinkUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/HyperLinkUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..fe2f9a0 --- /dev/null +++ b/autoclass/decorator/docx/HyperLinkUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type HyperLinkUnitDecorator = class(HyperLink) +uses TSSafeUnitConverter; +public + function Create(_obj: HyperLink); + function Converte(); +private + object_: HyperLink; +end; + +function HyperLinkUnitDecorator.Create(_obj: HyperLink); +begin + class(HyperLink).Create(); + object_ := _obj; + self.Converte(); +end; + +function HyperLinkUnitDecorator.Converte(); +begin + self.XmlAttrId.Value := object_.XmlAttrId.Value; + self.XmlAttrHistory.Value := object_.XmlAttrHistory.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/IdMapUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/IdMapUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e6d66d7 --- /dev/null +++ b/autoclass/decorator/docx/IdMapUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type IdMapUnitDecorator = class(IdMap) +uses TSSafeUnitConverter; +public + function Create(_obj: IdMap); + function Converte(); +private + object_: IdMap; +end; + +function IdMapUnitDecorator.Create(_obj: IdMap); +begin + class(IdMap).Create(); + object_ := _obj; + self.Converte(); +end; + +function IdMapUnitDecorator.Converte(); +begin + self.XmlAttrExt.Value := object_.XmlAttrExt.Value; + self.XmlAttrData.Value := object_.XmlAttrData.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/IndUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/IndUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3946191 --- /dev/null +++ b/autoclass/decorator/docx/IndUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type IndUnitDecorator = class(Ind) +uses TSSafeUnitConverter; +public + function Create(_obj: Ind); + function Converte(); +private + object_: Ind; +end; + +function IndUnitDecorator.Create(_obj: Ind); +begin + class(Ind).Create(); + object_ := _obj; + self.Converte(); +end; + +function IndUnitDecorator.Converte(); +begin + self.XmlAttrFirstLineChars.Value := TSSafeUnitConverter.PercentToNumber(object_.XmlAttrFirstLineChars.Value); + self.XmlAttrFirstLine.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrFirstLine.Value); + self.XmlAttrRightChars.Value := TSSafeUnitConverter.PercentToNumber(object_.XmlAttrRightChars.Value); + self.XmlAttrRight.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrRight.Value); + self.XmlAttrLeftChars.Value := TSSafeUnitConverter.PercentToNumber(object_.XmlAttrLeftChars.Value); + self.XmlAttrLeft.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrLeft.Value); + self.XmlAttrHanging.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrHanging.Value); + self.XmlAttrHangingChars.Value := TSSafeUnitConverter.PercentToNumber(object_.XmlAttrHangingChars.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/InstrTextUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/InstrTextUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9de01f1 --- /dev/null +++ b/autoclass/decorator/docx/InstrTextUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type InstrTextUnitDecorator = class(InstrText) +uses TSSafeUnitConverter; +public + function Create(_obj: InstrText); + function Converte(); +private + object_: InstrText; +end; + +function InstrTextUnitDecorator.Create(_obj: InstrText); +begin + class(InstrText).Create(); + object_ := _obj; + self.Converte(); +end; + +function InstrTextUnitDecorator.Converte(); +begin + self.XmlAttrSpace.Value := object_.XmlAttrSpace.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LangUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LangUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..d700e78 --- /dev/null +++ b/autoclass/decorator/docx/LangUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type LangUnitDecorator = class(Lang) +uses TSSafeUnitConverter; +public + function Create(_obj: Lang); + function Converte(); +private + object_: Lang; +end; + +function LangUnitDecorator.Create(_obj: Lang); +begin + class(Lang).Create(); + object_ := _obj; + self.Converte(); +end; + +function LangUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrEastAsia.Value := object_.XmlAttrEastAsia.Value; + self.XmlAttrBidi.Value := object_.XmlAttrBidi.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LatenStylesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LatenStylesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9848d20 --- /dev/null +++ b/autoclass/decorator/docx/LatenStylesUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type LatenStylesUnitDecorator = class(LatenStyles) +uses TSSafeUnitConverter; +public + function Create(_obj: LatenStyles); + function Converte(); +private + object_: LatenStyles; +end; + +function LatenStylesUnitDecorator.Create(_obj: LatenStyles); +begin + class(LatenStyles).Create(); + object_ := _obj; + self.Converte(); +end; + +function LatenStylesUnitDecorator.Converte(); +begin + self.XmlAttrDefLickedState.Value := object_.XmlAttrDefLickedState.Value; + self.XmlAttrDefUIPriority.Value := object_.XmlAttrDefUIPriority.Value; + self.XmlAttrDefSemiHidden.Value := object_.XmlAttrDefSemiHidden.Value; + self.XmlAttrDefUnhideWhenUsed.Value := object_.XmlAttrDefUnhideWhenUsed.Value; + self.XmlAttrDefQFormat.Value := object_.XmlAttrDefQFormat.Value; + self.XmlAttrCount.Value := object_.XmlAttrCount.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LatinUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LatinUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..26243df --- /dev/null +++ b/autoclass/decorator/docx/LatinUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type LatinUnitDecorator = class(Latin) +uses TSSafeUnitConverter; +public + function Create(_obj: Latin); + function Converte(); +private + object_: Latin; +end; + +function LatinUnitDecorator.Create(_obj: Latin); +begin + class(Latin).Create(); + object_ := _obj; + self.Converte(); +end; + +function LatinUnitDecorator.Converte(); +begin + self.XmlAttrTypeface.Value := object_.XmlAttrTypeface.Value; + self.XmlAttrPanose.Value := object_.XmlAttrPanose.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LegendUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LegendUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0005538 --- /dev/null +++ b/autoclass/decorator/docx/LegendUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type LegendUnitDecorator = class(Legend) +uses TSSafeUnitConverter; +public + function Create(_obj: Legend); + function Converte(); +private + object_: Legend; +end; + +function LegendUnitDecorator.Create(_obj: Legend); +begin + class(Legend).Create(); + object_ := _obj; + self.Converte(); +end; + +function LegendUnitDecorator.Converte(); +begin + self.LegendPos := new PureValUnitDecorator(object_.LegendPos); + if not ifnil(object_.XmlChildLayout.Value) then self.XmlChildLayout.Value := object_.XmlChildLayout.Value; + self.Overlay := new PureValUnitDecorator(object_.Overlay); + self.TxPr := new TxPrUnitDecorator(object_.TxPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LinUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LinUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0a218a9 --- /dev/null +++ b/autoclass/decorator/docx/LinUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type LinUnitDecorator = class(Lin) +uses TSSafeUnitConverter; +public + function Create(_obj: Lin); + function Converte(); +private + object_: Lin; +end; + +function LinUnitDecorator.Create(_obj: Lin); +begin + class(Lin).Create(); + object_ := _obj; + self.Converte(); +end; + +function LinUnitDecorator.Converte(); +begin + self.XmlAttrAng.Value := object_.XmlAttrAng.Value; + self.XmlAttrScaled.Value := object_.XmlAttrScaled.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LnStyleLstUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LnStyleLstUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2a9d32c --- /dev/null +++ b/autoclass/decorator/docx/LnStyleLstUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type LnStyleLstUnitDecorator = class(LnStyleLst) +uses TSSafeUnitConverter; +public + function Create(_obj: LnStyleLst); + function Converte(); +private + object_: LnStyleLst; +end; + +function LnStyleLstUnitDecorator.Create(_obj: LnStyleLst); +begin + class(LnStyleLst).Create(); + object_ := _obj; + self.Converte(); +end; + +function LnStyleLstUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LnUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LnUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8c19732 --- /dev/null +++ b/autoclass/decorator/docx/LnUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type LnUnitDecorator = class(Ln) +uses TSSafeUnitConverter; +public + function Create(_obj: Ln); + function Converte(); +private + object_: Ln; +end; + +function LnUnitDecorator.Create(_obj: Ln); +begin + class(Ln).Create(); + object_ := _obj; + self.Converte(); +end; + +function LnUnitDecorator.Converte(); +begin + self.XmlAttrW.Value := object_.XmlAttrW.Value; + self.XmlAttrCap.Value := object_.XmlAttrCap.Value; + self.XmlAttrCmpd.Value := object_.XmlAttrCmpd.Value; + self.XmlAttrAlgn.Value := object_.XmlAttrAlgn.Value; + self.SolidFill := new SolidFillUnitDecorator(object_.SolidFill); + self.PrstDash := new PureValUnitDecorator(object_.PrstDash); + self.Miter := new MiterUnitDecorator(object_.Miter); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LsdExceptionUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LsdExceptionUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..ca9b381 --- /dev/null +++ b/autoclass/decorator/docx/LsdExceptionUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type LsdExceptionUnitDecorator = class(LsdException) +uses TSSafeUnitConverter; +public + function Create(_obj: LsdException); + function Converte(); +private + object_: LsdException; +end; + +function LsdExceptionUnitDecorator.Create(_obj: LsdException); +begin + class(LsdException).Create(); + object_ := _obj; + self.Converte(); +end; + +function LsdExceptionUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.XmlAttrUIPriority.Value := object_.XmlAttrUIPriority.Value; + self.XmlAttrSemiHidden.Value := object_.XmlAttrSemiHidden.Value; + self.XmlAttrUnhideWhenUsed.Value := object_.XmlAttrUnhideWhenUsed.Value; + self.XmlAttrQFormat.Value := object_.XmlAttrQFormat.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/LvlUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/LvlUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2fa765d --- /dev/null +++ b/autoclass/decorator/docx/LvlUnitDecorator@DOCX.tsf @@ -0,0 +1,29 @@ +type LvlUnitDecorator = class(Lvl) +uses TSSafeUnitConverter; +public + function Create(_obj: Lvl); + function Converte(); +private + object_: Lvl; +end; + +function LvlUnitDecorator.Create(_obj: Lvl); +begin + class(Lvl).Create(); + object_ := _obj; + self.Converte(); +end; + +function LvlUnitDecorator.Converte(); +begin + self.XmlAttrIlvl.Value := object_.XmlAttrIlvl.Value; + self.XmlAttrTentative.Value := object_.XmlAttrTentative.Value; + self.Start := new PureWValUnitDecorator(object_.Start); + self.NumFmt := new PureWValUnitDecorator(object_.NumFmt); + self.PStyle := new PureWValUnitDecorator(object_.PStyle); + self.Suff := new PureWValUnitDecorator(object_.Suff); + self.LvlText := new PureWValUnitDecorator(object_.LvlText); + self.LvlJc := new PureWValUnitDecorator(object_.LvlJc); + self.PPr := new PPrUnitDecorator(object_.PPr); + self.RPr := new RPrUnitDecorator(object_.RPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/MFontFontUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/MFontFontUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f69614b --- /dev/null +++ b/autoclass/decorator/docx/MFontFontUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type MFontFontUnitDecorator = class(MFontFont) +uses TSSafeUnitConverter; +public + function Create(_obj: MFontFont); + function Converte(); +private + object_: MFontFont; +end; + +function MFontFontUnitDecorator.Create(_obj: MFontFont); +begin + class(MFontFont).Create(); + object_ := _obj; + self.Converte(); +end; + +function MFontFontUnitDecorator.Converte(); +begin + self.XmlAttrScript.Value := object_.XmlAttrScript.Value; + self.XmlAttrTypeface.Value := object_.XmlAttrTypeface.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/MFontUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/MFontUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..40d0dab --- /dev/null +++ b/autoclass/decorator/docx/MFontUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type MFontUnitDecorator = class(MFont) +uses TSSafeUnitConverter; +public + function Create(_obj: MFont); + function Converte(); +private + object_: MFont; +end; + +function MFontUnitDecorator.Create(_obj: MFont); +begin + class(MFont).Create(); + object_ := _obj; + self.Converte(); +end; + +function MFontUnitDecorator.Converte(); +begin + self.Latin := new LatinUnitDecorator(object_.Latin); + self.Ea := new LatinUnitDecorator(object_.Ea); + self.Cs := new LatinUnitDecorator(object_.Cs); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/MathPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/MathPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..ba53c5d --- /dev/null +++ b/autoclass/decorator/docx/MathPrUnitDecorator@DOCX.tsf @@ -0,0 +1,30 @@ +type MathPrUnitDecorator = class(MathPr) +uses TSSafeUnitConverter; +public + function Create(_obj: MathPr); + function Converte(); +private + object_: MathPr; +end; + +function MathPrUnitDecorator.Create(_obj: MathPr); +begin + class(MathPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function MathPrUnitDecorator.Converte(); +begin + self.MathFont := new PureWValUnitDecorator(object_.MathFont); + self.BrkBin := new PureWValUnitDecorator(object_.BrkBin); + self.BrkBinSub := new PureWValUnitDecorator(object_.BrkBinSub); + self.SmallFrac := new PureWValUnitDecorator(object_.SmallFrac); + if not ifnil(object_.XmlChildDispDef.Value) then self.XmlChildDispDef.Value := object_.XmlChildDispDef.Value; + self.LMargin := new PureWValUnitDecorator(object_.LMargin); + self.RMargin := new PureWValUnitDecorator(object_.RMargin); + self.DefJc := new PureWValUnitDecorator(object_.DefJc); + self.WrapIndent := new PureWValUnitDecorator(object_.WrapIndent); + self.IntLim := new PureWValUnitDecorator(object_.IntLim); + self.NaryLim := new PureWValUnitDecorator(object_.NaryLim); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/MiterUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/MiterUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4e67042 --- /dev/null +++ b/autoclass/decorator/docx/MiterUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type MiterUnitDecorator = class(Miter) +uses TSSafeUnitConverter; +public + function Create(_obj: Miter); + function Converte(); +private + object_: Miter; +end; + +function MiterUnitDecorator.Create(_obj: Miter); +begin + class(Miter).Create(); + object_ := _obj; + self.Converte(); +end; + +function MiterUnitDecorator.Converte(); +begin + self.XmlAttrLim.Value := object_.XmlAttrLim.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ModifiedUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ModifiedUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8e0faaa --- /dev/null +++ b/autoclass/decorator/docx/ModifiedUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type ModifiedUnitDecorator = class(Modified) +uses TSSafeUnitConverter; +public + function Create(_obj: Modified); + function Converte(); +private + object_: Modified; +end; + +function ModifiedUnitDecorator.Create(_obj: Modified); +begin + class(Modified).Create(); + object_ := _obj; + self.Converte(); +end; + +function ModifiedUnitDecorator.Converte(); +begin + self.XmlAttrXsiType.Value := object_.XmlAttrXsiType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/NumFmtUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/NumFmtUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..a58a3c9 --- /dev/null +++ b/autoclass/decorator/docx/NumFmtUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type NumFmtUnitDecorator = class(NumFmt) +uses TSSafeUnitConverter; +public + function Create(_obj: NumFmt); + function Converte(); +private + object_: NumFmt; +end; + +function NumFmtUnitDecorator.Create(_obj: NumFmt); +begin + class(NumFmt).Create(); + object_ := _obj; + self.Converte(); +end; + +function NumFmtUnitDecorator.Converte(); +begin + self.XmlAttrFormatCode.Value := object_.XmlAttrFormatCode.Value; + self.XmlAttrSourceLinked.Value := object_.XmlAttrSourceLinked.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/NumPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/NumPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..1628ec8 --- /dev/null +++ b/autoclass/decorator/docx/NumPrUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type NumPrUnitDecorator = class(NumPr) +uses TSSafeUnitConverter; +public + function Create(_obj: NumPr); + function Converte(); +private + object_: NumPr; +end; + +function NumPrUnitDecorator.Create(_obj: NumPr); +begin + class(NumPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function NumPrUnitDecorator.Converte(); +begin + self.Ilvl := new PureWValUnitDecorator(object_.Ilvl); + self.NumId := new PureWValUnitDecorator(object_.NumId); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/NumRefUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/NumRefUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8cf2c2e --- /dev/null +++ b/autoclass/decorator/docx/NumRefUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type NumRefUnitDecorator = class(NumRef) +uses TSSafeUnitConverter; +public + function Create(_obj: NumRef); + function Converte(); +private + object_: NumRef; +end; + +function NumRefUnitDecorator.Create(_obj: NumRef); +begin + class(NumRef).Create(); + object_ := _obj; + self.Converte(); +end; + +function NumRefUnitDecorator.Converte(); +begin + self.NumCache := new CacheUnitDecorator(object_.NumCache); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/NumUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/NumUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6d4babf --- /dev/null +++ b/autoclass/decorator/docx/NumUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type NumUnitDecorator = class(Num) +uses TSSafeUnitConverter; +public + function Create(_obj: Num); + function Converte(); +private + object_: Num; +end; + +function NumUnitDecorator.Create(_obj: Num); +begin + class(Num).Create(); + object_ := _obj; + self.Converte(); +end; + +function NumUnitDecorator.Converte(); +begin + self.XmlAttrNumId.Value := object_.XmlAttrNumId.Value; + self.AbstractNumId := new PureWValUnitDecorator(object_.AbstractNumId); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/NumberingUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/NumberingUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0d52fba --- /dev/null +++ b/autoclass/decorator/docx/NumberingUnitDecorator@DOCX.tsf @@ -0,0 +1,54 @@ +type NumberingUnitDecorator = class(Numbering) +uses TSSafeUnitConverter; +public + function Create(_obj: Numbering); + function Converte(); +private + object_: Numbering; +end; + +function NumberingUnitDecorator.Create(_obj: Numbering); +begin + class(Numbering).Create(); + object_ := _obj; + self.Converte(); +end; + +function NumberingUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsWpc.Value := object_.XmlAttrXmlnsWpc.Value; + self.XmlAttrXmlnsCx.Value := object_.XmlAttrXmlnsCx.Value; + self.XmlAttrXmlnsCx1.Value := object_.XmlAttrXmlnsCx1.Value; + self.XmlAttrXmlnsCx2.Value := object_.XmlAttrXmlnsCx2.Value; + self.XmlAttrXmlnsCx3.Value := object_.XmlAttrXmlnsCx3.Value; + self.XmlAttrXmlnsCx4.Value := object_.XmlAttrXmlnsCx4.Value; + self.XmlAttrXmlnsCx5.Value := object_.XmlAttrXmlnsCx5.Value; + self.XmlAttrXmlnsCx6.Value := object_.XmlAttrXmlnsCx6.Value; + self.XmlAttrXmlnsCx7.Value := object_.XmlAttrXmlnsCx7.Value; + self.XmlAttrXmlnsCx8.Value := object_.XmlAttrXmlnsCx8.Value; + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsAink.Value := object_.XmlAttrXmlnsAink.Value; + self.XmlAttrXmlnsAm3d.Value := object_.XmlAttrXmlnsAm3d.Value; + self.XmlAttrXmlnsO.Value := object_.XmlAttrXmlnsO.Value; + self.XmlAttrXmlnsOel.Value := object_.XmlAttrXmlnsOel.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsWp14.Value := object_.XmlAttrXmlnsWp14.Value; + self.XmlAttrXmlnsWp.Value := object_.XmlAttrXmlnsWp.Value; + self.XmlAttrXmlnsW10.Value := object_.XmlAttrXmlnsW10.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrXmlnsWpg.Value := object_.XmlAttrXmlnsWpg.Value; + self.XmlAttrXmlnsWpi.Value := object_.XmlAttrXmlnsWpi.Value; + self.XmlAttrXmlnsWne.Value := object_.XmlAttrXmlnsWne.Value; + self.XmlAttrXmlnsWps.Value := object_.XmlAttrXmlnsWps.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/NvPicPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/NvPicPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4674014 --- /dev/null +++ b/autoclass/decorator/docx/NvPicPrUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type NvPicPrUnitDecorator = class(NvPicPr) +uses TSSafeUnitConverter; +public + function Create(_obj: NvPicPr); + function Converte(); +private + object_: NvPicPr; +end; + +function NvPicPrUnitDecorator.Create(_obj: NvPicPr); +begin + class(NvPicPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function NvPicPrUnitDecorator.Converte(); +begin + self.CNvPr := new CNvPrUnitDecorator(object_.CNvPr); + self.CNvPicPr := new CNvPicPrUnitDecorator(object_.CNvPicPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/OuterShdwUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/OuterShdwUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..024416d --- /dev/null +++ b/autoclass/decorator/docx/OuterShdwUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type OuterShdwUnitDecorator = class(OuterShdw) +uses TSSafeUnitConverter; +public + function Create(_obj: OuterShdw); + function Converte(); +private + object_: OuterShdw; +end; + +function OuterShdwUnitDecorator.Create(_obj: OuterShdw); +begin + class(OuterShdw).Create(); + object_ := _obj; + self.Converte(); +end; + +function OuterShdwUnitDecorator.Converte(); +begin + self.XmlAttrBlurRad.Value := object_.XmlAttrBlurRad.Value; + self.XmlAttrDist.Value := object_.XmlAttrDist.Value; + self.XmlAttrDir.Value := object_.XmlAttrDir.Value; + self.XmlAttrAlgn.Value := object_.XmlAttrAlgn.Value; + self.XmlAttrRotWithShape.Value := object_.XmlAttrRotWithShape.Value; + self.SrgbClr := new SrgbClrUnitDecorator(object_.SrgbClr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PBdrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PBdrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..03bf401 --- /dev/null +++ b/autoclass/decorator/docx/PBdrUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PBdrUnitDecorator = class(PBdr) +uses TSSafeUnitConverter; +public + function Create(_obj: PBdr); + function Converte(); +private + object_: PBdr; +end; + +function PBdrUnitDecorator.Create(_obj: PBdr); +begin + class(PBdr).Create(); + object_ := _obj; + self.Converte(); +end; + +function PBdrUnitDecorator.Converte(); +begin + self.Top := new PureValUnitDecorator(object_.Top); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PPrDefaultUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PPrDefaultUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..bcf5c6f --- /dev/null +++ b/autoclass/decorator/docx/PPrDefaultUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PPrDefaultUnitDecorator = class(PPrDefault) +uses TSSafeUnitConverter; +public + function Create(_obj: PPrDefault); + function Converte(); +private + object_: PPrDefault; +end; + +function PPrDefaultUnitDecorator.Create(_obj: PPrDefault); +begin + class(PPrDefault).Create(); + object_ := _obj; + self.Converte(); +end; + +function PPrDefaultUnitDecorator.Converte(); +begin + self.PPr := new PPrUnitDecorator(object_.PPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f9fa279 --- /dev/null +++ b/autoclass/decorator/docx/PPrUnitDecorator@DOCX.tsf @@ -0,0 +1,37 @@ +type PPrUnitDecorator = class(PPr) +uses TSSafeUnitConverter; +public + function Create(_obj: PPr); + function Converte(); +private + object_: PPr; +end; + +function PPrUnitDecorator.Create(_obj: PPr); +begin + class(PPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function PPrUnitDecorator.Converte(); +begin + self.SectPr := new SectPrUnitDecorator(object_.SectPr); + self.Tabs := new TabsUnitDecorator(object_.Tabs); + if not ifnil(object_.XmlChildWidowControl.Value) then self.XmlChildWidowControl.Value := object_.XmlChildWidowControl.Value; + self.SnapToGrid := new PureWValUnitDecorator(object_.SnapToGrid); + self.PStyle := new PureWValUnitDecorator(object_.PStyle); + self.NumPr := new NumPrUnitDecorator(object_.NumPr); + self.Jc := new PureWValUnitDecorator(object_.Jc); + self.Ind := new IndUnitDecorator(object_.Ind); + if not ifnil(object_.XmlChildKeepNext.Value) then self.XmlChildKeepNext.Value := object_.XmlChildKeepNext.Value; + if not ifnil(object_.XmlChildKeepLines.Value) then self.XmlChildKeepLines.Value := object_.XmlChildKeepLines.Value; + self.AdjustRightInd := new PureWValUnitDecorator(object_.AdjustRightInd); + self.Spacing := new SpacingUnitDecorator(object_.Spacing); + self.OutlineLvl := new PureWValUnitDecorator(object_.OutlineLvl); + self.AutoSpaceDE := new PureWValUnitDecorator(object_.AutoSpaceDE); + self.AutoSpaceDN := new PureWValUnitDecorator(object_.AutoSpaceDN); + self.RPr := new RPrUnitDecorator(object_.RPr); + self.PBdr := new PBdrUnitDecorator(object_.PBdr); + if not ifnil(object_.XmlChildContextualSpacing.Value) then self.XmlChildContextualSpacing.Value := object_.XmlChildContextualSpacing.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3ec8213 --- /dev/null +++ b/autoclass/decorator/docx/PUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type PUnitDecorator = class(P) +uses TSSafeUnitConverter; +public + function Create(_obj: P); + function Converte(); +private + object_: P; +end; + +function PUnitDecorator.Create(_obj: P); +begin + class(P).Create(); + object_ := _obj; + self.Converte(); +end; + +function PUnitDecorator.Converte(); +begin + self.XmlAttrW14ParaId.Value := object_.XmlAttrW14ParaId.Value; + self.XmlAttrW14TextId.Value := object_.XmlAttrW14TextId.Value; + self.XmlAttrWRsidR.Value := object_.XmlAttrWRsidR.Value; + self.XmlAttrWRsidRPr.Value := object_.XmlAttrWRsidRPr.Value; + self.XmlAttrWRsidRDefault.Value := object_.XmlAttrWRsidRDefault.Value; + self.XmlAttrWRsidP.Value := object_.XmlAttrWRsidP.Value; + self.PPr := new PPrUnitDecorator(object_.PPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PgMarUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PgMarUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f64040f --- /dev/null +++ b/autoclass/decorator/docx/PgMarUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type PgMarUnitDecorator = class(PgMar) +uses TSSafeUnitConverter; +public + function Create(_obj: PgMar); + function Converte(); +private + object_: PgMar; +end; + +function PgMarUnitDecorator.Create(_obj: PgMar); +begin + class(PgMar).Create(); + object_ := _obj; + self.Converte(); +end; + +function PgMarUnitDecorator.Converte(); +begin + self.XmlAttrTop.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrTop.Value); + self.XmlAttrRight.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrRight.Value); + self.XmlAttrBottom.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrBottom.Value); + self.XmlAttrLeft.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrLeft.Value); + self.XmlAttrHeader.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrHeader.Value); + self.XmlAttrFooter.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrFooter.Value); + self.XmlAttrGutter.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrGutter.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PgNumTypeUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PgNumTypeUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9acd1f5 --- /dev/null +++ b/autoclass/decorator/docx/PgNumTypeUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PgNumTypeUnitDecorator = class(PgNumType) +uses TSSafeUnitConverter; +public + function Create(_obj: PgNumType); + function Converte(); +private + object_: PgNumType; +end; + +function PgNumTypeUnitDecorator.Create(_obj: PgNumType); +begin + class(PgNumType).Create(); + object_ := _obj; + self.Converte(); +end; + +function PgNumTypeUnitDecorator.Converte(); +begin + self.XmlAttrStart.Value := object_.XmlAttrStart.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PgSzUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PgSzUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..80617ae --- /dev/null +++ b/autoclass/decorator/docx/PgSzUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type PgSzUnitDecorator = class(PgSz) +uses TSSafeUnitConverter; +public + function Create(_obj: PgSz); + function Converte(); +private + object_: PgSz; +end; + +function PgSzUnitDecorator.Create(_obj: PgSz); +begin + class(PgSz).Create(); + object_ := _obj; + self.Converte(); +end; + +function PgSzUnitDecorator.Converte(); +begin + self.XmlAttrW.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrW.Value); + self.XmlAttrH.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrH.Value); + self.XmlAttrOrient.Value := object_.XmlAttrOrient.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PicLocksUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PicLocksUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..62176a1 --- /dev/null +++ b/autoclass/decorator/docx/PicLocksUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PicLocksUnitDecorator = class(PicLocks) +uses TSSafeUnitConverter; +public + function Create(_obj: PicLocks); + function Converte(); +private + object_: PicLocks; +end; + +function PicLocksUnitDecorator.Create(_obj: PicLocks); +begin + class(PicLocks).Create(); + object_ := _obj; + self.Converte(); +end; + +function PicLocksUnitDecorator.Converte(); +begin + self.XmlAttrNoChangeAspect.Value := object_.XmlAttrNoChangeAspect.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PicUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PicUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7f9bcc2 --- /dev/null +++ b/autoclass/decorator/docx/PicUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type PicUnitDecorator = class(Pic) +uses TSSafeUnitConverter; +public + function Create(_obj: Pic); + function Converte(); +private + object_: Pic; +end; + +function PicUnitDecorator.Create(_obj: Pic); +begin + class(Pic).Create(); + object_ := _obj; + self.Converte(); +end; + +function PicUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsPic.Value := object_.XmlAttrXmlnsPic.Value; + self.NvPicPr := new NvPicPrUnitDecorator(object_.NvPicPr); + self.BlipFill := new BlipFillUnitDecorator(object_.BlipFill); + self.SpPr := new SpPrUnitDecorator(object_.SpPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PlotAreaUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PlotAreaUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2fbdf5c --- /dev/null +++ b/autoclass/decorator/docx/PlotAreaUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type PlotAreaUnitDecorator = class(PlotArea) +uses TSSafeUnitConverter; +public + function Create(_obj: PlotArea); + function Converte(); +private + object_: PlotArea; +end; + +function PlotAreaUnitDecorator.Create(_obj: PlotArea); +begin + class(PlotArea).Create(); + object_ := _obj; + self.Converte(); +end; + +function PlotAreaUnitDecorator.Converte(); +begin + if not ifnil(object_.XmlChildLayout.Value) then self.XmlChildLayout.Value := object_.XmlChildLayout.Value; + self.BarChart := new BarChartUnitDecorator(object_.BarChart); + self.CatAx := new AxUnitDecorator(object_.CatAx); + self.ValAx := new AxUnitDecorator(object_.ValAx); + self.DTable := new DTableUnitDecorator(object_.DTable); + self.SpPr := new SpPrUnitDecorator(object_.SpPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PropertiesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PropertiesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..655b833 --- /dev/null +++ b/autoclass/decorator/docx/PropertiesUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type PropertiesUnitDecorator = class(Properties) +uses TSSafeUnitConverter; +public + function Create(_obj: Properties); + function Converte(); +private + object_: Properties; +end; + +function PropertiesUnitDecorator.Create(_obj: Properties); +begin + class(Properties).Create(); + object_ := _obj; + self.Converte(); +end; + +function PropertiesUnitDecorator.Converte(); +begin + self.XmlAttrXmlns.Value := object_.XmlAttrXmlns.Value; + self.XmlAttrXmlnsVt.Value := object_.XmlAttrXmlnsVt.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PrstGeomUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PrstGeomUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..b79818d --- /dev/null +++ b/autoclass/decorator/docx/PrstGeomUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type PrstGeomUnitDecorator = class(PrstGeom) +uses TSSafeUnitConverter; +public + function Create(_obj: PrstGeom); + function Converte(); +private + object_: PrstGeom; +end; + +function PrstGeomUnitDecorator.Create(_obj: PrstGeom); +begin + class(PrstGeom).Create(); + object_ := _obj; + self.Converte(); +end; + +function PrstGeomUnitDecorator.Converte(); +begin + self.XmlAttrPrst.Value := object_.XmlAttrPrst.Value; + self.AvLst := new PureValUnitDecorator(object_.AvLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PtUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PtUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f2e5013 --- /dev/null +++ b/autoclass/decorator/docx/PtUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PtUnitDecorator = class(Pt) +uses TSSafeUnitConverter; +public + function Create(_obj: Pt); + function Converte(); +private + object_: Pt; +end; + +function PtUnitDecorator.Create(_obj: Pt); +begin + class(Pt).Create(); + object_ := _obj; + self.Converte(); +end; + +function PtUnitDecorator.Converte(); +begin + self.XmlAttrIdx.Value := object_.XmlAttrIdx.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PureValUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PureValUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e105d50 --- /dev/null +++ b/autoclass/decorator/docx/PureValUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PureValUnitDecorator = class(PureVal) +uses TSSafeUnitConverter; +public + function Create(_obj: PureVal); + function Converte(); +private + object_: PureVal; +end; + +function PureValUnitDecorator.Create(_obj: PureVal); +begin + class(PureVal).Create(); + object_ := _obj; + self.Converte(); +end; + +function PureValUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/PureWValUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/PureWValUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7ab3266 --- /dev/null +++ b/autoclass/decorator/docx/PureWValUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type PureWValUnitDecorator = class(PureWVal) +uses TSSafeUnitConverter; +public + function Create(_obj: PureWVal); + function Converte(); +private + object_: PureWVal; +end; + +function PureWValUnitDecorator.Create(_obj: PureWVal); +begin + class(PureWVal).Create(); + object_ := _obj; + self.Converte(); +end; + +function PureWValUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RFontsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RFontsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..324f901 --- /dev/null +++ b/autoclass/decorator/docx/RFontsUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type RFontsUnitDecorator = class(RFonts) +uses TSSafeUnitConverter; +public + function Create(_obj: RFonts); + function Converte(); +private + object_: RFonts; +end; + +function RFontsUnitDecorator.Create(_obj: RFonts); +begin + class(RFonts).Create(); + object_ := _obj; + self.Converte(); +end; + +function RFontsUnitDecorator.Converte(); +begin + self.XmlAttrAscii.Value := object_.XmlAttrAscii.Value; + self.XmlAttrAsciiTheme.Value := object_.XmlAttrAsciiTheme.Value; + self.XmlAttrEastAsia.Value := object_.XmlAttrEastAsia.Value; + self.XmlAttrEastAsiaTheme.Value := object_.XmlAttrEastAsiaTheme.Value; + self.XmlAttrHAnsi.Value := object_.XmlAttrHAnsi.Value; + self.XmlAttrHAnsiTheme.Value := object_.XmlAttrHAnsiTheme.Value; + self.XmlAttrHint.Value := object_.XmlAttrHint.Value; + self.XmlAttrCsTheme.Value := object_.XmlAttrCsTheme.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RPrDefaultUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RPrDefaultUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..5e4cad7 --- /dev/null +++ b/autoclass/decorator/docx/RPrDefaultUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type RPrDefaultUnitDecorator = class(RPrDefault) +uses TSSafeUnitConverter; +public + function Create(_obj: RPrDefault); + function Converte(); +private + object_: RPrDefault; +end; + +function RPrDefaultUnitDecorator.Create(_obj: RPrDefault); +begin + class(RPrDefault).Create(); + object_ := _obj; + self.Converte(); +end; + +function RPrDefaultUnitDecorator.Converte(); +begin + self.RPr := new RPrUnitDecorator(object_.RPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..2057968 --- /dev/null +++ b/autoclass/decorator/docx/RPrUnitDecorator@DOCX.tsf @@ -0,0 +1,35 @@ +type RPrUnitDecorator = class(RPr) +uses TSSafeUnitConverter; +public + function Create(_obj: RPr); + function Converte(); +private + object_: RPr; +end; + +function RPrUnitDecorator.Create(_obj: RPr); +begin + class(RPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function RPrUnitDecorator.Converte(); +begin + self.NoProof := new PureValUnitDecorator(object_.NoProof); + self.WebHidden := new PureWValUnitDecorator(object_.WebHidden); + self.RStyle := new PureWValUnitDecorator(object_.RStyle); + self.RFonts := new RFontsUnitDecorator(object_.RFonts); + self.Kern := new PureWValUnitDecorator(object_.Kern); + if not ifnil(object_.XmlChildI.Value) then self.XmlChildI.Value := object_.XmlChildI.Value; + if not ifnil(object_.XmlChildICs.Value) then self.XmlChildICs.Value := object_.XmlChildICs.Value; + if not ifnil(object_.XmlChildB.Value) then self.XmlChildB.Value := object_.XmlChildB.Value; + if not ifnil(object_.XmlChildBCs.Value) then self.XmlChildBCs.Value := object_.XmlChildBCs.Value; + if not ifnil(object_.XmlChildStrike.Value) then self.XmlChildStrike.Value := object_.XmlChildStrike.Value; + self.Color := new ColorUnitDecorator(object_.Color); + self.Sz := new SzUnitDecorator(object_.Sz); + self.SzCs := new SzCsUnitDecorator(object_.SzCs); + if not ifnil(object_.XmlChildU.Value) then self.XmlChildU.Value := object_.XmlChildU.Value; + self.Lang := new LangUnitDecorator(object_.Lang); + self.W14Ligatures := new PureWValUnitDecorator(object_.W14Ligatures); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8a6f529 --- /dev/null +++ b/autoclass/decorator/docx/RUnitDecorator@DOCX.tsf @@ -0,0 +1,31 @@ +type RUnitDecorator = class(R) +uses TSSafeUnitConverter; +public + function Create(_obj: R); + function Converte(); +private + object_: R; +end; + +function RUnitDecorator.Create(_obj: R); +begin + class(R).Create(); + object_ := _obj; + self.Converte(); +end; + +function RUnitDecorator.Converte(); +begin + self.XmlAttrWRsidRPr.Value := object_.XmlAttrWRsidRPr.Value; + self.XmlAttrAnchor.Value := object_.XmlAttrAnchor.Value; + self.XmlAttrHistory.Value := object_.XmlAttrHistory.Value; + self.RPr := new RPrUnitDecorator(object_.RPr); + self.Br := new BrUnitDecorator(object_.Br); + self.FldChar := new FldCharUnitDecorator(object_.FldChar); + self.InstrText := new InstrTextUnitDecorator(object_.InstrText); + if not ifnil(object_.XmlChildSeparator.Value) then self.XmlChildSeparator.Value := object_.XmlChildSeparator.Value; + if not ifnil(object_.XmlChildContinuationSeparator.Value) then self.XmlChildContinuationSeparator.Value := object_.XmlChildContinuationSeparator.Value; + if not ifnil(object_.XmlChildLastRenderedPageBreak.Value) then self.XmlChildLastRenderedPageBreak.Value := object_.XmlChildLastRenderedPageBreak.Value; + self.Drawing := new DrawingUnitDecorator(object_.Drawing); + self.T := new TUnitDecorator(object_.T); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ReferenceUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ReferenceUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..17caef0 --- /dev/null +++ b/autoclass/decorator/docx/ReferenceUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ReferenceUnitDecorator = class(Reference) +uses TSSafeUnitConverter; +public + function Create(_obj: Reference); + function Converte(); +private + object_: Reference; +end; + +function ReferenceUnitDecorator.Create(_obj: Reference); +begin + class(Reference).Create(); + object_ := _obj; + self.Converte(); +end; + +function ReferenceUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; + self.XmlAttrId.Value := object_.XmlAttrId.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RelationshipUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RelationshipUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..37acd63 --- /dev/null +++ b/autoclass/decorator/docx/RelationshipUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type RelationshipUnitDecorator = class(Relationship) +uses TSSafeUnitConverter; +public + function Create(_obj: Relationship); + function Converte(); +private + object_: Relationship; +end; + +function RelationshipUnitDecorator.Create(_obj: Relationship); +begin + class(Relationship).Create(); + object_ := _obj; + self.Converte(); +end; + +function RelationshipUnitDecorator.Converte(); +begin + self.XmlAttrId.Value := object_.XmlAttrId.Value; + self.XmlAttrType.Value := object_.XmlAttrType.Value; + self.XmlAttrTarget.Value := object_.XmlAttrTarget.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RelationshipsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RelationshipsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..d06304d --- /dev/null +++ b/autoclass/decorator/docx/RelationshipsUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type RelationshipsUnitDecorator = class(Relationships) +uses TSSafeUnitConverter; +public + function Create(_obj: Relationships); + function Converte(); +private + object_: Relationships; +end; + +function RelationshipsUnitDecorator.Create(_obj: Relationships); +begin + class(Relationships).Create(); + object_ := _obj; + self.Converte(); +end; + +function RelationshipsUnitDecorator.Converte(); +begin + self.XmlAttrxmlns.Value := object_.XmlAttrxmlns.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RichUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RichUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e062796 --- /dev/null +++ b/autoclass/decorator/docx/RichUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type RichUnitDecorator = class(Rich) +uses TSSafeUnitConverter; +public + function Create(_obj: Rich); + function Converte(); +private + object_: Rich; +end; + +function RichUnitDecorator.Create(_obj: Rich); +begin + class(Rich).Create(); + object_ := _obj; + self.Converte(); +end; + +function RichUnitDecorator.Converte(); +begin + self.BodyPr := new BodyPrUnitDecorator(object_.BodyPr); + if not ifnil(object_.XmlChildLstStyle.Value) then self.XmlChildLstStyle.Value := object_.XmlChildLstStyle.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/RsidsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/RsidsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..5c54dbc --- /dev/null +++ b/autoclass/decorator/docx/RsidsUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type RsidsUnitDecorator = class(Rsids) +uses TSSafeUnitConverter; +public + function Create(_obj: Rsids); + function Converte(); +private + object_: Rsids; +end; + +function RsidsUnitDecorator.Create(_obj: Rsids); +begin + class(Rsids).Create(); + object_ := _obj; + self.Converte(); +end; + +function RsidsUnitDecorator.Converte(); +begin + self.RsidRoot := new PureWValUnitDecorator(object_.RsidRoot); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ScalingUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ScalingUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..eda1a32 --- /dev/null +++ b/autoclass/decorator/docx/ScalingUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ScalingUnitDecorator = class(Scaling) +uses TSSafeUnitConverter; +public + function Create(_obj: Scaling); + function Converte(); +private + object_: Scaling; +end; + +function ScalingUnitDecorator.Create(_obj: Scaling); +begin + class(Scaling).Create(); + object_ := _obj; + self.Converte(); +end; + +function ScalingUnitDecorator.Converte(); +begin + self.Orientation := new PureValUnitDecorator(object_.Orientation); + if not ifnil(object_.XmlChildOrientation.Value) then self.XmlChildOrientation.Value := object_.XmlChildOrientation.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SchemeClrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SchemeClrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4e893ff --- /dev/null +++ b/autoclass/decorator/docx/SchemeClrUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type SchemeClrUnitDecorator = class(SchemeClr) +uses TSSafeUnitConverter; +public + function Create(_obj: SchemeClr); + function Converte(); +private + object_: SchemeClr; +end; + +function SchemeClrUnitDecorator.Create(_obj: SchemeClr); +begin + class(SchemeClr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SchemeClrUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.LumMod := new PureValUnitDecorator(object_.LumMod); + self.SatMod := new PureValUnitDecorator(object_.SatMod); + self.Tint := new PureValUnitDecorator(object_.Tint); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SdtContentUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SdtContentUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f5453b6 --- /dev/null +++ b/autoclass/decorator/docx/SdtContentUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type SdtContentUnitDecorator = class(SdtContent) +uses TSSafeUnitConverter; +public + function Create(_obj: SdtContent); + function Converte(); +private + object_: SdtContent; +end; + +function SdtContentUnitDecorator.Create(_obj: SdtContent); +begin + class(SdtContent).Create(); + object_ := _obj; + self.Converte(); +end; + +function SdtContentUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SdtEndPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SdtEndPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..9e364e6 --- /dev/null +++ b/autoclass/decorator/docx/SdtEndPrUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type SdtEndPrUnitDecorator = class(SdtEndPr) +uses TSSafeUnitConverter; +public + function Create(_obj: SdtEndPr); + function Converte(); +private + object_: SdtEndPr; +end; + +function SdtEndPrUnitDecorator.Create(_obj: SdtEndPr); +begin + class(SdtEndPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SdtEndPrUnitDecorator.Converte(); +begin + self.RPr := new RPrUnitDecorator(object_.RPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SdtPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SdtPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..70fc1cb --- /dev/null +++ b/autoclass/decorator/docx/SdtPrUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type SdtPrUnitDecorator = class(SdtPr) +uses TSSafeUnitConverter; +public + function Create(_obj: SdtPr); + function Converte(); +private + object_: SdtPr; +end; + +function SdtPrUnitDecorator.Create(_obj: SdtPr); +begin + class(SdtPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SdtPrUnitDecorator.Converte(); +begin + self.RPr := new RPrUnitDecorator(object_.RPr); + self.Id := new PureWValUnitDecorator(object_.Id); + self.DocPartObj := new DocPartObjUnitDecorator(object_.DocPartObj); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SdtUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SdtUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..a86bb90 --- /dev/null +++ b/autoclass/decorator/docx/SdtUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type SdtUnitDecorator = class(Sdt) +uses TSSafeUnitConverter; +public + function Create(_obj: Sdt); + function Converte(); +private + object_: Sdt; +end; + +function SdtUnitDecorator.Create(_obj: Sdt); +begin + class(Sdt).Create(); + object_ := _obj; + self.Converte(); +end; + +function SdtUnitDecorator.Converte(); +begin + self.SdtPr := new SdtPrUnitDecorator(object_.SdtPr); + self.SdtEndPr := new SdtEndPrUnitDecorator(object_.SdtEndPr); + self.SdtContent := new SdtContentUnitDecorator(object_.SdtContent); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SectPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SectPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..e50ddf7 --- /dev/null +++ b/autoclass/decorator/docx/SectPrUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type SectPrUnitDecorator = class(SectPr) +uses TSSafeUnitConverter; +public + function Create(_obj: SectPr); + function Converte(); +private + object_: SectPr; +end; + +function SectPrUnitDecorator.Create(_obj: SectPr); +begin + class(SectPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SectPrUnitDecorator.Converte(); +begin + self.XmlAttrWRsidR.Value := object_.XmlAttrWRsidR.Value; + self.XmlAttrWRsidSect.Value := object_.XmlAttrWRsidSect.Value; + self.Type := new PureWValUnitDecorator(object_.Type); + self.PgSz := new PgSzUnitDecorator(object_.PgSz); + self.PgMar := new PgMarUnitDecorator(object_.PgMar); + self.PgNumType := new PgNumTypeUnitDecorator(object_.PgNumType); + self.Cols := new ColsUnitDecorator(object_.Cols); + self.DocGrid := new docGridUnitDecorator(object_.DocGrid); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SerUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SerUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..99f25dd --- /dev/null +++ b/autoclass/decorator/docx/SerUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type SerUnitDecorator = class(Ser) +uses TSSafeUnitConverter; +public + function Create(_obj: Ser); + function Converte(); +private + object_: Ser; +end; + +function SerUnitDecorator.Create(_obj: Ser); +begin + class(Ser).Create(); + object_ := _obj; + self.Converte(); +end; + +function SerUnitDecorator.Converte(); +begin + self.Idx := new PureValUnitDecorator(object_.Idx); + self.Order := new PureValUnitDecorator(object_.Order); + self.Tx := new TxUnitDecorator(object_.Tx); + self.InvertIfNegative := new PureValUnitDecorator(object_.InvertIfNegative); + self.DLbls := new DLblsUnitDecorator(object_.DLbls); + self.Cat := new CatUnitDecorator(object_.Cat); + self.Val := new ValUnitDecorator(object_.Val); + self.ExtLst := new ExtLstUnitDecorator(object_.ExtLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SettingsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SettingsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..fda7f78 --- /dev/null +++ b/autoclass/decorator/docx/SettingsUnitDecorator@DOCX.tsf @@ -0,0 +1,56 @@ +type SettingsUnitDecorator = class(Settings) +uses TSSafeUnitConverter; +public + function Create(_obj: Settings); + function Converte(); +private + object_: Settings; +end; + +function SettingsUnitDecorator.Create(_obj: Settings); +begin + class(Settings).Create(); + object_ := _obj; + self.Converte(); +end; + +function SettingsUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsO.Value := object_.XmlAttrXmlnsO.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsM.Value := object_.XmlAttrXmlnsM.Value; + self.XmlAttrXmlnsV.Value := object_.XmlAttrXmlnsV.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrXmlnsSl.Value := object_.XmlAttrXmlnsSl.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; + self.Zoom := new ZoomUnitDecorator(object_.Zoom); + if not ifnil(object_.XmlChildBordersDoNotSurroundHeader.Value) then self.XmlChildBordersDoNotSurroundHeader.Value := object_.XmlChildBordersDoNotSurroundHeader.Value; + if not ifnil(object_.XmlChildBordersDoNotSurroundFooter.Value) then self.XmlChildBordersDoNotSurroundFooter.Value := object_.XmlChildBordersDoNotSurroundFooter.Value; + self.DefaultTabStop := new PureWValUnitDecorator(object_.DefaultTabStop); + self.DrawingGridVerticalSpacing := new PureWValUnitDecorator(object_.DrawingGridVerticalSpacing); + self.DisplayHorizontalDrawingGridEvery := new PureWValUnitDecorator(object_.DisplayHorizontalDrawingGridEvery); + self.DisplayVerticalDrawingGridEvery := new PureWValUnitDecorator(object_.DisplayVerticalDrawingGridEvery); + self.CharacterSpacingControl := new PureWValUnitDecorator(object_.CharacterSpacingControl); + self.HdrShapeDefaults := new HdrShapeDefaultsUnitDecorator(object_.HdrShapeDefaults); + self.FootnotePr := new FootnotePrUnitDecorator(object_.FootnotePr); + self.EndnotePr := new EndnotePrUnitDecorator(object_.EndnotePr); + self.Compat := new CompatUnitDecorator(object_.Compat); + self.Rsids := new RsidsUnitDecorator(object_.Rsids); + self.MathPr := new MathPrUnitDecorator(object_.MathPr); + self.ThemeFontLang := new ThemeFontLangUnitDecorator(object_.ThemeFontLang); + self.ClrSchemeMapping := new ClrSchemeMappingUnitDecorator(object_.ClrSchemeMapping); + if not ifnil(object_.XmlChildDoNotIncludeSubdocsInStats.Value) then self.XmlChildDoNotIncludeSubdocsInStats.Value := object_.XmlChildDoNotIncludeSubdocsInStats.Value; + self.ShapeDefaults := new ShapeDefaults2UnitDecorator(object_.ShapeDefaults); + self.DecimalSymbol := new PureWValUnitDecorator(object_.DecimalSymbol); + self.ListSeparator := new PureWValUnitDecorator(object_.ListSeparator); + self.W14DocId := new PureWValUnitDecorator(object_.W14DocId); + if not ifnil(object_.XmlChildW15ChartTrackingRefBased.Value) then self.XmlChildW15ChartTrackingRefBased.Value := object_.XmlChildW15ChartTrackingRefBased.Value; + self.W15DocId := new PureWValUnitDecorator(object_.W15DocId); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ShapeDefaults2UnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ShapeDefaults2UnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0272026 --- /dev/null +++ b/autoclass/decorator/docx/ShapeDefaults2UnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ShapeDefaults2UnitDecorator = class(ShapeDefaults2) +uses TSSafeUnitConverter; +public + function Create(_obj: ShapeDefaults2); + function Converte(); +private + object_: ShapeDefaults2; +end; + +function ShapeDefaults2UnitDecorator.Create(_obj: ShapeDefaults2); +begin + class(ShapeDefaults2).Create(); + object_ := _obj; + self.Converte(); +end; + +function ShapeDefaults2UnitDecorator.Converte(); +begin + self.ShapeDefaults := new ShapeDefaultsUnitDecorator(object_.ShapeDefaults); + self.ShapeLayout := new ShapeLayoutUnitDecorator(object_.ShapeLayout); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ShapeDefaultsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ShapeDefaultsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0ccc082 --- /dev/null +++ b/autoclass/decorator/docx/ShapeDefaultsUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ShapeDefaultsUnitDecorator = class(ShapeDefaults) +uses TSSafeUnitConverter; +public + function Create(_obj: ShapeDefaults); + function Converte(); +private + object_: ShapeDefaults; +end; + +function ShapeDefaultsUnitDecorator.Create(_obj: ShapeDefaults); +begin + class(ShapeDefaults).Create(); + object_ := _obj; + self.Converte(); +end; + +function ShapeDefaultsUnitDecorator.Converte(); +begin + self.XmlAttrExt.Value := object_.XmlAttrExt.Value; + self.XmlAttrSpidmax.Value := object_.XmlAttrSpidmax.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ShapeLayoutUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ShapeLayoutUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7744122 --- /dev/null +++ b/autoclass/decorator/docx/ShapeLayoutUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type ShapeLayoutUnitDecorator = class(ShapeLayout) +uses TSSafeUnitConverter; +public + function Create(_obj: ShapeLayout); + function Converte(); +private + object_: ShapeLayout; +end; + +function ShapeLayoutUnitDecorator.Create(_obj: ShapeLayout); +begin + class(ShapeLayout).Create(); + object_ := _obj; + self.Converte(); +end; + +function ShapeLayoutUnitDecorator.Converte(); +begin + self.XmlAttrExt.Value := object_.XmlAttrExt.Value; + self.IdMap := new IdMapUnitDecorator(object_.IdMap); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ShdUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ShdUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..60aa9ce --- /dev/null +++ b/autoclass/decorator/docx/ShdUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type ShdUnitDecorator = class(Shd) +uses TSSafeUnitConverter; +public + function Create(_obj: Shd); + function Converte(); +private + object_: Shd; +end; + +function ShdUnitDecorator.Create(_obj: Shd); +begin + class(Shd).Create(); + object_ := _obj; + self.Converte(); +end; + +function ShdUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrColor.Value := object_.XmlAttrColor.Value; + self.XmlAttrFill.Value := object_.XmlAttrFill.Value; + self.XmlAttrThemeFill.Value := object_.XmlAttrThemeFill.Value; + self.XmlAttrThemeFillTint.Value := object_.XmlAttrThemeFillTint.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SigUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SigUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..51d106c --- /dev/null +++ b/autoclass/decorator/docx/SigUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type SigUnitDecorator = class(Sig) +uses TSSafeUnitConverter; +public + function Create(_obj: Sig); + function Converte(); +private + object_: Sig; +end; + +function SigUnitDecorator.Create(_obj: Sig); +begin + class(Sig).Create(); + object_ := _obj; + self.Converte(); +end; + +function SigUnitDecorator.Converte(); +begin + self.XmlAttrUsb0.Value := object_.XmlAttrUsb0.Value; + self.XmlAttrUsb1.Value := object_.XmlAttrUsb1.Value; + self.XmlAttrUsb2.Value := object_.XmlAttrUsb2.Value; + self.XmlAttrUsb3.Value := object_.XmlAttrUsb3.Value; + self.XmlAttrcsb0.Value := object_.XmlAttrcsb0.Value; + self.XmlAttrcsb1.Value := object_.XmlAttrcsb1.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SolidFillUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SolidFillUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..63557af --- /dev/null +++ b/autoclass/decorator/docx/SolidFillUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type SolidFillUnitDecorator = class(SolidFill) +uses TSSafeUnitConverter; +public + function Create(_obj: SolidFill); + function Converte(); +private + object_: SolidFill; +end; + +function SolidFillUnitDecorator.Create(_obj: SolidFill); +begin + class(SolidFill).Create(); + object_ := _obj; + self.Converte(); +end; + +function SolidFillUnitDecorator.Converte(); +begin + self.SchemeClr := new SchemeClrUnitDecorator(object_.SchemeClr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SpPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SpPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4173a77 --- /dev/null +++ b/autoclass/decorator/docx/SpPrUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type SpPrUnitDecorator = class(SpPr) +uses TSSafeUnitConverter; +public + function Create(_obj: SpPr); + function Converte(); +private + object_: SpPr; +end; + +function SpPrUnitDecorator.Create(_obj: SpPr); +begin + class(SpPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SpPrUnitDecorator.Converte(); +begin + self.Xfrm := new XfrmUnitDecorator(object_.Xfrm); + self.PrstGeom := new PrstGeomUnitDecorator(object_.PrstGeom); + if not ifnil(object_.XmlChildNoFill.Value) then self.XmlChildNoFill.Value := object_.XmlChildNoFill.Value; + self.SolidFill := new SolidFillUnitDecorator(object_.SolidFill); + self.Ln := new LnUnitDecorator(object_.Ln); + self.EffectLst := new EffectLstUnitDecorator(object_.EffectLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SpacingUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SpacingUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7faf5ea --- /dev/null +++ b/autoclass/decorator/docx/SpacingUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type SpacingUnitDecorator = class(Spacing) +uses TSSafeUnitConverter; +public + function Create(_obj: Spacing); + function Converte(); +private + object_: Spacing; +end; + +function SpacingUnitDecorator.Create(_obj: Spacing); +begin + class(Spacing).Create(); + object_ := _obj; + self.Converte(); +end; + +function SpacingUnitDecorator.Converte(); +begin + self.XmlAttrBefore.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrBefore.Value); + self.XmlAttrBeforeLines.Value := TSSafeUnitConverter.PercentToNumber(object_.XmlAttrBeforeLines.Value); + self.XmlAttrBeforeAutospacing.Value := object_.XmlAttrBeforeAutospacing.Value; + self.XmlAttrAfter.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrAfter.Value); + self.XmlAttrAfterLines.Value := TSSafeUnitConverter.PercentToNumber(object_.XmlAttrAfterLines.Value); + self.XmlAttrAfterAutospacing.Value := object_.XmlAttrAfterAutospacing.Value; + self.XmlAttrLine.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrLine.Value); + self.XmlAttrLineRule.Value := object_.XmlAttrLineRule.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SrgbClrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SrgbClrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..82798fc --- /dev/null +++ b/autoclass/decorator/docx/SrgbClrUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type SrgbClrUnitDecorator = class(SrgbClr) +uses TSSafeUnitConverter; +public + function Create(_obj: SrgbClr); + function Converte(); +private + object_: SrgbClr; +end; + +function SrgbClrUnitDecorator.Create(_obj: SrgbClr); +begin + class(SrgbClr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SrgbClrUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.Alpha := new PureValUnitDecorator(object_.Alpha); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/StrRefUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/StrRefUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..98fdde3 --- /dev/null +++ b/autoclass/decorator/docx/StrRefUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type StrRefUnitDecorator = class(StrRef) +uses TSSafeUnitConverter; +public + function Create(_obj: StrRef); + function Converte(); +private + object_: StrRef; +end; + +function StrRefUnitDecorator.Create(_obj: StrRef); +begin + class(StrRef).Create(); + object_ := _obj; + self.Converte(); +end; + +function StrRefUnitDecorator.Converte(); +begin + self.StrCache := new CacheUnitDecorator(object_.StrCache); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/StretchUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/StretchUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..1120ce5 --- /dev/null +++ b/autoclass/decorator/docx/StretchUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type StretchUnitDecorator = class(Stretch) +uses TSSafeUnitConverter; +public + function Create(_obj: Stretch); + function Converte(); +private + object_: Stretch; +end; + +function StretchUnitDecorator.Create(_obj: Stretch); +begin + class(Stretch).Create(); + object_ := _obj; + self.Converte(); +end; + +function StretchUnitDecorator.Converte(); +begin + self.FillRect := new PureValUnitDecorator(object_.FillRect); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/StyleUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/StyleUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..30f0f10 --- /dev/null +++ b/autoclass/decorator/docx/StyleUnitDecorator@DOCX.tsf @@ -0,0 +1,39 @@ +type StyleUnitDecorator = class(Style) +uses TSSafeUnitConverter; +public + function Create(_obj: Style); + function Converte(); +private + object_: Style; +end; + +function StyleUnitDecorator.Create(_obj: Style); +begin + class(Style).Create(); + object_ := _obj; + self.Converte(); +end; + +function StyleUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; + self.XmlAttrDefault.Value := object_.XmlAttrDefault.Value; + self.XmlAttrStyleId.Value := object_.XmlAttrStyleId.Value; + self.Name := new PureWValUnitDecorator(object_.Name); + self.BasedOn := new PureWValUnitDecorator(object_.BasedOn); + self.Next := new PureWValUnitDecorator(object_.Next); + self.AutoRedefine := new PureWValUnitDecorator(object_.AutoRedefine); + self.Link := new PureWValUnitDecorator(object_.Link); + self.UIPriority := new PureWValUnitDecorator(object_.UIPriority); + if not ifnil(object_.XmlChildSemiHidden.Value) then self.XmlChildSemiHidden.Value := object_.XmlChildSemiHidden.Value; + if not ifnil(object_.XmlChildUnhideWhenUsed.Value) then self.XmlChildUnhideWhenUsed.Value := object_.XmlChildUnhideWhenUsed.Value; + if not ifnil(object_.XmlChildQFormat.Value) then self.XmlChildQFormat.Value := object_.XmlChildQFormat.Value; + self.Rsid := new PureWValUnitDecorator(object_.Rsid); + if not ifnil(object_.XmlChildRsid.Value) then self.XmlChildRsid.Value := object_.XmlChildRsid.Value; + self.PPr := new PPrUnitDecorator(object_.PPr); + self.RPr := new RPrUnitDecorator(object_.RPr); + self.TblPr := new TblPrUnitDecorator(object_.TblPr); + self.TrPr := new TrPrUnitDecorator(object_.TrPr); + self.TcPr := new TcPrUnitDecorator(object_.TcPr); + self.TblStylePr := new TblStylePrUnitDecorator(object_.TblStylePr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/StylesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/StylesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..6bc9e4a --- /dev/null +++ b/autoclass/decorator/docx/StylesUnitDecorator@DOCX.tsf @@ -0,0 +1,33 @@ +type StylesUnitDecorator = class(Styles) +uses TSSafeUnitConverter; +public + function Create(_obj: Styles); + function Converte(); +private + object_: Styles; +end; + +function StylesUnitDecorator.Create(_obj: Styles); +begin + class(Styles).Create(); + object_ := _obj; + self.Converte(); +end; + +function StylesUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; + self.DocDefaults := new DocDefaultsUnitDecorator(object_.DocDefaults); + self.LatenStyles := new LatenStylesUnitDecorator(object_.LatenStyles); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SysClrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SysClrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..be10da4 --- /dev/null +++ b/autoclass/decorator/docx/SysClrUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type SysClrUnitDecorator = class(SysClr) +uses TSSafeUnitConverter; +public + function Create(_obj: SysClr); + function Converte(); +private + object_: SysClr; +end; + +function SysClrUnitDecorator.Create(_obj: SysClr); +begin + class(SysClr).Create(); + object_ := _obj; + self.Converte(); +end; + +function SysClrUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrLastClr.Value := object_.XmlAttrLastClr.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SzCsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SzCsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..7fcafff --- /dev/null +++ b/autoclass/decorator/docx/SzCsUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type SzCsUnitDecorator = class(SzCs) +uses TSSafeUnitConverter; +public + function Create(_obj: SzCs); + function Converte(); +private + object_: SzCs; +end; + +function SzCsUnitDecorator.Create(_obj: SzCs); +begin + class(SzCs).Create(); + object_ := _obj; + self.Converte(); +end; + +function SzCsUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := TSSafeUnitConverter.HalfPointToPoints(object_.XmlAttrVal.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/SzUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/SzUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..787c20c --- /dev/null +++ b/autoclass/decorator/docx/SzUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type SzUnitDecorator = class(Sz) +uses TSSafeUnitConverter; +public + function Create(_obj: Sz); + function Converte(); +private + object_: Sz; +end; + +function SzUnitDecorator.Create(_obj: Sz); +begin + class(Sz).Create(); + object_ := _obj; + self.Converte(); +end; + +function SzUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := TSSafeUnitConverter.HalfPointToPoints(object_.XmlAttrVal.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3d3f017 --- /dev/null +++ b/autoclass/decorator/docx/TUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type TUnitDecorator = class(T) +uses TSSafeUnitConverter; +public + function Create(_obj: T); + function Converte(); +private + object_: T; +end; + +function TUnitDecorator.Create(_obj: T); +begin + class(T).Create(); + object_ := _obj; + self.Converte(); +end; + +function TUnitDecorator.Converte(); +begin + self.XmlAttrSpace.Value := object_.XmlAttrSpace.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TabUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TabUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..d37ff8f --- /dev/null +++ b/autoclass/decorator/docx/TabUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type TabUnitDecorator = class(Tab) +uses TSSafeUnitConverter; +public + function Create(_obj: Tab); + function Converte(); +private + object_: Tab; +end; + +function TabUnitDecorator.Create(_obj: Tab); +begin + class(Tab).Create(); + object_ := _obj; + self.Converte(); +end; + +function TabUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrLeader.Value := object_.XmlAttrLeader.Value; + self.XmlAttrPos.Value := object_.XmlAttrPos.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TabsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TabsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3238560 --- /dev/null +++ b/autoclass/decorator/docx/TabsUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type TabsUnitDecorator = class(Tabs) +uses TSSafeUnitConverter; +public + function Create(_obj: Tabs); + function Converte(); +private + object_: Tabs; +end; + +function TabsUnitDecorator.Create(_obj: Tabs); +begin + class(Tabs).Create(); + object_ := _obj; + self.Converte(); +end; + +function TabsUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblBorderUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblBorderUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..37830ff --- /dev/null +++ b/autoclass/decorator/docx/TblBorderUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type TblBorderUnitDecorator = class(TblBorder) +uses TSSafeUnitConverter; +public + function Create(_obj: TblBorder); + function Converte(); +private + object_: TblBorder; +end; + +function TblBorderUnitDecorator.Create(_obj: TblBorder); +begin + class(TblBorder).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblBorderUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrColor.Value := object_.XmlAttrColor.Value; + self.XmlAttrSpce.Value := object_.XmlAttrSpce.Value; + self.XmlAttrThemeColor.Value := object_.XmlAttrThemeColor.Value; + self.XmlAttrThemeTint.Value := object_.XmlAttrThemeTint.Value; + self.XmlAttrSz.Value := TSSafeUnitConverter.HalfPointToPoints(object_.XmlAttrSz.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblBordersUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblBordersUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..a66f42f --- /dev/null +++ b/autoclass/decorator/docx/TblBordersUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type TblBordersUnitDecorator = class(TblBorders) +uses TSSafeUnitConverter; +public + function Create(_obj: TblBorders); + function Converte(); +private + object_: TblBorders; +end; + +function TblBordersUnitDecorator.Create(_obj: TblBorders); +begin + class(TblBorders).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblBordersUnitDecorator.Converte(); +begin + self.Top := new tblBorderUnitDecorator(object_.Top); + self.Left := new tblBorderUnitDecorator(object_.Left); + self.Bottom := new tblBorderUnitDecorator(object_.Bottom); + self.Right := new tblBorderUnitDecorator(object_.Right); + self.InsideH := new PureWValUnitDecorator(object_.InsideH); + self.InsideV := new PureWValUnitDecorator(object_.InsideV); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblCellMarUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblCellMarUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..261deae --- /dev/null +++ b/autoclass/decorator/docx/TblCellMarUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type TblCellMarUnitDecorator = class(TblCellMar) +uses TSSafeUnitConverter; +public + function Create(_obj: TblCellMar); + function Converte(); +private + object_: TblCellMar; +end; + +function TblCellMarUnitDecorator.Create(_obj: TblCellMar); +begin + class(TblCellMar).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblCellMarUnitDecorator.Converte(); +begin + self.Top := new TblIndUnitDecorator(object_.Top); + self.Left := new TblIndUnitDecorator(object_.Left); + self.Bottom := new TblIndUnitDecorator(object_.Bottom); + self.Right := new TblIndUnitDecorator(object_.Right); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblGridUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblGridUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..d6c84e9 --- /dev/null +++ b/autoclass/decorator/docx/TblGridUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type TblGridUnitDecorator = class(TblGrid) +uses TSSafeUnitConverter; +public + function Create(_obj: TblGrid); + function Converte(); +private + object_: TblGrid; +end; + +function TblGridUnitDecorator.Create(_obj: TblGrid); +begin + class(TblGrid).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblGridUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblIndUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblIndUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..4cff3f8 --- /dev/null +++ b/autoclass/decorator/docx/TblIndUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type TblIndUnitDecorator = class(TblInd) +uses TSSafeUnitConverter; +public + function Create(_obj: TblInd); + function Converte(); +private + object_: TblInd; +end; + +function TblIndUnitDecorator.Create(_obj: TblInd); +begin + class(TblInd).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblIndUnitDecorator.Converte(); +begin + self.XmlAttrW.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrW.Value); + self.XmlAttrType.Value := object_.XmlAttrType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblLayoutUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblLayoutUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..ca47d82 --- /dev/null +++ b/autoclass/decorator/docx/TblLayoutUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type TblLayoutUnitDecorator = class(TblLayout) +uses TSSafeUnitConverter; +public + function Create(_obj: TblLayout); + function Converte(); +private + object_: TblLayout; +end; + +function TblLayoutUnitDecorator.Create(_obj: TblLayout); +begin + class(TblLayout).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblLayoutUnitDecorator.Converte(); +begin + self.XmlAttrType.Value := object_.XmlAttrType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblLookUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblLookUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..ffd6e93 --- /dev/null +++ b/autoclass/decorator/docx/TblLookUnitDecorator@DOCX.tsf @@ -0,0 +1,26 @@ +type TblLookUnitDecorator = class(TblLook) +uses TSSafeUnitConverter; +public + function Create(_obj: TblLook); + function Converte(); +private + object_: TblLook; +end; + +function TblLookUnitDecorator.Create(_obj: TblLook); +begin + class(TblLook).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblLookUnitDecorator.Converte(); +begin + self.XmlAttrVal.Value := object_.XmlAttrVal.Value; + self.XmlAttrFirstRow.Value := object_.XmlAttrFirstRow.Value; + self.XmlAttrLastRow.Value := object_.XmlAttrLastRow.Value; + self.XmlAttrFirstColumn.Value := object_.XmlAttrFirstColumn.Value; + self.XmlAttrLastColumn.Value := object_.XmlAttrLastColumn.Value; + self.XmlAttrNoHBand.Value := object_.XmlAttrNoHBand.Value; + self.XmlAttrNoVBand.Value := object_.XmlAttrNoVBand.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..64a73f5 --- /dev/null +++ b/autoclass/decorator/docx/TblPrUnitDecorator@DOCX.tsf @@ -0,0 +1,27 @@ +type TblPrUnitDecorator = class(TblPr) +uses TSSafeUnitConverter; +public + function Create(_obj: TblPr); + function Converte(); +private + object_: TblPr; +end; + +function TblPrUnitDecorator.Create(_obj: TblPr); +begin + class(TblPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblPrUnitDecorator.Converte(); +begin + self.Jc := new PureWValUnitDecorator(object_.Jc); + self.TblStyle := new PureWValUnitDecorator(object_.TblStyle); + self.TblW := new TblWUnitDecorator(object_.TblW); + self.TblInd := new TblWUnitDecorator(object_.TblInd); + self.TblLayout := new TblLayoutUnitDecorator(object_.TblLayout); + self.TblLook := new TblLookUnitDecorator(object_.TblLook); + self.TblBorders := new TblBordersUnitDecorator(object_.TblBorders); + self.TblCellMar := new TblCellMarUnitDecorator(object_.TblCellMar); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblStylePrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblStylePrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..fe7a8dc --- /dev/null +++ b/autoclass/decorator/docx/TblStylePrUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type TblStylePrUnitDecorator = class(TblStylePr) +uses TSSafeUnitConverter; +public + function Create(_obj: TblStylePr); + function Converte(); +private + object_: TblStylePr; +end; + +function TblStylePrUnitDecorator.Create(_obj: TblStylePr); +begin + class(TblStylePr).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblStylePrUnitDecorator.Converte(); +begin + self.PPr := new PPrUnitDecorator(object_.PPr); + self.TblPr := new TblPrUnitDecorator(object_.TblPr); + self.TrPr := new TrPrUnitDecorator(object_.TrPr); + self.TcPr := new TcPrUnitDecorator(object_.TcPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..bf88e72 --- /dev/null +++ b/autoclass/decorator/docx/TblUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type TblUnitDecorator = class(Tbl) +uses TSSafeUnitConverter; +public + function Create(_obj: Tbl); + function Converte(); +private + object_: Tbl; +end; + +function TblUnitDecorator.Create(_obj: Tbl); +begin + class(Tbl).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblUnitDecorator.Converte(); +begin + self.TblPr := new TblPrUnitDecorator(object_.TblPr); + self.TblGrid := new TblGridUnitDecorator(object_.TblGrid); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TblWUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TblWUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..cc667b9 --- /dev/null +++ b/autoclass/decorator/docx/TblWUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type TblWUnitDecorator = class(TblW) +uses TSSafeUnitConverter; +public + function Create(_obj: TblW); + function Converte(); +private + object_: TblW; +end; + +function TblWUnitDecorator.Create(_obj: TblW); +begin + class(TblW).Create(); + object_ := _obj; + self.Converte(); +end; + +function TblWUnitDecorator.Converte(); +begin + self.XmlAttrW.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrW.Value); + self.XmlAttrType.Value := object_.XmlAttrType.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TcPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TcPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3e6f8e4 --- /dev/null +++ b/autoclass/decorator/docx/TcPrUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type TcPrUnitDecorator = class(TcPr) +uses TSSafeUnitConverter; +public + function Create(_obj: TcPr); + function Converte(); +private + object_: TcPr; +end; + +function TcPrUnitDecorator.Create(_obj: TcPr); +begin + class(TcPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function TcPrUnitDecorator.Converte(); +begin + self.TcW := new TblWUnitDecorator(object_.TcW); + self.GridSpan := new PureWValUnitDecorator(object_.GridSpan); + self.VMerge := new PureWValUnitDecorator(object_.VMerge); + self.VAlign := new PureWValUnitDecorator(object_.VAlign); + self.Shd := new ShdUnitDecorator(object_.Shd); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TcUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TcUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..feab69b --- /dev/null +++ b/autoclass/decorator/docx/TcUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type TcUnitDecorator = class(Tc) +uses TSSafeUnitConverter; +public + function Create(_obj: Tc); + function Converte(); +private + object_: Tc; +end; + +function TcUnitDecorator.Create(_obj: Tc); +begin + class(Tc).Create(); + object_ := _obj; + self.Converte(); +end; + +function TcUnitDecorator.Converte(); +begin + self.TcPr := new TcPrUnitDecorator(object_.TcPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ThemeElementsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ThemeElementsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..c92f5a5 --- /dev/null +++ b/autoclass/decorator/docx/ThemeElementsUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type ThemeElementsUnitDecorator = class(ThemeElements) +uses TSSafeUnitConverter; +public + function Create(_obj: ThemeElements); + function Converte(); +private + object_: ThemeElements; +end; + +function ThemeElementsUnitDecorator.Create(_obj: ThemeElements); +begin + class(ThemeElements).Create(); + object_ := _obj; + self.Converte(); +end; + +function ThemeElementsUnitDecorator.Converte(); +begin + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.ClrScheme := new ClrSchemeUnitDecorator(object_.ClrScheme); + self.FontScheme := new FontSchemeUnitDecorator(object_.FontScheme); + self.FmtScheme := new FmtSchemeUnitDecorator(object_.FmtScheme); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ThemeFamilyUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ThemeFamilyUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..290d5b5 --- /dev/null +++ b/autoclass/decorator/docx/ThemeFamilyUnitDecorator@DOCX.tsf @@ -0,0 +1,23 @@ +type ThemeFamilyUnitDecorator = class(ThemeFamily) +uses TSSafeUnitConverter; +public + function Create(_obj: ThemeFamily); + function Converte(); +private + object_: ThemeFamily; +end; + +function ThemeFamilyUnitDecorator.Create(_obj: ThemeFamily); +begin + class(ThemeFamily).Create(); + object_ := _obj; + self.Converte(); +end; + +function ThemeFamilyUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsThm15.Value := object_.XmlAttrXmlnsThm15.Value; + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.XmlAttrId.Value := object_.XmlAttrId.Value; + self.XmlAttrVid.Value := object_.XmlAttrVid.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ThemeUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ThemeUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..c442f98 --- /dev/null +++ b/autoclass/decorator/docx/ThemeUnitDecorator@DOCX.tsf @@ -0,0 +1,25 @@ +type ThemeUnitDecorator = class(Theme) +uses TSSafeUnitConverter; +public + function Create(_obj: Theme); + function Converte(); +private + object_: Theme; +end; + +function ThemeUnitDecorator.Create(_obj: Theme); +begin + class(Theme).Create(); + object_ := _obj; + self.Converte(); +end; + +function ThemeUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsA.Value := object_.XmlAttrXmlnsA.Value; + self.XmlAttrName.Value := object_.XmlAttrName.Value; + self.ThemeElements := new ThemeElementsUnitDecorator(object_.ThemeElements); + if not ifnil(object_.XmlChildObjectDefaults.Value) then self.XmlChildObjectDefaults.Value := object_.XmlChildObjectDefaults.Value; + if not ifnil(object_.XmlChildExtraClrSchemeLst.Value) then self.XmlChildExtraClrSchemeLst.Value := object_.XmlChildExtraClrSchemeLst.Value; + self.ExtLst := new ExtLstUnitDecorator(object_.ExtLst); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TitleUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TitleUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..8fba55f --- /dev/null +++ b/autoclass/decorator/docx/TitleUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type TitleUnitDecorator = class(Title) +uses TSSafeUnitConverter; +public + function Create(_obj: Title); + function Converte(); +private + object_: Title; +end; + +function TitleUnitDecorator.Create(_obj: Title); +begin + class(Title).Create(); + object_ := _obj; + self.Converte(); +end; + +function TitleUnitDecorator.Converte(); +begin + self.Tx := new TxUnitDecorator(object_.Tx); + if not ifnil(object_.XmlChildLayout.Value) then self.XmlChildLayout.Value := object_.XmlChildLayout.Value; + self.Overlay := new PureValUnitDecorator(object_.Overlay); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TrHeightUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TrHeightUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..838997f --- /dev/null +++ b/autoclass/decorator/docx/TrHeightUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type TrHeightUnitDecorator = class(TrHeight) +uses TSSafeUnitConverter; +public + function Create(_obj: TrHeight); + function Converte(); +private + object_: TrHeight; +end; + +function TrHeightUnitDecorator.Create(_obj: TrHeight); +begin + class(TrHeight).Create(); + object_ := _obj; + self.Converte(); +end; + +function TrHeightUnitDecorator.Converte(); +begin + self.XmlAttrval.Value := TSSafeUnitConverter.TwipsToPoints(object_.XmlAttrval.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TrPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TrPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..09057b1 --- /dev/null +++ b/autoclass/decorator/docx/TrPrUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type TrPrUnitDecorator = class(TrPr) +uses TSSafeUnitConverter; +public + function Create(_obj: TrPr); + function Converte(); +private + object_: TrPr; +end; + +function TrPrUnitDecorator.Create(_obj: TrPr); +begin + class(TrPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function TrPrUnitDecorator.Converte(); +begin + self.TrHeight := new TrHeightUnitDecorator(object_.TrHeight); + self.Jc := new PureWValUnitDecorator(object_.Jc); + if not ifnil(object_.XmlChildCantSplit.Value) then self.XmlChildCantSplit.Value := object_.XmlChildCantSplit.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..fdfe7b9 --- /dev/null +++ b/autoclass/decorator/docx/TrUnitDecorator@DOCX.tsf @@ -0,0 +1,24 @@ +type TrUnitDecorator = class(Tr) +uses TSSafeUnitConverter; +public + function Create(_obj: Tr); + function Converte(); +private + object_: Tr; +end; + +function TrUnitDecorator.Create(_obj: Tr); +begin + class(Tr).Create(); + object_ := _obj; + self.Converte(); +end; + +function TrUnitDecorator.Converte(); +begin + self.XmlAttrWRsidR.Value := object_.XmlAttrWRsidR.Value; + self.XmlAttrW14ParaId.Value := object_.XmlAttrW14ParaId.Value; + self.XmlAttrW14TextId.Value := object_.XmlAttrW14TextId.Value; + self.XmlAttrWRsidTr.Value := object_.XmlAttrWRsidTr.Value; + self.TrPr := new TrPrUnitDecorator(object_.TrPr); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TxPrUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TxPrUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..5c2c983 --- /dev/null +++ b/autoclass/decorator/docx/TxPrUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type TxPrUnitDecorator = class(TxPr) +uses TSSafeUnitConverter; +public + function Create(_obj: TxPr); + function Converte(); +private + object_: TxPr; +end; + +function TxPrUnitDecorator.Create(_obj: TxPr); +begin + class(TxPr).Create(); + object_ := _obj; + self.Converte(); +end; + +function TxPrUnitDecorator.Converte(); +begin + self.BodyPr := new BodyPrUnitDecorator(object_.BodyPr); + if not ifnil(object_.XmlChildLstStyle.Value) then self.XmlChildLstStyle.Value := object_.XmlChildLstStyle.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TxUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TxUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..915fe07 --- /dev/null +++ b/autoclass/decorator/docx/TxUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type TxUnitDecorator = class(Tx) +uses TSSafeUnitConverter; +public + function Create(_obj: Tx); + function Converte(); +private + object_: Tx; +end; + +function TxUnitDecorator.Create(_obj: Tx); +begin + class(Tx).Create(); + object_ := _obj; + self.Converte(); +end; + +function TxUnitDecorator.Converte(); +begin + self.StrRef := new StrRefUnitDecorator(object_.StrRef); + self.Rich := new RichUnitDecorator(object_.Rich); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/TypesUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/TypesUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..1a35e0c --- /dev/null +++ b/autoclass/decorator/docx/TypesUnitDecorator@DOCX.tsf @@ -0,0 +1,19 @@ +type TypesUnitDecorator = class(Types) +uses TSSafeUnitConverter; +public + function Create(_obj: Types); + function Converte(); +private + object_: Types; +end; + +function TypesUnitDecorator.Create(_obj: Types); +begin + class(Types).Create(); + object_ := _obj; + self.Converte(); +end; + +function TypesUnitDecorator.Converte(); +begin +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ValUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ValUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..a735f36 --- /dev/null +++ b/autoclass/decorator/docx/ValUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type ValUnitDecorator = class(Val) +uses TSSafeUnitConverter; +public + function Create(_obj: Val); + function Converte(); +private + object_: Val; +end; + +function ValUnitDecorator.Create(_obj: Val); +begin + class(Val).Create(); + object_ := _obj; + self.Converte(); +end; + +function ValUnitDecorator.Converte(); +begin + self.NumRef := new NumRefUnitDecorator(object_.NumRef); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/View3DUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/View3DUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..38efe5e --- /dev/null +++ b/autoclass/decorator/docx/View3DUnitDecorator@DOCX.tsf @@ -0,0 +1,22 @@ +type View3DUnitDecorator = class(View3D) +uses TSSafeUnitConverter; +public + function Create(_obj: View3D); + function Converte(); +private + object_: View3D; +end; + +function View3DUnitDecorator.Create(_obj: View3D); +begin + class(View3D).Create(); + object_ := _obj; + self.Converte(); +end; + +function View3DUnitDecorator.Converte(); +begin + self.RotX := new PureValUnitDecorator(object_.RotX); + self.RotY := new PureValUnitDecorator(object_.RotY); + self.RAngAx := new PureValUnitDecorator(object_.RAngAx); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/WebSettingsUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/WebSettingsUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f7213ed --- /dev/null +++ b/autoclass/decorator/docx/WebSettingsUnitDecorator@DOCX.tsf @@ -0,0 +1,33 @@ +type WebSettingsUnitDecorator = class(WebSettings) +uses TSSafeUnitConverter; +public + function Create(_obj: WebSettings); + function Converte(); +private + object_: WebSettings; +end; + +function WebSettingsUnitDecorator.Create(_obj: WebSettings); +begin + class(WebSettings).Create(); + object_ := _obj; + self.Converte(); +end; + +function WebSettingsUnitDecorator.Converte(); +begin + self.XmlAttrXmlnsMc.Value := object_.XmlAttrXmlnsMc.Value; + self.XmlAttrXmlnsR.Value := object_.XmlAttrXmlnsR.Value; + self.XmlAttrXmlnsW.Value := object_.XmlAttrXmlnsW.Value; + self.XmlAttrXmlnsW14.Value := object_.XmlAttrXmlnsW14.Value; + self.XmlAttrXmlnsW15.Value := object_.XmlAttrXmlnsW15.Value; + self.XmlAttrXmlnsW16Cex.Value := object_.XmlAttrXmlnsW16Cex.Value; + self.XmlAttrXmlnsW16Cid.Value := object_.XmlAttrXmlnsW16Cid.Value; + self.XmlAttrXmlnsW16.Value := object_.XmlAttrXmlnsW16.Value; + self.XmlAttrXmlnsW16Du.Value := object_.XmlAttrXmlnsW16Du.Value; + self.XmlAttrXmlnsW16sdtdh.Value := object_.XmlAttrXmlnsW16sdtdh.Value; + self.XmlAttrXmlnsW16se.Value := object_.XmlAttrXmlnsW16se.Value; + self.XmlAttrMcIgnorable.Value := object_.XmlAttrMcIgnorable.Value; + if not ifnil(object_.XmlChildOptimizeForBrowser.Value) then self.XmlChildOptimizeForBrowser.Value := object_.XmlChildOptimizeForBrowser.Value; + if not ifnil(object_.XmlChildAllowPNG.Value) then self.XmlChildAllowPNG.Value := object_.XmlChildAllowPNG.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/XYUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/XYUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..5ea5755 --- /dev/null +++ b/autoclass/decorator/docx/XYUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type XYUnitDecorator = class(XY) +uses TSSafeUnitConverter; +public + function Create(_obj: XY); + function Converte(); +private + object_: XY; +end; + +function XYUnitDecorator.Create(_obj: XY); +begin + class(XY).Create(); + object_ := _obj; + self.Converte(); +end; + +function XYUnitDecorator.Converte(); +begin + self.XmlAttrX.Value := TSSafeUnitConverter.EmusToPoints(object_.XmlAttrX.Value); + self.XmlAttrY.Value := TSSafeUnitConverter.EmusToPoints(object_.XmlAttrY.Value); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/XfrmUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/XfrmUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..f6ecca3 --- /dev/null +++ b/autoclass/decorator/docx/XfrmUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type XfrmUnitDecorator = class(Xfrm) +uses TSSafeUnitConverter; +public + function Create(_obj: Xfrm); + function Converte(); +private + object_: Xfrm; +end; + +function XfrmUnitDecorator.Create(_obj: Xfrm); +begin + class(Xfrm).Create(); + object_ := _obj; + self.Converte(); +end; + +function XfrmUnitDecorator.Converte(); +begin + self.Off := new XYUnitDecorator(object_.Off); + self.Ext := new CXYUnitDecorator(object_.Ext); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/ZoomUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/ZoomUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..0e99200 --- /dev/null +++ b/autoclass/decorator/docx/ZoomUnitDecorator@DOCX.tsf @@ -0,0 +1,20 @@ +type ZoomUnitDecorator = class(Zoom) +uses TSSafeUnitConverter; +public + function Create(_obj: Zoom); + function Converte(); +private + object_: Zoom; +end; + +function ZoomUnitDecorator.Create(_obj: Zoom); +begin + class(Zoom).Create(); + object_ := _obj; + self.Converte(); +end; + +function ZoomUnitDecorator.Converte(); +begin + self.XmlAttrPercent.Value := object_.XmlAttrPercent.Value; +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/_InlineUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/_InlineUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..c680ba3 --- /dev/null +++ b/autoclass/decorator/docx/_InlineUnitDecorator@DOCX.tsf @@ -0,0 +1,30 @@ +type _InlineUnitDecorator = class(_Inline) +uses TSSafeUnitConverter; +public + function Create(_obj: _Inline); + function Converte(); +private + object_: _Inline; +end; + +function _InlineUnitDecorator.Create(_obj: _Inline); +begin + class(_Inline).Create(); + object_ := _obj; + self.Converte(); +end; + +function _InlineUnitDecorator.Converte(); +begin + self.XmlAttrDistT.Value := object_.XmlAttrDistT.Value; + self.XmlAttrDistB.Value := object_.XmlAttrDistB.Value; + self.XmlAttrDistL.Value := object_.XmlAttrDistL.Value; + self.XmlAttrDistR.Value := object_.XmlAttrDistR.Value; + self.XmlAttrAnchorId.Value := object_.XmlAttrAnchorId.Value; + self.XmlAttrEditId.Value := object_.XmlAttrEditId.Value; + self.Extent := new CXYUnitDecorator(object_.Extent); + self.EffectExtent := new EffectExtentUnitDecorator(object_.EffectExtent); + self.DocPr := new DocPrUnitDecorator(object_.DocPr); + self.CNvGraphicFramePr := new CNvGraphicFramePrUnitDecorator(object_.CNvGraphicFramePr); + self.Graphic := new GraphicUnitDecorator(object_.Graphic); +end; \ No newline at end of file diff --git a/autoclass/decorator/docx/_OverrideUnitDecorator@DOCX.tsf b/autoclass/decorator/docx/_OverrideUnitDecorator@DOCX.tsf new file mode 100644 index 0000000..3493e9f --- /dev/null +++ b/autoclass/decorator/docx/_OverrideUnitDecorator@DOCX.tsf @@ -0,0 +1,21 @@ +type _OverrideUnitDecorator = class(_Override) +uses TSSafeUnitConverter; +public + function Create(_obj: _Override); + function Converte(); +private + object_: _Override; +end; + +function _OverrideUnitDecorator.Create(_obj: _Override); +begin + class(_Override).Create(); + object_ := _obj; + self.Converte(); +end; + +function _OverrideUnitDecorator.Converte(); +begin + self.XmlAttrPartName.Value := object_.XmlAttrPartName.Value; + self.XmlAttrContentType.Value := object_.XmlAttrContentType.Value; +end; \ No newline at end of file diff --git a/autoclass/docx/APPr@DOCX.tsf b/autoclass/docx/APPr@DOCX.tsf new file mode 100644 index 0000000..75e20f0 --- /dev/null +++ b/autoclass/docx/APPr@DOCX.tsf @@ -0,0 +1,98 @@ +type APPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: APPr);override; + +public + // Attributes + + // Children + DefRPr: ARPr; + +end; + +function APPr.Create();overload; +begin + self.Create(nil, "a", "pPr"); +end; + +function APPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function APPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function APPr.Init();override; +begin + self.DefRPr := new ARPr(self, self.Prefix, "defRPr"); +end; + +function APPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function APPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.DefRPr, + ); + sorted_child_ := array( + "": -1, + self.DefRPr.ElementName: 0, + ); +end; + +function APPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function APPr.Copy(_obj: APPr);override; +begin + self.DefRPr.Copy(_obj.DefRPr); +end; diff --git a/autoclass/docx/AR@DOCX.tsf b/autoclass/docx/AR@DOCX.tsf new file mode 100644 index 0000000..15d2f6f --- /dev/null +++ b/autoclass/docx/AR@DOCX.tsf @@ -0,0 +1,103 @@ +type AR = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: AR);override; + +public + // Attributes + + // Children + RPr: ARPr; + T: T; + +end; + +function AR.Create();overload; +begin + self.Create(nil, "a", "r"); +end; + +function AR.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function AR.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function AR.Init();override; +begin + self.RPr := new ARPr(self, self.Prefix, "rPr"); + self.T := new T(self, self.Prefix, "t"); +end; + +function AR.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function AR.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + 1: self.T, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + self.T.ElementName: 1, + ); +end; + +function AR.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function AR.Copy(_obj: AR);override; +begin + self.RPr.Copy(_obj.RPr); + self.T.Copy(_obj.T); +end; diff --git a/autoclass/docx/ARPr@DOCX.tsf b/autoclass/docx/ARPr@DOCX.tsf new file mode 100644 index 0000000..75cc6ab --- /dev/null +++ b/autoclass/docx/ARPr@DOCX.tsf @@ -0,0 +1,294 @@ +type ARPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ARPr);override; + + property Lang read ReadXmlAttrLang write WriteXmlAttrLang; + property AltLang read ReadXmlAttrAltLang write WriteXmlAttrAltLang; + property B read ReadXmlAttrB write WriteXmlAttrB; + property Baseline read ReadXmlAttrBaseline write WriteXmlAttrBaseline; + property I read ReadXmlAttrI write WriteXmlAttrI; + property Kern read ReadXmlAttrKern write WriteXmlAttrKern; + property Spc read ReadXmlAttrSpc write WriteXmlAttrSpc; + property Strike read ReadXmlAttrStrike write WriteXmlAttrStrike; + property Sz read ReadXmlAttrSz write WriteXmlAttrSz; + property U read ReadXmlAttrU write WriteXmlAttrU; + function ReadXmlAttrLang(); + function WriteXmlAttrLang(_value); + function ReadXmlAttrAltLang(); + function WriteXmlAttrAltLang(_value); + function ReadXmlAttrB(); + function WriteXmlAttrB(_value); + function ReadXmlAttrBaseline(); + function WriteXmlAttrBaseline(_value); + function ReadXmlAttrI(); + function WriteXmlAttrI(_value); + function ReadXmlAttrKern(); + function WriteXmlAttrKern(_value); + function ReadXmlAttrSpc(); + function WriteXmlAttrSpc(_value); + function ReadXmlAttrStrike(); + function WriteXmlAttrStrike(_value); + function ReadXmlAttrSz(); + function WriteXmlAttrSz(_value); + function ReadXmlAttrU(); + function WriteXmlAttrU(_value); + +public + // Attributes + XmlAttrLang: OpenXmlAttribute; + XmlAttrAltLang: OpenXmlAttribute; + XmlAttrB: OpenXmlAttribute; + XmlAttrBaseline: OpenXmlAttribute; + XmlAttrI: OpenXmlAttribute; + XmlAttrKern: OpenXmlAttribute; + XmlAttrSpc: OpenXmlAttribute; + XmlAttrStrike: OpenXmlAttribute; + XmlAttrSz: OpenXmlAttribute; + XmlAttrU: OpenXmlAttribute; + + // Children + SolidFill: SolidFill; + Latin: Latin; + Ea: Latin; + Cs: Latin; + +end; + +function ARPr.Create();overload; +begin + self.Create(nil, "a", "rPr"); +end; + +function ARPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ARPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ARPr.Init();override; +begin + self.XmlAttrLang := new OpenXmlAttribute(nil, "lang", nil); + self.XmlAttrAltLang := new OpenXmlAttribute(nil, "altLang", nil); + self.XmlAttrB := new OpenXmlAttribute(nil, "b", nil); + self.XmlAttrBaseline := new OpenXmlAttribute(nil, "baseline", nil); + self.XmlAttrI := new OpenXmlAttribute(nil, "i", nil); + self.XmlAttrKern := new OpenXmlAttribute(nil, "kern", nil); + self.XmlAttrSpc := new OpenXmlAttribute(nil, "spc", nil); + self.XmlAttrStrike := new OpenXmlAttribute(nil, "strike", nil); + self.XmlAttrSz := new OpenXmlAttribute(nil, "sz", nil); + self.XmlAttrU := new OpenXmlAttribute(nil, "u", nil); + self.SolidFill := new SolidFill(self, self.Prefix, "solidFill"); + self.Latin := new Latin(self, self.Prefix, "latin"); + self.Ea := new Latin(self, self.Prefix, "ea"); + self.Cs := new Latin(self, self.Prefix, "cs"); +end; + +function ARPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrLang, + self.XmlAttrAltLang, + self.XmlAttrB, + self.XmlAttrBaseline, + self.XmlAttrI, + self.XmlAttrKern, + self.XmlAttrSpc, + self.XmlAttrStrike, + self.XmlAttrSz, + self.XmlAttrU, + ); +end; + +function ARPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.SolidFill, + 1: self.Latin, + 2: self.Ea, + 3: self.Cs, + ); + sorted_child_ := array( + "": -1, + self.SolidFill.ElementName: 0, + self.Latin.ElementName: 1, + self.Ea.ElementName: 2, + self.Cs.ElementName: 3, + ); +end; + +function ARPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ARPr.Copy(_obj: ARPr);override; +begin + if not ifnil(_obj.XmlAttrLang.Value) then + self.XmlAttrLang.Value := _obj.XmlAttrLang.Value; + if not ifnil(_obj.XmlAttrAltLang.Value) then + self.XmlAttrAltLang.Value := _obj.XmlAttrAltLang.Value; + if not ifnil(_obj.XmlAttrB.Value) then + self.XmlAttrB.Value := _obj.XmlAttrB.Value; + if not ifnil(_obj.XmlAttrBaseline.Value) then + self.XmlAttrBaseline.Value := _obj.XmlAttrBaseline.Value; + if not ifnil(_obj.XmlAttrI.Value) then + self.XmlAttrI.Value := _obj.XmlAttrI.Value; + if not ifnil(_obj.XmlAttrKern.Value) then + self.XmlAttrKern.Value := _obj.XmlAttrKern.Value; + if not ifnil(_obj.XmlAttrSpc.Value) then + self.XmlAttrSpc.Value := _obj.XmlAttrSpc.Value; + if not ifnil(_obj.XmlAttrStrike.Value) then + self.XmlAttrStrike.Value := _obj.XmlAttrStrike.Value; + if not ifnil(_obj.XmlAttrSz.Value) then + self.XmlAttrSz.Value := _obj.XmlAttrSz.Value; + if not ifnil(_obj.XmlAttrU.Value) then + self.XmlAttrU.Value := _obj.XmlAttrU.Value; + self.SolidFill.Copy(_obj.SolidFill); + self.Latin.Copy(_obj.Latin); + self.Ea.Copy(_obj.Ea); + self.Cs.Copy(_obj.Cs); +end; + +function ARPr.ReadXmlAttrLang(); +begin + return self.XmlAttrLang.Value; +end; + +function ARPr.WriteXmlAttrLang(_value); +begin + self.XmlAttrLang.Value := _value; +end; + +function ARPr.ReadXmlAttrAltLang(); +begin + return self.XmlAttrAltLang.Value; +end; + +function ARPr.WriteXmlAttrAltLang(_value); +begin + self.XmlAttrAltLang.Value := _value; +end; + +function ARPr.ReadXmlAttrB(); +begin + return self.XmlAttrB.Value; +end; + +function ARPr.WriteXmlAttrB(_value); +begin + self.XmlAttrB.Value := _value; +end; + +function ARPr.ReadXmlAttrBaseline(); +begin + return self.XmlAttrBaseline.Value; +end; + +function ARPr.WriteXmlAttrBaseline(_value); +begin + self.XmlAttrBaseline.Value := _value; +end; + +function ARPr.ReadXmlAttrI(); +begin + return self.XmlAttrI.Value; +end; + +function ARPr.WriteXmlAttrI(_value); +begin + self.XmlAttrI.Value := _value; +end; + +function ARPr.ReadXmlAttrKern(); +begin + return self.XmlAttrKern.Value; +end; + +function ARPr.WriteXmlAttrKern(_value); +begin + self.XmlAttrKern.Value := _value; +end; + +function ARPr.ReadXmlAttrSpc(); +begin + return self.XmlAttrSpc.Value; +end; + +function ARPr.WriteXmlAttrSpc(_value); +begin + self.XmlAttrSpc.Value := _value; +end; + +function ARPr.ReadXmlAttrStrike(); +begin + return self.XmlAttrStrike.Value; +end; + +function ARPr.WriteXmlAttrStrike(_value); +begin + self.XmlAttrStrike.Value := _value; +end; + +function ARPr.ReadXmlAttrSz(); +begin + return self.XmlAttrSz.Value; +end; + +function ARPr.WriteXmlAttrSz(_value); +begin + self.XmlAttrSz.Value := _value; +end; + +function ARPr.ReadXmlAttrU(); +begin + return self.XmlAttrU.Value; +end; + +function ARPr.WriteXmlAttrU(_value); +begin + self.XmlAttrU.Value := _value; +end; diff --git a/autoclass/docx/AbstractNum@DOCX.tsf b/autoclass/docx/AbstractNum@DOCX.tsf new file mode 100644 index 0000000..df6d3cb --- /dev/null +++ b/autoclass/docx/AbstractNum@DOCX.tsf @@ -0,0 +1,187 @@ +type AbstractNum = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: AbstractNum);override; + function AddLvl(): Lvl; + function AppendLvl(): Lvl; + + property Lvls read ReadLvls; + function ReadLvls(_index); + + property AbstractNumId read ReadXmlAttrAbstractNumId write WriteXmlAttrAbstractNumId; + property RestartNumberingAfterBreak read ReadXmlAttrRestartNumberingAfterBreak write WriteXmlAttrRestartNumberingAfterBreak; + function ReadXmlAttrAbstractNumId(); + function WriteXmlAttrAbstractNumId(_value); + function ReadXmlAttrRestartNumberingAfterBreak(); + function WriteXmlAttrRestartNumberingAfterBreak(_value); + +public + // Attributes + XmlAttrAbstractNumId: OpenXmlAttribute; + XmlAttrRestartNumberingAfterBreak: OpenXmlAttribute; + + // Children + Nsid: PureWVal; + MultiLevelType: PureWVal; + Tmpl: PureWVal; + +end; + +function AbstractNum.Create();overload; +begin + self.Create(nil, "w", "abstractNum"); +end; + +function AbstractNum.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function AbstractNum.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function AbstractNum.Init();override; +begin + self.XmlAttrAbstractNumId := new OpenXmlAttribute(self.Prefix, "abstractNumId", nil); + self.XmlAttrRestartNumberingAfterBreak := new OpenXmlAttribute(self.Prefix, "restartNumberingAfterBreak", nil); + self.Nsid := new PureWVal(self, self.Prefix, "nsid"); + self.MultiLevelType := new PureWVal(self, self.Prefix, "multiLevelType"); + self.Tmpl := new PureWVal(self, self.Prefix, "tmpl"); +end; + +function AbstractNum.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrAbstractNumId, + self.XmlAttrRestartNumberingAfterBreak, + ); +end; + +function AbstractNum.InitChildren();override; +begin + child_elements_ := array( + 0: self.Nsid, + 1: self.MultiLevelType, + 2: self.Tmpl, + ); + sorted_child_ := array( + "": -1, + self.Nsid.ElementName: 0, + self.MultiLevelType.ElementName: 1, + self.Tmpl.ElementName: 2, + ); +end; + +function AbstractNum.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "lvl": obj := self.AppendLvl(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function AbstractNum.Copy(_obj: AbstractNum);override; +begin + if not ifnil(_obj.XmlAttrAbstractNumId.Value) then + self.XmlAttrAbstractNumId.Value := _obj.XmlAttrAbstractNumId.Value; + if not ifnil(_obj.XmlAttrRestartNumberingAfterBreak.Value) then + self.XmlAttrRestartNumberingAfterBreak.Value := _obj.XmlAttrRestartNumberingAfterBreak.Value; + self.Nsid.Copy(_obj.Nsid); + self.MultiLevelType.Copy(_obj.MultiLevelType); + self.Tmpl.Copy(_obj.Tmpl); +end; + +function AbstractNum.AddLvl(): Lvl; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "lvl" then break; + end + obj := new Lvl(self, self.Prefix, "lvl"); + self.InsertChild(obj, i+1); + return obj; +end; + +function AbstractNum.AppendLvl(): Lvl; +begin + obj := new Lvl(self, self.Prefix, "lvl"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function AbstractNum.ReadLvls(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "lvl" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function AbstractNum.ReadXmlAttrAbstractNumId(); +begin + return self.XmlAttrAbstractNumId.Value; +end; + +function AbstractNum.WriteXmlAttrAbstractNumId(_value); +begin + self.XmlAttrAbstractNumId.Value := _value; +end; + +function AbstractNum.ReadXmlAttrRestartNumberingAfterBreak(); +begin + return self.XmlAttrRestartNumberingAfterBreak.Value; +end; + +function AbstractNum.WriteXmlAttrRestartNumberingAfterBreak(_value); +begin + self.XmlAttrRestartNumberingAfterBreak.Value := _value; +end; diff --git a/autoclass/docx/AlternateContent@DOCX.tsf b/autoclass/docx/AlternateContent@DOCX.tsf new file mode 100644 index 0000000..6372050 --- /dev/null +++ b/autoclass/docx/AlternateContent@DOCX.tsf @@ -0,0 +1,122 @@ +type AlternateContent = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: AlternateContent);override; + + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + +public + // Attributes + XmlAttrXmlnsMc: OpenXmlAttribute; + + // Children + Choice: Choice; + Fallback: Fallback; + +end; + +function AlternateContent.Create();overload; +begin + self.Create(nil, "mc", "alternateContent"); +end; + +function AlternateContent.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function AlternateContent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function AlternateContent.Init();override; +begin + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", "http://schemas.openxmlformats.org/markup-compatibility/2006"); + self.Choice := new Choice(self, self.Prefix, "Choice"); + self.Fallback := new Fallback(self, self.Prefix, "Fallback"); +end; + +function AlternateContent.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsMc, + ); +end; + +function AlternateContent.InitChildren();override; +begin + child_elements_ := array( + 0: self.Choice, + 1: self.Fallback, + ); + sorted_child_ := array( + "": -1, + self.Choice.ElementName: 0, + self.Fallback.ElementName: 1, + ); +end; + +function AlternateContent.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function AlternateContent.Copy(_obj: AlternateContent);override; +begin + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + self.Choice.Copy(_obj.Choice); + self.Fallback.Copy(_obj.Fallback); +end; + +function AlternateContent.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function AlternateContent.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; diff --git a/autoclass/docx/Ap@DOCX.tsf b/autoclass/docx/Ap@DOCX.tsf new file mode 100644 index 0000000..8643f48 --- /dev/null +++ b/autoclass/docx/Ap@DOCX.tsf @@ -0,0 +1,145 @@ +type Ap = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ap);override; + function AddR(): AR; + function AppendR(): AR; + + property Rs read ReadRs; + function ReadRs(_index); + +public + // Attributes + + // Children + PPr: APPr; + EndParaRPr: ARPr; + +end; + +function Ap.Create();overload; +begin + self.Create(nil, "a", "p"); +end; + +function Ap.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ap.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ap.Init();override; +begin + self.PPr := new APPr(self, self.Prefix, "pPr"); + self.EndParaRPr := new ARPr(self, self.Prefix, "endParaRPr"); +end; + +function Ap.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Ap.InitChildren();override; +begin + child_elements_ := array( + 0: self.PPr, + 1: self.EndParaRPr, + ); + sorted_child_ := array( + "": -1, + self.PPr.ElementName: 0, + self.EndParaRPr.ElementName: 1, + ); +end; + +function Ap.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "r": obj := self.AppendR(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ap.Copy(_obj: Ap);override; +begin + self.PPr.Copy(_obj.PPr); + self.EndParaRPr.Copy(_obj.EndParaRPr); +end; + +function Ap.AddR(): AR; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "r" then break; + end + obj := new AR(self, self.Prefix, "r"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Ap.AppendR(): AR; +begin + obj := new AR(self, self.Prefix, "r"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Ap.ReadRs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "r" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Ax@DOCX.tsf b/autoclass/docx/Ax@DOCX.tsf new file mode 100644 index 0000000..47eadb8 --- /dev/null +++ b/autoclass/docx/Ax@DOCX.tsf @@ -0,0 +1,178 @@ +type Ax = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ax);override; + +public + // Attributes + + // Children + AxId: PureVal; + Scaling: Scaling; + _Delete: PureVal; + AxPos: PureVal; + NumFmt: NumFmt; + MajorTickMark: PureVal; + MinorTickMark: PureVal; + TickLblPos: PureVal; + SpPr: SpPr; + TxPr: TxPr; + CrossAx: PureVal; + Crosses: PureVal; + CrossBetween: PureVal; + Auto: PureVal; + LblAlgn: PureVal; + LblOffset: PureVal; + NoMultiLvlLbl: PureVal; + +end; + +function Ax.Create();overload; +begin + self.Create(nil, "c", ""); +end; + +function Ax.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ax.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ax.Init();override; +begin + self.AxId := new PureVal(self, self.Prefix, "axId"); + self.Scaling := new Scaling(self, self.Prefix, "scaling"); + self._Delete := new PureVal(self, self.Prefix, "delete"); + self.AxPos := new PureVal(self, self.Prefix, "axPos"); + self.NumFmt := new NumFmt(self, self.Prefix, "numFmt"); + self.MajorTickMark := new PureVal(self, self.Prefix, "majorTickMark"); + self.MinorTickMark := new PureVal(self, self.Prefix, "minorTickMark"); + self.TickLblPos := new PureVal(self, self.Prefix, "tickLblPos"); + self.SpPr := new SpPr(self, self.Prefix, "spPr"); + self.TxPr := new TxPr(self, self.Prefix, "txPr"); + self.CrossAx := new PureVal(self, self.Prefix, "crossAx"); + self.Crosses := new PureVal(self, self.Prefix, "crosses"); + self.CrossBetween := new PureVal(self, self.Prefix, "crossBetween"); + self.Auto := new PureVal(self, self.Prefix, "auto"); + self.LblAlgn := new PureVal(self, self.Prefix, "lblAlgn"); + self.LblOffset := new PureVal(self, self.Prefix, "lblOffset"); + self.NoMultiLvlLbl := new PureVal(self, self.Prefix, "noMultiLvlLbl"); +end; + +function Ax.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Ax.InitChildren();override; +begin + child_elements_ := array( + 0: self.AxId, + 1: self.Scaling, + 2: self._Delete, + 3: self.AxPos, + 4: self.NumFmt, + 5: self.MajorTickMark, + 6: self.MinorTickMark, + 7: self.TickLblPos, + 8: self.SpPr, + 9: self.TxPr, + 10: self.CrossAx, + 11: self.Crosses, + 12: self.CrossBetween, + 13: self.Auto, + 14: self.LblAlgn, + 15: self.LblOffset, + 16: self.NoMultiLvlLbl, + ); + sorted_child_ := array( + "": -1, + self.AxId.ElementName: 0, + self.Scaling.ElementName: 1, + self._Delete.ElementName: 2, + self.AxPos.ElementName: 3, + self.NumFmt.ElementName: 4, + self.MajorTickMark.ElementName: 5, + self.MinorTickMark.ElementName: 6, + self.TickLblPos.ElementName: 7, + self.SpPr.ElementName: 8, + self.TxPr.ElementName: 9, + self.CrossAx.ElementName: 10, + self.Crosses.ElementName: 11, + self.CrossBetween.ElementName: 12, + self.Auto.ElementName: 13, + self.LblAlgn.ElementName: 14, + self.LblOffset.ElementName: 15, + self.NoMultiLvlLbl.ElementName: 16, + ); +end; + +function Ax.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ax.Copy(_obj: Ax);override; +begin + self.AxId.Copy(_obj.AxId); + self.Scaling.Copy(_obj.Scaling); + self._Delete.Copy(_obj._Delete); + self.AxPos.Copy(_obj.AxPos); + self.NumFmt.Copy(_obj.NumFmt); + self.MajorTickMark.Copy(_obj.MajorTickMark); + self.MinorTickMark.Copy(_obj.MinorTickMark); + self.TickLblPos.Copy(_obj.TickLblPos); + self.SpPr.Copy(_obj.SpPr); + self.TxPr.Copy(_obj.TxPr); + self.CrossAx.Copy(_obj.CrossAx); + self.Crosses.Copy(_obj.Crosses); + self.CrossBetween.Copy(_obj.CrossBetween); + self.Auto.Copy(_obj.Auto); + self.LblAlgn.Copy(_obj.LblAlgn); + self.LblOffset.Copy(_obj.LblOffset); + self.NoMultiLvlLbl.Copy(_obj.NoMultiLvlLbl); +end; diff --git a/autoclass/docx/BarChart@DOCX.tsf b/autoclass/docx/BarChart@DOCX.tsf new file mode 100644 index 0000000..3b5d3a2 --- /dev/null +++ b/autoclass/docx/BarChart@DOCX.tsf @@ -0,0 +1,196 @@ +type BarChart = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: BarChart);override; + function AddSer(): Ser; + function AddAxId(): PureVal; + function AppendSer(): Ser; + function AppendAxId(): PureVal; + + property Sers read ReadSers; + property AxIds read ReadAxIds; + function ReadSers(_index); + function ReadAxIds(_index); + +public + // Attributes + + // Children + BarDir: PureVal; + Grouping: PureVal; + VaryColors: PureVal; + GapWidth: PureVal; + +end; + +function BarChart.Create();overload; +begin + self.Create(nil, "c", "barChart"); +end; + +function BarChart.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function BarChart.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BarChart.Init();override; +begin + self.BarDir := new PureVal(self, self.Prefix, "barDir"); + self.Grouping := new PureVal(self, self.Prefix, "grouping"); + self.VaryColors := new PureVal(self, self.Prefix, "varyColors"); + self.GapWidth := new PureVal(self, self.Prefix, "gapWidth"); +end; + +function BarChart.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function BarChart.InitChildren();override; +begin + child_elements_ := array( + 0: self.BarDir, + 1: self.Grouping, + 2: self.VaryColors, + 4: self.GapWidth, + ); + sorted_child_ := array( + "": -1, + self.BarDir.ElementName: 0, + self.Grouping.ElementName: 1, + self.VaryColors.ElementName: 2, + self.GapWidth.ElementName: 4, + ); +end; + +function BarChart.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "ser": obj := self.AppendSer(); + pre + "axId": obj := self.AppendAxId(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function BarChart.Copy(_obj: BarChart);override; +begin + self.BarDir.Copy(_obj.BarDir); + self.Grouping.Copy(_obj.Grouping); + self.VaryColors.Copy(_obj.VaryColors); + self.GapWidth.Copy(_obj.GapWidth); +end; + +function BarChart.AddSer(): Ser; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "ser" then break; + end + obj := new Ser(self, self.Prefix, "ser"); + self.InsertChild(obj, i+1); + return obj; +end; + +function BarChart.AddAxId(): PureVal; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "axId" then break; + end + obj := new PureVal(self, self.Prefix, "axId"); + self.InsertChild(obj, i+1); + return obj; +end; + +function BarChart.AppendSer(): Ser; +begin + obj := new Ser(self, self.Prefix, "ser"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function BarChart.AppendAxId(): PureVal; +begin + obj := new PureVal(self, self.Prefix, "axId"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function BarChart.ReadSers(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "ser" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function BarChart.ReadAxIds(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "axId" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Blip@DOCX.tsf b/autoclass/docx/Blip@DOCX.tsf new file mode 100644 index 0000000..91e6add --- /dev/null +++ b/autoclass/docx/Blip@DOCX.tsf @@ -0,0 +1,99 @@ +type Blip = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Blip);override; + + property Embed read ReadXmlAttrEmbed write WriteXmlAttrEmbed; + property Cstate read ReadXmlAttrCstate write WriteXmlAttrCstate; + function ReadXmlAttrEmbed(); + function WriteXmlAttrEmbed(_value); + function ReadXmlAttrCstate(); + function WriteXmlAttrCstate(_value); + +public + // Attributes + XmlAttrEmbed: OpenXmlAttribute; + XmlAttrCstate: OpenXmlAttribute; + + // Children + +end; + +function Blip.Create();overload; +begin + self.Create(nil, "a", "blip"); +end; + +function Blip.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Blip.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Blip.Init();override; +begin + self.XmlAttrEmbed := new OpenXmlAttribute("r", "embed", nil); + self.XmlAttrCstate := new OpenXmlAttribute(nil, "cstate", nil); +end; + +function Blip.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrEmbed, + self.XmlAttrCstate, + ); +end; + +function Blip.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Blip.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Blip.Copy(_obj: Blip);override; +begin + if not ifnil(_obj.XmlAttrEmbed.Value) then + self.XmlAttrEmbed.Value := _obj.XmlAttrEmbed.Value; + if not ifnil(_obj.XmlAttrCstate.Value) then + self.XmlAttrCstate.Value := _obj.XmlAttrCstate.Value; +end; + +function Blip.ReadXmlAttrEmbed(); +begin + return self.XmlAttrEmbed.Value; +end; + +function Blip.WriteXmlAttrEmbed(_value); +begin + self.XmlAttrEmbed.Value := _value; +end; + +function Blip.ReadXmlAttrCstate(); +begin + return self.XmlAttrCstate.Value; +end; + +function Blip.WriteXmlAttrCstate(_value); +begin + self.XmlAttrCstate.Value := _value; +end; diff --git a/autoclass/docx/BlipFill@DOCX.tsf b/autoclass/docx/BlipFill@DOCX.tsf new file mode 100644 index 0000000..f02bae7 --- /dev/null +++ b/autoclass/docx/BlipFill@DOCX.tsf @@ -0,0 +1,103 @@ +type BlipFill = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: BlipFill);override; + +public + // Attributes + + // Children + Blip: Blip; + Stretch: Stretch; + +end; + +function BlipFill.Create();overload; +begin + self.Create(nil, "pic", "blipFill"); +end; + +function BlipFill.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function BlipFill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BlipFill.Init();override; +begin + self.Blip := new Blip(self, "a", "blip"); + self.Stretch := new Stretch(self, "a", "stretch"); +end; + +function BlipFill.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function BlipFill.InitChildren();override; +begin + child_elements_ := array( + 0: self.Blip, + 1: self.Stretch, + ); + sorted_child_ := array( + "": -1, + self.Blip.ElementName: 0, + self.Stretch.ElementName: 1, + ); +end; + +function BlipFill.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function BlipFill.Copy(_obj: BlipFill);override; +begin + self.Blip.Copy(_obj.Blip); + self.Stretch.Copy(_obj.Stretch); +end; diff --git a/autoclass/docx/Body@DOCX.tsf b/autoclass/docx/Body@DOCX.tsf new file mode 100644 index 0000000..00b1232 --- /dev/null +++ b/autoclass/docx/Body@DOCX.tsf @@ -0,0 +1,222 @@ +type Body = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Body);override; + function AddP(): P; + function AddTbl(): Tbl; + function AddSdt(): Sdt; + function AppendP(): P; + function AppendTbl(): Tbl; + function AppendSdt(): Sdt; + + property Ps read ReadPs; + property Tbls read ReadTbls; + property Sdts read ReadSdts; + function ReadPs(_index); + function ReadTbls(_index); + function ReadSdts(_index); + +public + // Attributes + + // Children + SectPr: SectPr; + +end; + +function Body.Create();overload; +begin + self.Create(nil, "w", "body"); +end; + +function Body.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Body.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Body.Init();override; +begin + self.SectPr := new SectPr(self, self.Prefix, "sectPr"); +end; + +function Body.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Body.InitChildren();override; +begin + child_elements_ := array( + 3: self.SectPr, + ); + sorted_child_ := array( + "": -1, + self.SectPr.ElementName: 3, + ); +end; + +function Body.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + pre + "tbl": obj := self.AppendTbl(); + pre + "sdt": obj := self.AppendSdt(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Body.Copy(_obj: Body);override; +begin + self.SectPr.Copy(_obj.SectPr); +end; + +function Body.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Body.AddTbl(): Tbl; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "tbl" then break; + end + obj := new Tbl(self, self.Prefix, "tbl"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Body.AddSdt(): Sdt; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "sdt" then break; + end + obj := new Sdt(self, self.Prefix, "sdt"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Body.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Body.AppendTbl(): Tbl; +begin + obj := new Tbl(self, self.Prefix, "tbl"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Body.AppendSdt(): Sdt; +begin + obj := new Sdt(self, self.Prefix, "sdt"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Body.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Body.ReadTbls(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "tbl" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Body.ReadSdts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "sdt" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/BodyPr@DOCX.tsf b/autoclass/docx/BodyPr@DOCX.tsf new file mode 100644 index 0000000..4393722 --- /dev/null +++ b/autoclass/docx/BodyPr@DOCX.tsf @@ -0,0 +1,189 @@ +type BodyPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: BodyPr);override; + + property Rot read ReadXmlAttrRot write WriteXmlAttrRot; + property SpcFirstLastPara read ReadXmlAttrSpcFirstLastPara write WriteXmlAttrSpcFirstLastPara; + property VertOverflow read ReadXmlAttrVertOverflow write WriteXmlAttrVertOverflow; + property Vert read ReadXmlAttrVert write WriteXmlAttrVert; + property Wrap read ReadXmlAttrWrap write WriteXmlAttrWrap; + property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor; + property AnchorCtr read ReadXmlAttrAnchorCtr write WriteXmlAttrAnchorCtr; + function ReadXmlAttrRot(); + function WriteXmlAttrRot(_value); + function ReadXmlAttrSpcFirstLastPara(); + function WriteXmlAttrSpcFirstLastPara(_value); + function ReadXmlAttrVertOverflow(); + function WriteXmlAttrVertOverflow(_value); + function ReadXmlAttrVert(); + function WriteXmlAttrVert(_value); + function ReadXmlAttrWrap(); + function WriteXmlAttrWrap(_value); + function ReadXmlAttrAnchor(); + function WriteXmlAttrAnchor(_value); + function ReadXmlAttrAnchorCtr(); + function WriteXmlAttrAnchorCtr(_value); + +public + // Attributes + XmlAttrRot: OpenXmlAttribute; + XmlAttrSpcFirstLastPara: OpenXmlAttribute; + XmlAttrVertOverflow: OpenXmlAttribute; + XmlAttrVert: OpenXmlAttribute; + XmlAttrWrap: OpenXmlAttribute; + XmlAttrAnchor: OpenXmlAttribute; + XmlAttrAnchorCtr: OpenXmlAttribute; + + // Children + +end; + +function BodyPr.Create();overload; +begin + self.Create(nil, "a", "bodyPr"); +end; + +function BodyPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function BodyPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BodyPr.Init();override; +begin + self.XmlAttrRot := new OpenXmlAttribute(nil, "rot", nil); + self.XmlAttrSpcFirstLastPara := new OpenXmlAttribute(nil, "spcFirstLastPara", nil); + self.XmlAttrVertOverflow := new OpenXmlAttribute(nil, "vertOverflow", nil); + self.XmlAttrVert := new OpenXmlAttribute(nil, "vert", nil); + self.XmlAttrWrap := new OpenXmlAttribute(nil, "Wrap", nil); + self.XmlAttrAnchor := new OpenXmlAttribute(nil, "anchor", nil); + self.XmlAttrAnchorCtr := new OpenXmlAttribute(nil, "anchorCtr", nil); +end; + +function BodyPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrRot, + self.XmlAttrSpcFirstLastPara, + self.XmlAttrVertOverflow, + self.XmlAttrVert, + self.XmlAttrWrap, + self.XmlAttrAnchor, + self.XmlAttrAnchorCtr, + ); +end; + +function BodyPr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function BodyPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function BodyPr.Copy(_obj: BodyPr);override; +begin + if not ifnil(_obj.XmlAttrRot.Value) then + self.XmlAttrRot.Value := _obj.XmlAttrRot.Value; + if not ifnil(_obj.XmlAttrSpcFirstLastPara.Value) then + self.XmlAttrSpcFirstLastPara.Value := _obj.XmlAttrSpcFirstLastPara.Value; + if not ifnil(_obj.XmlAttrVertOverflow.Value) then + self.XmlAttrVertOverflow.Value := _obj.XmlAttrVertOverflow.Value; + if not ifnil(_obj.XmlAttrVert.Value) then + self.XmlAttrVert.Value := _obj.XmlAttrVert.Value; + if not ifnil(_obj.XmlAttrWrap.Value) then + self.XmlAttrWrap.Value := _obj.XmlAttrWrap.Value; + if not ifnil(_obj.XmlAttrAnchor.Value) then + self.XmlAttrAnchor.Value := _obj.XmlAttrAnchor.Value; + if not ifnil(_obj.XmlAttrAnchorCtr.Value) then + self.XmlAttrAnchorCtr.Value := _obj.XmlAttrAnchorCtr.Value; +end; + +function BodyPr.ReadXmlAttrRot(); +begin + return self.XmlAttrRot.Value; +end; + +function BodyPr.WriteXmlAttrRot(_value); +begin + self.XmlAttrRot.Value := _value; +end; + +function BodyPr.ReadXmlAttrSpcFirstLastPara(); +begin + return self.XmlAttrSpcFirstLastPara.Value; +end; + +function BodyPr.WriteXmlAttrSpcFirstLastPara(_value); +begin + self.XmlAttrSpcFirstLastPara.Value := _value; +end; + +function BodyPr.ReadXmlAttrVertOverflow(); +begin + return self.XmlAttrVertOverflow.Value; +end; + +function BodyPr.WriteXmlAttrVertOverflow(_value); +begin + self.XmlAttrVertOverflow.Value := _value; +end; + +function BodyPr.ReadXmlAttrVert(); +begin + return self.XmlAttrVert.Value; +end; + +function BodyPr.WriteXmlAttrVert(_value); +begin + self.XmlAttrVert.Value := _value; +end; + +function BodyPr.ReadXmlAttrWrap(); +begin + return self.XmlAttrWrap.Value; +end; + +function BodyPr.WriteXmlAttrWrap(_value); +begin + self.XmlAttrWrap.Value := _value; +end; + +function BodyPr.ReadXmlAttrAnchor(); +begin + return self.XmlAttrAnchor.Value; +end; + +function BodyPr.WriteXmlAttrAnchor(_value); +begin + self.XmlAttrAnchor.Value := _value; +end; + +function BodyPr.ReadXmlAttrAnchorCtr(); +begin + return self.XmlAttrAnchorCtr.Value; +end; + +function BodyPr.WriteXmlAttrAnchorCtr(_value); +begin + self.XmlAttrAnchorCtr.Value := _value; +end; diff --git a/autoclass/docx/Bookmark@DOCX.tsf b/autoclass/docx/Bookmark@DOCX.tsf new file mode 100644 index 0000000..56f40ae --- /dev/null +++ b/autoclass/docx/Bookmark@DOCX.tsf @@ -0,0 +1,99 @@ +type Bookmark = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Bookmark);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + + // Children + +end; + +function Bookmark.Create();overload; +begin + self.Create(nil, "w", ""); +end; + +function Bookmark.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Bookmark.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Bookmark.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(self.Prefix, "name", nil); + self.XmlAttrId := new OpenXmlAttribute(self.Prefix, "id", nil); +end; + +function Bookmark.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + self.XmlAttrId, + ); +end; + +function Bookmark.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Bookmark.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Bookmark.Copy(_obj: Bookmark);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; +end; + +function Bookmark.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function Bookmark.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function Bookmark.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Bookmark.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/Br@DOCX.tsf b/autoclass/docx/Br@DOCX.tsf new file mode 100644 index 0000000..42b574d --- /dev/null +++ b/autoclass/docx/Br@DOCX.tsf @@ -0,0 +1,81 @@ +type Br = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Type read ReadXmlAttrType write WriteXmlAttrType; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + +public + // Attributes + XmlAttrType; + + // Children + +end; + +function Br.Create();overload; +begin + self.Create(nil, "w", "br"); +end; + +function Br.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Br.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Br.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); +end; + +function Br.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + ); +end; + +function Br.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Br.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Br.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; +end; + +function Br.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Br.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; diff --git a/autoclass/docx/CNvGraphicFramePr@DOCX.tsf b/autoclass/docx/CNvGraphicFramePr@DOCX.tsf new file mode 100644 index 0000000..7f6801b --- /dev/null +++ b/autoclass/docx/CNvGraphicFramePr@DOCX.tsf @@ -0,0 +1,98 @@ +type CNvGraphicFramePr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CNvGraphicFramePr);override; + +public + // Attributes + + // Children + GraphicFrameLocks: GraphicFrameLocks; + +end; + +function CNvGraphicFramePr.Create();overload; +begin + self.Create(nil, "w", "cNvGraphicFramePr"); +end; + +function CNvGraphicFramePr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CNvGraphicFramePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CNvGraphicFramePr.Init();override; +begin + self.GraphicFrameLocks := new GraphicFrameLocks(self, self.Prefix, "graphicFrameLocks"); +end; + +function CNvGraphicFramePr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function CNvGraphicFramePr.InitChildren();override; +begin + child_elements_ := array( + 0: self.GraphicFrameLocks, + ); + sorted_child_ := array( + "": -1, + self.GraphicFrameLocks.ElementName: 0, + ); +end; + +function CNvGraphicFramePr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CNvGraphicFramePr.Copy(_obj: CNvGraphicFramePr);override; +begin + self.GraphicFrameLocks.Copy(_obj.GraphicFrameLocks); +end; diff --git a/autoclass/docx/CNvPicPr@DOCX.tsf b/autoclass/docx/CNvPicPr@DOCX.tsf new file mode 100644 index 0000000..c6f89ec --- /dev/null +++ b/autoclass/docx/CNvPicPr@DOCX.tsf @@ -0,0 +1,98 @@ +type CNvPicPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CNvPicPr);override; + +public + // Attributes + + // Children + PicLocks: PicLocks; + +end; + +function CNvPicPr.Create();overload; +begin + self.Create(nil, "pic", "cNvPicPr"); +end; + +function CNvPicPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CNvPicPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CNvPicPr.Init();override; +begin + self.PicLocks := new PicLocks(self, "a", "picLocks"); +end; + +function CNvPicPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function CNvPicPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.PicLocks, + ); + sorted_child_ := array( + "": -1, + self.PicLocks.ElementName: 0, + ); +end; + +function CNvPicPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CNvPicPr.Copy(_obj: CNvPicPr);override; +begin + self.PicLocks.Copy(_obj.PicLocks); +end; diff --git a/autoclass/docx/CNvPr@DOCX.tsf b/autoclass/docx/CNvPr@DOCX.tsf new file mode 100644 index 0000000..c04e61b --- /dev/null +++ b/autoclass/docx/CNvPr@DOCX.tsf @@ -0,0 +1,117 @@ +type CNvPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CNvPr);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Name read ReadXmlAttrName write WriteXmlAttrName; + property Descr read ReadXmlAttrDescr write WriteXmlAttrDescr; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + function ReadXmlAttrDescr(); + function WriteXmlAttrDescr(_value); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + XmlAttrName: OpenXmlAttribute; + XmlAttrDescr: OpenXmlAttribute; + + // Children + +end; + +function CNvPr.Create();overload; +begin + self.Create(nil, "pic", "cNvPr"); +end; + +function CNvPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CNvPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CNvPr.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "id", nil); + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.XmlAttrDescr := new OpenXmlAttribute(nil, "descr", nil); +end; + +function CNvPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrName, + self.XmlAttrDescr, + ); +end; + +function CNvPr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function CNvPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function CNvPr.Copy(_obj: CNvPr);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + if not ifnil(_obj.XmlAttrDescr.Value) then + self.XmlAttrDescr.Value := _obj.XmlAttrDescr.Value; +end; + +function CNvPr.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function CNvPr.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function CNvPr.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function CNvPr.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function CNvPr.ReadXmlAttrDescr(); +begin + return self.XmlAttrDescr.Value; +end; + +function CNvPr.WriteXmlAttrDescr(_value); +begin + self.XmlAttrDescr.Value := _value; +end; diff --git a/autoclass/docx/CXY@DOCX.tsf b/autoclass/docx/CXY@DOCX.tsf new file mode 100644 index 0000000..44adbf4 --- /dev/null +++ b/autoclass/docx/CXY@DOCX.tsf @@ -0,0 +1,99 @@ +type CXY = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CXY);override; + + property Cx read ReadXmlAttrCx write WriteXmlAttrCx; + property Cy read ReadXmlAttrCy write WriteXmlAttrCy; + function ReadXmlAttrCx(); + function WriteXmlAttrCx(_value); + function ReadXmlAttrCy(); + function WriteXmlAttrCy(_value); + +public + // Attributes + XmlAttrCx: OpenXmlAttribute; + XmlAttrCy: OpenXmlAttribute; + + // Children + +end; + +function CXY.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function CXY.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CXY.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CXY.Init();override; +begin + self.XmlAttrCx := new OpenXmlAttribute(nil, "cx", nil); + self.XmlAttrCy := new OpenXmlAttribute(nil, "cy", nil); +end; + +function CXY.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrCx, + self.XmlAttrCy, + ); +end; + +function CXY.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function CXY.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function CXY.Copy(_obj: CXY);override; +begin + if not ifnil(_obj.XmlAttrCx.Value) then + self.XmlAttrCx.Value := _obj.XmlAttrCx.Value; + if not ifnil(_obj.XmlAttrCy.Value) then + self.XmlAttrCy.Value := _obj.XmlAttrCy.Value; +end; + +function CXY.ReadXmlAttrCx(); +begin + return self.XmlAttrCx.Value; +end; + +function CXY.WriteXmlAttrCx(_value); +begin + self.XmlAttrCx.Value := _value; +end; + +function CXY.ReadXmlAttrCy(); +begin + return self.XmlAttrCy.Value; +end; + +function CXY.WriteXmlAttrCy(_value); +begin + self.XmlAttrCy.Value := _value; +end; diff --git a/autoclass/docx/Cache@DOCX.tsf b/autoclass/docx/Cache@DOCX.tsf new file mode 100644 index 0000000..6f30ba4 --- /dev/null +++ b/autoclass/docx/Cache@DOCX.tsf @@ -0,0 +1,145 @@ +type Cache = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Cache);override; + function AddPt(): Pt; + function AppendPt(): Pt; + + property Pts read ReadPts; + function ReadPts(_index); + +public + // Attributes + + // Children + FormatCode: OpenXmlPcdata; + PtCount: PureVal; + +end; + +function Cache.Create();overload; +begin + self.Create(nil, "c", ""); +end; + +function Cache.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Cache.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Cache.Init();override; +begin + self.FormatCode := new OpenXmlPcdata(self, self.Prefix, "formatCode"); + self.PtCount := new PureVal(self, self.Prefix, "ptCount"); +end; + +function Cache.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Cache.InitChildren();override; +begin + child_elements_ := array( + 0: self.FormatCode, + 1: self.PtCount, + ); + sorted_child_ := array( + "": -1, + self.FormatCode.ElementName: 0, + self.PtCount.ElementName: 1, + ); +end; + +function Cache.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "pt": obj := self.AppendPt(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Cache.Copy(_obj: Cache);override; +begin + self.FormatCode.Copy(_obj.FormatCode); + self.PtCount.Copy(_obj.PtCount); +end; + +function Cache.AddPt(): Pt; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "pt" then break; + end + obj := new Pt(self, self.Prefix, "pt"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Cache.AppendPt(): Pt; +begin + obj := new Pt(self, self.Prefix, "pt"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Cache.ReadPts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "pt" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Cat@DOCX.tsf b/autoclass/docx/Cat@DOCX.tsf new file mode 100644 index 0000000..5db9ddc --- /dev/null +++ b/autoclass/docx/Cat@DOCX.tsf @@ -0,0 +1,98 @@ +type Cat = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Cat);override; + +public + // Attributes + + // Children + StrRef: StrRef; + +end; + +function Cat.Create();overload; +begin + self.Create(nil, "c", "cat"); +end; + +function Cat.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Cat.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Cat.Init();override; +begin + self.StrRef := new StrRef(self, self.Prefix, "strRef"); +end; + +function Cat.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Cat.InitChildren();override; +begin + child_elements_ := array( + 0: self.StrRef, + ); + sorted_child_ := array( + "": -1, + self.StrRef.ElementName: 0, + ); +end; + +function Cat.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Cat.Copy(_obj: Cat);override; +begin + self.StrRef.Copy(_obj.StrRef); +end; diff --git a/autoclass/docx/Chart@DOCX.tsf b/autoclass/docx/Chart@DOCX.tsf new file mode 100644 index 0000000..c46b578 --- /dev/null +++ b/autoclass/docx/Chart@DOCX.tsf @@ -0,0 +1,133 @@ +type Chart = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Chart);override; + +public + // Attributes + + // Children + Title: Title; + AutoTitleDeleted: PureVal; + View3D: View3D; + PlotArea: PlotArea; + Legend: Legend; + PlotVisOnly: PureVal; + DispBlanksAs: PureVal; + ShowDLblsOverMax: PureVal; + +end; + +function Chart.Create();overload; +begin + self.Create(nil, "c", "chart"); +end; + +function Chart.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Chart.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Chart.Init();override; +begin + self.Title := new Title(self, self.Prefix, "title"); + self.AutoTitleDeleted := new PureVal(self, self.Prefix, "autoTitleDeleted"); + self.View3D := new View3D(self, self.Prefix, "view3D"); + self.PlotArea := new PlotArea(self, self.Prefix, "plotArea"); + self.Legend := new Legend(self, self.Prefix, "legend"); + self.PlotVisOnly := new PureVal(self, self.Prefix, "plotVisOnly"); + self.DispBlanksAs := new PureVal(self, self.Prefix, "dispBlanksAs"); + self.ShowDLblsOverMax := new PureVal(self, self.Prefix, "showDLblsOverMax"); +end; + +function Chart.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Chart.InitChildren();override; +begin + child_elements_ := array( + 0: self.Title, + 1: self.AutoTitleDeleted, + 2: self.View3D, + 3: self.PlotArea, + 4: self.Legend, + 5: self.PlotVisOnly, + 6: self.DispBlanksAs, + 7: self.ShowDLblsOverMax, + ); + sorted_child_ := array( + "": -1, + self.Title.ElementName: 0, + self.AutoTitleDeleted.ElementName: 1, + self.View3D.ElementName: 2, + self.PlotArea.ElementName: 3, + self.Legend.ElementName: 4, + self.PlotVisOnly.ElementName: 5, + self.DispBlanksAs.ElementName: 6, + self.ShowDLblsOverMax.ElementName: 7, + ); +end; + +function Chart.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Chart.Copy(_obj: Chart);override; +begin + self.Title.Copy(_obj.Title); + self.AutoTitleDeleted.Copy(_obj.AutoTitleDeleted); + self.View3D.Copy(_obj.View3D); + self.PlotArea.Copy(_obj.PlotArea); + self.Legend.Copy(_obj.Legend); + self.PlotVisOnly.Copy(_obj.PlotVisOnly); + self.DispBlanksAs.Copy(_obj.DispBlanksAs); + self.ShowDLblsOverMax.Copy(_obj.ShowDLblsOverMax); +end; diff --git a/autoclass/docx/ChartSpace@DOCX.tsf b/autoclass/docx/ChartSpace@DOCX.tsf new file mode 100644 index 0000000..7ff1ece --- /dev/null +++ b/autoclass/docx/ChartSpace@DOCX.tsf @@ -0,0 +1,192 @@ +type ChartSpace = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ChartSpace);override; + + property XmlnsC read ReadXmlAttrXmlnsC write WriteXmlAttrXmlnsC; + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + function ReadXmlAttrXmlnsC(); + function WriteXmlAttrXmlnsC(_value); + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + + property Lang read ReadXmlChildLang write WriteXmlChildLang; + function ReadXmlChildLang(); + function WriteXmlChildLang(_value); + +public + // Attributes + XmlAttrXmlnsC: OpenXmlAttribute; + XmlAttrXmlnsA: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + + // Children + Date1904: PureVal; + XmlChildLang: OpenXmlEmpty; + AlternateContent: AlternateContent; + Chart: Chart; + SpPr: SpPr; + ExternalData: ExternalData; + +end; + +function ChartSpace.Create();overload; +begin + self.Create(nil, "c", "chartSpace"); +end; + +function ChartSpace.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ChartSpace.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ChartSpace.Init();override; +begin + self.XmlAttrXmlnsC := new OpenXmlAttribute("xmlns", "c", "http://schemas.openxmlformats.org/drawingml/2006/chart"); + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "c", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.Date1904 := new PureVal(self, self.Prefix, "date1904"); + self.XmlChildLang := new PureVal(self, self.Prefix, "lang"); + self.AlternateContent := new AlternateContent(self, "mc", "alternateContent"); + self.Chart := new Chart(self, self.Prefix, "chart"); + self.SpPr := new SpPr(self, self.Prefix, "spPr"); + self.ExternalData := new ExternalData(self, self.Prefix, "externalData"); +end; + +function ChartSpace.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsC, + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + ); +end; + +function ChartSpace.InitChildren();override; +begin + child_elements_ := array( + 0: self.Date1904, + 1: self.XmlChildLang, + 2: self.AlternateContent, + 3: self.Chart, + 4: self.SpPr, + 5: self.ExternalData, + ); + sorted_child_ := array( + "": -1, + self.Date1904.ElementName: 0, + self.XmlChildLang.ElementName: 1, + self.AlternateContent.ElementName: 2, + self.Chart.ElementName: 3, + self.SpPr.ElementName: 4, + self.ExternalData.ElementName: 5, + ); +end; + +function ChartSpace.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ChartSpace.Copy(_obj: ChartSpace);override; +begin + if not ifnil(_obj.XmlAttrXmlnsC.Value) then + self.XmlAttrXmlnsC.Value := _obj.XmlAttrXmlnsC.Value; + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + self.Date1904.Copy(_obj.Date1904); + self.XmlChildLang.Copy(_obj.XmlChildLang); + self.AlternateContent.Copy(_obj.AlternateContent); + self.Chart.Copy(_obj.Chart); + self.SpPr.Copy(_obj.SpPr); + self.ExternalData.Copy(_obj.ExternalData); +end; + +function ChartSpace.ReadXmlAttrXmlnsC(); +begin + return self.XmlAttrXmlnsC.Value; +end; + +function ChartSpace.WriteXmlAttrXmlnsC(_value); +begin + self.XmlAttrXmlnsC.Value := _value; +end; + +function ChartSpace.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function ChartSpace.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function ChartSpace.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function ChartSpace.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function ChartSpace.ReadXmlChildLang(); +begin + return ifnil(self.XmlChildLang.Value) ? false : true; +end; + +function ChartSpace.WriteXmlChildLang(_value); +begin + self.XmlChildLang.Value := _value; +end; diff --git a/autoclass/docx/Choice@DOCX.tsf b/autoclass/docx/Choice@DOCX.tsf new file mode 100644 index 0000000..c289f88 --- /dev/null +++ b/autoclass/docx/Choice@DOCX.tsf @@ -0,0 +1,135 @@ +type Choice = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Choice);override; + + property Requires read ReadXmlAttrRequires write WriteXmlAttrRequires; + property XmlnsC14 read ReadXmlAttrXmlnsC14 write WriteXmlAttrXmlnsC14; + function ReadXmlAttrRequires(); + function WriteXmlAttrRequires(_value); + function ReadXmlAttrXmlnsC14(); + function WriteXmlAttrXmlnsC14(_value); + +public + // Attributes + XmlAttrRequires: OpenXmlAttribute; + XmlAttrXmlnsC14: OpenXmlAttribute; + + // Children + Style: PureVal; + +end; + +function Choice.Create();overload; +begin + self.Create(nil, "mc", "Choice"); +end; + +function Choice.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Choice.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Choice.Init();override; +begin + self.XmlAttrRequires := new OpenXmlAttribute(nil, "Requires", nil); + self.XmlAttrXmlnsC14 := new OpenXmlAttribute("xmlns", "c14", "http://schemas.microsoft.com/office/drawing/2007/8/2/chart"); + self.Style := new PureVal(self, "c14", "style"); +end; + +function Choice.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrRequires, + self.XmlAttrXmlnsC14, + ); +end; + +function Choice.InitChildren();override; +begin + child_elements_ := array( + 0: self.Style, + ); + sorted_child_ := array( + "": -1, + self.Style.ElementName: 0, + ); +end; + +function Choice.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Choice.Copy(_obj: Choice);override; +begin + if not ifnil(_obj.XmlAttrRequires.Value) then + self.XmlAttrRequires.Value := _obj.XmlAttrRequires.Value; + if not ifnil(_obj.XmlAttrXmlnsC14.Value) then + self.XmlAttrXmlnsC14.Value := _obj.XmlAttrXmlnsC14.Value; + self.Style.Copy(_obj.Style); +end; + +function Choice.ReadXmlAttrRequires(); +begin + return self.XmlAttrRequires.Value; +end; + +function Choice.WriteXmlAttrRequires(_value); +begin + self.XmlAttrRequires.Value := _value; +end; + +function Choice.ReadXmlAttrXmlnsC14(); +begin + return self.XmlAttrXmlnsC14.Value; +end; + +function Choice.WriteXmlAttrXmlnsC14(_value); +begin + self.XmlAttrXmlnsC14.Value := _value; +end; diff --git a/autoclass/docx/Clr1@DOCX.tsf b/autoclass/docx/Clr1@DOCX.tsf new file mode 100644 index 0000000..262ddda --- /dev/null +++ b/autoclass/docx/Clr1@DOCX.tsf @@ -0,0 +1,98 @@ +type Clr1 = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Clr1);override; + +public + // Attributes + + // Children + SysClr: SysClr; + +end; + +function Clr1.Create();overload; +begin + self.Create(nil, "a", ""); +end; + +function Clr1.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Clr1.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Clr1.Init();override; +begin + self.SysClr := new SysClr(self, self.Prefix, "sysClr"); +end; + +function Clr1.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Clr1.InitChildren();override; +begin + child_elements_ := array( + 0: self.SysClr, + ); + sorted_child_ := array( + "": -1, + self.SysClr.ElementName: 0, + ); +end; + +function Clr1.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Clr1.Copy(_obj: Clr1);override; +begin + self.SysClr.Copy(_obj.SysClr); +end; diff --git a/autoclass/docx/Clr2@DOCX.tsf b/autoclass/docx/Clr2@DOCX.tsf new file mode 100644 index 0000000..e219927 --- /dev/null +++ b/autoclass/docx/Clr2@DOCX.tsf @@ -0,0 +1,98 @@ +type Clr2 = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Clr2);override; + +public + // Attributes + + // Children + SrgbClr: SrgbClr; + +end; + +function Clr2.Create();overload; +begin + self.Create(nil, "a", ""); +end; + +function Clr2.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Clr2.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Clr2.Init();override; +begin + self.SrgbClr := new SrgbClr(self, self.Prefix, "srgbClr"); +end; + +function Clr2.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Clr2.InitChildren();override; +begin + child_elements_ := array( + 0: self.SrgbClr, + ); + sorted_child_ := array( + "": -1, + self.SrgbClr.ElementName: 0, + ); +end; + +function Clr2.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Clr2.Copy(_obj: Clr2);override; +begin + self.SrgbClr.Copy(_obj.SrgbClr); +end; diff --git a/autoclass/docx/ClrScheme@DOCX.tsf b/autoclass/docx/ClrScheme@DOCX.tsf new file mode 100644 index 0000000..8d04824 --- /dev/null +++ b/autoclass/docx/ClrScheme@DOCX.tsf @@ -0,0 +1,172 @@ +type ClrScheme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ClrScheme);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + + // Children + Dk1: Clr1; + Lt1: Clr1; + Dk2: Clr2; + Lt2: Clr2; + Accent1: Clr2; + Accent2: Clr2; + Accent3: Clr2; + Accent4: Clr2; + Accent5: Clr2; + Accent6: Clr2; + Hlink: Clr2; + FolHlink: Clr2; + +end; + +function ClrScheme.Create();overload; +begin + self.Create(nil, "a", "clrsCheme"); +end; + +function ClrScheme.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ClrScheme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ClrScheme.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.Dk1 := new Clr1(self, self.Prefix, "dk1"); + self.Lt1 := new Clr1(self, self.Prefix, "lt1"); + self.Dk2 := new Clr2(self, self.Prefix, "dk2"); + self.Lt2 := new Clr2(self, self.Prefix, "lt2"); + self.Accent1 := new Clr2(self, self.Prefix, "accent1"); + self.Accent2 := new Clr2(self, self.Prefix, "accent2"); + self.Accent3 := new Clr2(self, self.Prefix, "accent3"); + self.Accent4 := new Clr2(self, self.Prefix, "accent4"); + self.Accent5 := new Clr2(self, self.Prefix, "accent5"); + self.Accent6 := new Clr2(self, self.Prefix, "accent6"); + self.Hlink := new Clr2(self, self.Prefix, "hlink"); + self.FolHlink := new Clr2(self, self.Prefix, "folHlink"); +end; + +function ClrScheme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function ClrScheme.InitChildren();override; +begin + child_elements_ := array( + 0: self.Dk1, + 1: self.Lt1, + 2: self.Dk2, + 3: self.Lt2, + 4: self.Accent1, + 5: self.Accent2, + 6: self.Accent3, + 7: self.Accent4, + 8: self.Accent5, + 9: self.Accent6, + 10: self.Hlink, + 11: self.FolHlink, + ); + sorted_child_ := array( + "": -1, + self.Dk1.ElementName: 0, + self.Lt1.ElementName: 1, + self.Dk2.ElementName: 2, + self.Lt2.ElementName: 3, + self.Accent1.ElementName: 4, + self.Accent2.ElementName: 5, + self.Accent3.ElementName: 6, + self.Accent4.ElementName: 7, + self.Accent5.ElementName: 8, + self.Accent6.ElementName: 9, + self.Hlink.ElementName: 10, + self.FolHlink.ElementName: 11, + ); +end; + +function ClrScheme.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ClrScheme.Copy(_obj: ClrScheme);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.Dk1.Copy(_obj.Dk1); + self.Lt1.Copy(_obj.Lt1); + self.Dk2.Copy(_obj.Dk2); + self.Lt2.Copy(_obj.Lt2); + self.Accent1.Copy(_obj.Accent1); + self.Accent2.Copy(_obj.Accent2); + self.Accent3.Copy(_obj.Accent3); + self.Accent4.Copy(_obj.Accent4); + self.Accent5.Copy(_obj.Accent5); + self.Accent6.Copy(_obj.Accent6); + self.Hlink.Copy(_obj.Hlink); + self.FolHlink.Copy(_obj.FolHlink); +end; + +function ClrScheme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function ClrScheme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/docx/Color@DOCX.tsf b/autoclass/docx/Color@DOCX.tsf new file mode 100644 index 0000000..32f7ddd --- /dev/null +++ b/autoclass/docx/Color@DOCX.tsf @@ -0,0 +1,99 @@ +type Color = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Color);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property ThemeColor read ReadXmlAttrThemeColor write WriteXmlAttrThemeColor; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrThemeColor(); + function WriteXmlAttrThemeColor(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrThemeColor: OpenXmlAttribute; + + // Children + +end; + +function Color.Create();overload; +begin + self.Create(nil, "w", "color"); +end; + +function Color.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Color.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Color.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(self.Prefix, "val", nil); + self.XmlAttrThemeColor := new OpenXmlAttribute(self.Prefix, "themeColor", nil); +end; + +function Color.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrThemeColor, + ); +end; + +function Color.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Color.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Color.Copy(_obj: Color);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrThemeColor.Value) then + self.XmlAttrThemeColor.Value := _obj.XmlAttrThemeColor.Value; +end; + +function Color.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function Color.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function Color.ReadXmlAttrThemeColor(); +begin + return self.XmlAttrThemeColor.Value; +end; + +function Color.WriteXmlAttrThemeColor(_value); +begin + self.XmlAttrThemeColor.Value := _value; +end; diff --git a/autoclass/docx/Cols@DOCX.tsf b/autoclass/docx/Cols@DOCX.tsf new file mode 100644 index 0000000..0878222 --- /dev/null +++ b/autoclass/docx/Cols@DOCX.tsf @@ -0,0 +1,81 @@ +type Cols = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Cols);override; + + property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; + function ReadXmlAttrSpace(); + function WriteXmlAttrSpace(_value); + +public + // Attributes + XmlAttrSpace: OpenXmlAttribute; + + // Children + +end; + +function Cols.Create();overload; +begin + self.Create(nil, "w", "cols"); +end; + +function Cols.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Cols.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Cols.Init();override; +begin + self.XmlAttrSpace := new OpenXmlAttribute(self.Prefix, "space", nil); +end; + +function Cols.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrSpace, + ); +end; + +function Cols.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Cols.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Cols.Copy(_obj: Cols);override; +begin + if not ifnil(_obj.XmlAttrSpace.Value) then + self.XmlAttrSpace.Value := _obj.XmlAttrSpace.Value; +end; + +function Cols.ReadXmlAttrSpace(); +begin + return self.XmlAttrSpace.Value; +end; + +function Cols.WriteXmlAttrSpace(_value); +begin + self.XmlAttrSpace.Value := _value; +end; diff --git a/autoclass/docx/Comment@DOCX.tsf b/autoclass/docx/Comment@DOCX.tsf new file mode 100644 index 0000000..7ed2687 --- /dev/null +++ b/autoclass/docx/Comment@DOCX.tsf @@ -0,0 +1,190 @@ +type Comment = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Comment);override; + function AddP(): P; + function AppendP(): P; + + property Ps read ReadPs; + function ReadPs(_index); + + property Author read ReadXmlAttrAuthor write WriteXmlAttrAuthor; + property Date read ReadXmlAttrDate write WriteXmlAttrDate; + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrAuthor(); + function WriteXmlAttrAuthor(_value); + function ReadXmlAttrDate(); + function WriteXmlAttrDate(_value); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrAuthor: OpenXmlAttribute; + XmlAttrDate: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + + // Children + +end; + +function Comment.Create();overload; +begin + self.Create(nil, "w", "comment"); +end; + +function Comment.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Comment.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Comment.Init();override; +begin + self.XmlAttrAuthor := new OpenXmlAttribute(self.Prefix, "author", nil); + self.XmlAttrDate := new OpenXmlAttribute(self.Prefix, "date", nil); + self.XmlAttrId := new OpenXmlAttribute(self.Prefix, "id", nil); +end; + +function Comment.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrAuthor, + self.XmlAttrDate, + self.XmlAttrId, + ); +end; + +function Comment.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Comment.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Comment.Copy(_obj: Comment);override; +begin + if not ifnil(_obj.XmlAttrAuthor.Value) then + self.XmlAttrAuthor.Value := _obj.XmlAttrAuthor.Value; + if not ifnil(_obj.XmlAttrDate.Value) then + self.XmlAttrDate.Value := _obj.XmlAttrDate.Value; + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; +end; + +function Comment.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Comment.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Comment.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Comment.ReadXmlAttrAuthor(); +begin + return self.XmlAttrAuthor.Value; +end; + +function Comment.WriteXmlAttrAuthor(_value); +begin + self.XmlAttrAuthor.Value := _value; +end; + +function Comment.ReadXmlAttrDate(); +begin + return self.XmlAttrDate.Value; +end; + +function Comment.WriteXmlAttrDate(_value); +begin + self.XmlAttrDate.Value := _value; +end; + +function Comment.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Comment.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/CommentRange@DOCX.tsf b/autoclass/docx/CommentRange@DOCX.tsf new file mode 100644 index 0000000..0eea566 --- /dev/null +++ b/autoclass/docx/CommentRange@DOCX.tsf @@ -0,0 +1,81 @@ +type CommentRange = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CommentRange);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + + // Children + +end; + +function CommentRange.Create();overload; +begin + self.Create(nil, "w", ""); +end; + +function CommentRange.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CommentRange.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CommentRange.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(self.Prefix, "id", nil); +end; + +function CommentRange.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + ); +end; + +function CommentRange.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function CommentRange.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function CommentRange.Copy(_obj: CommentRange);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; +end; + +function CommentRange.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function CommentRange.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/Comments@DOCX.tsf b/autoclass/docx/Comments@DOCX.tsf new file mode 100644 index 0000000..aeafbe2 --- /dev/null +++ b/autoclass/docx/Comments@DOCX.tsf @@ -0,0 +1,460 @@ +type Comments = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Comments);override; + function AddComment(): Comment; + function AppendComment(): Comment; + + property Comments read ReadComments; + function ReadComments(_index); + + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsO read ReadXmlAttrXmlnsO write WriteXmlAttrXmlnsO; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; + property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW10 read ReadXmlAttrXmlnsW10 write WriteXmlAttrXmlnsW10; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property XmlnsWpsCustomData read ReadXmlAttrXmlnsWpsCustomData write WriteXmlAttrXmlnsWpsCustomData; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsO(); + function WriteXmlAttrXmlnsO(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsWp14(); + function WriteXmlAttrXmlnsWp14(_value); + function ReadXmlAttrXmlnsWp(); + function WriteXmlAttrXmlnsWp(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW10(); + function WriteXmlAttrXmlnsW10(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrXmlnsWpsCustomData(); + function WriteXmlAttrXmlnsWpsCustomData(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsO: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsWp14: OpenXmlAttribute; + XmlAttrXmlnsWp: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW10: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrXmlnsWpsCustomData: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Comments.Create();overload; +begin + self.Create(nil, "w", "comments"); +end; + +function Comments.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Comments.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Comments.Init();override; +begin + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsO := new OpenXmlAttribute("xmlns", "o", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); + self.XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW10 := new OpenXmlAttribute("xmlns", "w10", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrXmlnsWpsCustomData := new OpenXmlAttribute("xmlns", "wpsCustomData", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Comments.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsO, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsWp14, + self.XmlAttrXmlnsWp, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW10, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWps, + self.XmlAttrXmlnsWpsCustomData, + self.XmlAttrMcIgnorable, + ); +end; + +function Comments.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Comments.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "comment": obj := self.AppendComment(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Comments.Copy(_obj: Comments);override; +begin + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsO.Value) then + self.XmlAttrXmlnsO.Value := _obj.XmlAttrXmlnsO.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsWp14.Value) then + self.XmlAttrXmlnsWp14.Value := _obj.XmlAttrXmlnsWp14.Value; + if not ifnil(_obj.XmlAttrXmlnsWp.Value) then + self.XmlAttrXmlnsWp.Value := _obj.XmlAttrXmlnsWp.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW10.Value) then + self.XmlAttrXmlnsW10.Value := _obj.XmlAttrXmlnsW10.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrXmlnsWpsCustomData.Value) then + self.XmlAttrXmlnsWpsCustomData.Value := _obj.XmlAttrXmlnsWpsCustomData.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Comments.AddComment(): Comment; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "comment" then break; + end + obj := new Comment(self, self.Prefix, "comment"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Comments.AppendComment(): Comment; +begin + obj := new Comment(self, self.Prefix, "comment"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Comments.ReadComments(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "comment" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Comments.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Comments.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Comments.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsO(); +begin + return self.XmlAttrXmlnsO.Value; +end; + +function Comments.WriteXmlAttrXmlnsO(_value); +begin + self.XmlAttrXmlnsO.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Comments.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Comments.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Comments.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWp14(); +begin + return self.XmlAttrXmlnsWp14.Value; +end; + +function Comments.WriteXmlAttrXmlnsWp14(_value); +begin + self.XmlAttrXmlnsWp14.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWp(); +begin + return self.XmlAttrXmlnsWp.Value; +end; + +function Comments.WriteXmlAttrXmlnsWp(_value); +begin + self.XmlAttrXmlnsWp.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Comments.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Comments.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Comments.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsW10(); +begin + return self.XmlAttrXmlnsW10.Value; +end; + +function Comments.WriteXmlAttrXmlnsW10(_value); +begin + self.XmlAttrXmlnsW10.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Comments.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Comments.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Comments.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Comments.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Comments.ReadXmlAttrXmlnsWpsCustomData(); +begin + return self.XmlAttrXmlnsWpsCustomData.Value; +end; + +function Comments.WriteXmlAttrXmlnsWpsCustomData(_value); +begin + self.XmlAttrXmlnsWpsCustomData.Value := _value; +end; + +function Comments.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Comments.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/Compat@DOCX.tsf b/autoclass/docx/Compat@DOCX.tsf new file mode 100644 index 0000000..36e1190 --- /dev/null +++ b/autoclass/docx/Compat@DOCX.tsf @@ -0,0 +1,275 @@ +type Compat = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Compat);override; + function AddCompatSetting(): CompatSetting; + function AppendCompatSetting(): CompatSetting; + + property CompatSettings read ReadCompatSettings; + function ReadCompatSettings(_index); + + property SpaceForUL read ReadXmlChildSpaceForUL write WriteXmlChildSpaceForUL; + property BalanceSingleByteDoubleByteWidth read ReadXmlChildBalanceSingleByteDoubleByteWidth write WriteXmlChildBalanceSingleByteDoubleByteWidth; + property DoNotLeaveBackslashAlone read ReadXmlChildDoNotLeaveBackslashAlone write WriteXmlChildDoNotLeaveBackslashAlone; + property UlTrailSpace read ReadXmlChildUlTrailSpace write WriteXmlChildUlTrailSpace; + property DoNotExpandShiftReturn read ReadXmlChildDoNotExpandShiftReturn write WriteXmlChildDoNotExpandShiftReturn; + property AdjustLineHeightInTable read ReadXmlChildAdjustLineHeightInTable write WriteXmlChildAdjustLineHeightInTable; + property UseFELayout read ReadXmlChildUseFELayout write WriteXmlChildUseFELayout; + property CompatSetting read ReadXmlChildCompatSetting write WriteXmlChildCompatSetting; + function ReadXmlChildSpaceForUL(); + function WriteXmlChildSpaceForUL(_value); + function ReadXmlChildBalanceSingleByteDoubleByteWidth(); + function WriteXmlChildBalanceSingleByteDoubleByteWidth(_value); + function ReadXmlChildDoNotLeaveBackslashAlone(); + function WriteXmlChildDoNotLeaveBackslashAlone(_value); + function ReadXmlChildUlTrailSpace(); + function WriteXmlChildUlTrailSpace(_value); + function ReadXmlChildDoNotExpandShiftReturn(); + function WriteXmlChildDoNotExpandShiftReturn(_value); + function ReadXmlChildAdjustLineHeightInTable(); + function WriteXmlChildAdjustLineHeightInTable(_value); + function ReadXmlChildUseFELayout(); + function WriteXmlChildUseFELayout(_value); + function ReadXmlChildCompatSetting(); + function WriteXmlChildCompatSetting(_value); + +public + // Attributes + + // Children + XmlChildSpaceForUL: OpenXmlEmpty; + XmlChildBalanceSingleByteDoubleByteWidth: OpenXmlEmpty; + XmlChildDoNotLeaveBackslashAlone: OpenXmlEmpty; + XmlChildUlTrailSpace: OpenXmlEmpty; + XmlChildDoNotExpandShiftReturn: OpenXmlEmpty; + XmlChildAdjustLineHeightInTable: OpenXmlEmpty; + XmlChildUseFELayout: OpenXmlEmpty; + +end; + +function Compat.Create();overload; +begin + self.Create(nil, "w", "compat"); +end; + +function Compat.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Compat.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Compat.Init();override; +begin + self.XmlChildSpaceForUL := new OpenXmlEmpty(self, self.Prefix, "spaceForUL"); + self.XmlChildBalanceSingleByteDoubleByteWidth := new OpenXmlEmpty(self, self.Prefix, "balanceSingleByteDoubleByteWidth"); + self.XmlChildDoNotLeaveBackslashAlone := new OpenXmlEmpty(self, self.Prefix, "doNotLeaveBackslashAlone"); + self.XmlChildUlTrailSpace := new OpenXmlEmpty(self, self.Prefix, "ulTrailSpace"); + self.XmlChildDoNotExpandShiftReturn := new OpenXmlEmpty(self, self.Prefix, "doNotExpandShiftReturn"); + self.XmlChildAdjustLineHeightInTable := new OpenXmlEmpty(self, self.Prefix, "adjustLineHeightInTable"); + self.XmlChildUseFELayout := new OpenXmlEmpty(self, self.Prefix, "useFELayout"); +end; + +function Compat.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Compat.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildSpaceForUL, + 1: self.XmlChildBalanceSingleByteDoubleByteWidth, + 2: self.XmlChildDoNotLeaveBackslashAlone, + 3: self.XmlChildUlTrailSpace, + 4: self.XmlChildDoNotExpandShiftReturn, + 5: self.XmlChildAdjustLineHeightInTable, + 6: self.XmlChildUseFELayout, + ); + sorted_child_ := array( + "": -1, + self.XmlChildSpaceForUL.ElementName: 0, + self.XmlChildBalanceSingleByteDoubleByteWidth.ElementName: 1, + self.XmlChildDoNotLeaveBackslashAlone.ElementName: 2, + self.XmlChildUlTrailSpace.ElementName: 3, + self.XmlChildDoNotExpandShiftReturn.ElementName: 4, + self.XmlChildAdjustLineHeightInTable.ElementName: 5, + self.XmlChildUseFELayout.ElementName: 6, + ); +end; + +function Compat.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "compatSetting": obj := self.AppendCompatSetting(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Compat.Copy(_obj: Compat);override; +begin + self.XmlChildSpaceForUL.Copy(_obj.XmlChildSpaceForUL); + self.XmlChildBalanceSingleByteDoubleByteWidth.Copy(_obj.XmlChildBalanceSingleByteDoubleByteWidth); + self.XmlChildDoNotLeaveBackslashAlone.Copy(_obj.XmlChildDoNotLeaveBackslashAlone); + self.XmlChildUlTrailSpace.Copy(_obj.XmlChildUlTrailSpace); + self.XmlChildDoNotExpandShiftReturn.Copy(_obj.XmlChildDoNotExpandShiftReturn); + self.XmlChildAdjustLineHeightInTable.Copy(_obj.XmlChildAdjustLineHeightInTable); + self.XmlChildUseFELayout.Copy(_obj.XmlChildUseFELayout); +end; + +function Compat.AddCompatSetting(): CompatSetting; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "compatSetting" then break; + end + obj := new CompatSetting(self, self.Prefix, "compatSetting"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Compat.AppendCompatSetting(): CompatSetting; +begin + obj := new CompatSetting(self, self.Prefix, "compatSetting"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Compat.ReadCompatSettings(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "compatSetting" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Compat.ReadXmlChildSpaceForUL(); +begin + return ifnil(self.XmlChildSpaceForUL.Value) ? false : true; +end; + +function Compat.WriteXmlChildSpaceForUL(_value); +begin + self.XmlChildSpaceForUL.Value := _value; +end; + +function Compat.ReadXmlChildBalanceSingleByteDoubleByteWidth(); +begin + return ifnil(self.XmlChildBalanceSingleByteDoubleByteWidth.Value) ? false : true; +end; + +function Compat.WriteXmlChildBalanceSingleByteDoubleByteWidth(_value); +begin + self.XmlChildBalanceSingleByteDoubleByteWidth.Value := _value; +end; + +function Compat.ReadXmlChildDoNotLeaveBackslashAlone(); +begin + return ifnil(self.XmlChildDoNotLeaveBackslashAlone.Value) ? false : true; +end; + +function Compat.WriteXmlChildDoNotLeaveBackslashAlone(_value); +begin + self.XmlChildDoNotLeaveBackslashAlone.Value := _value; +end; + +function Compat.ReadXmlChildUlTrailSpace(); +begin + return ifnil(self.XmlChildUlTrailSpace.Value) ? false : true; +end; + +function Compat.WriteXmlChildUlTrailSpace(_value); +begin + self.XmlChildUlTrailSpace.Value := _value; +end; + +function Compat.ReadXmlChildDoNotExpandShiftReturn(); +begin + return ifnil(self.XmlChildDoNotExpandShiftReturn.Value) ? false : true; +end; + +function Compat.WriteXmlChildDoNotExpandShiftReturn(_value); +begin + self.XmlChildDoNotExpandShiftReturn.Value := _value; +end; + +function Compat.ReadXmlChildAdjustLineHeightInTable(); +begin + return ifnil(self.XmlChildAdjustLineHeightInTable.Value) ? false : true; +end; + +function Compat.WriteXmlChildAdjustLineHeightInTable(_value); +begin + self.XmlChildAdjustLineHeightInTable.Value := _value; +end; + +function Compat.ReadXmlChildUseFELayout(); +begin + return ifnil(self.XmlChildUseFELayout.Value) ? false : true; +end; + +function Compat.WriteXmlChildUseFELayout(_value); +begin + self.XmlChildUseFELayout.Value := _value; +end; + +function Compat.ReadXmlChildCompatSetting(); +begin + return ifnil(self.XmlChildCompatSetting.Value) ? false : true; +end; + +function Compat.WriteXmlChildCompatSetting(_value); +begin + self.XmlChildCompatSetting.Value := _value; +end; diff --git a/autoclass/docx/CompatSetting@DOCX.tsf b/autoclass/docx/CompatSetting@DOCX.tsf new file mode 100644 index 0000000..f39f5d2 --- /dev/null +++ b/autoclass/docx/CompatSetting@DOCX.tsf @@ -0,0 +1,117 @@ +type CompatSetting = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CompatSetting);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + property Uri read ReadXmlAttrUri write WriteXmlAttrUri; + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + function ReadXmlAttrUri(); + function WriteXmlAttrUri(_value); + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + XmlAttrUri: OpenXmlAttribute; + XmlAttrVal: OpenXmlAttribute; + + // Children + +end; + +function CompatSetting.Create();overload; +begin + self.Create(nil, "w", "compatSetting"); +end; + +function CompatSetting.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CompatSetting.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CompatSetting.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(self.Prefix, "name", nil); + self.XmlAttrUri := new OpenXmlAttribute(self.Prefix, "uri", nil); + self.XmlAttrVal := new OpenXmlAttribute(self.Prefix, "val", nil); +end; + +function CompatSetting.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + self.XmlAttrUri, + self.XmlAttrVal, + ); +end; + +function CompatSetting.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function CompatSetting.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function CompatSetting.Copy(_obj: CompatSetting);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + if not ifnil(_obj.XmlAttrUri.Value) then + self.XmlAttrUri.Value := _obj.XmlAttrUri.Value; + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function CompatSetting.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function CompatSetting.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function CompatSetting.ReadXmlAttrUri(); +begin + return self.XmlAttrUri.Value; +end; + +function CompatSetting.WriteXmlAttrUri(_value); +begin + self.XmlAttrUri.Value := _value; +end; + +function CompatSetting.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function CompatSetting.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/CoreProperties@DOCX.tsf b/autoclass/docx/CoreProperties@DOCX.tsf new file mode 100644 index 0000000..f7a6ac9 --- /dev/null +++ b/autoclass/docx/CoreProperties@DOCX.tsf @@ -0,0 +1,234 @@ +type CoreProperties = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: CoreProperties);override; + + property XmlnsCp read ReadXmlAttrXmlnsCp write WriteXmlAttrXmlnsCp; + property XmlnsDc read ReadXmlAttrXmlnsDc write WriteXmlAttrXmlnsDc; + property XmlnsDcterms read ReadXmlAttrXmlnsDcterms write WriteXmlAttrXmlnsDcterms; + property XmlnsDcmitype read ReadXmlAttrXmlnsDcmitype write WriteXmlAttrXmlnsDcmitype; + property XmlnsXsi read ReadXmlAttrXmlnsXsi write WriteXmlAttrXmlnsXsi; + function ReadXmlAttrXmlnsCp(); + function WriteXmlAttrXmlnsCp(_value); + function ReadXmlAttrXmlnsDc(); + function WriteXmlAttrXmlnsDc(_value); + function ReadXmlAttrXmlnsDcterms(); + function WriteXmlAttrXmlnsDcterms(_value); + function ReadXmlAttrXmlnsDcmitype(); + function WriteXmlAttrXmlnsDcmitype(_value); + function ReadXmlAttrXmlnsXsi(); + function WriteXmlAttrXmlnsXsi(_value); + +public + // Attributes + XmlAttrXmlnsCp: OpenXmlAttribute; + XmlAttrXmlnsDc: OpenXmlAttribute; + XmlAttrXmlnsDcterms: OpenXmlAttribute; + XmlAttrXmlnsDcmitype: OpenXmlAttribute; + XmlAttrXmlnsXsi: OpenXmlAttribute; + + // Children + Title: OpenXmlPcdata; + Subject: OpenXmlPcdata; + Creator: OpenXmlPcdata; + Keywords: OpenXmlPcdata; + Description: OpenXmlPcdata; + LastModifiedBy: OpenXmlPcdata; + Revision: OpenXmlPcdata; + LastPrinted: OpenXmlPcdata; + Created: OpenXmlPcdata; + Modified: OpenXmlPcdata; + +end; + +function CoreProperties.Create();overload; +begin + self.Create(nil, "cp", "coreProperties"); +end; + +function CoreProperties.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function CoreProperties.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CoreProperties.Init();override; +begin + self.XmlAttrXmlnsCp := new OpenXmlAttribute("xmlns", "cp", "http://schemas.openxmlformats.org/package/2006/metadata/core-properties"); + self.XmlAttrXmlnsDc := new OpenXmlAttribute("xmlns", "dc", "http://purl.org/dc/elements/1.1/"); + self.XmlAttrXmlnsDcterms := new OpenXmlAttribute("xmlns", "dcterms", "http://purl.org/dc/terms/"); + self.XmlAttrXmlnsDcmitype := new OpenXmlAttribute("xmlns", "dcmitype", "http://purl.org/dc/dcmitype/"); + self.XmlAttrXmlnsXsi := new OpenXmlAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); + self.Title := new OpenXmlPcdata(self, "dc", "title"); + self.Subject := new OpenXmlPcdata(self, "dc", "subject"); + self.Creator := new OpenXmlPcdata(self, "dc", "creator"); + self.Keywords := new OpenXmlPcdata(self, "cp", "keywords"); + self.Description := new OpenXmlPcdata(self, "cp", "description"); + self.LastModifiedBy := new OpenXmlPcdata(self, "cp", "lastModifiedBy"); + self.Revision := new OpenXmlPcdata(self, "cp", "revision"); + self.LastPrinted := new OpenXmlPcdata(self, "cp", "lastPrinted"); + self.Created := new Created(self, "dcterms", "created"); + self.Modified := new Modified(self, "dcterms", "modified"); +end; + +function CoreProperties.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsCp, + self.XmlAttrXmlnsDc, + self.XmlAttrXmlnsDcterms, + self.XmlAttrXmlnsDcmitype, + self.XmlAttrXmlnsXsi, + ); +end; + +function CoreProperties.InitChildren();override; +begin + child_elements_ := array( + 0: self.Title, + 1: self.Subject, + 2: self.Creator, + 3: self.Keywords, + 4: self.Description, + 5: self.LastModifiedBy, + 6: self.Revision, + 7: self.LastPrinted, + 8: self.Created, + 9: self.Modified, + ); + sorted_child_ := array( + "": -1, + self.Title.ElementName: 0, + self.Subject.ElementName: 1, + self.Creator.ElementName: 2, + self.Keywords.ElementName: 3, + self.Description.ElementName: 4, + self.LastModifiedBy.ElementName: 5, + self.Revision.ElementName: 6, + self.LastPrinted.ElementName: 7, + self.Created.ElementName: 8, + self.Modified.ElementName: 9, + ); +end; + +function CoreProperties.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CoreProperties.Copy(_obj: CoreProperties);override; +begin + if not ifnil(_obj.XmlAttrXmlnsCp.Value) then + self.XmlAttrXmlnsCp.Value := _obj.XmlAttrXmlnsCp.Value; + if not ifnil(_obj.XmlAttrXmlnsDc.Value) then + self.XmlAttrXmlnsDc.Value := _obj.XmlAttrXmlnsDc.Value; + if not ifnil(_obj.XmlAttrXmlnsDcterms.Value) then + self.XmlAttrXmlnsDcterms.Value := _obj.XmlAttrXmlnsDcterms.Value; + if not ifnil(_obj.XmlAttrXmlnsDcmitype.Value) then + self.XmlAttrXmlnsDcmitype.Value := _obj.XmlAttrXmlnsDcmitype.Value; + if not ifnil(_obj.XmlAttrXmlnsXsi.Value) then + self.XmlAttrXmlnsXsi.Value := _obj.XmlAttrXmlnsXsi.Value; + self.Title.Copy(_obj.Title); + self.Subject.Copy(_obj.Subject); + self.Creator.Copy(_obj.Creator); + self.Keywords.Copy(_obj.Keywords); + self.Description.Copy(_obj.Description); + self.LastModifiedBy.Copy(_obj.LastModifiedBy); + self.Revision.Copy(_obj.Revision); + self.LastPrinted.Copy(_obj.LastPrinted); + self.Created.Copy(_obj.Created); + self.Modified.Copy(_obj.Modified); +end; + +function CoreProperties.ReadXmlAttrXmlnsCp(); +begin + return self.XmlAttrXmlnsCp.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsCp(_value); +begin + self.XmlAttrXmlnsCp.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsDc(); +begin + return self.XmlAttrXmlnsDc.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsDc(_value); +begin + self.XmlAttrXmlnsDc.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsDcterms(); +begin + return self.XmlAttrXmlnsDcterms.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsDcterms(_value); +begin + self.XmlAttrXmlnsDcterms.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsDcmitype(); +begin + return self.XmlAttrXmlnsDcmitype.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsDcmitype(_value); +begin + self.XmlAttrXmlnsDcmitype.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsXsi(); +begin + return self.XmlAttrXmlnsXsi.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsXsi(_value); +begin + self.XmlAttrXmlnsXsi.Value := _value; +end; diff --git a/autoclass/docx/Created@DOCX.tsf b/autoclass/docx/Created@DOCX.tsf new file mode 100644 index 0000000..0c88613 --- /dev/null +++ b/autoclass/docx/Created@DOCX.tsf @@ -0,0 +1,71 @@ +type Created = class(OpenXmlPcdata) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Created);override; + + property XsiType read ReadXmlAttrXsiType write WriteXmlAttrXsiType; + function ReadXmlAttrXsiType(); + function WriteXmlAttrXsiType(_value); + +public + // Attributes + XmlAttrXsiType: OpenXmlAttribute; + + // Children + +end; + +function Created.Create();overload; +begin + self.Create(nil, "dcterms", "created"); +end; + +function Created.Create(_node: XmlNode);overload; +begin + class(OpenXmlPcdata).Create(_node: XmlNode); +end; + +function Created.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlPcdata).Create(_parent, _prefix, _local_name); +end; + +function Created.Init();override; +begin + self.XmlAttrXsiType := new OpenXmlAttribute("xsi", "type", nil); +end; + +function Created.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXsiType, + ); +end; + +function Created.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Created.Copy(_obj: Created);override; +begin + if not ifnil(_obj.XmlAttrXsiType.Value) then + self.XmlAttrXsiType.Value := _obj.XmlAttrXsiType.Value; +end; + +function Created.ReadXmlAttrXsiType(); +begin + return self.XmlAttrXsiType.Value; +end; + +function Created.WriteXmlAttrXsiType(_value); +begin + self.XmlAttrXsiType.Value := _value; +end; diff --git a/autoclass/docx/DLbls@DOCX.tsf b/autoclass/docx/DLbls@DOCX.tsf new file mode 100644 index 0000000..4eef2f2 --- /dev/null +++ b/autoclass/docx/DLbls@DOCX.tsf @@ -0,0 +1,138 @@ +type DLbls = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: DLbls);override; + +public + // Attributes + + // Children + SpPr: SpPr; + ShowLegendKey: PureVal; + ShowVal: PureVal; + ShowCatName: PureVal; + ShowSerName: PureVal; + ShowPercent: PureVal; + ShowBubbleSize: PureVal; + ShowLeaderLines: PureVal; + ExtLst: ExtLst; + +end; + +function DLbls.Create();overload; +begin + self.Create(nil, "c", "dLbls"); +end; + +function DLbls.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function DLbls.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DLbls.Init();override; +begin + self.SpPr := new SpPr(self, self.Prefix, "spPr"); + self.ShowLegendKey := new PureVal(self, self.Prefix, "showLegendKey"); + self.ShowVal := new PureVal(self, self.Prefix, "showVal"); + self.ShowCatName := new PureVal(self, self.Prefix, "showCatName"); + self.ShowSerName := new PureVal(self, self.Prefix, "showSerName"); + self.ShowPercent := new PureVal(self, self.Prefix, "showPercent"); + self.ShowBubbleSize := new PureVal(self, self.Prefix, "showBubbleSize"); + self.ShowLeaderLines := new PureVal(self, self.Prefix, "showLeaderLines"); + self.ExtLst := new ExtLst(self, self.Prefix, "extLst"); +end; + +function DLbls.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function DLbls.InitChildren();override; +begin + child_elements_ := array( + 0: self.SpPr, + 1: self.ShowLegendKey, + 2: self.ShowVal, + 3: self.ShowCatName, + 4: self.ShowSerName, + 5: self.ShowPercent, + 6: self.ShowBubbleSize, + 7: self.ShowLeaderLines, + 8: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.SpPr.ElementName: 0, + self.ShowLegendKey.ElementName: 1, + self.ShowVal.ElementName: 2, + self.ShowCatName.ElementName: 3, + self.ShowSerName.ElementName: 4, + self.ShowPercent.ElementName: 5, + self.ShowBubbleSize.ElementName: 6, + self.ShowLeaderLines.ElementName: 7, + self.ExtLst.ElementName: 8, + ); +end; + +function DLbls.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DLbls.Copy(_obj: DLbls);override; +begin + self.SpPr.Copy(_obj.SpPr); + self.ShowLegendKey.Copy(_obj.ShowLegendKey); + self.ShowVal.Copy(_obj.ShowVal); + self.ShowCatName.Copy(_obj.ShowCatName); + self.ShowSerName.Copy(_obj.ShowSerName); + self.ShowPercent.Copy(_obj.ShowPercent); + self.ShowBubbleSize.Copy(_obj.ShowBubbleSize); + self.ShowLeaderLines.Copy(_obj.ShowLeaderLines); + self.ExtLst.Copy(_obj.ExtLst); +end; diff --git a/autoclass/docx/DTable@DOCX.tsf b/autoclass/docx/DTable@DOCX.tsf new file mode 100644 index 0000000..9350b23 --- /dev/null +++ b/autoclass/docx/DTable@DOCX.tsf @@ -0,0 +1,118 @@ +type DTable = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: DTable);override; + +public + // Attributes + + // Children + ShowHorzBorder: PureVal; + ShowVertBorder: PureVal; + ShowOutline: PureVal; + ShowKeys: PureVal; + TxPr: TxPr; + +end; + +function DTable.Create();overload; +begin + self.Create(nil, "c", "dTable"); +end; + +function DTable.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function DTable.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DTable.Init();override; +begin + self.ShowHorzBorder := new PureVal(self, self.Prefix, "showHorzBorder"); + self.ShowVertBorder := new PureVal(self, self.Prefix, "showVertBorder"); + self.ShowOutline := new PureVal(self, self.Prefix, "showOutline"); + self.ShowKeys := new PureVal(self, self.Prefix, "showKeys"); + self.TxPr := new TxPr(self, self.Prefix, "txPr"); +end; + +function DTable.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function DTable.InitChildren();override; +begin + child_elements_ := array( + 0: self.ShowHorzBorder, + 1: self.ShowVertBorder, + 2: self.ShowOutline, + 3: self.ShowKeys, + 4: self.TxPr, + ); + sorted_child_ := array( + "": -1, + self.ShowHorzBorder.ElementName: 0, + self.ShowVertBorder.ElementName: 1, + self.ShowOutline.ElementName: 2, + self.ShowKeys.ElementName: 3, + self.TxPr.ElementName: 4, + ); +end; + +function DTable.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DTable.Copy(_obj: DTable);override; +begin + self.ShowHorzBorder.Copy(_obj.ShowHorzBorder); + self.ShowVertBorder.Copy(_obj.ShowVertBorder); + self.ShowOutline.Copy(_obj.ShowOutline); + self.ShowKeys.Copy(_obj.ShowKeys); + self.TxPr.Copy(_obj.TxPr); +end; diff --git a/autoclass/docx/Default@DOCX.tsf b/autoclass/docx/Default@DOCX.tsf new file mode 100644 index 0000000..0f19ebc --- /dev/null +++ b/autoclass/docx/Default@DOCX.tsf @@ -0,0 +1,99 @@ +type Default = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Default);override; + + property Extension read ReadXmlAttrExtension write WriteXmlAttrExtension; + property ContentType read ReadXmlAttrContentType write WriteXmlAttrContentType; + function ReadXmlAttrExtension(); + function WriteXmlAttrExtension(_value); + function ReadXmlAttrContentType(); + function WriteXmlAttrContentType(_value); + +public + // Attributes + XmlAttrExtension: OpenXmlAttribute; + XmlAttrContentType: OpenXmlAttribute; + + // Children + +end; + +function Default.Create();overload; +begin + self.Create(nil, nil, "Default"); +end; + +function Default.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Default.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Default.Init();override; +begin + self.XmlAttrExtension := new OpenXmlAttribute(nil, "Extension", nil); + self.XmlAttrContentType := new OpenXmlAttribute(nil, "ContentType", nil); +end; + +function Default.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrExtension, + self.XmlAttrContentType, + ); +end; + +function Default.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Default.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Default.Copy(_obj: Default);override; +begin + if not ifnil(_obj.XmlAttrExtension.Value) then + self.XmlAttrExtension.Value := _obj.XmlAttrExtension.Value; + if not ifnil(_obj.XmlAttrContentType.Value) then + self.XmlAttrContentType.Value := _obj.XmlAttrContentType.Value; +end; + +function Default.ReadXmlAttrExtension(); +begin + return self.XmlAttrExtension.Value; +end; + +function Default.WriteXmlAttrExtension(_value); +begin + self.XmlAttrExtension.Value := _value; +end; + +function Default.ReadXmlAttrContentType(); +begin + return self.XmlAttrContentType.Value; +end; + +function Default.WriteXmlAttrContentType(_value); +begin + self.XmlAttrContentType.Value := _value; +end; diff --git a/autoclass/docx/DocDefaults@DOCX.tsf b/autoclass/docx/DocDefaults@DOCX.tsf new file mode 100644 index 0000000..1012dbb --- /dev/null +++ b/autoclass/docx/DocDefaults@DOCX.tsf @@ -0,0 +1,103 @@ +type DocDefaults = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: DocDefaults);override; + +public + // Attributes + + // Children + RPrDefault: RPrDefault; + PPrDefault: PPrDefault; + +end; + +function DocDefaults.Create();overload; +begin + self.Create(nil, "w", "docDefaults"); +end; + +function DocDefaults.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function DocDefaults.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DocDefaults.Init();override; +begin + self.RPrDefault := new RPrDefault(self, self.Prefix, "rPrDefault"); + self.PPrDefault := new PPrDefault(self, self.Prefix, "pPrDefault"); +end; + +function DocDefaults.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function DocDefaults.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPrDefault, + 1: self.PPrDefault, + ); + sorted_child_ := array( + "": -1, + self.RPrDefault.ElementName: 0, + self.PPrDefault.ElementName: 1, + ); +end; + +function DocDefaults.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DocDefaults.Copy(_obj: DocDefaults);override; +begin + self.RPrDefault.Copy(_obj.RPrDefault); + self.PPrDefault.Copy(_obj.PPrDefault); +end; diff --git a/autoclass/docx/DocGrid@DOCX.tsf b/autoclass/docx/DocGrid@DOCX.tsf new file mode 100644 index 0000000..eb0f023 --- /dev/null +++ b/autoclass/docx/DocGrid@DOCX.tsf @@ -0,0 +1,99 @@ +type DocGrid = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: DocGrid);override; + + property Type read ReadXmlAttrType write WriteXmlAttrType; + property LinePitch read ReadXmlAttrLinePitch write WriteXmlAttrLinePitch; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrLinePitch(); + function WriteXmlAttrLinePitch(_value); + +public + // Attributes + XmlAttrType: OpenXmlAttribute; + XmlAttrLinePitch: OpenXmlAttribute; + + // Children + +end; + +function DocGrid.Create();overload; +begin + self.Create(nil, "w", "docGrid"); +end; + +function DocGrid.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function DocGrid.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DocGrid.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); + self.XmlAttrLinePitch := new OpenXmlAttribute(self.Prefix, "linePitch", nil); +end; + +function DocGrid.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + self.XmlAttrLinePitch, + ); +end; + +function DocGrid.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function DocGrid.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function DocGrid.Copy(_obj: DocGrid);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrLinePitch.Value) then + self.XmlAttrLinePitch.Value := _obj.XmlAttrLinePitch.Value; +end; + +function DocGrid.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function DocGrid.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function DocGrid.ReadXmlAttrLinePitch(); +begin + return self.XmlAttrLinePitch.Value; +end; + +function DocGrid.WriteXmlAttrLinePitch(_value); +begin + self.XmlAttrLinePitch.Value := _value; +end; diff --git a/autoclass/docx/DocPartObj@DOCX.tsf b/autoclass/docx/DocPartObj@DOCX.tsf new file mode 100644 index 0000000..0e2b9b3 --- /dev/null +++ b/autoclass/docx/DocPartObj@DOCX.tsf @@ -0,0 +1,103 @@ +type DocPartObj = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: DocPartObj);override; + +public + // Attributes + + // Children + DocPartGallery: PureWVal; + DocPartUnique: PureVal; + +end; + +function DocPartObj.Create();overload; +begin + self.Create(nil, "w", "docPartObj"); +end; + +function DocPartObj.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function DocPartObj.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DocPartObj.Init();override; +begin + self.DocPartGallery := new PureWVal(self, self.Prefix, "docPartGallery"); + self.DocPartUnique := new PureVal(self, self.Prefix, "docPartUnique"); +end; + +function DocPartObj.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function DocPartObj.InitChildren();override; +begin + child_elements_ := array( + 0: self.DocPartGallery, + 1: self.DocPartUnique, + ); + sorted_child_ := array( + "": -1, + self.DocPartGallery.ElementName: 0, + self.DocPartUnique.ElementName: 1, + ); +end; + +function DocPartObj.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DocPartObj.Copy(_obj: DocPartObj);override; +begin + self.DocPartGallery.Copy(_obj.DocPartGallery); + self.DocPartUnique.Copy(_obj.DocPartUnique); +end; diff --git a/autoclass/docx/DocPr@DOCX.tsf b/autoclass/docx/DocPr@DOCX.tsf new file mode 100644 index 0000000..90aa0b9 --- /dev/null +++ b/autoclass/docx/DocPr@DOCX.tsf @@ -0,0 +1,117 @@ +type DocPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: DocPr);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Name read ReadXmlAttrName write WriteXmlAttrName; + property Descr read ReadXmlAttrDescr write WriteXmlAttrDescr; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + function ReadXmlAttrDescr(); + function WriteXmlAttrDescr(_value); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + XmlAttrName: OpenXmlAttribute; + XmlAttrDescr: OpenXmlAttribute; + + // Children + +end; + +function DocPr.Create();overload; +begin + self.Create(nil, "w", "docPr"); +end; + +function DocPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function DocPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DocPr.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "id", nil); + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.XmlAttrDescr := new OpenXmlAttribute(nil, "descr", nil); +end; + +function DocPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrName, + self.XmlAttrDescr, + ); +end; + +function DocPr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function DocPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function DocPr.Copy(_obj: DocPr);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + if not ifnil(_obj.XmlAttrDescr.Value) then + self.XmlAttrDescr.Value := _obj.XmlAttrDescr.Value; +end; + +function DocPr.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function DocPr.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function DocPr.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function DocPr.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function DocPr.ReadXmlAttrDescr(); +begin + return self.XmlAttrDescr.Value; +end; + +function DocPr.WriteXmlAttrDescr(_value); +begin + self.XmlAttrDescr.Value := _value; +end; diff --git a/autoclass/docx/Document@DOCX.tsf b/autoclass/docx/Document@DOCX.tsf new file mode 100644 index 0000000..322d9db --- /dev/null +++ b/autoclass/docx/Document@DOCX.tsf @@ -0,0 +1,333 @@ +type Document = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Document);override; + + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + Body: Body; + +end; + +function Document.Create();overload; +begin + self.Create(nil, "w", "document"); +end; + +function Document.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Document.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Document.Init();override; +begin + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); + self.Body := new Body(self, self.Prefix, "body"); +end; + +function Document.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWps, + self.XmlAttrMcIgnorable, + ); +end; + +function Document.InitChildren();override; +begin + child_elements_ := array( + 0: self.Body, + ); + sorted_child_ := array( + "": -1, + self.Body.ElementName: 0, + ); +end; + +function Document.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Document.Copy(_obj: Document);override; +begin + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; + self.Body.Copy(_obj.Body); +end; + +function Document.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Document.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Document.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Document.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Document.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Document.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Document.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function Document.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Document.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Document.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Document.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Document.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Document.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Document.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Document.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Document.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/Drawing@DOCX.tsf b/autoclass/docx/Drawing@DOCX.tsf new file mode 100644 index 0000000..55da700 --- /dev/null +++ b/autoclass/docx/Drawing@DOCX.tsf @@ -0,0 +1,98 @@ +type Drawing = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Drawing);override; + +public + // Attributes + + // Children + _Inline: _Inline; + +end; + +function Drawing.Create();overload; +begin + self.Create(nil, "w", "drawing"); +end; + +function Drawing.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Drawing.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Drawing.Init();override; +begin + self._Inline := new _Inline(self, "wp", "inline"); +end; + +function Drawing.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Drawing.InitChildren();override; +begin + child_elements_ := array( + 0: self._Inline, + ); + sorted_child_ := array( + "": -1, + self._Inline.ElementName: 0, + ); +end; + +function Drawing.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Drawing.Copy(_obj: Drawing);override; +begin + self._Inline.Copy(_obj._Inline); +end; diff --git a/autoclass/docx/EffectExtent@DOCX.tsf b/autoclass/docx/EffectExtent@DOCX.tsf new file mode 100644 index 0000000..f89fbf7 --- /dev/null +++ b/autoclass/docx/EffectExtent@DOCX.tsf @@ -0,0 +1,135 @@ +type EffectExtent = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: EffectExtent);override; + + property L read ReadXmlAttrL write WriteXmlAttrL; + property T read ReadXmlAttrT write WriteXmlAttrT; + property R read ReadXmlAttrR write WriteXmlAttrR; + property B read ReadXmlAttrB write WriteXmlAttrB; + function ReadXmlAttrL(); + function WriteXmlAttrL(_value); + function ReadXmlAttrT(); + function WriteXmlAttrT(_value); + function ReadXmlAttrR(); + function WriteXmlAttrR(_value); + function ReadXmlAttrB(); + function WriteXmlAttrB(_value); + +public + // Attributes + XmlAttrL: OpenXmlAttribute; + XmlAttrT: OpenXmlAttribute; + XmlAttrR: OpenXmlAttribute; + XmlAttrB: OpenXmlAttribute; + + // Children + +end; + +function EffectExtent.Create();overload; +begin + self.Create(nil, "wp", "effectExtent"); +end; + +function EffectExtent.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function EffectExtent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectExtent.Init();override; +begin + self.XmlAttrL := new OpenXmlAttribute(nil, "l", nil); + self.XmlAttrT := new OpenXmlAttribute(nil, "t", nil); + self.XmlAttrR := new OpenXmlAttribute(nil, "r", nil); + self.XmlAttrB := new OpenXmlAttribute(nil, "b", nil); +end; + +function EffectExtent.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrL, + self.XmlAttrT, + self.XmlAttrR, + self.XmlAttrB, + ); +end; + +function EffectExtent.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function EffectExtent.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function EffectExtent.Copy(_obj: EffectExtent);override; +begin + if not ifnil(_obj.XmlAttrL.Value) then + self.XmlAttrL.Value := _obj.XmlAttrL.Value; + if not ifnil(_obj.XmlAttrT.Value) then + self.XmlAttrT.Value := _obj.XmlAttrT.Value; + if not ifnil(_obj.XmlAttrR.Value) then + self.XmlAttrR.Value := _obj.XmlAttrR.Value; + if not ifnil(_obj.XmlAttrB.Value) then + self.XmlAttrB.Value := _obj.XmlAttrB.Value; +end; + +function EffectExtent.ReadXmlAttrL(); +begin + return self.XmlAttrL.Value; +end; + +function EffectExtent.WriteXmlAttrL(_value); +begin + self.XmlAttrL.Value := _value; +end; + +function EffectExtent.ReadXmlAttrT(); +begin + return self.XmlAttrT.Value; +end; + +function EffectExtent.WriteXmlAttrT(_value); +begin + self.XmlAttrT.Value := _value; +end; + +function EffectExtent.ReadXmlAttrR(); +begin + return self.XmlAttrR.Value; +end; + +function EffectExtent.WriteXmlAttrR(_value); +begin + self.XmlAttrR.Value := _value; +end; + +function EffectExtent.ReadXmlAttrB(); +begin + return self.XmlAttrB.Value; +end; + +function EffectExtent.WriteXmlAttrB(_value); +begin + self.XmlAttrB.Value := _value; +end; diff --git a/autoclass/docx/EffectLst@DOCX.tsf b/autoclass/docx/EffectLst@DOCX.tsf new file mode 100644 index 0000000..e93ea77 --- /dev/null +++ b/autoclass/docx/EffectLst@DOCX.tsf @@ -0,0 +1,98 @@ +type EffectLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: EffectLst);override; + +public + // Attributes + + // Children + OuterShdw: OuterShdw; + +end; + +function EffectLst.Create();overload; +begin + self.Create(nil, "a", "effectLst"); +end; + +function EffectLst.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function EffectLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectLst.Init();override; +begin + self.OuterShdw := new OuterShdw(self, self.Prefix, "outerShdw"); +end; + +function EffectLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EffectLst.InitChildren();override; +begin + child_elements_ := array( + 0: self.OuterShdw, + ); + sorted_child_ := array( + "": -1, + self.OuterShdw.ElementName: 0, + ); +end; + +function EffectLst.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EffectLst.Copy(_obj: EffectLst);override; +begin + self.OuterShdw.Copy(_obj.OuterShdw); +end; diff --git a/autoclass/docx/EffectStyle@DOCX.tsf b/autoclass/docx/EffectStyle@DOCX.tsf new file mode 100644 index 0000000..cf6454c --- /dev/null +++ b/autoclass/docx/EffectStyle@DOCX.tsf @@ -0,0 +1,98 @@ +type EffectStyle = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: EffectStyle);override; + +public + // Attributes + + // Children + EffectLst: EffectLst; + +end; + +function EffectStyle.Create();overload; +begin + self.Create(nil, "a", "effectStyle"); +end; + +function EffectStyle.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function EffectStyle.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectStyle.Init();override; +begin + self.EffectLst := new EffectLst(self, self.Prefix, "effectLst"); +end; + +function EffectStyle.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EffectStyle.InitChildren();override; +begin + child_elements_ := array( + 0: self.EffectLst, + ); + sorted_child_ := array( + "": -1, + self.EffectLst.ElementName: 0, + ); +end; + +function EffectStyle.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EffectStyle.Copy(_obj: EffectStyle);override; +begin + self.EffectLst.Copy(_obj.EffectLst); +end; diff --git a/autoclass/docx/EffectStyleLst@DOCX.tsf b/autoclass/docx/EffectStyleLst@DOCX.tsf new file mode 100644 index 0000000..6967cce --- /dev/null +++ b/autoclass/docx/EffectStyleLst@DOCX.tsf @@ -0,0 +1,137 @@ +type EffectStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: EffectStyleLst);override; + function AddEffectStyle(): EffectStyle; + function AppendEffectStyle(): EffectStyle; + + property EffectStyles read ReadEffectStyles; + function ReadEffectStyles(_index); + +public + // Attributes + + // Children + +end; + +function EffectStyleLst.Create();overload; +begin + self.Create(nil, "a", "effectStyleLst"); +end; + +function EffectStyleLst.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function EffectStyleLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectStyleLst.Init();override; +begin + +end; + +function EffectStyleLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EffectStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function EffectStyleLst.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "effectStyle": obj := self.AppendEffectStyle(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EffectStyleLst.Copy(_obj: EffectStyleLst);override; +begin + +end; + +function EffectStyleLst.AddEffectStyle(): EffectStyle; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "effectStyle" then break; + end + obj := new EffectStyle(self, self.Prefix, "effectStyle"); + self.InsertChild(obj, i+1); + return obj; +end; + +function EffectStyleLst.AppendEffectStyle(): EffectStyle; +begin + obj := new EffectStyle(self, self.Prefix, "effectStyle"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function EffectStyleLst.ReadEffectStyles(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "effectStyle" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Endnote@DOCX.tsf b/autoclass/docx/Endnote@DOCX.tsf new file mode 100644 index 0000000..f474bf0 --- /dev/null +++ b/autoclass/docx/Endnote@DOCX.tsf @@ -0,0 +1,172 @@ +type Endnote = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Endnote);override; + function AddP(): P; + function AppendP(): P; + + property Ps read ReadPs; + function ReadPs(_index); + + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrType: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + + // Children + +end; + +function Endnote.Create();overload; +begin + self.Create(nil, "w", "endnote"); +end; + +function Endnote.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Endnote.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Endnote.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); + self.XmlAttrId := new OpenXmlAttribute(self.Prefix, "id", nil); +end; + +function Endnote.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + self.XmlAttrId, + ); +end; + +function Endnote.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Endnote.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Endnote.Copy(_obj: Endnote);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; +end; + +function Endnote.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Endnote.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Endnote.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Endnote.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Endnote.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Endnote.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Endnote.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/EndnotePr@DOCX.tsf b/autoclass/docx/EndnotePr@DOCX.tsf new file mode 100644 index 0000000..ced5452 --- /dev/null +++ b/autoclass/docx/EndnotePr@DOCX.tsf @@ -0,0 +1,137 @@ +type EndnotePr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: EndnotePr);override; + function AddEndnote(): Endnote; + function AppendEndnote(): Endnote; + + property Endnotes read ReadEndnotes; + function ReadEndnotes(_index); + +public + // Attributes + + // Children + +end; + +function EndnotePr.Create();overload; +begin + self.Create(nil, "w", "endnotePr"); +end; + +function EndnotePr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function EndnotePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EndnotePr.Init();override; +begin + +end; + +function EndnotePr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EndnotePr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function EndnotePr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "endnote": obj := self.AppendEndnote(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EndnotePr.Copy(_obj: EndnotePr);override; +begin + +end; + +function EndnotePr.AddEndnote(): Endnote; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "endnote" then break; + end + obj := new Endnote(self, self.Prefix, "endnote"); + self.InsertChild(obj, i+1); + return obj; +end; + +function EndnotePr.AppendEndnote(): Endnote; +begin + obj := new Endnote(self, self.Prefix, "endnote"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function EndnotePr.ReadEndnotes(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "endnote" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Endnotes@DOCX.tsf b/autoclass/docx/Endnotes@DOCX.tsf new file mode 100644 index 0000000..a6818f0 --- /dev/null +++ b/autoclass/docx/Endnotes@DOCX.tsf @@ -0,0 +1,730 @@ +type Endnotes = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Endnotes);override; + function AddEndnote(): Endnote; + function AppendEndnote(): Endnote; + + property Endnotes read ReadEndnotes; + function ReadEndnotes(_index); + + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsCx read ReadXmlAttrXmlnsCx write WriteXmlAttrXmlnsCx; + property XmlnsCx1 read ReadXmlAttrXmlnsCx1 write WriteXmlAttrXmlnsCx1; + property XmlnsCx2 read ReadXmlAttrXmlnsCx2 write WriteXmlAttrXmlnsCx2; + property XmlnsCx3 read ReadXmlAttrXmlnsCx3 write WriteXmlAttrXmlnsCx3; + property XmlnsCx4 read ReadXmlAttrXmlnsCx4 write WriteXmlAttrXmlnsCx4; + property XmlnsCx5 read ReadXmlAttrXmlnsCx5 write WriteXmlAttrXmlnsCx5; + property XmlnsCx6 read ReadXmlAttrXmlnsCx6 write WriteXmlAttrXmlnsCx6; + property XmlnsCx7 read ReadXmlAttrXmlnsCx7 write WriteXmlAttrXmlnsCx7; + property XmlnsCx8 read ReadXmlAttrXmlnsCx8 write WriteXmlAttrXmlnsCx8; + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsAink read ReadXmlAttrXmlnsAink write WriteXmlAttrXmlnsAink; + property XmlnsAm3d read ReadXmlAttrXmlnsAm3d write WriteXmlAttrXmlnsAm3d; + property XmlnsO read ReadXmlAttrXmlnsO write WriteXmlAttrXmlnsO; + property XmlnsOel read ReadXmlAttrXmlnsOel write WriteXmlAttrXmlnsOel; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; + property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsCx(); + function WriteXmlAttrXmlnsCx(_value); + function ReadXmlAttrXmlnsCx1(); + function WriteXmlAttrXmlnsCx1(_value); + function ReadXmlAttrXmlnsCx2(); + function WriteXmlAttrXmlnsCx2(_value); + function ReadXmlAttrXmlnsCx3(); + function WriteXmlAttrXmlnsCx3(_value); + function ReadXmlAttrXmlnsCx4(); + function WriteXmlAttrXmlnsCx4(_value); + function ReadXmlAttrXmlnsCx5(); + function WriteXmlAttrXmlnsCx5(_value); + function ReadXmlAttrXmlnsCx6(); + function WriteXmlAttrXmlnsCx6(_value); + function ReadXmlAttrXmlnsCx7(); + function WriteXmlAttrXmlnsCx7(_value); + function ReadXmlAttrXmlnsCx8(); + function WriteXmlAttrXmlnsCx8(_value); + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsAink(); + function WriteXmlAttrXmlnsAink(_value); + function ReadXmlAttrXmlnsAm3d(); + function WriteXmlAttrXmlnsAm3d(_value); + function ReadXmlAttrXmlnsO(); + function WriteXmlAttrXmlnsO(_value); + function ReadXmlAttrXmlnsOel(); + function WriteXmlAttrXmlnsOel(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsWp14(); + function WriteXmlAttrXmlnsWp14(_value); + function ReadXmlAttrXmlnsWp(); + function WriteXmlAttrXmlnsWp(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsCx: OpenXmlAttribute; + XmlAttrXmlnsCx1: OpenXmlAttribute; + XmlAttrXmlnsCx2: OpenXmlAttribute; + XmlAttrXmlnsCx3: OpenXmlAttribute; + XmlAttrXmlnsCx4: OpenXmlAttribute; + XmlAttrXmlnsCx5: OpenXmlAttribute; + XmlAttrXmlnsCx6: OpenXmlAttribute; + XmlAttrXmlnsCx7: OpenXmlAttribute; + XmlAttrXmlnsCx8: OpenXmlAttribute; + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsAink: OpenXmlAttribute; + XmlAttrXmlnsAm3d: OpenXmlAttribute; + XmlAttrXmlnsO: OpenXmlAttribute; + XmlAttrXmlnsOel: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsWp14: OpenXmlAttribute; + XmlAttrXmlnsWp: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Endnotes.Create();overload; +begin + self.Create(nil, "w", "endnotes"); +end; + +function Endnotes.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Endnotes.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Endnotes.Init();override; +begin + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsCx := new OpenXmlAttribute("xmlns", "cx", nil); + self.XmlAttrXmlnsCx1 := new OpenXmlAttribute("xmlns", "cx1", nil); + self.XmlAttrXmlnsCx2 := new OpenXmlAttribute("xmlns", "cx2", nil); + self.XmlAttrXmlnsCx3 := new OpenXmlAttribute("xmlns", "cx3", nil); + self.XmlAttrXmlnsCx4 := new OpenXmlAttribute("xmlns", "cx4", nil); + self.XmlAttrXmlnsCx5 := new OpenXmlAttribute("xmlns", "cx5", nil); + self.XmlAttrXmlnsCx6 := new OpenXmlAttribute("xmlns", "cx6", nil); + self.XmlAttrXmlnsCx7 := new OpenXmlAttribute("xmlns", "cx7", nil); + self.XmlAttrXmlnsCx8 := new OpenXmlAttribute("xmlns", "cx8", nil); + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsAink := new OpenXmlAttribute("xmlns", "aink", nil); + self.XmlAttrXmlnsAm3d := new OpenXmlAttribute("xmlns", "am3d", nil); + self.XmlAttrXmlnsO := new OpenXmlAttribute("xmlns", "o", nil); + self.XmlAttrXmlnsOel := new OpenXmlAttribute("xmlns", "oel", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); + self.XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Endnotes.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsCx, + self.XmlAttrXmlnsCx1, + self.XmlAttrXmlnsCx2, + self.XmlAttrXmlnsCx3, + self.XmlAttrXmlnsCx4, + self.XmlAttrXmlnsCx5, + self.XmlAttrXmlnsCx6, + self.XmlAttrXmlnsCx7, + self.XmlAttrXmlnsCx8, + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsAink, + self.XmlAttrXmlnsAm3d, + self.XmlAttrXmlnsO, + self.XmlAttrXmlnsOel, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsWp14, + self.XmlAttrXmlnsWp, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWps, + self.XmlAttrMcIgnorable, + ); +end; + +function Endnotes.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Endnotes.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "endnote": obj := self.AppendEndnote(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Endnotes.Copy(_obj: Endnotes);override; +begin + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsCx.Value) then + self.XmlAttrXmlnsCx.Value := _obj.XmlAttrXmlnsCx.Value; + if not ifnil(_obj.XmlAttrXmlnsCx1.Value) then + self.XmlAttrXmlnsCx1.Value := _obj.XmlAttrXmlnsCx1.Value; + if not ifnil(_obj.XmlAttrXmlnsCx2.Value) then + self.XmlAttrXmlnsCx2.Value := _obj.XmlAttrXmlnsCx2.Value; + if not ifnil(_obj.XmlAttrXmlnsCx3.Value) then + self.XmlAttrXmlnsCx3.Value := _obj.XmlAttrXmlnsCx3.Value; + if not ifnil(_obj.XmlAttrXmlnsCx4.Value) then + self.XmlAttrXmlnsCx4.Value := _obj.XmlAttrXmlnsCx4.Value; + if not ifnil(_obj.XmlAttrXmlnsCx5.Value) then + self.XmlAttrXmlnsCx5.Value := _obj.XmlAttrXmlnsCx5.Value; + if not ifnil(_obj.XmlAttrXmlnsCx6.Value) then + self.XmlAttrXmlnsCx6.Value := _obj.XmlAttrXmlnsCx6.Value; + if not ifnil(_obj.XmlAttrXmlnsCx7.Value) then + self.XmlAttrXmlnsCx7.Value := _obj.XmlAttrXmlnsCx7.Value; + if not ifnil(_obj.XmlAttrXmlnsCx8.Value) then + self.XmlAttrXmlnsCx8.Value := _obj.XmlAttrXmlnsCx8.Value; + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsAink.Value) then + self.XmlAttrXmlnsAink.Value := _obj.XmlAttrXmlnsAink.Value; + if not ifnil(_obj.XmlAttrXmlnsAm3d.Value) then + self.XmlAttrXmlnsAm3d.Value := _obj.XmlAttrXmlnsAm3d.Value; + if not ifnil(_obj.XmlAttrXmlnsO.Value) then + self.XmlAttrXmlnsO.Value := _obj.XmlAttrXmlnsO.Value; + if not ifnil(_obj.XmlAttrXmlnsOel.Value) then + self.XmlAttrXmlnsOel.Value := _obj.XmlAttrXmlnsOel.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsWp14.Value) then + self.XmlAttrXmlnsWp14.Value := _obj.XmlAttrXmlnsWp14.Value; + if not ifnil(_obj.XmlAttrXmlnsWp.Value) then + self.XmlAttrXmlnsWp.Value := _obj.XmlAttrXmlnsWp.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Endnotes.AddEndnote(): Endnote; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "endnote" then break; + end + obj := new Endnote(self, self.Prefix, "endnote"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Endnotes.AppendEndnote(): Endnote; +begin + obj := new Endnote(self, self.Prefix, "endnote"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Endnotes.ReadEndnotes(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "endnote" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Endnotes.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx(); +begin + return self.XmlAttrXmlnsCx.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx(_value); +begin + self.XmlAttrXmlnsCx.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx1(); +begin + return self.XmlAttrXmlnsCx1.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx1(_value); +begin + self.XmlAttrXmlnsCx1.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx2(); +begin + return self.XmlAttrXmlnsCx2.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx2(_value); +begin + self.XmlAttrXmlnsCx2.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx3(); +begin + return self.XmlAttrXmlnsCx3.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx3(_value); +begin + self.XmlAttrXmlnsCx3.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx4(); +begin + return self.XmlAttrXmlnsCx4.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx4(_value); +begin + self.XmlAttrXmlnsCx4.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx5(); +begin + return self.XmlAttrXmlnsCx5.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx5(_value); +begin + self.XmlAttrXmlnsCx5.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx6(); +begin + return self.XmlAttrXmlnsCx6.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx6(_value); +begin + self.XmlAttrXmlnsCx6.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx7(); +begin + return self.XmlAttrXmlnsCx7.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx7(_value); +begin + self.XmlAttrXmlnsCx7.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsCx8(); +begin + return self.XmlAttrXmlnsCx8.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsCx8(_value); +begin + self.XmlAttrXmlnsCx8.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsAink(); +begin + return self.XmlAttrXmlnsAink.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsAink(_value); +begin + self.XmlAttrXmlnsAink.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsAm3d(); +begin + return self.XmlAttrXmlnsAm3d.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsAm3d(_value); +begin + self.XmlAttrXmlnsAm3d.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsO(); +begin + return self.XmlAttrXmlnsO.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsO(_value); +begin + self.XmlAttrXmlnsO.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsOel(); +begin + return self.XmlAttrXmlnsOel.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsOel(_value); +begin + self.XmlAttrXmlnsOel.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsWp14(); +begin + return self.XmlAttrXmlnsWp14.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWp14(_value); +begin + self.XmlAttrXmlnsWp14.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsWp(); +begin + return self.XmlAttrXmlnsWp.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWp(_value); +begin + self.XmlAttrXmlnsWp.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Endnotes.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Endnotes.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Endnotes.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Endnotes.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/Ext@DOCX.tsf b/autoclass/docx/Ext@DOCX.tsf new file mode 100644 index 0000000..56c1872 --- /dev/null +++ b/autoclass/docx/Ext@DOCX.tsf @@ -0,0 +1,140 @@ +type Ext = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ext);override; + + property Uri read ReadXmlAttrUri write WriteXmlAttrUri; + property XmlnsC16 read ReadXmlAttrXmlnsC16 write WriteXmlAttrXmlnsC16; + function ReadXmlAttrUri(); + function WriteXmlAttrUri(_value); + function ReadXmlAttrXmlnsC16(); + function WriteXmlAttrXmlnsC16(_value); + +public + // Attributes + XmlAttrUri: OpenXmlAttribute; + XmlAttrXmlnsC16: OpenXmlAttribute; + + // Children + Thm15ThemeFamily: ThemeFamily; + UniqueId: PureVal; + +end; + +function Ext.Create();overload; +begin + self.Create(nil, "a", "ext"); +end; + +function Ext.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ext.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ext.Init();override; +begin + self.XmlAttrUri := new OpenXmlAttribute(nil, "uri", nil); + self.XmlAttrXmlnsC16 := new OpenXmlAttribute("xmlns", "c16", nil); + self.Thm15ThemeFamily := new ThemeFamily(self, "thm15", "themeFamily"); + self.UniqueId := new PureVal(self, "c16", "uniquedId"); +end; + +function Ext.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrUri, + self.XmlAttrXmlnsC16, + ); +end; + +function Ext.InitChildren();override; +begin + child_elements_ := array( + 0: self.Thm15ThemeFamily, + 1: self.UniqueId, + ); + sorted_child_ := array( + "": -1, + self.Thm15ThemeFamily.ElementName: 0, + self.UniqueId.ElementName: 1, + ); +end; + +function Ext.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ext.Copy(_obj: Ext);override; +begin + if not ifnil(_obj.XmlAttrUri.Value) then + self.XmlAttrUri.Value := _obj.XmlAttrUri.Value; + if not ifnil(_obj.XmlAttrXmlnsC16.Value) then + self.XmlAttrXmlnsC16.Value := _obj.XmlAttrXmlnsC16.Value; + self.Thm15ThemeFamily.Copy(_obj.Thm15ThemeFamily); + self.UniqueId.Copy(_obj.UniqueId); +end; + +function Ext.ReadXmlAttrUri(); +begin + return self.XmlAttrUri.Value; +end; + +function Ext.WriteXmlAttrUri(_value); +begin + self.XmlAttrUri.Value := _value; +end; + +function Ext.ReadXmlAttrXmlnsC16(); +begin + return self.XmlAttrXmlnsC16.Value; +end; + +function Ext.WriteXmlAttrXmlnsC16(_value); +begin + self.XmlAttrXmlnsC16.Value := _value; +end; diff --git a/autoclass/docx/ExtLst@DOCX.tsf b/autoclass/docx/ExtLst@DOCX.tsf new file mode 100644 index 0000000..d0e61e1 --- /dev/null +++ b/autoclass/docx/ExtLst@DOCX.tsf @@ -0,0 +1,137 @@ +type ExtLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ExtLst);override; + function AddExt(): Ext; + function AppendExt(): Ext; + + property Exts read ReadExts; + function ReadExts(_index); + +public + // Attributes + + // Children + +end; + +function ExtLst.Create();overload; +begin + self.Create(nil, "a", "extLst"); +end; + +function ExtLst.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ExtLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ExtLst.Init();override; +begin + +end; + +function ExtLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function ExtLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ExtLst.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "ext": obj := self.AppendExt(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ExtLst.Copy(_obj: ExtLst);override; +begin + +end; + +function ExtLst.AddExt(): Ext; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "ext" then break; + end + obj := new Ext(self, self.Prefix, "ext"); + self.InsertChild(obj, i+1); + return obj; +end; + +function ExtLst.AppendExt(): Ext; +begin + obj := new Ext(self, self.Prefix, "ext"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function ExtLst.ReadExts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "ext" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/ExternalData@DOCX.tsf b/autoclass/docx/ExternalData@DOCX.tsf new file mode 100644 index 0000000..38a0cef --- /dev/null +++ b/autoclass/docx/ExternalData@DOCX.tsf @@ -0,0 +1,117 @@ +type ExternalData = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ExternalData);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + + // Children + AutoUpdate: PureVal; + +end; + +function ExternalData.Create();overload; +begin + self.Create(nil, "c", "externalData"); +end; + +function ExternalData.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ExternalData.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ExternalData.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute("r", "id", nil); + self.AutoUpdate := new PureVal(self, self.Prefix, "autoUpdate"); +end; + +function ExternalData.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + ); +end; + +function ExternalData.InitChildren();override; +begin + child_elements_ := array( + 0: self.AutoUpdate, + ); + sorted_child_ := array( + "": -1, + self.AutoUpdate.ElementName: 0, + ); +end; + +function ExternalData.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ExternalData.Copy(_obj: ExternalData);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + self.AutoUpdate.Copy(_obj.AutoUpdate); +end; + +function ExternalData.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function ExternalData.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/Fallback@DOCX.tsf b/autoclass/docx/Fallback@DOCX.tsf new file mode 100644 index 0000000..b377fd4 --- /dev/null +++ b/autoclass/docx/Fallback@DOCX.tsf @@ -0,0 +1,98 @@ +type Fallback = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Fallback);override; + +public + // Attributes + + // Children + Style: PureVal; + +end; + +function Fallback.Create();overload; +begin + self.Create(nil, "mc", "Fallback"); +end; + +function Fallback.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Fallback.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Fallback.Init();override; +begin + self.Style := new PureVal(self, "c", "style"); +end; + +function Fallback.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Fallback.InitChildren();override; +begin + child_elements_ := array( + 0: self.Style, + ); + sorted_child_ := array( + "": -1, + self.Style.ElementName: 0, + ); +end; + +function Fallback.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Fallback.Copy(_obj: Fallback);override; +begin + self.Style.Copy(_obj.Style); +end; diff --git a/autoclass/docx/FillStyleLst@DOCX.tsf b/autoclass/docx/FillStyleLst@DOCX.tsf new file mode 100644 index 0000000..385441a --- /dev/null +++ b/autoclass/docx/FillStyleLst@DOCX.tsf @@ -0,0 +1,178 @@ +type FillStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: FillStyleLst);override; + function AddSolidFill(): SolidFill; + function AddGradFill(): GradFill; + function AppendSolidFill(): SolidFill; + function AppendGradFill(): GradFill; + + property SolidFills read ReadSolidFills; + property GradFills read ReadGradFills; + function ReadSolidFills(_index); + function ReadGradFills(_index); + +public + // Attributes + + // Children + +end; + +function FillStyleLst.Create();overload; +begin + self.Create(nil, "a", "fillStyleLst"); +end; + +function FillStyleLst.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function FillStyleLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FillStyleLst.Init();override; +begin + +end; + +function FillStyleLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function FillStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function FillStyleLst.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "solidFill": obj := self.AppendSolidFill(); + pre + "gradFill": obj := self.AppendGradFill(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FillStyleLst.Copy(_obj: FillStyleLst);override; +begin + +end; + +function FillStyleLst.AddSolidFill(): SolidFill; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "solidFill" then break; + end + obj := new SolidFill(self, self.Prefix, "solidFill"); + self.InsertChild(obj, i+1); + return obj; +end; + +function FillStyleLst.AddGradFill(): GradFill; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "gradFill" then break; + end + obj := new GradFill(self, self.Prefix, "gradFill"); + self.InsertChild(obj, i+1); + return obj; +end; + +function FillStyleLst.AppendSolidFill(): SolidFill; +begin + obj := new SolidFill(self, self.Prefix, "solidFill"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function FillStyleLst.AppendGradFill(): GradFill; +begin + obj := new GradFill(self, self.Prefix, "gradFill"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function FillStyleLst.ReadSolidFills(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "solidFill" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function FillStyleLst.ReadGradFills(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "gradFill" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/FldChar@DOCX.tsf b/autoclass/docx/FldChar@DOCX.tsf new file mode 100644 index 0000000..fcfc13e --- /dev/null +++ b/autoclass/docx/FldChar@DOCX.tsf @@ -0,0 +1,99 @@ +type FldChar = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: FldChar);override; + + property FldCharType read ReadXmlAttrFldCharType write WriteXmlAttrFldCharType; + property Dirty read ReadXmlAttrDirty write WriteXmlAttrDirty; + function ReadXmlAttrFldCharType(); + function WriteXmlAttrFldCharType(_value); + function ReadXmlAttrDirty(); + function WriteXmlAttrDirty(_value); + +public + // Attributes + XmlAttrFldCharType: OpenXmlAttribute; + XmlAttrDirty: OpenXmlAttribute; + + // Children + +end; + +function FldChar.Create();overload; +begin + self.Create(nil, "w", "fldChar"); +end; + +function FldChar.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function FldChar.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FldChar.Init();override; +begin + self.XmlAttrFldCharType := new OpenXmlAttribute(self.Prefix, "fldCharType", nil); + self.XmlAttrDirty := new OpenXmlAttribute(self.Prefix, "dirty", nil); +end; + +function FldChar.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrFldCharType, + self.XmlAttrDirty, + ); +end; + +function FldChar.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function FldChar.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function FldChar.Copy(_obj: FldChar);override; +begin + if not ifnil(_obj.XmlAttrFldCharType.Value) then + self.XmlAttrFldCharType.Value := _obj.XmlAttrFldCharType.Value; + if not ifnil(_obj.XmlAttrDirty.Value) then + self.XmlAttrDirty.Value := _obj.XmlAttrDirty.Value; +end; + +function FldChar.ReadXmlAttrFldCharType(); +begin + return self.XmlAttrFldCharType.Value; +end; + +function FldChar.WriteXmlAttrFldCharType(_value); +begin + self.XmlAttrFldCharType.Value := _value; +end; + +function FldChar.ReadXmlAttrDirty(); +begin + return self.XmlAttrDirty.Value; +end; + +function FldChar.WriteXmlAttrDirty(_value); +begin + self.XmlAttrDirty.Value := _value; +end; diff --git a/autoclass/docx/FmtScheme@DOCX.tsf b/autoclass/docx/FmtScheme@DOCX.tsf new file mode 100644 index 0000000..6fb313f --- /dev/null +++ b/autoclass/docx/FmtScheme@DOCX.tsf @@ -0,0 +1,132 @@ +type FmtScheme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: FmtScheme);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + + // Children + FillStyleLst: FillStyleLst; + LnStyleLst: LnStyleLst; + EffectStyleLst: EffectStyleLst; + BgFillStyleLst: FillStyleLst; + +end; + +function FmtScheme.Create();overload; +begin + self.Create(nil, "a", "fmtScheme"); +end; + +function FmtScheme.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function FmtScheme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FmtScheme.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.FillStyleLst := new FillStyleLst(self, self.Prefix, "fillStyleLst"); + self.LnStyleLst := new LnStyleLst(self, self.Prefix, "lnStyleLst"); + self.EffectStyleLst := new EffectStyleLst(self, self.Prefix, "effectStyleLst"); + self.BgFillStyleLst := new FillStyleLst(self, self.Prefix, "bgFillStyleLst"); +end; + +function FmtScheme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function FmtScheme.InitChildren();override; +begin + child_elements_ := array( + 0: self.FillStyleLst, + 1: self.LnStyleLst, + 2: self.EffectStyleLst, + 3: self.BgFillStyleLst, + ); + sorted_child_ := array( + "": -1, + self.FillStyleLst.ElementName: 0, + self.LnStyleLst.ElementName: 1, + self.EffectStyleLst.ElementName: 2, + self.BgFillStyleLst.ElementName: 3, + ); +end; + +function FmtScheme.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FmtScheme.Copy(_obj: FmtScheme);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.FillStyleLst.Copy(_obj.FillStyleLst); + self.LnStyleLst.Copy(_obj.LnStyleLst); + self.EffectStyleLst.Copy(_obj.EffectStyleLst); + self.BgFillStyleLst.Copy(_obj.BgFillStyleLst); +end; + +function FmtScheme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function FmtScheme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/docx/Font@DOCX.tsf b/autoclass/docx/Font@DOCX.tsf new file mode 100644 index 0000000..d772386 --- /dev/null +++ b/autoclass/docx/Font@DOCX.tsf @@ -0,0 +1,142 @@ +type Font = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Font);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + + // Children + AltName: PureWVal; + Panosel: PureWVal; + Charset: PureWVal; + Family: PureWVal; + Pitch: PureWVal; + Sig: Sig; + +end; + +function Font.Create();overload; +begin + self.Create(nil, "w", "font"); +end; + +function Font.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Font.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Font.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(self.Prefix, "name", nil); + self.AltName := new PureWVal(self, self.Prefix, "altName"); + self.Panosel := new PureWVal(self, self.Prefix, "panosel"); + self.Charset := new PureWVal(self, self.Prefix, "charset"); + self.Family := new PureWVal(self, self.Prefix, "family"); + self.Pitch := new PureWVal(self, self.Prefix, "pitch"); + self.Sig := new Sig(self, self.Prefix, "sig"); +end; + +function Font.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function Font.InitChildren();override; +begin + child_elements_ := array( + 0: self.AltName, + 1: self.Panosel, + 2: self.Charset, + 3: self.Family, + 4: self.Pitch, + 5: self.Sig, + ); + sorted_child_ := array( + "": -1, + self.AltName.ElementName: 0, + self.Panosel.ElementName: 1, + self.Charset.ElementName: 2, + self.Family.ElementName: 3, + self.Pitch.ElementName: 4, + self.Sig.ElementName: 5, + ); +end; + +function Font.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Font.Copy(_obj: Font);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.AltName.Copy(_obj.AltName); + self.Panosel.Copy(_obj.Panosel); + self.Charset.Copy(_obj.Charset); + self.Family.Copy(_obj.Family); + self.Pitch.Copy(_obj.Pitch); + self.Sig.Copy(_obj.Sig); +end; + +function Font.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function Font.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/docx/FontScheme@DOCX.tsf b/autoclass/docx/FontScheme@DOCX.tsf new file mode 100644 index 0000000..af6f832 --- /dev/null +++ b/autoclass/docx/FontScheme@DOCX.tsf @@ -0,0 +1,122 @@ +type FontScheme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: FontScheme);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + + // Children + Majorfont: Mfont; + Minorfont: Mfont; + +end; + +function FontScheme.Create();overload; +begin + self.Create(nil, "a", "fontScheme"); +end; + +function FontScheme.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function FontScheme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FontScheme.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.Majorfont := new Mfont(self, self.Prefix, "majorFont"); + self.Minorfont := new Mfont(self, self.Prefix, "minorFont"); +end; + +function FontScheme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function FontScheme.InitChildren();override; +begin + child_elements_ := array( + 0: self.Majorfont, + 1: self.Minorfont, + ); + sorted_child_ := array( + "": -1, + self.Majorfont.ElementName: 0, + self.Minorfont.ElementName: 1, + ); +end; + +function FontScheme.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FontScheme.Copy(_obj: FontScheme);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.Majorfont.Copy(_obj.Majorfont); + self.Minorfont.Copy(_obj.Minorfont); +end; + +function FontScheme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function FontScheme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/docx/Fonts@DOCX.tsf b/autoclass/docx/Fonts@DOCX.tsf new file mode 100644 index 0000000..b33a860 --- /dev/null +++ b/autoclass/docx/Fonts@DOCX.tsf @@ -0,0 +1,352 @@ +type Fonts = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Fonts);override; + function AddFont(): Font; + function AppendFont(): Font; + + property Fonts read ReadFonts; + function ReadFonts(_index); + + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Fonts.Create();overload; +begin + self.Create(nil, "w", "fonts"); +end; + +function Fonts.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Fonts.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Fonts.Init();override; +begin + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Fonts.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrMcIgnorable, + ); +end; + +function Fonts.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Fonts.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "font": obj := self.AppendFont(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Fonts.Copy(_obj: Fonts);override; +begin + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Fonts.AddFont(): Font; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "font" then break; + end + obj := new Font(self, self.Prefix, "font"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Fonts.AppendFont(): Font; +begin + obj := new Font(self, self.Prefix, "font"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Fonts.ReadFonts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "font" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Fonts.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Fonts.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Fonts.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function Fonts.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Fonts.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Fonts.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Fonts.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/Footnote@DOCX.tsf b/autoclass/docx/Footnote@DOCX.tsf new file mode 100644 index 0000000..2c6cc03 --- /dev/null +++ b/autoclass/docx/Footnote@DOCX.tsf @@ -0,0 +1,172 @@ +type Footnote = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Footnote);override; + function AddP(): P; + function AppendP(): P; + + property Ps read ReadPs; + function ReadPs(_index); + + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrType: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + + // Children + +end; + +function Footnote.Create();overload; +begin + self.Create(nil, "w", "footnote"); +end; + +function Footnote.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Footnote.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Footnote.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); + self.XmlAttrId := new OpenXmlAttribute(self.Prefix, "id", nil); +end; + +function Footnote.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + self.XmlAttrId, + ); +end; + +function Footnote.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Footnote.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Footnote.Copy(_obj: Footnote);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; +end; + +function Footnote.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Footnote.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Footnote.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Footnote.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Footnote.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Footnote.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Footnote.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/FootnotePr@DOCX.tsf b/autoclass/docx/FootnotePr@DOCX.tsf new file mode 100644 index 0000000..4b9f812 --- /dev/null +++ b/autoclass/docx/FootnotePr@DOCX.tsf @@ -0,0 +1,137 @@ +type FootnotePr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: FootnotePr);override; + function AddFootnote(): Footnote; + function AppendFootnote(): Footnote; + + property Footnotes read ReadFootnotes; + function ReadFootnotes(_index); + +public + // Attributes + + // Children + +end; + +function FootnotePr.Create();overload; +begin + self.Create(nil, "w", "footnotePr"); +end; + +function FootnotePr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function FootnotePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FootnotePr.Init();override; +begin + +end; + +function FootnotePr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function FootnotePr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function FootnotePr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "footnote": obj := self.AppendFootnote(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FootnotePr.Copy(_obj: FootnotePr);override; +begin + +end; + +function FootnotePr.AddFootnote(): Footnote; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "footnote" then break; + end + obj := new Footnote(self, self.Prefix, "footnote"); + self.InsertChild(obj, i+1); + return obj; +end; + +function FootnotePr.AppendFootnote(): Footnote; +begin + obj := new Footnote(self, self.Prefix, "footnote"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function FootnotePr.ReadFootnotes(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "footnote" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Footnotes@DOCX.tsf b/autoclass/docx/Footnotes@DOCX.tsf new file mode 100644 index 0000000..25baa3c --- /dev/null +++ b/autoclass/docx/Footnotes@DOCX.tsf @@ -0,0 +1,730 @@ +type Footnotes = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Footnotes);override; + function AddFootnote(): Footnote; + function AppendFootnote(): Footnote; + + property Footnotes read ReadFootnotes; + function ReadFootnotes(_index); + + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsCx read ReadXmlAttrXmlnsCx write WriteXmlAttrXmlnsCx; + property XmlnsCx1 read ReadXmlAttrXmlnsCx1 write WriteXmlAttrXmlnsCx1; + property XmlnsCx2 read ReadXmlAttrXmlnsCx2 write WriteXmlAttrXmlnsCx2; + property XmlnsCx3 read ReadXmlAttrXmlnsCx3 write WriteXmlAttrXmlnsCx3; + property XmlnsCx4 read ReadXmlAttrXmlnsCx4 write WriteXmlAttrXmlnsCx4; + property XmlnsCx5 read ReadXmlAttrXmlnsCx5 write WriteXmlAttrXmlnsCx5; + property XmlnsCx6 read ReadXmlAttrXmlnsCx6 write WriteXmlAttrXmlnsCx6; + property XmlnsCx7 read ReadXmlAttrXmlnsCx7 write WriteXmlAttrXmlnsCx7; + property XmlnsCx8 read ReadXmlAttrXmlnsCx8 write WriteXmlAttrXmlnsCx8; + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsAink read ReadXmlAttrXmlnsAink write WriteXmlAttrXmlnsAink; + property XmlnsAm3d read ReadXmlAttrXmlnsAm3d write WriteXmlAttrXmlnsAm3d; + property XmlnsO read ReadXmlAttrXmlnsO write WriteXmlAttrXmlnsO; + property XmlnsOel read ReadXmlAttrXmlnsOel write WriteXmlAttrXmlnsOel; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; + property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsCx(); + function WriteXmlAttrXmlnsCx(_value); + function ReadXmlAttrXmlnsCx1(); + function WriteXmlAttrXmlnsCx1(_value); + function ReadXmlAttrXmlnsCx2(); + function WriteXmlAttrXmlnsCx2(_value); + function ReadXmlAttrXmlnsCx3(); + function WriteXmlAttrXmlnsCx3(_value); + function ReadXmlAttrXmlnsCx4(); + function WriteXmlAttrXmlnsCx4(_value); + function ReadXmlAttrXmlnsCx5(); + function WriteXmlAttrXmlnsCx5(_value); + function ReadXmlAttrXmlnsCx6(); + function WriteXmlAttrXmlnsCx6(_value); + function ReadXmlAttrXmlnsCx7(); + function WriteXmlAttrXmlnsCx7(_value); + function ReadXmlAttrXmlnsCx8(); + function WriteXmlAttrXmlnsCx8(_value); + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsAink(); + function WriteXmlAttrXmlnsAink(_value); + function ReadXmlAttrXmlnsAm3d(); + function WriteXmlAttrXmlnsAm3d(_value); + function ReadXmlAttrXmlnsO(); + function WriteXmlAttrXmlnsO(_value); + function ReadXmlAttrXmlnsOel(); + function WriteXmlAttrXmlnsOel(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsWp14(); + function WriteXmlAttrXmlnsWp14(_value); + function ReadXmlAttrXmlnsWp(); + function WriteXmlAttrXmlnsWp(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsCx: OpenXmlAttribute; + XmlAttrXmlnsCx1: OpenXmlAttribute; + XmlAttrXmlnsCx2: OpenXmlAttribute; + XmlAttrXmlnsCx3: OpenXmlAttribute; + XmlAttrXmlnsCx4: OpenXmlAttribute; + XmlAttrXmlnsCx5: OpenXmlAttribute; + XmlAttrXmlnsCx6: OpenXmlAttribute; + XmlAttrXmlnsCx7: OpenXmlAttribute; + XmlAttrXmlnsCx8: OpenXmlAttribute; + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsAink: OpenXmlAttribute; + XmlAttrXmlnsAm3d: OpenXmlAttribute; + XmlAttrXmlnsO: OpenXmlAttribute; + XmlAttrXmlnsOel: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsWp14: OpenXmlAttribute; + XmlAttrXmlnsWp: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Footnotes.Create();overload; +begin + self.Create(nil, "w", "footnotes"); +end; + +function Footnotes.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Footnotes.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Footnotes.Init();override; +begin + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsCx := new OpenXmlAttribute("xmlns", "cx", nil); + self.XmlAttrXmlnsCx1 := new OpenXmlAttribute("xmlns", "cx1", nil); + self.XmlAttrXmlnsCx2 := new OpenXmlAttribute("xmlns", "cx2", nil); + self.XmlAttrXmlnsCx3 := new OpenXmlAttribute("xmlns", "cx3", nil); + self.XmlAttrXmlnsCx4 := new OpenXmlAttribute("xmlns", "cx4", nil); + self.XmlAttrXmlnsCx5 := new OpenXmlAttribute("xmlns", "cx5", nil); + self.XmlAttrXmlnsCx6 := new OpenXmlAttribute("xmlns", "cx6", nil); + self.XmlAttrXmlnsCx7 := new OpenXmlAttribute("xmlns", "cx7", nil); + self.XmlAttrXmlnsCx8 := new OpenXmlAttribute("xmlns", "cx8", nil); + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsAink := new OpenXmlAttribute("xmlns", "aink", nil); + self.XmlAttrXmlnsAm3d := new OpenXmlAttribute("xmlns", "am3d", nil); + self.XmlAttrXmlnsO := new OpenXmlAttribute("xmlns", "o", nil); + self.XmlAttrXmlnsOel := new OpenXmlAttribute("xmlns", "oel", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); + self.XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Footnotes.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsCx, + self.XmlAttrXmlnsCx1, + self.XmlAttrXmlnsCx2, + self.XmlAttrXmlnsCx3, + self.XmlAttrXmlnsCx4, + self.XmlAttrXmlnsCx5, + self.XmlAttrXmlnsCx6, + self.XmlAttrXmlnsCx7, + self.XmlAttrXmlnsCx8, + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsAink, + self.XmlAttrXmlnsAm3d, + self.XmlAttrXmlnsO, + self.XmlAttrXmlnsOel, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsWp14, + self.XmlAttrXmlnsWp, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWps, + self.XmlAttrMcIgnorable, + ); +end; + +function Footnotes.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Footnotes.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "footnote": obj := self.AppendFootnote(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Footnotes.Copy(_obj: Footnotes);override; +begin + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsCx.Value) then + self.XmlAttrXmlnsCx.Value := _obj.XmlAttrXmlnsCx.Value; + if not ifnil(_obj.XmlAttrXmlnsCx1.Value) then + self.XmlAttrXmlnsCx1.Value := _obj.XmlAttrXmlnsCx1.Value; + if not ifnil(_obj.XmlAttrXmlnsCx2.Value) then + self.XmlAttrXmlnsCx2.Value := _obj.XmlAttrXmlnsCx2.Value; + if not ifnil(_obj.XmlAttrXmlnsCx3.Value) then + self.XmlAttrXmlnsCx3.Value := _obj.XmlAttrXmlnsCx3.Value; + if not ifnil(_obj.XmlAttrXmlnsCx4.Value) then + self.XmlAttrXmlnsCx4.Value := _obj.XmlAttrXmlnsCx4.Value; + if not ifnil(_obj.XmlAttrXmlnsCx5.Value) then + self.XmlAttrXmlnsCx5.Value := _obj.XmlAttrXmlnsCx5.Value; + if not ifnil(_obj.XmlAttrXmlnsCx6.Value) then + self.XmlAttrXmlnsCx6.Value := _obj.XmlAttrXmlnsCx6.Value; + if not ifnil(_obj.XmlAttrXmlnsCx7.Value) then + self.XmlAttrXmlnsCx7.Value := _obj.XmlAttrXmlnsCx7.Value; + if not ifnil(_obj.XmlAttrXmlnsCx8.Value) then + self.XmlAttrXmlnsCx8.Value := _obj.XmlAttrXmlnsCx8.Value; + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsAink.Value) then + self.XmlAttrXmlnsAink.Value := _obj.XmlAttrXmlnsAink.Value; + if not ifnil(_obj.XmlAttrXmlnsAm3d.Value) then + self.XmlAttrXmlnsAm3d.Value := _obj.XmlAttrXmlnsAm3d.Value; + if not ifnil(_obj.XmlAttrXmlnsO.Value) then + self.XmlAttrXmlnsO.Value := _obj.XmlAttrXmlnsO.Value; + if not ifnil(_obj.XmlAttrXmlnsOel.Value) then + self.XmlAttrXmlnsOel.Value := _obj.XmlAttrXmlnsOel.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsWp14.Value) then + self.XmlAttrXmlnsWp14.Value := _obj.XmlAttrXmlnsWp14.Value; + if not ifnil(_obj.XmlAttrXmlnsWp.Value) then + self.XmlAttrXmlnsWp.Value := _obj.XmlAttrXmlnsWp.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Footnotes.AddFootnote(): Footnote; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "footnote" then break; + end + obj := new Footnote(self, self.Prefix, "footnote"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Footnotes.AppendFootnote(): Footnote; +begin + obj := new Footnote(self, self.Prefix, "footnote"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Footnotes.ReadFootnotes(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "footnote" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Footnotes.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx(); +begin + return self.XmlAttrXmlnsCx.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx(_value); +begin + self.XmlAttrXmlnsCx.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx1(); +begin + return self.XmlAttrXmlnsCx1.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx1(_value); +begin + self.XmlAttrXmlnsCx1.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx2(); +begin + return self.XmlAttrXmlnsCx2.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx2(_value); +begin + self.XmlAttrXmlnsCx2.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx3(); +begin + return self.XmlAttrXmlnsCx3.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx3(_value); +begin + self.XmlAttrXmlnsCx3.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx4(); +begin + return self.XmlAttrXmlnsCx4.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx4(_value); +begin + self.XmlAttrXmlnsCx4.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx5(); +begin + return self.XmlAttrXmlnsCx5.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx5(_value); +begin + self.XmlAttrXmlnsCx5.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx6(); +begin + return self.XmlAttrXmlnsCx6.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx6(_value); +begin + self.XmlAttrXmlnsCx6.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx7(); +begin + return self.XmlAttrXmlnsCx7.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx7(_value); +begin + self.XmlAttrXmlnsCx7.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsCx8(); +begin + return self.XmlAttrXmlnsCx8.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsCx8(_value); +begin + self.XmlAttrXmlnsCx8.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsAink(); +begin + return self.XmlAttrXmlnsAink.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsAink(_value); +begin + self.XmlAttrXmlnsAink.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsAm3d(); +begin + return self.XmlAttrXmlnsAm3d.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsAm3d(_value); +begin + self.XmlAttrXmlnsAm3d.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsO(); +begin + return self.XmlAttrXmlnsO.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsO(_value); +begin + self.XmlAttrXmlnsO.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsOel(); +begin + return self.XmlAttrXmlnsOel.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsOel(_value); +begin + self.XmlAttrXmlnsOel.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsWp14(); +begin + return self.XmlAttrXmlnsWp14.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWp14(_value); +begin + self.XmlAttrXmlnsWp14.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsWp(); +begin + return self.XmlAttrXmlnsWp.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWp(_value); +begin + self.XmlAttrXmlnsWp.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Footnotes.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Footnotes.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Footnotes.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Footnotes.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/Ftr@DOCX.tsf b/autoclass/docx/Ftr@DOCX.tsf new file mode 100644 index 0000000..b136603 --- /dev/null +++ b/autoclass/docx/Ftr@DOCX.tsf @@ -0,0 +1,406 @@ +type Ftr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ftr);override; + function AddP(): P; + function AppendP(): P; + + property Ps read ReadPs; + function ReadPs(_index); + + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsMo read ReadXmlAttrXmlnsMo write WriteXmlAttrXmlnsMo; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; + property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsMo(); + function WriteXmlAttrXmlnsMo(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWp14(); + function WriteXmlAttrXmlnsWp14(_value); + function ReadXmlAttrXmlnsWp(); + function WriteXmlAttrXmlnsWp(_value); + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsMo: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWp14: OpenXmlAttribute; + XmlAttrXmlnsWp: OpenXmlAttribute; + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Ftr.Create();overload; +begin + self.Create(nil, "w", "ftr"); +end; + +function Ftr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ftr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ftr.Init();override; +begin + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsMo := new OpenXmlAttribute("xmlns", "mo", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); + self.XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Ftr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsMo, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWp14, + self.XmlAttrXmlnsWp, + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWps, + self.XmlAttrMcIgnorable, + ); +end; + +function Ftr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Ftr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ftr.Copy(_obj: Ftr);override; +begin + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsMo.Value) then + self.XmlAttrXmlnsMo.Value := _obj.XmlAttrXmlnsMo.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWp14.Value) then + self.XmlAttrXmlnsWp14.Value := _obj.XmlAttrXmlnsWp14.Value; + if not ifnil(_obj.XmlAttrXmlnsWp.Value) then + self.XmlAttrXmlnsWp.Value := _obj.XmlAttrXmlnsWp.Value; + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Ftr.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Ftr.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Ftr.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Ftr.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Ftr.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Ftr.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsMo(); +begin + return self.XmlAttrXmlnsMo.Value; +end; + +function Ftr.WriteXmlAttrXmlnsMo(_value); +begin + self.XmlAttrXmlnsMo.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Ftr.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Ftr.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Ftr.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Ftr.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWp14(); +begin + return self.XmlAttrXmlnsWp14.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWp14(_value); +begin + self.XmlAttrXmlnsWp14.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWp(); +begin + return self.XmlAttrXmlnsWp.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWp(_value); +begin + self.XmlAttrXmlnsWp.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Ftr.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Ftr.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Ftr.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Ftr.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/GradFill@DOCX.tsf b/autoclass/docx/GradFill@DOCX.tsf new file mode 100644 index 0000000..fe87c7c --- /dev/null +++ b/autoclass/docx/GradFill@DOCX.tsf @@ -0,0 +1,122 @@ +type GradFill = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: GradFill);override; + + property RotWithShape read ReadXmlAttrRotWithShape write WriteXmlAttrRotWithShape; + function ReadXmlAttrRotWithShape(); + function WriteXmlAttrRotWithShape(_value); + +public + // Attributes + XmlAttrRotWithShape: OpenXmlAttribute; + + // Children + GsLst: GsLst; + Lin: Lin; + +end; + +function GradFill.Create();overload; +begin + self.Create(nil, "a", "gradFill"); +end; + +function GradFill.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function GradFill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GradFill.Init();override; +begin + self.XmlAttrRotWithShape := new OpenXmlAttribute(nil, "rotWithShape", nil); + self.GsLst := new GsLst(self, self.Prefix, "gsLst"); + self.Lin := new Lin(self, self.Prefix, "lin"); +end; + +function GradFill.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrRotWithShape, + ); +end; + +function GradFill.InitChildren();override; +begin + child_elements_ := array( + 0: self.GsLst, + 1: self.Lin, + ); + sorted_child_ := array( + "": -1, + self.GsLst.ElementName: 0, + self.Lin.ElementName: 1, + ); +end; + +function GradFill.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function GradFill.Copy(_obj: GradFill);override; +begin + if not ifnil(_obj.XmlAttrRotWithShape.Value) then + self.XmlAttrRotWithShape.Value := _obj.XmlAttrRotWithShape.Value; + self.GsLst.Copy(_obj.GsLst); + self.Lin.Copy(_obj.Lin); +end; + +function GradFill.ReadXmlAttrRotWithShape(); +begin + return self.XmlAttrRotWithShape.Value; +end; + +function GradFill.WriteXmlAttrRotWithShape(_value); +begin + self.XmlAttrRotWithShape.Value := _value; +end; diff --git a/autoclass/docx/Graphic@DOCX.tsf b/autoclass/docx/Graphic@DOCX.tsf new file mode 100644 index 0000000..9509e8c --- /dev/null +++ b/autoclass/docx/Graphic@DOCX.tsf @@ -0,0 +1,117 @@ +type Graphic = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Graphic);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + +public + // Attributes + XmlAttrXmlnsA: OpenXmlAttribute; + + // Children + GraphicData: GraphicData; + +end; + +function Graphic.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function Graphic.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Graphic.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Graphic.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.GraphicData := new GraphicData(self, "a", "graphicData"); +end; + +function Graphic.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + ); +end; + +function Graphic.InitChildren();override; +begin + child_elements_ := array( + 0: self.GraphicData, + ); + sorted_child_ := array( + "": -1, + self.GraphicData.ElementName: 0, + ); +end; + +function Graphic.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Graphic.Copy(_obj: Graphic);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + self.GraphicData.Copy(_obj.GraphicData); +end; + +function Graphic.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function Graphic.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; diff --git a/autoclass/docx/GraphicData@DOCX.tsf b/autoclass/docx/GraphicData@DOCX.tsf new file mode 100644 index 0000000..d408b97 --- /dev/null +++ b/autoclass/docx/GraphicData@DOCX.tsf @@ -0,0 +1,122 @@ +type GraphicData = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: GraphicData);override; + + property Uri read ReadXmlAttrUri write WriteXmlAttrUri; + function ReadXmlAttrUri(); + function WriteXmlAttrUri(_value); + +public + // Attributes + XmlAttrUri: OpenXmlAttribute; + + // Children + Pic: Pic; + Chart: Chart; + +end; + +function GraphicData.Create();overload; +begin + self.Create(nil, "a", "graphicData"); +end; + +function GraphicData.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function GraphicData.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GraphicData.Init();override; +begin + self.XmlAttrUri := new OpenXmlAttribute(nil, "uri", "http://schemas.openxmlformats.org/drawingml/2006/picture"); + self.Pic := new Pic(self, "pic", "pic"); + self.Chart := new Chart(self, "c", "chart"); +end; + +function GraphicData.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrUri, + ); +end; + +function GraphicData.InitChildren();override; +begin + child_elements_ := array( + 0: self.Pic, + 1: self.Chart, + ); + sorted_child_ := array( + "": -1, + self.Pic.ElementName: 0, + self.Chart.ElementName: 1, + ); +end; + +function GraphicData.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function GraphicData.Copy(_obj: GraphicData);override; +begin + if not ifnil(_obj.XmlAttrUri.Value) then + self.XmlAttrUri.Value := _obj.XmlAttrUri.Value; + self.Pic.Copy(_obj.Pic); + self.Chart.Copy(_obj.Chart); +end; + +function GraphicData.ReadXmlAttrUri(); +begin + return self.XmlAttrUri.Value; +end; + +function GraphicData.WriteXmlAttrUri(_value); +begin + self.XmlAttrUri.Value := _value; +end; diff --git a/autoclass/docx/GraphicFrameLocks@DOCX.tsf b/autoclass/docx/GraphicFrameLocks@DOCX.tsf new file mode 100644 index 0000000..03b4a0b --- /dev/null +++ b/autoclass/docx/GraphicFrameLocks@DOCX.tsf @@ -0,0 +1,99 @@ +type GraphicFrameLocks = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: GraphicFrameLocks);override; + + property NoChangeAspect read ReadXmlAttrNoChangeAspect write WriteXmlAttrNoChangeAspect; + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + function ReadXmlAttrNoChangeAspect(); + function WriteXmlAttrNoChangeAspect(_value); + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + +public + // Attributes + XmlAttrNoChangeAspect: OpenXmlAttribute; + XmlAttrXmlnsA: OpenXmlAttribute; + + // Children + +end; + +function GraphicFrameLocks.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function GraphicFrameLocks.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function GraphicFrameLocks.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GraphicFrameLocks.Init();override; +begin + self.XmlAttrNoChangeAspect := new OpenXmlAttribute(nil, "noChangeAspect", nil); + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); +end; + +function GraphicFrameLocks.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrNoChangeAspect, + self.XmlAttrXmlnsA, + ); +end; + +function GraphicFrameLocks.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function GraphicFrameLocks.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function GraphicFrameLocks.Copy(_obj: GraphicFrameLocks);override; +begin + if not ifnil(_obj.XmlAttrNoChangeAspect.Value) then + self.XmlAttrNoChangeAspect.Value := _obj.XmlAttrNoChangeAspect.Value; + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; +end; + +function GraphicFrameLocks.ReadXmlAttrNoChangeAspect(); +begin + return self.XmlAttrNoChangeAspect.Value; +end; + +function GraphicFrameLocks.WriteXmlAttrNoChangeAspect(_value); +begin + self.XmlAttrNoChangeAspect.Value := _value; +end; + +function GraphicFrameLocks.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function GraphicFrameLocks.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; diff --git a/autoclass/docx/GridCol@DOCX.tsf b/autoclass/docx/GridCol@DOCX.tsf new file mode 100644 index 0000000..a301f06 --- /dev/null +++ b/autoclass/docx/GridCol@DOCX.tsf @@ -0,0 +1,81 @@ +type GridCol = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: GridCol);override; + + property w read ReadXmlAttrw write WriteXmlAttrw; + function ReadXmlAttrw(); + function WriteXmlAttrw(_value); + +public + // Attributes + XmlAttrw: OpenXmlAttribute; + + // Children + +end; + +function GridCol.Create();overload; +begin + self.Create(nil, "w", "gridCol"); +end; + +function GridCol.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function GridCol.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GridCol.Init();override; +begin + self.XmlAttrw := new OpenXmlAttribute(self.Prefix, "w", nil); +end; + +function GridCol.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrw, + ); +end; + +function GridCol.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function GridCol.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function GridCol.Copy(_obj: GridCol);override; +begin + if not ifnil(_obj.XmlAttrw.Value) then + self.XmlAttrw.Value := _obj.XmlAttrw.Value; +end; + +function GridCol.ReadXmlAttrw(); +begin + return self.XmlAttrw.Value; +end; + +function GridCol.WriteXmlAttrw(_value); +begin + self.XmlAttrw.Value := _value; +end; diff --git a/autoclass/docx/Gs@DOCX.tsf b/autoclass/docx/Gs@DOCX.tsf new file mode 100644 index 0000000..d6898b4 --- /dev/null +++ b/autoclass/docx/Gs@DOCX.tsf @@ -0,0 +1,117 @@ +type Gs = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Gs);override; + + property Pos read ReadXmlAttrPos write WriteXmlAttrPos; + function ReadXmlAttrPos(); + function WriteXmlAttrPos(_value); + +public + // Attributes + XmlAttrPos: OpenXmlAttribute; + + // Children + SchemeClr: SchemeClr; + +end; + +function Gs.Create();overload; +begin + self.Create(nil, "a", "gs"); +end; + +function Gs.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Gs.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Gs.Init();override; +begin + self.XmlAttrPos := new OpenXmlAttribute(nil, "pos", nil); + self.SchemeClr := new SchemeClr(self, self.Prefix, "schemeClr"); +end; + +function Gs.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPos, + ); +end; + +function Gs.InitChildren();override; +begin + child_elements_ := array( + 0: self.SchemeClr, + ); + sorted_child_ := array( + "": -1, + self.SchemeClr.ElementName: 0, + ); +end; + +function Gs.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Gs.Copy(_obj: Gs);override; +begin + if not ifnil(_obj.XmlAttrPos.Value) then + self.XmlAttrPos.Value := _obj.XmlAttrPos.Value; + self.SchemeClr.Copy(_obj.SchemeClr); +end; + +function Gs.ReadXmlAttrPos(); +begin + return self.XmlAttrPos.Value; +end; + +function Gs.WriteXmlAttrPos(_value); +begin + self.XmlAttrPos.Value := _value; +end; diff --git a/autoclass/docx/GsLst@DOCX.tsf b/autoclass/docx/GsLst@DOCX.tsf new file mode 100644 index 0000000..9a809a2 --- /dev/null +++ b/autoclass/docx/GsLst@DOCX.tsf @@ -0,0 +1,137 @@ +type GsLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: GsLst);override; + function AddGs(): Gs; + function AppendGs(): Gs; + + property Gses read ReadGses; + function ReadGses(_index); + +public + // Attributes + + // Children + +end; + +function GsLst.Create();overload; +begin + self.Create(nil, "a", "gsLst"); +end; + +function GsLst.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function GsLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GsLst.Init();override; +begin + +end; + +function GsLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function GsLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function GsLst.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "gs": obj := self.AppendGs(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function GsLst.Copy(_obj: GsLst);override; +begin + +end; + +function GsLst.AddGs(): Gs; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "gs" then break; + end + obj := new Gs(self, self.Prefix, "gs"); + self.InsertChild(obj, i+1); + return obj; +end; + +function GsLst.AppendGs(): Gs; +begin + obj := new Gs(self, self.Prefix, "gs"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function GsLst.ReadGses(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "gs" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Hdr@DOCX.tsf b/autoclass/docx/Hdr@DOCX.tsf new file mode 100644 index 0000000..2354bd3 --- /dev/null +++ b/autoclass/docx/Hdr@DOCX.tsf @@ -0,0 +1,406 @@ +type Hdr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Hdr);override; + function AddP(): P; + function AppendP(): P; + + property Ps read ReadPs; + function ReadPs(_index); + + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsMo read ReadXmlAttrXmlnsMo write WriteXmlAttrXmlnsMo; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; + property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsMo(); + function WriteXmlAttrXmlnsMo(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWp14(); + function WriteXmlAttrXmlnsWp14(_value); + function ReadXmlAttrXmlnsWp(); + function WriteXmlAttrXmlnsWp(_value); + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsMo: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWp14: OpenXmlAttribute; + XmlAttrXmlnsWp: OpenXmlAttribute; + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Hdr.Create();overload; +begin + self.Create(nil, "w", "hdr"); +end; + +function Hdr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Hdr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Hdr.Init();override; +begin + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsMo := new OpenXmlAttribute("xmlns", "mo", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); + self.XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Hdr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsMo, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWp14, + self.XmlAttrXmlnsWp, + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWps, + self.XmlAttrMcIgnorable, + ); +end; + +function Hdr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Hdr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Hdr.Copy(_obj: Hdr);override; +begin + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsMo.Value) then + self.XmlAttrXmlnsMo.Value := _obj.XmlAttrXmlnsMo.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWp14.Value) then + self.XmlAttrXmlnsWp14.Value := _obj.XmlAttrXmlnsWp14.Value; + if not ifnil(_obj.XmlAttrXmlnsWp.Value) then + self.XmlAttrXmlnsWp.Value := _obj.XmlAttrXmlnsWp.Value; + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Hdr.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Hdr.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Hdr.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Hdr.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Hdr.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Hdr.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsMo(); +begin + return self.XmlAttrXmlnsMo.Value; +end; + +function Hdr.WriteXmlAttrXmlnsMo(_value); +begin + self.XmlAttrXmlnsMo.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Hdr.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Hdr.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Hdr.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Hdr.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWp14(); +begin + return self.XmlAttrXmlnsWp14.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWp14(_value); +begin + self.XmlAttrXmlnsWp14.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWp(); +begin + return self.XmlAttrXmlnsWp.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWp(_value); +begin + self.XmlAttrXmlnsWp.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Hdr.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Hdr.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Hdr.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Hdr.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/HdrShapeDefaults@DOCX.tsf b/autoclass/docx/HdrShapeDefaults@DOCX.tsf new file mode 100644 index 0000000..da14d5e --- /dev/null +++ b/autoclass/docx/HdrShapeDefaults@DOCX.tsf @@ -0,0 +1,98 @@ +type HdrShapeDefaults = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: HdrShapeDefaults);override; + +public + // Attributes + + // Children + ShapeDefaults: ShapeDefaults; + +end; + +function HdrShapeDefaults.Create();overload; +begin + self.Create(nil, "w", "hdrShapeDefaults"); +end; + +function HdrShapeDefaults.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function HdrShapeDefaults.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function HdrShapeDefaults.Init();override; +begin + self.ShapeDefaults := new ShapeDefaults(self, "o", "shapeDefaults"); +end; + +function HdrShapeDefaults.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function HdrShapeDefaults.InitChildren();override; +begin + child_elements_ := array( + 0: self.ShapeDefaults, + ); + sorted_child_ := array( + "": -1, + self.ShapeDefaults.ElementName: 0, + ); +end; + +function HdrShapeDefaults.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function HdrShapeDefaults.Copy(_obj: HdrShapeDefaults);override; +begin + self.ShapeDefaults.Copy(_obj.ShapeDefaults); +end; diff --git a/autoclass/docx/HyperLink@DOCX.tsf b/autoclass/docx/HyperLink@DOCX.tsf new file mode 100644 index 0000000..d11b00e --- /dev/null +++ b/autoclass/docx/HyperLink@DOCX.tsf @@ -0,0 +1,172 @@ +type HyperLink = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: HyperLink);override; + function AddR(): R; + function AppendR(): R; + + property Rs read ReadRs; + function ReadRs(_index); + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property History read ReadXmlAttrHistory write WriteXmlAttrHistory; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrHistory(); + function WriteXmlAttrHistory(_value); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + XmlAttrHistory: OpenXmlAttribute; + + // Children + +end; + +function HyperLink.Create();overload; +begin + self.Create(nil, "w", "hyperlink"); +end; + +function HyperLink.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function HyperLink.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function HyperLink.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute("r", "id", nil); + self.XmlAttrHistory := new OpenXmlAttribute(self.Prefix, "history", nil); +end; + +function HyperLink.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrHistory, + ); +end; + +function HyperLink.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function HyperLink.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "r": obj := self.AppendR(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function HyperLink.Copy(_obj: HyperLink);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrHistory.Value) then + self.XmlAttrHistory.Value := _obj.XmlAttrHistory.Value; +end; + +function HyperLink.AddR(): R; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "r" then break; + end + obj := new R(self, self.Prefix, "r"); + self.InsertChild(obj, i+1); + return obj; +end; + +function HyperLink.AppendR(): R; +begin + obj := new R(self, self.Prefix, "r"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function HyperLink.ReadRs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "r" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function HyperLink.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function HyperLink.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function HyperLink.ReadXmlAttrHistory(); +begin + return self.XmlAttrHistory.Value; +end; + +function HyperLink.WriteXmlAttrHistory(_value); +begin + self.XmlAttrHistory.Value := _value; +end; diff --git a/autoclass/docx/IdMap@DOCX.tsf b/autoclass/docx/IdMap@DOCX.tsf new file mode 100644 index 0000000..e6c7162 --- /dev/null +++ b/autoclass/docx/IdMap@DOCX.tsf @@ -0,0 +1,99 @@ +type IdMap = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: IdMap);override; + + property Ext read ReadXmlAttrExt write WriteXmlAttrExt; + property Data read ReadXmlAttrData write WriteXmlAttrData; + function ReadXmlAttrExt(); + function WriteXmlAttrExt(_value); + function ReadXmlAttrData(); + function WriteXmlAttrData(_value); + +public + // Attributes + XmlAttrExt: OpenXmlAttribute; + XmlAttrData: OpenXmlAttribute; + + // Children + +end; + +function IdMap.Create();overload; +begin + self.Create(nil, "o", "idmap"); +end; + +function IdMap.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function IdMap.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function IdMap.Init();override; +begin + self.XmlAttrExt := new OpenXmlAttribute("v", "ext", nil); + self.XmlAttrData := new OpenXmlAttribute(nil, "data", nil); +end; + +function IdMap.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrExt, + self.XmlAttrData, + ); +end; + +function IdMap.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function IdMap.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function IdMap.Copy(_obj: IdMap);override; +begin + if not ifnil(_obj.XmlAttrExt.Value) then + self.XmlAttrExt.Value := _obj.XmlAttrExt.Value; + if not ifnil(_obj.XmlAttrData.Value) then + self.XmlAttrData.Value := _obj.XmlAttrData.Value; +end; + +function IdMap.ReadXmlAttrExt(); +begin + return self.XmlAttrExt.Value; +end; + +function IdMap.WriteXmlAttrExt(_value); +begin + self.XmlAttrExt.Value := _value; +end; + +function IdMap.ReadXmlAttrData(); +begin + return self.XmlAttrData.Value; +end; + +function IdMap.WriteXmlAttrData(_value); +begin + self.XmlAttrData.Value := _value; +end; diff --git a/autoclass/docx/Ind@DOCX.tsf b/autoclass/docx/Ind@DOCX.tsf new file mode 100644 index 0000000..272c086 --- /dev/null +++ b/autoclass/docx/Ind@DOCX.tsf @@ -0,0 +1,207 @@ +type Ind = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ind);override; + + property FirstLineChars read ReadXmlAttrFirstLineChars write WriteXmlAttrFirstLineChars; + property FirstLine read ReadXmlAttrFirstLine write WriteXmlAttrFirstLine; + property RightChars read ReadXmlAttrRightChars write WriteXmlAttrRightChars; + property Right read ReadXmlAttrRight write WriteXmlAttrRight; + property LeftChars read ReadXmlAttrLeftChars write WriteXmlAttrLeftChars; + property Left read ReadXmlAttrLeft write WriteXmlAttrLeft; + property Hanging read ReadXmlAttrHanging write WriteXmlAttrHanging; + property HangingChars read ReadXmlAttrHangingChars write WriteXmlAttrHangingChars; + function ReadXmlAttrFirstLineChars(); + function WriteXmlAttrFirstLineChars(_value); + function ReadXmlAttrFirstLine(); + function WriteXmlAttrFirstLine(_value); + function ReadXmlAttrRightChars(); + function WriteXmlAttrRightChars(_value); + function ReadXmlAttrRight(); + function WriteXmlAttrRight(_value); + function ReadXmlAttrLeftChars(); + function WriteXmlAttrLeftChars(_value); + function ReadXmlAttrLeft(); + function WriteXmlAttrLeft(_value); + function ReadXmlAttrHanging(); + function WriteXmlAttrHanging(_value); + function ReadXmlAttrHangingChars(); + function WriteXmlAttrHangingChars(_value); + +public + // Attributes + XmlAttrFirstLineChars: OpenXmlAttribute; + XmlAttrFirstLine: OpenXmlAttribute; + XmlAttrRightChars: OpenXmlAttribute; + XmlAttrRight: OpenXmlAttribute; + XmlAttrLeftChars: OpenXmlAttribute; + XmlAttrLeft: OpenXmlAttribute; + XmlAttrHanging: OpenXmlAttribute; + XmlAttrHangingChars: OpenXmlAttribute; + + // Children + +end; + +function Ind.Create();overload; +begin + self.Create(nil, "w", "ind"); +end; + +function Ind.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ind.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ind.Init();override; +begin + self.XmlAttrFirstLineChars := new OpenXmlAttribute(self.Prefix, "firstLineChars", nil); + self.XmlAttrFirstLine := new OpenXmlAttribute(self.Prefix, "firstLine", nil); + self.XmlAttrRightChars := new OpenXmlAttribute(self.Prefix, "rightChars", nil); + self.XmlAttrRight := new OpenXmlAttribute(self.Prefix, "right", nil); + self.XmlAttrLeftChars := new OpenXmlAttribute(self.Prefix, "leftChars", nil); + self.XmlAttrLeft := new OpenXmlAttribute(self.Prefix, "left", nil); + self.XmlAttrHanging := new OpenXmlAttribute(self.Prefix, "hainging", nil); + self.XmlAttrHangingChars := new OpenXmlAttribute(self.Prefix, "hangingChars", nil); +end; + +function Ind.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrFirstLineChars, + self.XmlAttrFirstLine, + self.XmlAttrRightChars, + self.XmlAttrRight, + self.XmlAttrLeftChars, + self.XmlAttrLeft, + self.XmlAttrHanging, + self.XmlAttrHangingChars, + ); +end; + +function Ind.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Ind.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Ind.Copy(_obj: Ind);override; +begin + if not ifnil(_obj.XmlAttrFirstLineChars.Value) then + self.XmlAttrFirstLineChars.Value := _obj.XmlAttrFirstLineChars.Value; + if not ifnil(_obj.XmlAttrFirstLine.Value) then + self.XmlAttrFirstLine.Value := _obj.XmlAttrFirstLine.Value; + if not ifnil(_obj.XmlAttrRightChars.Value) then + self.XmlAttrRightChars.Value := _obj.XmlAttrRightChars.Value; + if not ifnil(_obj.XmlAttrRight.Value) then + self.XmlAttrRight.Value := _obj.XmlAttrRight.Value; + if not ifnil(_obj.XmlAttrLeftChars.Value) then + self.XmlAttrLeftChars.Value := _obj.XmlAttrLeftChars.Value; + if not ifnil(_obj.XmlAttrLeft.Value) then + self.XmlAttrLeft.Value := _obj.XmlAttrLeft.Value; + if not ifnil(_obj.XmlAttrHanging.Value) then + self.XmlAttrHanging.Value := _obj.XmlAttrHanging.Value; + if not ifnil(_obj.XmlAttrHangingChars.Value) then + self.XmlAttrHangingChars.Value := _obj.XmlAttrHangingChars.Value; +end; + +function Ind.ReadXmlAttrFirstLineChars(); +begin + return self.XmlAttrFirstLineChars.Value; +end; + +function Ind.WriteXmlAttrFirstLineChars(_value); +begin + self.XmlAttrFirstLineChars.Value := _value; +end; + +function Ind.ReadXmlAttrFirstLine(); +begin + return self.XmlAttrFirstLine.Value; +end; + +function Ind.WriteXmlAttrFirstLine(_value); +begin + self.XmlAttrFirstLine.Value := _value; +end; + +function Ind.ReadXmlAttrRightChars(); +begin + return self.XmlAttrRightChars.Value; +end; + +function Ind.WriteXmlAttrRightChars(_value); +begin + self.XmlAttrRightChars.Value := _value; +end; + +function Ind.ReadXmlAttrRight(); +begin + return self.XmlAttrRight.Value; +end; + +function Ind.WriteXmlAttrRight(_value); +begin + self.XmlAttrRight.Value := _value; +end; + +function Ind.ReadXmlAttrLeftChars(); +begin + return self.XmlAttrLeftChars.Value; +end; + +function Ind.WriteXmlAttrLeftChars(_value); +begin + self.XmlAttrLeftChars.Value := _value; +end; + +function Ind.ReadXmlAttrLeft(); +begin + return self.XmlAttrLeft.Value; +end; + +function Ind.WriteXmlAttrLeft(_value); +begin + self.XmlAttrLeft.Value := _value; +end; + +function Ind.ReadXmlAttrHanging(); +begin + return self.XmlAttrHanging.Value; +end; + +function Ind.WriteXmlAttrHanging(_value); +begin + self.XmlAttrHanging.Value := _value; +end; + +function Ind.ReadXmlAttrHangingChars(); +begin + return self.XmlAttrHangingChars.Value; +end; + +function Ind.WriteXmlAttrHangingChars(_value); +begin + self.XmlAttrHangingChars.Value := _value; +end; diff --git a/autoclass/docx/InstrText@DOCX.tsf b/autoclass/docx/InstrText@DOCX.tsf new file mode 100644 index 0000000..205a5cf --- /dev/null +++ b/autoclass/docx/InstrText@DOCX.tsf @@ -0,0 +1,71 @@ +type InstrText = class(OpenXmlPcdata) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: InstrText);override; + + property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; + function ReadXmlAttrSpace(); + function WriteXmlAttrSpace(_value); + +public + // Attributes + XmlAttrSpace: OpenXmlAttribute; + + // Children + +end; + +function InstrText.Create();overload; +begin + self.Create(nil, "w", "instrText"); +end; + +function InstrText.Create(_node: XmlNode);overload; +begin + class(OpenXmlPcdata).Create(_node: XmlNode); +end; + +function InstrText.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlPcdata).Create(_parent, _prefix, _local_name); +end; + +function InstrText.Init();override; +begin + self.XmlAttrSpace := new OpenXmlAttribute("xml", "Space", nil); +end; + +function InstrText.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrSpace, + ); +end; + +function InstrText.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function InstrText.Copy(_obj: InstrText);override; +begin + if not ifnil(_obj.XmlAttrSpace.Value) then + self.XmlAttrSpace.Value := _obj.XmlAttrSpace.Value; +end; + +function InstrText.ReadXmlAttrSpace(); +begin + return self.XmlAttrSpace.Value; +end; + +function InstrText.WriteXmlAttrSpace(_value); +begin + self.XmlAttrSpace.Value := _value; +end; diff --git a/autoclass/docx/Lang@DOCX.tsf b/autoclass/docx/Lang@DOCX.tsf new file mode 100644 index 0000000..33a8534 --- /dev/null +++ b/autoclass/docx/Lang@DOCX.tsf @@ -0,0 +1,117 @@ +type Lang = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Lang);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property EastAsia read ReadXmlAttrEastAsia write WriteXmlAttrEastAsia; + property Bidi read ReadXmlAttrBidi write WriteXmlAttrBidi; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrEastAsia(); + function WriteXmlAttrEastAsia(_value); + function ReadXmlAttrBidi(); + function WriteXmlAttrBidi(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrEastAsia: OpenXmlAttribute; + XmlAttrBidi: OpenXmlAttribute; + + // Children + +end; + +function Lang.Create();overload; +begin + self.Create(nil, "w", "lang"); +end; + +function Lang.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Lang.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Lang.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(self.Prefix, "val", nil); + self.XmlAttrEastAsia := new OpenXmlAttribute(self.Prefix, "eastAsia", nil); + self.XmlAttrBidi := new OpenXmlAttribute(self.Prefix, "bidi", nil); +end; + +function Lang.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrEastAsia, + self.XmlAttrBidi, + ); +end; + +function Lang.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Lang.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Lang.Copy(_obj: Lang);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrEastAsia.Value) then + self.XmlAttrEastAsia.Value := _obj.XmlAttrEastAsia.Value; + if not ifnil(_obj.XmlAttrBidi.Value) then + self.XmlAttrBidi.Value := _obj.XmlAttrBidi.Value; +end; + +function Lang.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function Lang.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function Lang.ReadXmlAttrEastAsia(); +begin + return self.XmlAttrEastAsia.Value; +end; + +function Lang.WriteXmlAttrEastAsia(_value); +begin + self.XmlAttrEastAsia.Value := _value; +end; + +function Lang.ReadXmlAttrBidi(); +begin + return self.XmlAttrBidi.Value; +end; + +function Lang.WriteXmlAttrBidi(_value); +begin + self.XmlAttrBidi.Value := _value; +end; diff --git a/autoclass/docx/LatenStyles@DOCX.tsf b/autoclass/docx/LatenStyles@DOCX.tsf new file mode 100644 index 0000000..1ccf6a3 --- /dev/null +++ b/autoclass/docx/LatenStyles@DOCX.tsf @@ -0,0 +1,244 @@ +type LatenStyles = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: LatenStyles);override; + function AddLsdException(): LsdException; + function AppendLsdException(): LsdException; + + property LsdExceptions read ReadLsdExceptions; + function ReadLsdExceptions(_index); + + property DefLickedState read ReadXmlAttrDefLickedState write WriteXmlAttrDefLickedState; + property DefUIPriority read ReadXmlAttrDefUIPriority write WriteXmlAttrDefUIPriority; + property DefSemiHidden read ReadXmlAttrDefSemiHidden write WriteXmlAttrDefSemiHidden; + property DefUnhideWhenUsed read ReadXmlAttrDefUnhideWhenUsed write WriteXmlAttrDefUnhideWhenUsed; + property DefQFormat read ReadXmlAttrDefQFormat write WriteXmlAttrDefQFormat; + property Count read ReadXmlAttrCount write WriteXmlAttrCount; + function ReadXmlAttrDefLickedState(); + function WriteXmlAttrDefLickedState(_value); + function ReadXmlAttrDefUIPriority(); + function WriteXmlAttrDefUIPriority(_value); + function ReadXmlAttrDefSemiHidden(); + function WriteXmlAttrDefSemiHidden(_value); + function ReadXmlAttrDefUnhideWhenUsed(); + function WriteXmlAttrDefUnhideWhenUsed(_value); + function ReadXmlAttrDefQFormat(); + function WriteXmlAttrDefQFormat(_value); + function ReadXmlAttrCount(); + function WriteXmlAttrCount(_value); + +public + // Attributes + XmlAttrDefLickedState: OpenXmlAttribute; + XmlAttrDefUIPriority: OpenXmlAttribute; + XmlAttrDefSemiHidden: OpenXmlAttribute; + XmlAttrDefUnhideWhenUsed: OpenXmlAttribute; + XmlAttrDefQFormat: OpenXmlAttribute; + XmlAttrCount: OpenXmlAttribute; + + // Children + +end; + +function LatenStyles.Create();overload; +begin + self.Create(nil, "w", "latenStyles"); +end; + +function LatenStyles.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function LatenStyles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LatenStyles.Init();override; +begin + self.XmlAttrDefLickedState := new OpenXmlAttribute(self.Prefix, "defLickedState", nil); + self.XmlAttrDefUIPriority := new OpenXmlAttribute(self.Prefix, "defUIPriority", nil); + self.XmlAttrDefSemiHidden := new OpenXmlAttribute(self.Prefix, "defSemiHidden", nil); + self.XmlAttrDefUnhideWhenUsed := new OpenXmlAttribute(self.Prefix, "defUnhideWhenUsed", nil); + self.XmlAttrDefQFormat := new OpenXmlAttribute(self.Prefix, "defQFormat", nil); + self.XmlAttrCount := new OpenXmlAttribute(self.Prefix, "count", nil); +end; + +function LatenStyles.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrDefLickedState, + self.XmlAttrDefUIPriority, + self.XmlAttrDefSemiHidden, + self.XmlAttrDefUnhideWhenUsed, + self.XmlAttrDefQFormat, + self.XmlAttrCount, + ); +end; + +function LatenStyles.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function LatenStyles.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "lsdException": obj := self.AppendLsdException(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function LatenStyles.Copy(_obj: LatenStyles);override; +begin + if not ifnil(_obj.XmlAttrDefLickedState.Value) then + self.XmlAttrDefLickedState.Value := _obj.XmlAttrDefLickedState.Value; + if not ifnil(_obj.XmlAttrDefUIPriority.Value) then + self.XmlAttrDefUIPriority.Value := _obj.XmlAttrDefUIPriority.Value; + if not ifnil(_obj.XmlAttrDefSemiHidden.Value) then + self.XmlAttrDefSemiHidden.Value := _obj.XmlAttrDefSemiHidden.Value; + if not ifnil(_obj.XmlAttrDefUnhideWhenUsed.Value) then + self.XmlAttrDefUnhideWhenUsed.Value := _obj.XmlAttrDefUnhideWhenUsed.Value; + if not ifnil(_obj.XmlAttrDefQFormat.Value) then + self.XmlAttrDefQFormat.Value := _obj.XmlAttrDefQFormat.Value; + if not ifnil(_obj.XmlAttrCount.Value) then + self.XmlAttrCount.Value := _obj.XmlAttrCount.Value; +end; + +function LatenStyles.AddLsdException(): LsdException; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "lsdException" then break; + end + obj := new LsdException(self, self.Prefix, "lsdException"); + self.InsertChild(obj, i+1); + return obj; +end; + +function LatenStyles.AppendLsdException(): LsdException; +begin + obj := new LsdException(self, self.Prefix, "lsdException"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function LatenStyles.ReadLsdExceptions(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "lsdException" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function LatenStyles.ReadXmlAttrDefLickedState(); +begin + return self.XmlAttrDefLickedState.Value; +end; + +function LatenStyles.WriteXmlAttrDefLickedState(_value); +begin + self.XmlAttrDefLickedState.Value := _value; +end; + +function LatenStyles.ReadXmlAttrDefUIPriority(); +begin + return self.XmlAttrDefUIPriority.Value; +end; + +function LatenStyles.WriteXmlAttrDefUIPriority(_value); +begin + self.XmlAttrDefUIPriority.Value := _value; +end; + +function LatenStyles.ReadXmlAttrDefSemiHidden(); +begin + return self.XmlAttrDefSemiHidden.Value; +end; + +function LatenStyles.WriteXmlAttrDefSemiHidden(_value); +begin + self.XmlAttrDefSemiHidden.Value := _value; +end; + +function LatenStyles.ReadXmlAttrDefUnhideWhenUsed(); +begin + return self.XmlAttrDefUnhideWhenUsed.Value; +end; + +function LatenStyles.WriteXmlAttrDefUnhideWhenUsed(_value); +begin + self.XmlAttrDefUnhideWhenUsed.Value := _value; +end; + +function LatenStyles.ReadXmlAttrDefQFormat(); +begin + return self.XmlAttrDefQFormat.Value; +end; + +function LatenStyles.WriteXmlAttrDefQFormat(_value); +begin + self.XmlAttrDefQFormat.Value := _value; +end; + +function LatenStyles.ReadXmlAttrCount(); +begin + return self.XmlAttrCount.Value; +end; + +function LatenStyles.WriteXmlAttrCount(_value); +begin + self.XmlAttrCount.Value := _value; +end; diff --git a/autoclass/docx/Latin@DOCX.tsf b/autoclass/docx/Latin@DOCX.tsf new file mode 100644 index 0000000..82614b6 --- /dev/null +++ b/autoclass/docx/Latin@DOCX.tsf @@ -0,0 +1,99 @@ +type Latin = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Latin);override; + + property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; + property Panose read ReadXmlAttrPanose write WriteXmlAttrPanose; + function ReadXmlAttrTypeface(); + function WriteXmlAttrTypeface(_value); + function ReadXmlAttrPanose(); + function WriteXmlAttrPanose(_value); + +public + // Attributes + XmlAttrTypeface: OpenXmlAttribute; + XmlAttrPanose: OpenXmlAttribute; + + // Children + +end; + +function Latin.Create();overload; +begin + self.Create(nil, "a", "latin"); +end; + +function Latin.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Latin.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Latin.Init();override; +begin + self.XmlAttrTypeface := new OpenXmlAttribute(nil, "typeface", nil); + self.XmlAttrPanose := new OpenXmlAttribute(nil, "panose", nil); +end; + +function Latin.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrTypeface, + self.XmlAttrPanose, + ); +end; + +function Latin.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Latin.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Latin.Copy(_obj: Latin);override; +begin + if not ifnil(_obj.XmlAttrTypeface.Value) then + self.XmlAttrTypeface.Value := _obj.XmlAttrTypeface.Value; + if not ifnil(_obj.XmlAttrPanose.Value) then + self.XmlAttrPanose.Value := _obj.XmlAttrPanose.Value; +end; + +function Latin.ReadXmlAttrTypeface(); +begin + return self.XmlAttrTypeface.Value; +end; + +function Latin.WriteXmlAttrTypeface(_value); +begin + self.XmlAttrTypeface.Value := _value; +end; + +function Latin.ReadXmlAttrPanose(); +begin + return self.XmlAttrPanose.Value; +end; + +function Latin.WriteXmlAttrPanose(_value); +begin + self.XmlAttrPanose.Value := _value; +end; diff --git a/autoclass/docx/Legend@DOCX.tsf b/autoclass/docx/Legend@DOCX.tsf new file mode 100644 index 0000000..12c8aec --- /dev/null +++ b/autoclass/docx/Legend@DOCX.tsf @@ -0,0 +1,127 @@ +type Legend = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Legend);override; + + property Layout read ReadXmlChildLayout write WriteXmlChildLayout; + function ReadXmlChildLayout(); + function WriteXmlChildLayout(_value); + +public + // Attributes + + // Children + LegendPos: PureVal; + XmlChildLayout: OpenXmlEmpty; + Overlay: PureVal; + TxPr: TxPr; + +end; + +function Legend.Create();overload; +begin + self.Create(nil, "c", "legend"); +end; + +function Legend.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Legend.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Legend.Init();override; +begin + self.LegendPos := new PureVal(self, self.Prefix, "legendPos"); + self.XmlChildLayout := new OpenXmlEmpty(self, self.Prefix, "layout"); + self.Overlay := new PureVal(self, self.Prefix, "overlay"); + self.TxPr := new TxPr(self, self.Prefix, "txPr"); +end; + +function Legend.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Legend.InitChildren();override; +begin + child_elements_ := array( + 0: self.LegendPos, + 1: self.XmlChildLayout, + 2: self.Overlay, + 3: self.TxPr, + ); + sorted_child_ := array( + "": -1, + self.LegendPos.ElementName: 0, + self.XmlChildLayout.ElementName: 1, + self.Overlay.ElementName: 2, + self.TxPr.ElementName: 3, + ); +end; + +function Legend.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Legend.Copy(_obj: Legend);override; +begin + self.LegendPos.Copy(_obj.LegendPos); + self.XmlChildLayout.Copy(_obj.XmlChildLayout); + self.Overlay.Copy(_obj.Overlay); + self.TxPr.Copy(_obj.TxPr); +end; + +function Legend.ReadXmlChildLayout(); +begin + return ifnil(self.XmlChildLayout.Value) ? false : true; +end; + +function Legend.WriteXmlChildLayout(_value); +begin + self.XmlChildLayout.Value := _value; +end; diff --git a/autoclass/docx/Lin@DOCX.tsf b/autoclass/docx/Lin@DOCX.tsf new file mode 100644 index 0000000..8d06d95 --- /dev/null +++ b/autoclass/docx/Lin@DOCX.tsf @@ -0,0 +1,99 @@ +type Lin = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Lin);override; + + property Ang read ReadXmlAttrAng write WriteXmlAttrAng; + property Scaled read ReadXmlAttrScaled write WriteXmlAttrScaled; + function ReadXmlAttrAng(); + function WriteXmlAttrAng(_value); + function ReadXmlAttrScaled(); + function WriteXmlAttrScaled(_value); + +public + // Attributes + XmlAttrAng: OpenXmlAttribute; + XmlAttrScaled: OpenXmlAttribute; + + // Children + +end; + +function Lin.Create();overload; +begin + self.Create(nil, "a", "lin"); +end; + +function Lin.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Lin.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Lin.Init();override; +begin + self.XmlAttrAng := new OpenXmlAttribute(nil, "ang", nil); + self.XmlAttrScaled := new OpenXmlAttribute(nil, "scaled", nil); +end; + +function Lin.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrAng, + self.XmlAttrScaled, + ); +end; + +function Lin.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Lin.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Lin.Copy(_obj: Lin);override; +begin + if not ifnil(_obj.XmlAttrAng.Value) then + self.XmlAttrAng.Value := _obj.XmlAttrAng.Value; + if not ifnil(_obj.XmlAttrScaled.Value) then + self.XmlAttrScaled.Value := _obj.XmlAttrScaled.Value; +end; + +function Lin.ReadXmlAttrAng(); +begin + return self.XmlAttrAng.Value; +end; + +function Lin.WriteXmlAttrAng(_value); +begin + self.XmlAttrAng.Value := _value; +end; + +function Lin.ReadXmlAttrScaled(); +begin + return self.XmlAttrScaled.Value; +end; + +function Lin.WriteXmlAttrScaled(_value); +begin + self.XmlAttrScaled.Value := _value; +end; diff --git a/autoclass/docx/Ln@DOCX.tsf b/autoclass/docx/Ln@DOCX.tsf new file mode 100644 index 0000000..af90276 --- /dev/null +++ b/autoclass/docx/Ln@DOCX.tsf @@ -0,0 +1,181 @@ +type Ln = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ln);override; + + property W read ReadXmlAttrW write WriteXmlAttrW; + property Cap read ReadXmlAttrCap write WriteXmlAttrCap; + property Cmpd read ReadXmlAttrCmpd write WriteXmlAttrCmpd; + property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; + function ReadXmlAttrW(); + function WriteXmlAttrW(_value); + function ReadXmlAttrCap(); + function WriteXmlAttrCap(_value); + function ReadXmlAttrCmpd(); + function WriteXmlAttrCmpd(_value); + function ReadXmlAttrAlgn(); + function WriteXmlAttrAlgn(_value); + +public + // Attributes + XmlAttrW: OpenXmlAttribute; + XmlAttrCap: OpenXmlAttribute; + XmlAttrCmpd: OpenXmlAttribute; + XmlAttrAlgn: OpenXmlAttribute; + + // Children + SolidFill: SolidFill; + PrstDash: PureVal; + Miter: Miter; + +end; + +function Ln.Create();overload; +begin + self.Create(nil, "a", "ln"); +end; + +function Ln.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ln.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ln.Init();override; +begin + self.XmlAttrW := new OpenXmlAttribute(nil, "w", nil); + self.XmlAttrCap := new OpenXmlAttribute(nil, "cap", nil); + self.XmlAttrCmpd := new OpenXmlAttribute(nil, "cmpd", nil); + self.XmlAttrAlgn := new OpenXmlAttribute(nil, "algn", nil); + self.SolidFill := new SolidFill(self, self.Prefix, "solidFill"); + self.PrstDash := new PureVal(self, self.Prefix, "prstDash"); + self.Miter := new Miter(self, self.Prefix, "miter"); +end; + +function Ln.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrW, + self.XmlAttrCap, + self.XmlAttrCmpd, + self.XmlAttrAlgn, + ); +end; + +function Ln.InitChildren();override; +begin + child_elements_ := array( + 0: self.SolidFill, + 1: self.PrstDash, + 2: self.Miter, + ); + sorted_child_ := array( + "": -1, + self.SolidFill.ElementName: 0, + self.PrstDash.ElementName: 1, + self.Miter.ElementName: 2, + ); +end; + +function Ln.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ln.Copy(_obj: Ln);override; +begin + if not ifnil(_obj.XmlAttrW.Value) then + self.XmlAttrW.Value := _obj.XmlAttrW.Value; + if not ifnil(_obj.XmlAttrCap.Value) then + self.XmlAttrCap.Value := _obj.XmlAttrCap.Value; + if not ifnil(_obj.XmlAttrCmpd.Value) then + self.XmlAttrCmpd.Value := _obj.XmlAttrCmpd.Value; + if not ifnil(_obj.XmlAttrAlgn.Value) then + self.XmlAttrAlgn.Value := _obj.XmlAttrAlgn.Value; + self.SolidFill.Copy(_obj.SolidFill); + self.PrstDash.Copy(_obj.PrstDash); + self.Miter.Copy(_obj.Miter); +end; + +function Ln.ReadXmlAttrW(); +begin + return self.XmlAttrW.Value; +end; + +function Ln.WriteXmlAttrW(_value); +begin + self.XmlAttrW.Value := _value; +end; + +function Ln.ReadXmlAttrCap(); +begin + return self.XmlAttrCap.Value; +end; + +function Ln.WriteXmlAttrCap(_value); +begin + self.XmlAttrCap.Value := _value; +end; + +function Ln.ReadXmlAttrCmpd(); +begin + return self.XmlAttrCmpd.Value; +end; + +function Ln.WriteXmlAttrCmpd(_value); +begin + self.XmlAttrCmpd.Value := _value; +end; + +function Ln.ReadXmlAttrAlgn(); +begin + return self.XmlAttrAlgn.Value; +end; + +function Ln.WriteXmlAttrAlgn(_value); +begin + self.XmlAttrAlgn.Value := _value; +end; diff --git a/autoclass/docx/LnStyleLst@DOCX.tsf b/autoclass/docx/LnStyleLst@DOCX.tsf new file mode 100644 index 0000000..b4b71a1 --- /dev/null +++ b/autoclass/docx/LnStyleLst@DOCX.tsf @@ -0,0 +1,137 @@ +type LnStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: LnStyleLst);override; + function AddLn(): Ln; + function AppendLn(): Ln; + + property Lns read ReadLns; + function ReadLns(_index); + +public + // Attributes + + // Children + +end; + +function LnStyleLst.Create();overload; +begin + self.Create(nil, "a", "lnStyleLst"); +end; + +function LnStyleLst.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function LnStyleLst.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LnStyleLst.Init();override; +begin + +end; + +function LnStyleLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function LnStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function LnStyleLst.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "ln": obj := self.AppendLn(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function LnStyleLst.Copy(_obj: LnStyleLst);override; +begin + +end; + +function LnStyleLst.AddLn(): Ln; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "ln" then break; + end + obj := new Ln(self, self.Prefix, "ln"); + self.InsertChild(obj, i+1); + return obj; +end; + +function LnStyleLst.AppendLn(): Ln; +begin + obj := new Ln(self, self.Prefix, "ln"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function LnStyleLst.ReadLns(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "ln" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/LsdException@DOCX.tsf b/autoclass/docx/LsdException@DOCX.tsf new file mode 100644 index 0000000..59d168b --- /dev/null +++ b/autoclass/docx/LsdException@DOCX.tsf @@ -0,0 +1,153 @@ +type LsdException = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: LsdException);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + property UIPriority read ReadXmlAttrUIPriority write WriteXmlAttrUIPriority; + property SemiHidden read ReadXmlAttrSemiHidden write WriteXmlAttrSemiHidden; + property UnhideWhenUsed read ReadXmlAttrUnhideWhenUsed write WriteXmlAttrUnhideWhenUsed; + property QFormat read ReadXmlAttrQFormat write WriteXmlAttrQFormat; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + function ReadXmlAttrUIPriority(); + function WriteXmlAttrUIPriority(_value); + function ReadXmlAttrSemiHidden(); + function WriteXmlAttrSemiHidden(_value); + function ReadXmlAttrUnhideWhenUsed(); + function WriteXmlAttrUnhideWhenUsed(_value); + function ReadXmlAttrQFormat(); + function WriteXmlAttrQFormat(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + XmlAttrUIPriority: OpenXmlAttribute; + XmlAttrSemiHidden: OpenXmlAttribute; + XmlAttrUnhideWhenUsed: OpenXmlAttribute; + XmlAttrQFormat: OpenXmlAttribute; + + // Children + +end; + +function LsdException.Create();overload; +begin + self.Create(nil, "w", "lsdException"); +end; + +function LsdException.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function LsdException.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LsdException.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(self.Prefix, "name", nil); + self.XmlAttrUIPriority := new OpenXmlAttribute(self.Prefix, "uiPriority", nil); + self.XmlAttrSemiHidden := new OpenXmlAttribute(self.Prefix, "semiHidden", nil); + self.XmlAttrUnhideWhenUsed := new OpenXmlAttribute(self.Prefix, "unhideWhenUsed", nil); + self.XmlAttrQFormat := new OpenXmlAttribute(self.Prefix, "qFormat", nil); +end; + +function LsdException.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + self.XmlAttrUIPriority, + self.XmlAttrSemiHidden, + self.XmlAttrUnhideWhenUsed, + self.XmlAttrQFormat, + ); +end; + +function LsdException.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function LsdException.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function LsdException.Copy(_obj: LsdException);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + if not ifnil(_obj.XmlAttrUIPriority.Value) then + self.XmlAttrUIPriority.Value := _obj.XmlAttrUIPriority.Value; + if not ifnil(_obj.XmlAttrSemiHidden.Value) then + self.XmlAttrSemiHidden.Value := _obj.XmlAttrSemiHidden.Value; + if not ifnil(_obj.XmlAttrUnhideWhenUsed.Value) then + self.XmlAttrUnhideWhenUsed.Value := _obj.XmlAttrUnhideWhenUsed.Value; + if not ifnil(_obj.XmlAttrQFormat.Value) then + self.XmlAttrQFormat.Value := _obj.XmlAttrQFormat.Value; +end; + +function LsdException.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function LsdException.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function LsdException.ReadXmlAttrUIPriority(); +begin + return self.XmlAttrUIPriority.Value; +end; + +function LsdException.WriteXmlAttrUIPriority(_value); +begin + self.XmlAttrUIPriority.Value := _value; +end; + +function LsdException.ReadXmlAttrSemiHidden(); +begin + return self.XmlAttrSemiHidden.Value; +end; + +function LsdException.WriteXmlAttrSemiHidden(_value); +begin + self.XmlAttrSemiHidden.Value := _value; +end; + +function LsdException.ReadXmlAttrUnhideWhenUsed(); +begin + return self.XmlAttrUnhideWhenUsed.Value; +end; + +function LsdException.WriteXmlAttrUnhideWhenUsed(_value); +begin + self.XmlAttrUnhideWhenUsed.Value := _value; +end; + +function LsdException.ReadXmlAttrQFormat(); +begin + return self.XmlAttrQFormat.Value; +end; + +function LsdException.WriteXmlAttrQFormat(_value); +begin + self.XmlAttrQFormat.Value := _value; +end; diff --git a/autoclass/docx/Lvl@DOCX.tsf b/autoclass/docx/Lvl@DOCX.tsf new file mode 100644 index 0000000..1be2798 --- /dev/null +++ b/autoclass/docx/Lvl@DOCX.tsf @@ -0,0 +1,170 @@ +type Lvl = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Lvl);override; + + property Ilvl read ReadXmlAttrIlvl write WriteXmlAttrIlvl; + property Tentative read ReadXmlAttrTentative write WriteXmlAttrTentative; + function ReadXmlAttrIlvl(); + function WriteXmlAttrIlvl(_value); + function ReadXmlAttrTentative(); + function WriteXmlAttrTentative(_value); + +public + // Attributes + XmlAttrIlvl: OpenXmlAttribute; + XmlAttrTentative: OpenXmlAttribute; + + // Children + Start: PureWVal; + NumFmt: PureWVal; + PStyle: PureWVal; + Suff: PureWVal; + LvlText: PureWVal; + LvlJc: PureWVal; + PPr: PPr; + RPr: RPr; + +end; + +function Lvl.Create();overload; +begin + self.Create(nil, "w", "lvl"); +end; + +function Lvl.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Lvl.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Lvl.Init();override; +begin + self.XmlAttrIlvl := new OpenXmlAttribute(self.Prefix, "ilvl", nil); + self.XmlAttrTentative := new OpenXmlAttribute(self.Prefix, "tentative", nil); + self.Start := new PureWVal(self, self.Prefix, "start"); + self.NumFmt := new PureWVal(self, self.Prefix, "numFmt"); + self.PStyle := new PureWVal(self, self.Prefix, "pStyle"); + self.Suff := new PureWVal(self, self.Prefix, "suff"); + self.LvlText := new PureWVal(self, self.Prefix, "lvlText"); + self.LvlJc := new PureWVal(self, self.Prefix, "lvlJc"); + self.PPr := new PPr(self, self.Prefix, "pPr"); + self.RPr := new RPr(self, self.Prefix, "rPr"); +end; + +function Lvl.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrIlvl, + self.XmlAttrTentative, + ); +end; + +function Lvl.InitChildren();override; +begin + child_elements_ := array( + 0: self.Start, + 1: self.NumFmt, + 2: self.PStyle, + 3: self.Suff, + 4: self.LvlText, + 5: self.LvlJc, + 6: self.PPr, + 7: self.RPr, + ); + sorted_child_ := array( + "": -1, + self.Start.ElementName: 0, + self.NumFmt.ElementName: 1, + self.PStyle.ElementName: 2, + self.Suff.ElementName: 3, + self.LvlText.ElementName: 4, + self.LvlJc.ElementName: 5, + self.PPr.ElementName: 6, + self.RPr.ElementName: 7, + ); +end; + +function Lvl.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Lvl.Copy(_obj: Lvl);override; +begin + if not ifnil(_obj.XmlAttrIlvl.Value) then + self.XmlAttrIlvl.Value := _obj.XmlAttrIlvl.Value; + if not ifnil(_obj.XmlAttrTentative.Value) then + self.XmlAttrTentative.Value := _obj.XmlAttrTentative.Value; + self.Start.Copy(_obj.Start); + self.NumFmt.Copy(_obj.NumFmt); + self.PStyle.Copy(_obj.PStyle); + self.Suff.Copy(_obj.Suff); + self.LvlText.Copy(_obj.LvlText); + self.LvlJc.Copy(_obj.LvlJc); + self.PPr.Copy(_obj.PPr); + self.RPr.Copy(_obj.RPr); +end; + +function Lvl.ReadXmlAttrIlvl(); +begin + return self.XmlAttrIlvl.Value; +end; + +function Lvl.WriteXmlAttrIlvl(_value); +begin + self.XmlAttrIlvl.Value := _value; +end; + +function Lvl.ReadXmlAttrTentative(); +begin + return self.XmlAttrTentative.Value; +end; + +function Lvl.WriteXmlAttrTentative(_value); +begin + self.XmlAttrTentative.Value := _value; +end; diff --git a/autoclass/docx/MFont@DOCX.tsf b/autoclass/docx/MFont@DOCX.tsf new file mode 100644 index 0000000..ec072e7 --- /dev/null +++ b/autoclass/docx/MFont@DOCX.tsf @@ -0,0 +1,150 @@ +type MFont = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: MFont);override; + function AddFont(): MFontFont; + function AppendFont(): MFontFont; + + property Fonts read ReadFonts; + function ReadFonts(_index); + +public + // Attributes + + // Children + Latin: Latin; + Ea: Latin; + Cs: Latin; + +end; + +function MFont.Create();overload; +begin + self.Create(nil, "a", ""); +end; + +function MFont.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function MFont.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function MFont.Init();override; +begin + self.Latin := new Latin(self, self.Prefix, "latin"); + self.Ea := new Latin(self, self.Prefix, "ea"); + self.Cs := new Latin(self, self.Prefix, "cs"); +end; + +function MFont.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function MFont.InitChildren();override; +begin + child_elements_ := array( + 0: self.Latin, + 1: self.Ea, + 2: self.Cs, + ); + sorted_child_ := array( + "": -1, + self.Latin.ElementName: 0, + self.Ea.ElementName: 1, + self.Cs.ElementName: 2, + ); +end; + +function MFont.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "font": obj := self.AppendFont(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function MFont.Copy(_obj: MFont);override; +begin + self.Latin.Copy(_obj.Latin); + self.Ea.Copy(_obj.Ea); + self.Cs.Copy(_obj.Cs); +end; + +function MFont.AddFont(): MFontFont; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "font" then break; + end + obj := new MFontFont(self, self.Prefix, "font"); + self.InsertChild(obj, i+1); + return obj; +end; + +function MFont.AppendFont(): MFontFont; +begin + obj := new MFontFont(self, self.Prefix, "font"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function MFont.ReadFonts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "font" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/MFontFont@DOCX.tsf b/autoclass/docx/MFontFont@DOCX.tsf new file mode 100644 index 0000000..81a92dd --- /dev/null +++ b/autoclass/docx/MFontFont@DOCX.tsf @@ -0,0 +1,99 @@ +type MFontFont = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: MFontFont);override; + + property Script read ReadXmlAttrScript write WriteXmlAttrScript; + property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; + function ReadXmlAttrScript(); + function WriteXmlAttrScript(_value); + function ReadXmlAttrTypeface(); + function WriteXmlAttrTypeface(_value); + +public + // Attributes + XmlAttrScript: OpenXmlAttribute; + XmlAttrTypeface: OpenXmlAttribute; + + // Children + +end; + +function MFontFont.Create();overload; +begin + self.Create(nil, "a", "defRPr"); +end; + +function MFontFont.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function MFontFont.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function MFontFont.Init();override; +begin + self.XmlAttrScript := new OpenXmlAttribute(nil, "script", nil); + self.XmlAttrTypeface := new OpenXmlAttribute(nil, "typeface", nil); +end; + +function MFontFont.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrScript, + self.XmlAttrTypeface, + ); +end; + +function MFontFont.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function MFontFont.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function MFontFont.Copy(_obj: MFontFont);override; +begin + if not ifnil(_obj.XmlAttrScript.Value) then + self.XmlAttrScript.Value := _obj.XmlAttrScript.Value; + if not ifnil(_obj.XmlAttrTypeface.Value) then + self.XmlAttrTypeface.Value := _obj.XmlAttrTypeface.Value; +end; + +function MFontFont.ReadXmlAttrScript(); +begin + return self.XmlAttrScript.Value; +end; + +function MFontFont.WriteXmlAttrScript(_value); +begin + self.XmlAttrScript.Value := _value; +end; + +function MFontFont.ReadXmlAttrTypeface(); +begin + return self.XmlAttrTypeface.Value; +end; + +function MFontFont.WriteXmlAttrTypeface(_value); +begin + self.XmlAttrTypeface.Value := _value; +end; diff --git a/autoclass/docx/MathPr@DOCX.tsf b/autoclass/docx/MathPr@DOCX.tsf new file mode 100644 index 0000000..801f373 --- /dev/null +++ b/autoclass/docx/MathPr@DOCX.tsf @@ -0,0 +1,162 @@ +type MathPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: MathPr);override; + + property DispDef read ReadXmlChildDispDef write WriteXmlChildDispDef; + function ReadXmlChildDispDef(); + function WriteXmlChildDispDef(_value); + +public + // Attributes + + // Children + MathFont: PureWVal; + BrkBin: PureWVal; + BrkBinSub: PureWVal; + SmallFrac: PureWVal; + XmlChildDispDef: OpenXmlEmpty; + LMargin: PureWVal; + RMargin: PureWVal; + DefJc: PureWVal; + WrapIndent: PureWVal; + IntLim: PureWVal; + NaryLim: PureWVal; + +end; + +function MathPr.Create();overload; +begin + self.Create(nil, "m", "mathPr"); +end; + +function MathPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function MathPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function MathPr.Init();override; +begin + self.MathFont := new PureWVal(self, self.Prefix, "mathFont"); + self.BrkBin := new PureWVal(self, self.Prefix, "brkBin"); + self.BrkBinSub := new PureWVal(self, self.Prefix, "brkBinSub"); + self.SmallFrac := new PureWVal(self, self.Prefix, "smallFrac"); + self.XmlChildDispDef := new OpenXmlEmpty(self, self.Prefix, "dispDef"); + self.LMargin := new PureWVal(self, self.Prefix, "lMargin"); + self.RMargin := new PureWVal(self, self.Prefix, "rMargin"); + self.DefJc := new PureWVal(self, self.Prefix, "defJc"); + self.WrapIndent := new PureWVal(self, self.Prefix, "wrapIndent"); + self.IntLim := new PureWVal(self, self.Prefix, "intLim"); + self.NaryLim := new PureWVal(self, self.Prefix, "naryLim"); +end; + +function MathPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function MathPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.MathFont, + 1: self.BrkBin, + 2: self.BrkBinSub, + 3: self.SmallFrac, + 4: self.XmlChildDispDef, + 5: self.LMargin, + 6: self.RMargin, + 7: self.DefJc, + 8: self.WrapIndent, + 9: self.IntLim, + 10: self.NaryLim, + ); + sorted_child_ := array( + "": -1, + self.MathFont.ElementName: 0, + self.BrkBin.ElementName: 1, + self.BrkBinSub.ElementName: 2, + self.SmallFrac.ElementName: 3, + self.XmlChildDispDef.ElementName: 4, + self.LMargin.ElementName: 5, + self.RMargin.ElementName: 6, + self.DefJc.ElementName: 7, + self.WrapIndent.ElementName: 8, + self.IntLim.ElementName: 9, + self.NaryLim.ElementName: 10, + ); +end; + +function MathPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function MathPr.Copy(_obj: MathPr);override; +begin + self.MathFont.Copy(_obj.MathFont); + self.BrkBin.Copy(_obj.BrkBin); + self.BrkBinSub.Copy(_obj.BrkBinSub); + self.SmallFrac.Copy(_obj.SmallFrac); + self.XmlChildDispDef.Copy(_obj.XmlChildDispDef); + self.LMargin.Copy(_obj.LMargin); + self.RMargin.Copy(_obj.RMargin); + self.DefJc.Copy(_obj.DefJc); + self.WrapIndent.Copy(_obj.WrapIndent); + self.IntLim.Copy(_obj.IntLim); + self.NaryLim.Copy(_obj.NaryLim); +end; + +function MathPr.ReadXmlChildDispDef(); +begin + return ifnil(self.XmlChildDispDef.Value) ? false : true; +end; + +function MathPr.WriteXmlChildDispDef(_value); +begin + self.XmlChildDispDef.Value := _value; +end; diff --git a/autoclass/docx/Miter@DOCX.tsf b/autoclass/docx/Miter@DOCX.tsf new file mode 100644 index 0000000..ac94705 --- /dev/null +++ b/autoclass/docx/Miter@DOCX.tsf @@ -0,0 +1,81 @@ +type Miter = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Miter);override; + + property Lim read ReadXmlAttrLim write WriteXmlAttrLim; + function ReadXmlAttrLim(); + function WriteXmlAttrLim(_value); + +public + // Attributes + XmlAttrLim: OpenXmlAttribute; + + // Children + +end; + +function Miter.Create();overload; +begin + self.Create(nil, "a", "miter"); +end; + +function Miter.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Miter.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Miter.Init();override; +begin + self.XmlAttrLim := new OpenXmlAttribute(nil, "lim", nil); +end; + +function Miter.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrLim, + ); +end; + +function Miter.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Miter.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Miter.Copy(_obj: Miter);override; +begin + if not ifnil(_obj.XmlAttrLim.Value) then + self.XmlAttrLim.Value := _obj.XmlAttrLim.Value; +end; + +function Miter.ReadXmlAttrLim(); +begin + return self.XmlAttrLim.Value; +end; + +function Miter.WriteXmlAttrLim(_value); +begin + self.XmlAttrLim.Value := _value; +end; diff --git a/autoclass/docx/Modified@DOCX.tsf b/autoclass/docx/Modified@DOCX.tsf new file mode 100644 index 0000000..e681047 --- /dev/null +++ b/autoclass/docx/Modified@DOCX.tsf @@ -0,0 +1,71 @@ +type Modified = class(OpenXmlPcdata) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Modified);override; + + property XsiType read ReadXmlAttrXsiType write WriteXmlAttrXsiType; + function ReadXmlAttrXsiType(); + function WriteXmlAttrXsiType(_value); + +public + // Attributes + XmlAttrXsiType: OpenXmlAttribute; + + // Children + +end; + +function Modified.Create();overload; +begin + self.Create(nil, "dcterms", "modified"); +end; + +function Modified.Create(_node: XmlNode);overload; +begin + class(OpenXmlPcdata).Create(_node: XmlNode); +end; + +function Modified.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlPcdata).Create(_parent, _prefix, _local_name); +end; + +function Modified.Init();override; +begin + self.XmlAttrXsiType := new OpenXmlAttribute("xsi", "type", nil); +end; + +function Modified.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXsiType, + ); +end; + +function Modified.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Modified.Copy(_obj: Modified);override; +begin + if not ifnil(_obj.XmlAttrXsiType.Value) then + self.XmlAttrXsiType.Value := _obj.XmlAttrXsiType.Value; +end; + +function Modified.ReadXmlAttrXsiType(); +begin + return self.XmlAttrXsiType.Value; +end; + +function Modified.WriteXmlAttrXsiType(_value); +begin + self.XmlAttrXsiType.Value := _value; +end; diff --git a/autoclass/docx/Num@DOCX.tsf b/autoclass/docx/Num@DOCX.tsf new file mode 100644 index 0000000..b1b0030 --- /dev/null +++ b/autoclass/docx/Num@DOCX.tsf @@ -0,0 +1,117 @@ +type Num = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Num);override; + + property NumId read ReadXmlAttrNumId write WriteXmlAttrNumId; + function ReadXmlAttrNumId(); + function WriteXmlAttrNumId(_value); + +public + // Attributes + XmlAttrNumId: OpenXmlAttribute; + + // Children + AbstractNumId: PureWVal; + +end; + +function Num.Create();overload; +begin + self.Create(nil, "w", "num"); +end; + +function Num.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Num.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Num.Init();override; +begin + self.XmlAttrNumId := new OpenXmlAttribute(self.Prefix, "numId", nil); + self.AbstractNumId := new PureWVal(self, self.Prefix, "abstractNumId"); +end; + +function Num.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrNumId, + ); +end; + +function Num.InitChildren();override; +begin + child_elements_ := array( + 0: self.AbstractNumId, + ); + sorted_child_ := array( + "": -1, + self.AbstractNumId.ElementName: 0, + ); +end; + +function Num.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Num.Copy(_obj: Num);override; +begin + if not ifnil(_obj.XmlAttrNumId.Value) then + self.XmlAttrNumId.Value := _obj.XmlAttrNumId.Value; + self.AbstractNumId.Copy(_obj.AbstractNumId); +end; + +function Num.ReadXmlAttrNumId(); +begin + return self.XmlAttrNumId.Value; +end; + +function Num.WriteXmlAttrNumId(_value); +begin + self.XmlAttrNumId.Value := _value; +end; diff --git a/autoclass/docx/NumFmt@DOCX.tsf b/autoclass/docx/NumFmt@DOCX.tsf new file mode 100644 index 0000000..3416c44 --- /dev/null +++ b/autoclass/docx/NumFmt@DOCX.tsf @@ -0,0 +1,99 @@ +type NumFmt = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: NumFmt);override; + + property FormatCode read ReadXmlAttrFormatCode write WriteXmlAttrFormatCode; + property SourceLinked read ReadXmlAttrSourceLinked write WriteXmlAttrSourceLinked; + function ReadXmlAttrFormatCode(); + function WriteXmlAttrFormatCode(_value); + function ReadXmlAttrSourceLinked(); + function WriteXmlAttrSourceLinked(_value); + +public + // Attributes + XmlAttrFormatCode: OpenXmlAttribute; + XmlAttrSourceLinked: OpenXmlAttribute; + + // Children + +end; + +function NumFmt.Create();overload; +begin + self.Create(nil, "c", "numFmt"); +end; + +function NumFmt.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function NumFmt.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NumFmt.Init();override; +begin + self.XmlAttrFormatCode := new OpenXmlAttribute(nil, "formatCode", nil); + self.XmlAttrSourceLinked := new OpenXmlAttribute(nil, "sourceLinked", nil); +end; + +function NumFmt.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrFormatCode, + self.XmlAttrSourceLinked, + ); +end; + +function NumFmt.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function NumFmt.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function NumFmt.Copy(_obj: NumFmt);override; +begin + if not ifnil(_obj.XmlAttrFormatCode.Value) then + self.XmlAttrFormatCode.Value := _obj.XmlAttrFormatCode.Value; + if not ifnil(_obj.XmlAttrSourceLinked.Value) then + self.XmlAttrSourceLinked.Value := _obj.XmlAttrSourceLinked.Value; +end; + +function NumFmt.ReadXmlAttrFormatCode(); +begin + return self.XmlAttrFormatCode.Value; +end; + +function NumFmt.WriteXmlAttrFormatCode(_value); +begin + self.XmlAttrFormatCode.Value := _value; +end; + +function NumFmt.ReadXmlAttrSourceLinked(); +begin + return self.XmlAttrSourceLinked.Value; +end; + +function NumFmt.WriteXmlAttrSourceLinked(_value); +begin + self.XmlAttrSourceLinked.Value := _value; +end; diff --git a/autoclass/docx/NumPr@DOCX.tsf b/autoclass/docx/NumPr@DOCX.tsf new file mode 100644 index 0000000..0ba569b --- /dev/null +++ b/autoclass/docx/NumPr@DOCX.tsf @@ -0,0 +1,103 @@ +type NumPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: NumPr);override; + +public + // Attributes + + // Children + Ilvl: PureWVal; + NumId: PureWVal; + +end; + +function NumPr.Create();overload; +begin + self.Create(nil, "w", "numPr"); +end; + +function NumPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function NumPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NumPr.Init();override; +begin + self.Ilvl := new PureWVal(self, self.Prefix, "ilvl"); + self.NumId := new PureWVal(self, self.Prefix, "numId"); +end; + +function NumPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NumPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Ilvl, + 1: self.NumId, + ); + sorted_child_ := array( + "": -1, + self.Ilvl.ElementName: 0, + self.NumId.ElementName: 1, + ); +end; + +function NumPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NumPr.Copy(_obj: NumPr);override; +begin + self.Ilvl.Copy(_obj.Ilvl); + self.NumId.Copy(_obj.NumId); +end; diff --git a/autoclass/docx/NumRef@DOCX.tsf b/autoclass/docx/NumRef@DOCX.tsf new file mode 100644 index 0000000..33d9c0c --- /dev/null +++ b/autoclass/docx/NumRef@DOCX.tsf @@ -0,0 +1,103 @@ +type NumRef = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: NumRef);override; + +public + // Attributes + + // Children + F: OpenXmlPcdata; + NumCache: Cache; + +end; + +function NumRef.Create();overload; +begin + self.Create(nil, "c", "numRef"); +end; + +function NumRef.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function NumRef.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NumRef.Init();override; +begin + self.F := new OpenXmlPcdata(self, self.Prefix, "f"); + self.NumCache := new Cache(self, self.Prefix, "numCache"); +end; + +function NumRef.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NumRef.InitChildren();override; +begin + child_elements_ := array( + 0: self.F, + 1: self.NumCache, + ); + sorted_child_ := array( + "": -1, + self.F.ElementName: 0, + self.NumCache.ElementName: 1, + ); +end; + +function NumRef.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NumRef.Copy(_obj: NumRef);override; +begin + self.F.Copy(_obj.F); + self.NumCache.Copy(_obj.NumCache); +end; diff --git a/autoclass/docx/Numbering@DOCX.tsf b/autoclass/docx/Numbering@DOCX.tsf new file mode 100644 index 0000000..f9c50ec --- /dev/null +++ b/autoclass/docx/Numbering@DOCX.tsf @@ -0,0 +1,807 @@ +type Numbering = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Numbering);override; + function AddAbstractNum(): AbstractNum; + function AddNum(): Num; + function AppendAbstractNum(): AbstractNum; + function AppendNum(): Num; + + property AbstractNums read ReadAbstractNums; + property Nums read ReadNums; + function ReadAbstractNums(_index); + function ReadNums(_index); + + property XmlnsWpc read ReadXmlAttrXmlnsWpc write WriteXmlAttrXmlnsWpc; + property XmlnsCx read ReadXmlAttrXmlnsCx write WriteXmlAttrXmlnsCx; + property XmlnsCx1 read ReadXmlAttrXmlnsCx1 write WriteXmlAttrXmlnsCx1; + property XmlnsCx2 read ReadXmlAttrXmlnsCx2 write WriteXmlAttrXmlnsCx2; + property XmlnsCx3 read ReadXmlAttrXmlnsCx3 write WriteXmlAttrXmlnsCx3; + property XmlnsCx4 read ReadXmlAttrXmlnsCx4 write WriteXmlAttrXmlnsCx4; + property XmlnsCx5 read ReadXmlAttrXmlnsCx5 write WriteXmlAttrXmlnsCx5; + property XmlnsCx6 read ReadXmlAttrXmlnsCx6 write WriteXmlAttrXmlnsCx6; + property XmlnsCx7 read ReadXmlAttrXmlnsCx7 write WriteXmlAttrXmlnsCx7; + property XmlnsCx8 read ReadXmlAttrXmlnsCx8 write WriteXmlAttrXmlnsCx8; + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsAink read ReadXmlAttrXmlnsAink write WriteXmlAttrXmlnsAink; + property XmlnsAm3d read ReadXmlAttrXmlnsAm3d write WriteXmlAttrXmlnsAm3d; + property XmlnsO read ReadXmlAttrXmlnsO write WriteXmlAttrXmlnsO; + property XmlnsOel read ReadXmlAttrXmlnsOel write WriteXmlAttrXmlnsOel; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsWp14 read ReadXmlAttrXmlnsWp14 write WriteXmlAttrXmlnsWp14; + property XmlnsWp read ReadXmlAttrXmlnsWp write WriteXmlAttrXmlnsWp; + property XmlnsW10 read ReadXmlAttrXmlnsW10 write WriteXmlAttrXmlnsW10; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property XmlnsWpg read ReadXmlAttrXmlnsWpg write WriteXmlAttrXmlnsWpg; + property XmlnsWpi read ReadXmlAttrXmlnsWpi write WriteXmlAttrXmlnsWpi; + property XmlnsWne read ReadXmlAttrXmlnsWne write WriteXmlAttrXmlnsWne; + property XmlnsWps read ReadXmlAttrXmlnsWps write WriteXmlAttrXmlnsWps; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsWpc(); + function WriteXmlAttrXmlnsWpc(_value); + function ReadXmlAttrXmlnsCx(); + function WriteXmlAttrXmlnsCx(_value); + function ReadXmlAttrXmlnsCx1(); + function WriteXmlAttrXmlnsCx1(_value); + function ReadXmlAttrXmlnsCx2(); + function WriteXmlAttrXmlnsCx2(_value); + function ReadXmlAttrXmlnsCx3(); + function WriteXmlAttrXmlnsCx3(_value); + function ReadXmlAttrXmlnsCx4(); + function WriteXmlAttrXmlnsCx4(_value); + function ReadXmlAttrXmlnsCx5(); + function WriteXmlAttrXmlnsCx5(_value); + function ReadXmlAttrXmlnsCx6(); + function WriteXmlAttrXmlnsCx6(_value); + function ReadXmlAttrXmlnsCx7(); + function WriteXmlAttrXmlnsCx7(_value); + function ReadXmlAttrXmlnsCx8(); + function WriteXmlAttrXmlnsCx8(_value); + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsAink(); + function WriteXmlAttrXmlnsAink(_value); + function ReadXmlAttrXmlnsAm3d(); + function WriteXmlAttrXmlnsAm3d(_value); + function ReadXmlAttrXmlnsO(); + function WriteXmlAttrXmlnsO(_value); + function ReadXmlAttrXmlnsOel(); + function WriteXmlAttrXmlnsOel(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsWp14(); + function WriteXmlAttrXmlnsWp14(_value); + function ReadXmlAttrXmlnsWp(); + function WriteXmlAttrXmlnsWp(_value); + function ReadXmlAttrXmlnsW10(); + function WriteXmlAttrXmlnsW10(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrXmlnsWpg(); + function WriteXmlAttrXmlnsWpg(_value); + function ReadXmlAttrXmlnsWpi(); + function WriteXmlAttrXmlnsWpi(_value); + function ReadXmlAttrXmlnsWne(); + function WriteXmlAttrXmlnsWne(_value); + function ReadXmlAttrXmlnsWps(); + function WriteXmlAttrXmlnsWps(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsWpc: OpenXmlAttribute; + XmlAttrXmlnsCx: OpenXmlAttribute; + XmlAttrXmlnsCx1: OpenXmlAttribute; + XmlAttrXmlnsCx2: OpenXmlAttribute; + XmlAttrXmlnsCx3: OpenXmlAttribute; + XmlAttrXmlnsCx4: OpenXmlAttribute; + XmlAttrXmlnsCx5: OpenXmlAttribute; + XmlAttrXmlnsCx6: OpenXmlAttribute; + XmlAttrXmlnsCx7: OpenXmlAttribute; + XmlAttrXmlnsCx8: OpenXmlAttribute; + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsAink: OpenXmlAttribute; + XmlAttrXmlnsAm3d: OpenXmlAttribute; + XmlAttrXmlnsO: OpenXmlAttribute; + XmlAttrXmlnsOel: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsWp14: OpenXmlAttribute; + XmlAttrXmlnsWp: OpenXmlAttribute; + XmlAttrXmlnsW10: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrXmlnsWpg: OpenXmlAttribute; + XmlAttrXmlnsWpi: OpenXmlAttribute; + XmlAttrXmlnsWne: OpenXmlAttribute; + XmlAttrXmlnsWps: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + +end; + +function Numbering.Create();overload; +begin + self.Create(nil, "w", "numbering"); +end; + +function Numbering.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Numbering.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Numbering.Init();override; +begin + self.XmlAttrXmlnsWpc := new OpenXmlAttribute("xmlns", "wpc", nil); + self.XmlAttrXmlnsCx := new OpenXmlAttribute("xmlns", "cx", nil); + self.XmlAttrXmlnsCx1 := new OpenXmlAttribute("xmlns", "cx1", nil); + self.XmlAttrXmlnsCx2 := new OpenXmlAttribute("xmlns", "cx2", nil); + self.XmlAttrXmlnsCx3 := new OpenXmlAttribute("xmlns", "cx3", nil); + self.XmlAttrXmlnsCx4 := new OpenXmlAttribute("xmlns", "cx4", nil); + self.XmlAttrXmlnsCx5 := new OpenXmlAttribute("xmlns", "cx5", nil); + self.XmlAttrXmlnsCx6 := new OpenXmlAttribute("xmlns", "cx6", nil); + self.XmlAttrXmlnsCx7 := new OpenXmlAttribute("xmlns", "cx7", nil); + self.XmlAttrXmlnsCx8 := new OpenXmlAttribute("xmlns", "cx8", nil); + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsAink := new OpenXmlAttribute("xmlns", "aink", nil); + self.XmlAttrXmlnsAm3d := new OpenXmlAttribute("xmlns", "am3d", nil); + self.XmlAttrXmlnsO := new OpenXmlAttribute("xmlns", "o", nil); + self.XmlAttrXmlnsOel := new OpenXmlAttribute("xmlns", "oel", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsWp14 := new OpenXmlAttribute("xmlns", "wp14", nil); + self.XmlAttrXmlnsWp := new OpenXmlAttribute("xmlns", "wp", nil); + self.XmlAttrXmlnsW10 := new OpenXmlAttribute("xmlns", "w10", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrXmlnsWpg := new OpenXmlAttribute("xmlns", "wpg", nil); + self.XmlAttrXmlnsWpi := new OpenXmlAttribute("xmlns", "wpi", nil); + self.XmlAttrXmlnsWne := new OpenXmlAttribute("xmlns", "wne", nil); + self.XmlAttrXmlnsWps := new OpenXmlAttribute("xmlns", "wps", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); +end; + +function Numbering.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsWpc, + self.XmlAttrXmlnsCx, + self.XmlAttrXmlnsCx1, + self.XmlAttrXmlnsCx2, + self.XmlAttrXmlnsCx3, + self.XmlAttrXmlnsCx4, + self.XmlAttrXmlnsCx5, + self.XmlAttrXmlnsCx6, + self.XmlAttrXmlnsCx7, + self.XmlAttrXmlnsCx8, + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsAink, + self.XmlAttrXmlnsAm3d, + self.XmlAttrXmlnsO, + self.XmlAttrXmlnsOel, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsWp14, + self.XmlAttrXmlnsWp, + self.XmlAttrXmlnsW10, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrXmlnsWpg, + self.XmlAttrXmlnsWpi, + self.XmlAttrXmlnsWne, + self.XmlAttrXmlnsWps, + self.XmlAttrMcIgnorable, + ); +end; + +function Numbering.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Numbering.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "abstractNum": obj := self.AppendAbstractNum(); + pre + "num": obj := self.AppendNum(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Numbering.Copy(_obj: Numbering);override; +begin + if not ifnil(_obj.XmlAttrXmlnsWpc.Value) then + self.XmlAttrXmlnsWpc.Value := _obj.XmlAttrXmlnsWpc.Value; + if not ifnil(_obj.XmlAttrXmlnsCx.Value) then + self.XmlAttrXmlnsCx.Value := _obj.XmlAttrXmlnsCx.Value; + if not ifnil(_obj.XmlAttrXmlnsCx1.Value) then + self.XmlAttrXmlnsCx1.Value := _obj.XmlAttrXmlnsCx1.Value; + if not ifnil(_obj.XmlAttrXmlnsCx2.Value) then + self.XmlAttrXmlnsCx2.Value := _obj.XmlAttrXmlnsCx2.Value; + if not ifnil(_obj.XmlAttrXmlnsCx3.Value) then + self.XmlAttrXmlnsCx3.Value := _obj.XmlAttrXmlnsCx3.Value; + if not ifnil(_obj.XmlAttrXmlnsCx4.Value) then + self.XmlAttrXmlnsCx4.Value := _obj.XmlAttrXmlnsCx4.Value; + if not ifnil(_obj.XmlAttrXmlnsCx5.Value) then + self.XmlAttrXmlnsCx5.Value := _obj.XmlAttrXmlnsCx5.Value; + if not ifnil(_obj.XmlAttrXmlnsCx6.Value) then + self.XmlAttrXmlnsCx6.Value := _obj.XmlAttrXmlnsCx6.Value; + if not ifnil(_obj.XmlAttrXmlnsCx7.Value) then + self.XmlAttrXmlnsCx7.Value := _obj.XmlAttrXmlnsCx7.Value; + if not ifnil(_obj.XmlAttrXmlnsCx8.Value) then + self.XmlAttrXmlnsCx8.Value := _obj.XmlAttrXmlnsCx8.Value; + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsAink.Value) then + self.XmlAttrXmlnsAink.Value := _obj.XmlAttrXmlnsAink.Value; + if not ifnil(_obj.XmlAttrXmlnsAm3d.Value) then + self.XmlAttrXmlnsAm3d.Value := _obj.XmlAttrXmlnsAm3d.Value; + if not ifnil(_obj.XmlAttrXmlnsO.Value) then + self.XmlAttrXmlnsO.Value := _obj.XmlAttrXmlnsO.Value; + if not ifnil(_obj.XmlAttrXmlnsOel.Value) then + self.XmlAttrXmlnsOel.Value := _obj.XmlAttrXmlnsOel.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsWp14.Value) then + self.XmlAttrXmlnsWp14.Value := _obj.XmlAttrXmlnsWp14.Value; + if not ifnil(_obj.XmlAttrXmlnsWp.Value) then + self.XmlAttrXmlnsWp.Value := _obj.XmlAttrXmlnsWp.Value; + if not ifnil(_obj.XmlAttrXmlnsW10.Value) then + self.XmlAttrXmlnsW10.Value := _obj.XmlAttrXmlnsW10.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrXmlnsWpg.Value) then + self.XmlAttrXmlnsWpg.Value := _obj.XmlAttrXmlnsWpg.Value; + if not ifnil(_obj.XmlAttrXmlnsWpi.Value) then + self.XmlAttrXmlnsWpi.Value := _obj.XmlAttrXmlnsWpi.Value; + if not ifnil(_obj.XmlAttrXmlnsWne.Value) then + self.XmlAttrXmlnsWne.Value := _obj.XmlAttrXmlnsWne.Value; + if not ifnil(_obj.XmlAttrXmlnsWps.Value) then + self.XmlAttrXmlnsWps.Value := _obj.XmlAttrXmlnsWps.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; +end; + +function Numbering.AddAbstractNum(): AbstractNum; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "abstractNum" then break; + end + obj := new AbstractNum(self, self.Prefix, "abstractNum"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Numbering.AddNum(): Num; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "num" then break; + end + obj := new Num(self, self.Prefix, "num"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Numbering.AppendAbstractNum(): AbstractNum; +begin + obj := new AbstractNum(self, self.Prefix, "abstractNum"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Numbering.AppendNum(): Num; +begin + obj := new Num(self, self.Prefix, "num"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Numbering.ReadAbstractNums(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "abstractNum" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Numbering.ReadNums(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "num" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Numbering.ReadXmlAttrXmlnsWpc(); +begin + return self.XmlAttrXmlnsWpc.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWpc(_value); +begin + self.XmlAttrXmlnsWpc.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx(); +begin + return self.XmlAttrXmlnsCx.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx(_value); +begin + self.XmlAttrXmlnsCx.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx1(); +begin + return self.XmlAttrXmlnsCx1.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx1(_value); +begin + self.XmlAttrXmlnsCx1.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx2(); +begin + return self.XmlAttrXmlnsCx2.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx2(_value); +begin + self.XmlAttrXmlnsCx2.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx3(); +begin + return self.XmlAttrXmlnsCx3.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx3(_value); +begin + self.XmlAttrXmlnsCx3.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx4(); +begin + return self.XmlAttrXmlnsCx4.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx4(_value); +begin + self.XmlAttrXmlnsCx4.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx5(); +begin + return self.XmlAttrXmlnsCx5.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx5(_value); +begin + self.XmlAttrXmlnsCx5.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx6(); +begin + return self.XmlAttrXmlnsCx6.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx6(_value); +begin + self.XmlAttrXmlnsCx6.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx7(); +begin + return self.XmlAttrXmlnsCx7.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx7(_value); +begin + self.XmlAttrXmlnsCx7.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsCx8(); +begin + return self.XmlAttrXmlnsCx8.Value; +end; + +function Numbering.WriteXmlAttrXmlnsCx8(_value); +begin + self.XmlAttrXmlnsCx8.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Numbering.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsAink(); +begin + return self.XmlAttrXmlnsAink.Value; +end; + +function Numbering.WriteXmlAttrXmlnsAink(_value); +begin + self.XmlAttrXmlnsAink.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsAm3d(); +begin + return self.XmlAttrXmlnsAm3d.Value; +end; + +function Numbering.WriteXmlAttrXmlnsAm3d(_value); +begin + self.XmlAttrXmlnsAm3d.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsO(); +begin + return self.XmlAttrXmlnsO.Value; +end; + +function Numbering.WriteXmlAttrXmlnsO(_value); +begin + self.XmlAttrXmlnsO.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsOel(); +begin + return self.XmlAttrXmlnsOel.Value; +end; + +function Numbering.WriteXmlAttrXmlnsOel(_value); +begin + self.XmlAttrXmlnsOel.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Numbering.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Numbering.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Numbering.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsWp14(); +begin + return self.XmlAttrXmlnsWp14.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWp14(_value); +begin + self.XmlAttrXmlnsWp14.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsWp(); +begin + return self.XmlAttrXmlnsWp.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWp(_value); +begin + self.XmlAttrXmlnsWp.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW10(); +begin + return self.XmlAttrXmlnsW10.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW10(_value); +begin + self.XmlAttrXmlnsW10.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Numbering.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsWpg(); +begin + return self.XmlAttrXmlnsWpg.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWpg(_value); +begin + self.XmlAttrXmlnsWpg.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsWpi(); +begin + return self.XmlAttrXmlnsWpi.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWpi(_value); +begin + self.XmlAttrXmlnsWpi.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsWne(); +begin + return self.XmlAttrXmlnsWne.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWne(_value); +begin + self.XmlAttrXmlnsWne.Value := _value; +end; + +function Numbering.ReadXmlAttrXmlnsWps(); +begin + return self.XmlAttrXmlnsWps.Value; +end; + +function Numbering.WriteXmlAttrXmlnsWps(_value); +begin + self.XmlAttrXmlnsWps.Value := _value; +end; + +function Numbering.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Numbering.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/NvPicPr@DOCX.tsf b/autoclass/docx/NvPicPr@DOCX.tsf new file mode 100644 index 0000000..175011c --- /dev/null +++ b/autoclass/docx/NvPicPr@DOCX.tsf @@ -0,0 +1,103 @@ +type NvPicPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: NvPicPr);override; + +public + // Attributes + + // Children + CNvPr: CNvPr; + CNvPicPr: CNvPicPr; + +end; + +function NvPicPr.Create();overload; +begin + self.Create(nil, "pic", "nvPicPr"); +end; + +function NvPicPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function NvPicPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NvPicPr.Init();override; +begin + self.CNvPr := new CNvPr(self, "pic", "cNvPr"); + self.CNvPicPr := new CNvPicPr(self, "pic", "cNvPicPr"); +end; + +function NvPicPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NvPicPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.CNvPr, + 1: self.CNvPicPr, + ); + sorted_child_ := array( + "": -1, + self.CNvPr.ElementName: 0, + self.CNvPicPr.ElementName: 1, + ); +end; + +function NvPicPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NvPicPr.Copy(_obj: NvPicPr);override; +begin + self.CNvPr.Copy(_obj.CNvPr); + self.CNvPicPr.Copy(_obj.CNvPicPr); +end; diff --git a/autoclass/docx/OuterShdw@DOCX.tsf b/autoclass/docx/OuterShdw@DOCX.tsf new file mode 100644 index 0000000..6789556 --- /dev/null +++ b/autoclass/docx/OuterShdw@DOCX.tsf @@ -0,0 +1,189 @@ +type OuterShdw = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: OuterShdw);override; + + property BlurRad read ReadXmlAttrBlurRad write WriteXmlAttrBlurRad; + property Dist read ReadXmlAttrDist write WriteXmlAttrDist; + property Dir read ReadXmlAttrDir write WriteXmlAttrDir; + property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; + property RotWithShape read ReadXmlAttrRotWithShape write WriteXmlAttrRotWithShape; + function ReadXmlAttrBlurRad(); + function WriteXmlAttrBlurRad(_value); + function ReadXmlAttrDist(); + function WriteXmlAttrDist(_value); + function ReadXmlAttrDir(); + function WriteXmlAttrDir(_value); + function ReadXmlAttrAlgn(); + function WriteXmlAttrAlgn(_value); + function ReadXmlAttrRotWithShape(); + function WriteXmlAttrRotWithShape(_value); + +public + // Attributes + XmlAttrBlurRad: OpenXmlAttribute; + XmlAttrDist: OpenXmlAttribute; + XmlAttrDir: OpenXmlAttribute; + XmlAttrAlgn: OpenXmlAttribute; + XmlAttrRotWithShape: OpenXmlAttribute; + + // Children + SrgbClr: SrgbClr; + +end; + +function OuterShdw.Create();overload; +begin + self.Create(nil, "a", "outerShdw"); +end; + +function OuterShdw.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function OuterShdw.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function OuterShdw.Init();override; +begin + self.XmlAttrBlurRad := new OpenXmlAttribute(nil, "blurRad", nil); + self.XmlAttrDist := new OpenXmlAttribute(nil, "dist", nil); + self.XmlAttrDir := new OpenXmlAttribute(nil, "dir", nil); + self.XmlAttrAlgn := new OpenXmlAttribute(nil, "algn", nil); + self.XmlAttrRotWithShape := new OpenXmlAttribute(nil, "rotWithShape", nil); + self.SrgbClr := new SrgbClr(self, self.Prefix, "srgbClr"); +end; + +function OuterShdw.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrBlurRad, + self.XmlAttrDist, + self.XmlAttrDir, + self.XmlAttrAlgn, + self.XmlAttrRotWithShape, + ); +end; + +function OuterShdw.InitChildren();override; +begin + child_elements_ := array( + 0: self.SrgbClr, + ); + sorted_child_ := array( + "": -1, + self.SrgbClr.ElementName: 0, + ); +end; + +function OuterShdw.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function OuterShdw.Copy(_obj: OuterShdw);override; +begin + if not ifnil(_obj.XmlAttrBlurRad.Value) then + self.XmlAttrBlurRad.Value := _obj.XmlAttrBlurRad.Value; + if not ifnil(_obj.XmlAttrDist.Value) then + self.XmlAttrDist.Value := _obj.XmlAttrDist.Value; + if not ifnil(_obj.XmlAttrDir.Value) then + self.XmlAttrDir.Value := _obj.XmlAttrDir.Value; + if not ifnil(_obj.XmlAttrAlgn.Value) then + self.XmlAttrAlgn.Value := _obj.XmlAttrAlgn.Value; + if not ifnil(_obj.XmlAttrRotWithShape.Value) then + self.XmlAttrRotWithShape.Value := _obj.XmlAttrRotWithShape.Value; + self.SrgbClr.Copy(_obj.SrgbClr); +end; + +function OuterShdw.ReadXmlAttrBlurRad(); +begin + return self.XmlAttrBlurRad.Value; +end; + +function OuterShdw.WriteXmlAttrBlurRad(_value); +begin + self.XmlAttrBlurRad.Value := _value; +end; + +function OuterShdw.ReadXmlAttrDist(); +begin + return self.XmlAttrDist.Value; +end; + +function OuterShdw.WriteXmlAttrDist(_value); +begin + self.XmlAttrDist.Value := _value; +end; + +function OuterShdw.ReadXmlAttrDir(); +begin + return self.XmlAttrDir.Value; +end; + +function OuterShdw.WriteXmlAttrDir(_value); +begin + self.XmlAttrDir.Value := _value; +end; + +function OuterShdw.ReadXmlAttrAlgn(); +begin + return self.XmlAttrAlgn.Value; +end; + +function OuterShdw.WriteXmlAttrAlgn(_value); +begin + self.XmlAttrAlgn.Value := _value; +end; + +function OuterShdw.ReadXmlAttrRotWithShape(); +begin + return self.XmlAttrRotWithShape.Value; +end; + +function OuterShdw.WriteXmlAttrRotWithShape(_value); +begin + self.XmlAttrRotWithShape.Value := _value; +end; diff --git a/autoclass/docx/P@DOCX.tsf b/autoclass/docx/P@DOCX.tsf new file mode 100644 index 0000000..ee18a00 --- /dev/null +++ b/autoclass/docx/P@DOCX.tsf @@ -0,0 +1,454 @@ +type P = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: P);override; + function AddR(): R; + function AddCommentRangeStart(): CommentRange; + function AddCommentRangeEnd(): CommentRange; + function AddHyperLink(): HyperLink; + function AddBookmarkStart(): Bookmark; + function AddBookmarkEnd(): Bookmark; + function AppendR(): R; + function AppendCommentRangeStart(): CommentRange; + function AppendCommentRangeEnd(): CommentRange; + function AppendHyperLink(): HyperLink; + function AppendBookmarkStart(): Bookmark; + function AppendBookmarkEnd(): Bookmark; + + property Rs read ReadRs; + property CommentRangeStarts read ReadCommentRangeStarts; + property CommentRangeEnds read ReadCommentRangeEnds; + property HyperLinks read ReadHyperLinks; + property BookmarkStarts read ReadBookmarkStarts; + property BookmarkEnds read ReadBookmarkEnds; + function ReadRs(_index); + function ReadCommentRangeStarts(_index); + function ReadCommentRangeEnds(_index); + function ReadHyperLinks(_index); + function ReadBookmarkStarts(_index); + function ReadBookmarkEnds(_index); + + property W14ParaId read ReadXmlAttrW14ParaId write WriteXmlAttrW14ParaId; + property W14TextId read ReadXmlAttrW14TextId write WriteXmlAttrW14TextId; + property WRsidR read ReadXmlAttrWRsidR write WriteXmlAttrWRsidR; + property WRsidRPr read ReadXmlAttrWRsidRPr write WriteXmlAttrWRsidRPr; + property WRsidRDefault read ReadXmlAttrWRsidRDefault write WriteXmlAttrWRsidRDefault; + property WRsidP read ReadXmlAttrWRsidP write WriteXmlAttrWRsidP; + function ReadXmlAttrW14ParaId(); + function WriteXmlAttrW14ParaId(_value); + function ReadXmlAttrW14TextId(); + function WriteXmlAttrW14TextId(_value); + function ReadXmlAttrWRsidR(); + function WriteXmlAttrWRsidR(_value); + function ReadXmlAttrWRsidRPr(); + function WriteXmlAttrWRsidRPr(_value); + function ReadXmlAttrWRsidRDefault(); + function WriteXmlAttrWRsidRDefault(_value); + function ReadXmlAttrWRsidP(); + function WriteXmlAttrWRsidP(_value); + +public + // Attributes + XmlAttrW14ParaId: OpenXmlAttribute; + XmlAttrW14TextId: OpenXmlAttribute; + XmlAttrWRsidR: OpenXmlAttribute; + XmlAttrWRsidRPr: OpenXmlAttribute; + XmlAttrWRsidRDefault: OpenXmlAttribute; + XmlAttrWRsidP: OpenXmlAttribute; + + // Children + PPr: PPr; + +end; + +function P.Create();overload; +begin + self.Create(nil, "w", "p"); +end; + +function P.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function P.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function P.Init();override; +begin + self.XmlAttrW14ParaId := new OpenXmlAttribute("w14", "paraId", nil); + self.XmlAttrW14TextId := new OpenXmlAttribute("w14", "textId", nil); + self.XmlAttrWRsidR := new OpenXmlAttribute("w", "rsidR", nil); + self.XmlAttrWRsidRPr := new OpenXmlAttribute("w", "rsidRPr", nil); + self.XmlAttrWRsidRDefault := new OpenXmlAttribute("w", "rsidRDefault", nil); + self.XmlAttrWRsidP := new OpenXmlAttribute("w", "rsidP", nil); + self.PPr := new PPr(self, self.Prefix, "pPr"); +end; + +function P.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrW14ParaId, + self.XmlAttrW14TextId, + self.XmlAttrWRsidR, + self.XmlAttrWRsidRPr, + self.XmlAttrWRsidRDefault, + self.XmlAttrWRsidP, + ); +end; + +function P.InitChildren();override; +begin + child_elements_ := array( + 0: self.PPr, + ); + sorted_child_ := array( + "": -1, + self.PPr.ElementName: 0, + ); +end; + +function P.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "r": obj := self.AppendR(); + pre + "commentRangeStart": obj := self.AppendCommentRangeStart(); + pre + "commentRangeEnd": obj := self.AppendCommentRangeEnd(); + pre + "hyperlink": obj := self.AppendHyperLink(); + pre + "bookmarkStart": obj := self.AppendBookmarkStart(); + pre + "bookmarkEnd": obj := self.AppendBookmarkEnd(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function P.Copy(_obj: P);override; +begin + if not ifnil(_obj.XmlAttrW14ParaId.Value) then + self.XmlAttrW14ParaId.Value := _obj.XmlAttrW14ParaId.Value; + if not ifnil(_obj.XmlAttrW14TextId.Value) then + self.XmlAttrW14TextId.Value := _obj.XmlAttrW14TextId.Value; + if not ifnil(_obj.XmlAttrWRsidR.Value) then + self.XmlAttrWRsidR.Value := _obj.XmlAttrWRsidR.Value; + if not ifnil(_obj.XmlAttrWRsidRPr.Value) then + self.XmlAttrWRsidRPr.Value := _obj.XmlAttrWRsidRPr.Value; + if not ifnil(_obj.XmlAttrWRsidRDefault.Value) then + self.XmlAttrWRsidRDefault.Value := _obj.XmlAttrWRsidRDefault.Value; + if not ifnil(_obj.XmlAttrWRsidP.Value) then + self.XmlAttrWRsidP.Value := _obj.XmlAttrWRsidP.Value; + self.PPr.Copy(_obj.PPr); +end; + +function P.AddR(): R; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "r" then break; + end + obj := new R(self, self.Prefix, "r"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AddCommentRangeStart(): CommentRange; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "commentRangeStart" then break; + end + obj := new CommentRange(self, self.Prefix, "commentRangeStart"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AddCommentRangeEnd(): CommentRange; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "commentRangeEnd" then break; + end + obj := new CommentRange(self, self.Prefix, "commentRangeEnd"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AddHyperLink(): HyperLink; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "hyperlink" then break; + end + obj := new HyperLink(self, self.Prefix, "hyperlink"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AddBookmarkStart(): Bookmark; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "bookmarkStart" then break; + end + obj := new Bookmark(self, self.Prefix, "bookmarkStart"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AddBookmarkEnd(): Bookmark; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "bookmarkEnd" then break; + end + obj := new Bookmark(self, self.Prefix, "bookmarkEnd"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AppendR(): R; +begin + obj := new R(self, self.Prefix, "r"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.AppendCommentRangeStart(): CommentRange; +begin + obj := new CommentRange(self, self.Prefix, "commentRangeStart"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.AppendCommentRangeEnd(): CommentRange; +begin + obj := new CommentRange(self, self.Prefix, "commentRangeEnd"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.AppendHyperLink(): HyperLink; +begin + obj := new HyperLink(self, self.Prefix, "hyperlink"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.AppendBookmarkStart(): Bookmark; +begin + obj := new Bookmark(self, self.Prefix, "bookmarkStart"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.AppendBookmarkEnd(): Bookmark; +begin + obj := new Bookmark(self, self.Prefix, "bookmarkEnd"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.ReadRs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "r" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function P.ReadCommentRangeStarts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "commentRangeStart" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function P.ReadCommentRangeEnds(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "commentRangeEnd" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function P.ReadHyperLinks(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "hyperlink" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function P.ReadBookmarkStarts(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "bookmarkStart" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function P.ReadBookmarkEnds(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "bookmarkEnd" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function P.ReadXmlAttrW14ParaId(); +begin + return self.XmlAttrW14ParaId.Value; +end; + +function P.WriteXmlAttrW14ParaId(_value); +begin + self.XmlAttrW14ParaId.Value := _value; +end; + +function P.ReadXmlAttrW14TextId(); +begin + return self.XmlAttrW14TextId.Value; +end; + +function P.WriteXmlAttrW14TextId(_value); +begin + self.XmlAttrW14TextId.Value := _value; +end; + +function P.ReadXmlAttrWRsidR(); +begin + return self.XmlAttrWRsidR.Value; +end; + +function P.WriteXmlAttrWRsidR(_value); +begin + self.XmlAttrWRsidR.Value := _value; +end; + +function P.ReadXmlAttrWRsidRPr(); +begin + return self.XmlAttrWRsidRPr.Value; +end; + +function P.WriteXmlAttrWRsidRPr(_value); +begin + self.XmlAttrWRsidRPr.Value := _value; +end; + +function P.ReadXmlAttrWRsidRDefault(); +begin + return self.XmlAttrWRsidRDefault.Value; +end; + +function P.WriteXmlAttrWRsidRDefault(_value); +begin + self.XmlAttrWRsidRDefault.Value := _value; +end; + +function P.ReadXmlAttrWRsidP(); +begin + return self.XmlAttrWRsidP.Value; +end; + +function P.WriteXmlAttrWRsidP(_value); +begin + self.XmlAttrWRsidP.Value := _value; +end; diff --git a/autoclass/docx/PBdr@DOCX.tsf b/autoclass/docx/PBdr@DOCX.tsf new file mode 100644 index 0000000..c16152e --- /dev/null +++ b/autoclass/docx/PBdr@DOCX.tsf @@ -0,0 +1,98 @@ +type PBdr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PBdr);override; + +public + // Attributes + + // Children + Top: PureVal; + +end; + +function PBdr.Create();overload; +begin + self.Create(nil, "w", "pBdr"); +end; + +function PBdr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PBdr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PBdr.Init();override; +begin + self.Top := new PureVal(self, self.Prefix, "top"); +end; + +function PBdr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function PBdr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Top, + ); + sorted_child_ := array( + "": -1, + self.Top.ElementName: 0, + ); +end; + +function PBdr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PBdr.Copy(_obj: PBdr);override; +begin + self.Top.Copy(_obj.Top); +end; diff --git a/autoclass/docx/PPr@DOCX.tsf b/autoclass/docx/PPr@DOCX.tsf new file mode 100644 index 0000000..d4c84fa --- /dev/null +++ b/autoclass/docx/PPr@DOCX.tsf @@ -0,0 +1,236 @@ +type PPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PPr);override; + + property WidowControl read ReadXmlChildWidowControl write WriteXmlChildWidowControl; + property KeepNext read ReadXmlChildKeepNext write WriteXmlChildKeepNext; + property KeepLines read ReadXmlChildKeepLines write WriteXmlChildKeepLines; + property ContextualSpacing read ReadXmlChildContextualSpacing write WriteXmlChildContextualSpacing; + function ReadXmlChildWidowControl(); + function WriteXmlChildWidowControl(_value); + function ReadXmlChildKeepNext(); + function WriteXmlChildKeepNext(_value); + function ReadXmlChildKeepLines(); + function WriteXmlChildKeepLines(_value); + function ReadXmlChildContextualSpacing(); + function WriteXmlChildContextualSpacing(_value); + +public + // Attributes + + // Children + SectPr: SectPr; + Tabs: Tabs; + XmlChildWidowControl: OpenXmlEmpty; + SnapToGrid: PureWVal; + PStyle: PureWVal; + NumPr: NumPr; + Jc: PureWVal; + Ind: Ind; + XmlChildKeepNext: OpenXmlEmpty; + XmlChildKeepLines: OpenXmlEmpty; + AdjustRightInd: PureWVal; + Spacing: Spacing; + OutlineLvl: PureWVal; + AutoSpaceDE: PureWVal; + AutoSpaceDN: PureWVal; + RPr: RPr; + PBdr: PBdr; + XmlChildContextualSpacing: OpenXmlEmpty; + +end; + +function PPr.Create();overload; +begin + self.Create(nil, "w", "pPr"); +end; + +function PPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PPr.Init();override; +begin + self.SectPr := new SectPr(self, self.Prefix, "sectPr"); + self.Tabs := new Tabs(self, self.Prefix, "tabs"); + self.XmlChildWidowControl := new OpenXmlEmpty(self, self.Prefix, "widowControl"); + self.SnapToGrid := new PureWVal(self, self.Prefix, "snapToGrid"); + self.PStyle := new PureWVal(self, self.Prefix, "pStyle"); + self.NumPr := new NumPr(self, self.Prefix, "numPr"); + self.Jc := new PureWVal(self, self.Prefix, "jc"); + self.Ind := new Ind(self, self.Prefix, "ind"); + self.XmlChildKeepNext := new OpenXmlEmpty(self, self.Prefix, "keepNext"); + self.XmlChildKeepLines := new OpenXmlEmpty(self, self.Prefix, "keepLines"); + self.AdjustRightInd := new PureWVal(self, self.Prefix, "adjustRightInd"); + self.Spacing := new Spacing(self, self.Prefix, "spacing"); + self.OutlineLvl := new PureWVal(self, self.Prefix, "outlineLvl"); + self.AutoSpaceDE := new PureWVal(self, self.Prefix, "autoSpaceDE"); + self.AutoSpaceDN := new PureWVal(self, self.Prefix, "autoSpaceDN"); + self.RPr := new RPr(self, self.Prefix, "rPr"); + self.PBdr := new PBdr(self, self.Prefix, "pBdr"); + self.XmlChildContextualSpacing := new OpenXmlEmpty(self, self.Prefix, "contextualSpacing"); +end; + +function PPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function PPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.SectPr, + 1: self.Tabs, + 2: self.XmlChildWidowControl, + 3: self.SnapToGrid, + 4: self.PStyle, + 5: self.NumPr, + 6: self.Jc, + 7: self.Ind, + 8: self.XmlChildKeepNext, + 9: self.XmlChildKeepLines, + 10: self.AdjustRightInd, + 11: self.Spacing, + 12: self.OutlineLvl, + 13: self.AutoSpaceDE, + 14: self.AutoSpaceDN, + 15: self.RPr, + 16: self.PBdr, + 17: self.XmlChildContextualSpacing, + ); + sorted_child_ := array( + "": -1, + self.SectPr.ElementName: 0, + self.Tabs.ElementName: 1, + self.XmlChildWidowControl.ElementName: 2, + self.SnapToGrid.ElementName: 3, + self.PStyle.ElementName: 4, + self.NumPr.ElementName: 5, + self.Jc.ElementName: 6, + self.Ind.ElementName: 7, + self.XmlChildKeepNext.ElementName: 8, + self.XmlChildKeepLines.ElementName: 9, + self.AdjustRightInd.ElementName: 10, + self.Spacing.ElementName: 11, + self.OutlineLvl.ElementName: 12, + self.AutoSpaceDE.ElementName: 13, + self.AutoSpaceDN.ElementName: 14, + self.RPr.ElementName: 15, + self.PBdr.ElementName: 16, + self.XmlChildContextualSpacing.ElementName: 17, + ); +end; + +function PPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PPr.Copy(_obj: PPr);override; +begin + self.SectPr.Copy(_obj.SectPr); + self.Tabs.Copy(_obj.Tabs); + self.XmlChildWidowControl.Copy(_obj.XmlChildWidowControl); + self.SnapToGrid.Copy(_obj.SnapToGrid); + self.PStyle.Copy(_obj.PStyle); + self.NumPr.Copy(_obj.NumPr); + self.Jc.Copy(_obj.Jc); + self.Ind.Copy(_obj.Ind); + self.XmlChildKeepNext.Copy(_obj.XmlChildKeepNext); + self.XmlChildKeepLines.Copy(_obj.XmlChildKeepLines); + self.AdjustRightInd.Copy(_obj.AdjustRightInd); + self.Spacing.Copy(_obj.Spacing); + self.OutlineLvl.Copy(_obj.OutlineLvl); + self.AutoSpaceDE.Copy(_obj.AutoSpaceDE); + self.AutoSpaceDN.Copy(_obj.AutoSpaceDN); + self.RPr.Copy(_obj.RPr); + self.PBdr.Copy(_obj.PBdr); + self.XmlChildContextualSpacing.Copy(_obj.XmlChildContextualSpacing); +end; + +function PPr.ReadXmlChildWidowControl(); +begin + return ifnil(self.XmlChildWidowControl.Value) ? false : true; +end; + +function PPr.WriteXmlChildWidowControl(_value); +begin + self.XmlChildWidowControl.Value := _value; +end; + +function PPr.ReadXmlChildKeepNext(); +begin + return ifnil(self.XmlChildKeepNext.Value) ? false : true; +end; + +function PPr.WriteXmlChildKeepNext(_value); +begin + self.XmlChildKeepNext.Value := _value; +end; + +function PPr.ReadXmlChildKeepLines(); +begin + return ifnil(self.XmlChildKeepLines.Value) ? false : true; +end; + +function PPr.WriteXmlChildKeepLines(_value); +begin + self.XmlChildKeepLines.Value := _value; +end; + +function PPr.ReadXmlChildContextualSpacing(); +begin + return ifnil(self.XmlChildContextualSpacing.Value) ? false : true; +end; + +function PPr.WriteXmlChildContextualSpacing(_value); +begin + self.XmlChildContextualSpacing.Value := _value; +end; diff --git a/autoclass/docx/PPrDefault@DOCX.tsf b/autoclass/docx/PPrDefault@DOCX.tsf new file mode 100644 index 0000000..200243f --- /dev/null +++ b/autoclass/docx/PPrDefault@DOCX.tsf @@ -0,0 +1,98 @@ +type PPrDefault = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PPrDefault);override; + +public + // Attributes + + // Children + PPr: PPr; + +end; + +function PPrDefault.Create();overload; +begin + self.Create(nil, "w", "pPrDefault"); +end; + +function PPrDefault.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PPrDefault.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PPrDefault.Init();override; +begin + self.PPr := new PPr(self, self.Prefix, "pPr"); +end; + +function PPrDefault.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function PPrDefault.InitChildren();override; +begin + child_elements_ := array( + 0: self.PPr, + ); + sorted_child_ := array( + "": -1, + self.PPr.ElementName: 0, + ); +end; + +function PPrDefault.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PPrDefault.Copy(_obj: PPrDefault);override; +begin + self.PPr.Copy(_obj.PPr); +end; diff --git a/autoclass/docx/PgMar@DOCX.tsf b/autoclass/docx/PgMar@DOCX.tsf new file mode 100644 index 0000000..7367cd4 --- /dev/null +++ b/autoclass/docx/PgMar@DOCX.tsf @@ -0,0 +1,189 @@ +type PgMar = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Top read ReadXmlAttrTop write WriteXmlAttrTop; + property Right read ReadXmlAttrRight write WriteXmlAttrRight; + property Bottom read ReadXmlAttrBottom write WriteXmlAttrBottom; + property Left read ReadXmlAttrLeft write WriteXmlAttrLeft; + property Header read ReadXmlAttrHeader write WriteXmlAttrHeader; + property Footer read ReadXmlAttrFooter write WriteXmlAttrFooter; + property Gutter read ReadXmlAttrGutter write WriteXmlAttrGutter; + function ReadXmlAttrTop(); + function WriteXmlAttrTop(_value); + function ReadXmlAttrRight(); + function WriteXmlAttrRight(_value); + function ReadXmlAttrBottom(); + function WriteXmlAttrBottom(_value); + function ReadXmlAttrLeft(); + function WriteXmlAttrLeft(_value); + function ReadXmlAttrHeader(); + function WriteXmlAttrHeader(_value); + function ReadXmlAttrFooter(); + function WriteXmlAttrFooter(_value); + function ReadXmlAttrGutter(); + function WriteXmlAttrGutter(_value); + +public + // Attributes + XmlAttrTop; + XmlAttrRight; + XmlAttrBottom; + XmlAttrLeft; + XmlAttrHeader; + XmlAttrFooter; + XmlAttrGutter; + + // Children + +end; + +function PgMar.Create();overload; +begin + self.Create(nil, "w", "pgMar"); +end; + +function PgMar.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function PgMar.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PgMar.Init();override; +begin + self.XmlAttrTop := new OpenXmlAttribute(self.Prefix, "top", nil); + self.XmlAttrRight := new OpenXmlAttribute(self.Prefix, "right", nil); + self.XmlAttrBottom := new OpenXmlAttribute(self.Prefix, "bottom", nil); + self.XmlAttrLeft := new OpenXmlAttribute(self.Prefix, "left", nil); + self.XmlAttrHeader := new OpenXmlAttribute(self.Prefix, "header", nil); + self.XmlAttrFooter := new OpenXmlAttribute(self.Prefix, "footer", nil); + self.XmlAttrGutter := new OpenXmlAttribute(self.Prefix, "gutter", nil); +end; + +function PgMar.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrTop, + self.XmlAttrRight, + self.XmlAttrBottom, + self.XmlAttrLeft, + self.XmlAttrHeader, + self.XmlAttrFooter, + self.XmlAttrGutter, + ); +end; + +function PgMar.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PgMar.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PgMar.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrTop.Value) then + self.XmlAttrTop.Value := _obj.XmlAttrTop.Value; + if not ifnil(_obj.XmlAttrRight.Value) then + self.XmlAttrRight.Value := _obj.XmlAttrRight.Value; + if not ifnil(_obj.XmlAttrBottom.Value) then + self.XmlAttrBottom.Value := _obj.XmlAttrBottom.Value; + if not ifnil(_obj.XmlAttrLeft.Value) then + self.XmlAttrLeft.Value := _obj.XmlAttrLeft.Value; + if not ifnil(_obj.XmlAttrHeader.Value) then + self.XmlAttrHeader.Value := _obj.XmlAttrHeader.Value; + if not ifnil(_obj.XmlAttrFooter.Value) then + self.XmlAttrFooter.Value := _obj.XmlAttrFooter.Value; + if not ifnil(_obj.XmlAttrGutter.Value) then + self.XmlAttrGutter.Value := _obj.XmlAttrGutter.Value; +end; + +function PgMar.ReadXmlAttrTop(); +begin + return self.XmlAttrTop.Value; +end; + +function PgMar.WriteXmlAttrTop(_value); +begin + self.XmlAttrTop.Value := _value; +end; + +function PgMar.ReadXmlAttrRight(); +begin + return self.XmlAttrRight.Value; +end; + +function PgMar.WriteXmlAttrRight(_value); +begin + self.XmlAttrRight.Value := _value; +end; + +function PgMar.ReadXmlAttrBottom(); +begin + return self.XmlAttrBottom.Value; +end; + +function PgMar.WriteXmlAttrBottom(_value); +begin + self.XmlAttrBottom.Value := _value; +end; + +function PgMar.ReadXmlAttrLeft(); +begin + return self.XmlAttrLeft.Value; +end; + +function PgMar.WriteXmlAttrLeft(_value); +begin + self.XmlAttrLeft.Value := _value; +end; + +function PgMar.ReadXmlAttrHeader(); +begin + return self.XmlAttrHeader.Value; +end; + +function PgMar.WriteXmlAttrHeader(_value); +begin + self.XmlAttrHeader.Value := _value; +end; + +function PgMar.ReadXmlAttrFooter(); +begin + return self.XmlAttrFooter.Value; +end; + +function PgMar.WriteXmlAttrFooter(_value); +begin + self.XmlAttrFooter.Value := _value; +end; + +function PgMar.ReadXmlAttrGutter(); +begin + return self.XmlAttrGutter.Value; +end; + +function PgMar.WriteXmlAttrGutter(_value); +begin + self.XmlAttrGutter.Value := _value; +end; diff --git a/autoclass/docx/PgNumType@DOCX.tsf b/autoclass/docx/PgNumType@DOCX.tsf new file mode 100644 index 0000000..5e4d636 --- /dev/null +++ b/autoclass/docx/PgNumType@DOCX.tsf @@ -0,0 +1,81 @@ +type PgNumType = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PgNumType);override; + + property Start read ReadXmlAttrStart write WriteXmlAttrStart; + function ReadXmlAttrStart(); + function WriteXmlAttrStart(_value); + +public + // Attributes + XmlAttrStart: OpenXmlAttribute; + + // Children + +end; + +function PgNumType.Create();overload; +begin + self.Create(nil, "w", "pgNumType"); +end; + +function PgNumType.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PgNumType.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PgNumType.Init();override; +begin + self.XmlAttrStart := new OpenXmlAttribute(self.Prefix, "start", nil); +end; + +function PgNumType.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrStart, + ); +end; + +function PgNumType.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PgNumType.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PgNumType.Copy(_obj: PgNumType);override; +begin + if not ifnil(_obj.XmlAttrStart.Value) then + self.XmlAttrStart.Value := _obj.XmlAttrStart.Value; +end; + +function PgNumType.ReadXmlAttrStart(); +begin + return self.XmlAttrStart.Value; +end; + +function PgNumType.WriteXmlAttrStart(_value); +begin + self.XmlAttrStart.Value := _value; +end; diff --git a/autoclass/docx/PgSz@DOCX.tsf b/autoclass/docx/PgSz@DOCX.tsf new file mode 100644 index 0000000..ddabfd5 --- /dev/null +++ b/autoclass/docx/PgSz@DOCX.tsf @@ -0,0 +1,117 @@ +type PgSz = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property W read ReadXmlAttrW write WriteXmlAttrW; + property H read ReadXmlAttrH write WriteXmlAttrH; + property Orient read ReadXmlAttrOrient write WriteXmlAttrOrient; + function ReadXmlAttrW(); + function WriteXmlAttrW(_value); + function ReadXmlAttrH(); + function WriteXmlAttrH(_value); + function ReadXmlAttrOrient(); + function WriteXmlAttrOrient(_value); + +public + // Attributes + XmlAttrW; + XmlAttrH; + XmlAttrOrient; + + // Children + +end; + +function PgSz.Create();overload; +begin + self.Create(nil, "w", "pgSz"); +end; + +function PgSz.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function PgSz.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PgSz.Init();override; +begin + self.XmlAttrW := new OpenXmlAttribute(self.Prefix, "w", nil); + self.XmlAttrH := new OpenXmlAttribute(self.Prefix, "h", nil); + self.XmlAttrOrient := new OpenXmlAttribute(self.Prefix, "orient", nil); +end; + +function PgSz.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrW, + self.XmlAttrH, + self.XmlAttrOrient, + ); +end; + +function PgSz.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PgSz.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PgSz.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrW.Value) then + self.XmlAttrW.Value := _obj.XmlAttrW.Value; + if not ifnil(_obj.XmlAttrH.Value) then + self.XmlAttrH.Value := _obj.XmlAttrH.Value; + if not ifnil(_obj.XmlAttrOrient.Value) then + self.XmlAttrOrient.Value := _obj.XmlAttrOrient.Value; +end; + +function PgSz.ReadXmlAttrW(); +begin + return self.XmlAttrW.Value; +end; + +function PgSz.WriteXmlAttrW(_value); +begin + self.XmlAttrW.Value := _value; +end; + +function PgSz.ReadXmlAttrH(); +begin + return self.XmlAttrH.Value; +end; + +function PgSz.WriteXmlAttrH(_value); +begin + self.XmlAttrH.Value := _value; +end; + +function PgSz.ReadXmlAttrOrient(); +begin + return self.XmlAttrOrient.Value; +end; + +function PgSz.WriteXmlAttrOrient(_value); +begin + self.XmlAttrOrient.Value := _value; +end; diff --git a/autoclass/docx/Pic@DOCX.tsf b/autoclass/docx/Pic@DOCX.tsf new file mode 100644 index 0000000..697bc58 --- /dev/null +++ b/autoclass/docx/Pic@DOCX.tsf @@ -0,0 +1,127 @@ +type Pic = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Pic);override; + + property XmlnsPic read ReadXmlAttrXmlnsPic write WriteXmlAttrXmlnsPic; + function ReadXmlAttrXmlnsPic(); + function WriteXmlAttrXmlnsPic(_value); + +public + // Attributes + XmlAttrXmlnsPic: OpenXmlAttribute; + + // Children + NvPicPr: NvPicPr; + BlipFill: BlipFill; + SpPr: SpPr; + +end; + +function Pic.Create();overload; +begin + self.Create(nil, "pic", "pic"); +end; + +function Pic.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Pic.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Pic.Init();override; +begin + self.XmlAttrXmlnsPic := new OpenXmlAttribute("xmlns", "pic", "http://schemas.openxmlformats.org/drawingml/2006/picture"); + self.NvPicPr := new NvPicPr(self, self.Prefix, "nvPicPr"); + self.BlipFill := new BlipFill(self, self.Prefix, "blipFill"); + self.SpPr := new SpPr(self, self.Prefix, "spPr"); +end; + +function Pic.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsPic, + ); +end; + +function Pic.InitChildren();override; +begin + child_elements_ := array( + 0: self.NvPicPr, + 1: self.BlipFill, + 2: self.SpPr, + ); + sorted_child_ := array( + "": -1, + self.NvPicPr.ElementName: 0, + self.BlipFill.ElementName: 1, + self.SpPr.ElementName: 2, + ); +end; + +function Pic.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Pic.Copy(_obj: Pic);override; +begin + if not ifnil(_obj.XmlAttrXmlnsPic.Value) then + self.XmlAttrXmlnsPic.Value := _obj.XmlAttrXmlnsPic.Value; + self.NvPicPr.Copy(_obj.NvPicPr); + self.BlipFill.Copy(_obj.BlipFill); + self.SpPr.Copy(_obj.SpPr); +end; + +function Pic.ReadXmlAttrXmlnsPic(); +begin + return self.XmlAttrXmlnsPic.Value; +end; + +function Pic.WriteXmlAttrXmlnsPic(_value); +begin + self.XmlAttrXmlnsPic.Value := _value; +end; diff --git a/autoclass/docx/PicLocks@DOCX.tsf b/autoclass/docx/PicLocks@DOCX.tsf new file mode 100644 index 0000000..0734575 --- /dev/null +++ b/autoclass/docx/PicLocks@DOCX.tsf @@ -0,0 +1,81 @@ +type PicLocks = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PicLocks);override; + + property NoChangeAspect read ReadXmlAttrNoChangeAspect write WriteXmlAttrNoChangeAspect; + function ReadXmlAttrNoChangeAspect(); + function WriteXmlAttrNoChangeAspect(_value); + +public + // Attributes + XmlAttrNoChangeAspect: OpenXmlAttribute; + + // Children + +end; + +function PicLocks.Create();overload; +begin + self.Create(nil, "a", "picLocks"); +end; + +function PicLocks.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PicLocks.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PicLocks.Init();override; +begin + self.XmlAttrNoChangeAspect := new OpenXmlAttribute(nil, "noChangeAspect", nil); +end; + +function PicLocks.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrNoChangeAspect, + ); +end; + +function PicLocks.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PicLocks.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PicLocks.Copy(_obj: PicLocks);override; +begin + if not ifnil(_obj.XmlAttrNoChangeAspect.Value) then + self.XmlAttrNoChangeAspect.Value := _obj.XmlAttrNoChangeAspect.Value; +end; + +function PicLocks.ReadXmlAttrNoChangeAspect(); +begin + return self.XmlAttrNoChangeAspect.Value; +end; + +function PicLocks.WriteXmlAttrNoChangeAspect(_value); +begin + self.XmlAttrNoChangeAspect.Value := _value; +end; diff --git a/autoclass/docx/PlotArea@DOCX.tsf b/autoclass/docx/PlotArea@DOCX.tsf new file mode 100644 index 0000000..fe043a7 --- /dev/null +++ b/autoclass/docx/PlotArea@DOCX.tsf @@ -0,0 +1,137 @@ +type PlotArea = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PlotArea);override; + + property Layout read ReadXmlChildLayout write WriteXmlChildLayout; + function ReadXmlChildLayout(); + function WriteXmlChildLayout(_value); + +public + // Attributes + + // Children + XmlChildLayout: OpenXmlEmpty; + BarChart: BarChart; + CatAx: Ax; + ValAx: Ax; + DTable: DTable; + SpPr: SpPr; + +end; + +function PlotArea.Create();overload; +begin + self.Create(nil, "c", "plotArea"); +end; + +function PlotArea.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PlotArea.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PlotArea.Init();override; +begin + self.XmlChildLayout := new OpenXmlEmpty(self, self.Prefix, "layout"); + self.BarChart := new BarChart(self, self.Prefix, "barChart"); + self.CatAx := new Ax(self, self.Prefix, "catAx"); + self.ValAx := new Ax(self, self.Prefix, "ValAx"); + self.DTable := new DTable(self, self.Prefix, "dTable"); + self.SpPr := new SpPr(self, self.Prefix, "SpPr"); +end; + +function PlotArea.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function PlotArea.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildLayout, + 1: self.BarChart, + 2: self.CatAx, + 3: self.ValAx, + 4: self.DTable, + 5: self.SpPr, + ); + sorted_child_ := array( + "": -1, + self.XmlChildLayout.ElementName: 0, + self.BarChart.ElementName: 1, + self.CatAx.ElementName: 2, + self.ValAx.ElementName: 3, + self.DTable.ElementName: 4, + self.SpPr.ElementName: 5, + ); +end; + +function PlotArea.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PlotArea.Copy(_obj: PlotArea);override; +begin + self.XmlChildLayout.Copy(_obj.XmlChildLayout); + self.BarChart.Copy(_obj.BarChart); + self.CatAx.Copy(_obj.CatAx); + self.ValAx.Copy(_obj.ValAx); + self.DTable.Copy(_obj.DTable); + self.SpPr.Copy(_obj.SpPr); +end; + +function PlotArea.ReadXmlChildLayout(); +begin + return ifnil(self.XmlChildLayout.Value) ? false : true; +end; + +function PlotArea.WriteXmlChildLayout(_value); +begin + self.XmlChildLayout.Value := _value; +end; diff --git a/autoclass/docx/Properties@DOCX.tsf b/autoclass/docx/Properties@DOCX.tsf new file mode 100644 index 0000000..7837871 --- /dev/null +++ b/autoclass/docx/Properties@DOCX.tsf @@ -0,0 +1,210 @@ +type Properties = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Properties);override; + + property Xmlns read ReadXmlAttrXmlns write WriteXmlAttrXmlns; + property XmlnsVt read ReadXmlAttrXmlnsVt write WriteXmlAttrXmlnsVt; + function ReadXmlAttrXmlns(); + function WriteXmlAttrXmlns(_value); + function ReadXmlAttrXmlnsVt(); + function WriteXmlAttrXmlnsVt(_value); + +public + // Attributes + XmlAttrXmlns: OpenXmlAttribute; + XmlAttrXmlnsVt: OpenXmlAttribute; + + // Children + Template: OpenXmlPcdata; + TotalTime: OpenXmlPcdata; + Pages: OpenXmlPcdata; + Words: OpenXmlPcdata; + Characters: OpenXmlPcdata; + Application: OpenXmlPcdata; + DocSecurity: OpenXmlPcdata; + Lines: OpenXmlPcdata; + Paragraphs: OpenXmlPcdata; + ScaleCrop: OpenXmlPcdata; + Company: OpenXmlPcdata; + LinksUpToDate: OpenXmlPcdata; + CharactersWithSpaces: OpenXmlPcdata; + SharedDoc: OpenXmlPcdata; + HyperlinksChanged: OpenXmlPcdata; + AppVersion: OpenXmlPcdata; + +end; + +function Properties.Create();overload; +begin + self.Create(nil, nil, "Properties"); +end; + +function Properties.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Properties.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Properties.Init();override; +begin + self.XmlAttrXmlns := new OpenXmlAttribute(nil, "xmlns", "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"); + self.XmlAttrXmlnsVt := new OpenXmlAttribute("xmlns", "vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"); + self.Template := new OpenXmlPcdata(self, nil, "Template"); + self.TotalTime := new OpenXmlPcdata(self, nil, "TotalTime"); + self.Pages := new OpenXmlPcdata(self, nil, "Pages"); + self.Words := new OpenXmlPcdata(self, nil, "Words"); + self.Characters := new OpenXmlPcdata(self, nil, "Characters"); + self.Application := new OpenXmlPcdata(self, nil, "Application"); + self.DocSecurity := new OpenXmlPcdata(self, nil, "DocSecurity"); + self.Lines := new OpenXmlPcdata(self, nil, "Lines"); + self.Paragraphs := new OpenXmlPcdata(self, nil, "Paragraphs"); + self.ScaleCrop := new OpenXmlPcdata(self, nil, "ScaleCrop"); + self.Company := new OpenXmlPcdata(self, nil, "Company"); + self.LinksUpToDate := new OpenXmlPcdata(self, nil, "LinksUpToDate"); + self.CharactersWithSpaces := new OpenXmlPcdata(self, nil, "charactersWithSpaces"); + self.SharedDoc := new OpenXmlPcdata(self, nil, "SharedDoc"); + self.HyperlinksChanged := new OpenXmlPcdata(self, nil, "HyperlinksChanged"); + self.AppVersion := new OpenXmlPcdata(self, nil, "AppVersion"); +end; + +function Properties.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlns, + self.XmlAttrXmlnsVt, + ); +end; + +function Properties.InitChildren();override; +begin + child_elements_ := array( + 0: self.Template, + 1: self.TotalTime, + 2: self.Pages, + 3: self.Words, + 4: self.Characters, + 5: self.Application, + 6: self.DocSecurity, + 7: self.Lines, + 8: self.Paragraphs, + 9: self.ScaleCrop, + 10: self.Company, + 11: self.LinksUpToDate, + 12: self.CharactersWithSpaces, + 13: self.SharedDoc, + 14: self.HyperlinksChanged, + 15: self.AppVersion, + ); + sorted_child_ := array( + "": -1, + self.Template.ElementName: 0, + self.TotalTime.ElementName: 1, + self.Pages.ElementName: 2, + self.Words.ElementName: 3, + self.Characters.ElementName: 4, + self.Application.ElementName: 5, + self.DocSecurity.ElementName: 6, + self.Lines.ElementName: 7, + self.Paragraphs.ElementName: 8, + self.ScaleCrop.ElementName: 9, + self.Company.ElementName: 10, + self.LinksUpToDate.ElementName: 11, + self.CharactersWithSpaces.ElementName: 12, + self.SharedDoc.ElementName: 13, + self.HyperlinksChanged.ElementName: 14, + self.AppVersion.ElementName: 15, + ); +end; + +function Properties.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Properties.Copy(_obj: Properties);override; +begin + if not ifnil(_obj.XmlAttrXmlns.Value) then + self.XmlAttrXmlns.Value := _obj.XmlAttrXmlns.Value; + if not ifnil(_obj.XmlAttrXmlnsVt.Value) then + self.XmlAttrXmlnsVt.Value := _obj.XmlAttrXmlnsVt.Value; + self.Template.Copy(_obj.Template); + self.TotalTime.Copy(_obj.TotalTime); + self.Pages.Copy(_obj.Pages); + self.Words.Copy(_obj.Words); + self.Characters.Copy(_obj.Characters); + self.Application.Copy(_obj.Application); + self.DocSecurity.Copy(_obj.DocSecurity); + self.Lines.Copy(_obj.Lines); + self.Paragraphs.Copy(_obj.Paragraphs); + self.ScaleCrop.Copy(_obj.ScaleCrop); + self.Company.Copy(_obj.Company); + self.LinksUpToDate.Copy(_obj.LinksUpToDate); + self.CharactersWithSpaces.Copy(_obj.CharactersWithSpaces); + self.SharedDoc.Copy(_obj.SharedDoc); + self.HyperlinksChanged.Copy(_obj.HyperlinksChanged); + self.AppVersion.Copy(_obj.AppVersion); +end; + +function Properties.ReadXmlAttrXmlns(); +begin + return self.XmlAttrXmlns.Value; +end; + +function Properties.WriteXmlAttrXmlns(_value); +begin + self.XmlAttrXmlns.Value := _value; +end; + +function Properties.ReadXmlAttrXmlnsVt(); +begin + return self.XmlAttrXmlnsVt.Value; +end; + +function Properties.WriteXmlAttrXmlnsVt(_value); +begin + self.XmlAttrXmlnsVt.Value := _value; +end; diff --git a/autoclass/docx/PrstGeom@DOCX.tsf b/autoclass/docx/PrstGeom@DOCX.tsf new file mode 100644 index 0000000..03a1408 --- /dev/null +++ b/autoclass/docx/PrstGeom@DOCX.tsf @@ -0,0 +1,117 @@ +type PrstGeom = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PrstGeom);override; + + property Prst read ReadXmlAttrPrst write WriteXmlAttrPrst; + function ReadXmlAttrPrst(); + function WriteXmlAttrPrst(_value); + +public + // Attributes + XmlAttrPrst: OpenXmlAttribute; + + // Children + AvLst: PureVal; + +end; + +function PrstGeom.Create();overload; +begin + self.Create(nil, "a", "prstGeom"); +end; + +function PrstGeom.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PrstGeom.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PrstGeom.Init();override; +begin + self.XmlAttrPrst := new OpenXmlAttribute(nil, "prst", nil); + self.AvLst := new PureVal(self, self.Prefix, "avLst"); +end; + +function PrstGeom.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPrst, + ); +end; + +function PrstGeom.InitChildren();override; +begin + child_elements_ := array( + 0: self.AvLst, + ); + sorted_child_ := array( + "": -1, + self.AvLst.ElementName: 0, + ); +end; + +function PrstGeom.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PrstGeom.Copy(_obj: PrstGeom);override; +begin + if not ifnil(_obj.XmlAttrPrst.Value) then + self.XmlAttrPrst.Value := _obj.XmlAttrPrst.Value; + self.AvLst.Copy(_obj.AvLst); +end; + +function PrstGeom.ReadXmlAttrPrst(); +begin + return self.XmlAttrPrst.Value; +end; + +function PrstGeom.WriteXmlAttrPrst(_value); +begin + self.XmlAttrPrst.Value := _value; +end; diff --git a/autoclass/docx/Pt@DOCX.tsf b/autoclass/docx/Pt@DOCX.tsf new file mode 100644 index 0000000..e47e6a7 --- /dev/null +++ b/autoclass/docx/Pt@DOCX.tsf @@ -0,0 +1,117 @@ +type Pt = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Pt);override; + + property Idx read ReadXmlAttrIdx write WriteXmlAttrIdx; + function ReadXmlAttrIdx(); + function WriteXmlAttrIdx(_value); + +public + // Attributes + XmlAttrIdx: OpenXmlAttribute; + + // Children + V: OpenXmlPcdata; + +end; + +function Pt.Create();overload; +begin + self.Create(nil, "c", "pt"); +end; + +function Pt.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Pt.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Pt.Init();override; +begin + self.XmlAttrIdx := new OpenXmlAttribute(nil, "idx", nil); + self.V := new OpenXmlPcdata(self, self.Prefix, "v"); +end; + +function Pt.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrIdx, + ); +end; + +function Pt.InitChildren();override; +begin + child_elements_ := array( + 0: self.V, + ); + sorted_child_ := array( + "": -1, + self.V.ElementName: 0, + ); +end; + +function Pt.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Pt.Copy(_obj: Pt);override; +begin + if not ifnil(_obj.XmlAttrIdx.Value) then + self.XmlAttrIdx.Value := _obj.XmlAttrIdx.Value; + self.V.Copy(_obj.V); +end; + +function Pt.ReadXmlAttrIdx(); +begin + return self.XmlAttrIdx.Value; +end; + +function Pt.WriteXmlAttrIdx(_value); +begin + self.XmlAttrIdx.Value := _value; +end; diff --git a/autoclass/docx/PureVal@DOCX.tsf b/autoclass/docx/PureVal@DOCX.tsf new file mode 100644 index 0000000..1aa52fb --- /dev/null +++ b/autoclass/docx/PureVal@DOCX.tsf @@ -0,0 +1,81 @@ +type PureVal = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: PureVal);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + + // Children + +end; + +function PureVal.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function PureVal.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function PureVal.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PureVal.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); +end; + +function PureVal.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function PureVal.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PureVal.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PureVal.Copy(_obj: PureVal);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function PureVal.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function PureVal.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/PureWVal@DOCX.tsf b/autoclass/docx/PureWVal@DOCX.tsf new file mode 100644 index 0000000..3c01adb --- /dev/null +++ b/autoclass/docx/PureWVal@DOCX.tsf @@ -0,0 +1,81 @@ +type PureWVal = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal; + + // Children + +end; + +function PureWVal.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function PureWVal.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function PureWVal.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PureWVal.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute("w", "val", nil); +end; + +function PureWVal.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function PureWVal.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PureWVal.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PureWVal.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function PureWVal.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function PureWVal.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/R@DOCX.tsf b/autoclass/docx/R@DOCX.tsf new file mode 100644 index 0000000..34395b4 --- /dev/null +++ b/autoclass/docx/R@DOCX.tsf @@ -0,0 +1,233 @@ +type R = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: R);override; + + property WRsidRPr read ReadXmlAttrWRsidRPr write WriteXmlAttrWRsidRPr; + property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor; + property History read ReadXmlAttrHistory write WriteXmlAttrHistory; + function ReadXmlAttrWRsidRPr(); + function WriteXmlAttrWRsidRPr(_value); + function ReadXmlAttrAnchor(); + function WriteXmlAttrAnchor(_value); + function ReadXmlAttrHistory(); + function WriteXmlAttrHistory(_value); + + property Separator read ReadXmlChildSeparator write WriteXmlChildSeparator; + property ContinuationSeparator read ReadXmlChildContinuationSeparator write WriteXmlChildContinuationSeparator; + property LastRenderedPageBreak read ReadXmlChildLastRenderedPageBreak write WriteXmlChildLastRenderedPageBreak; + function ReadXmlChildSeparator(); + function WriteXmlChildSeparator(_value); + function ReadXmlChildContinuationSeparator(); + function WriteXmlChildContinuationSeparator(_value); + function ReadXmlChildLastRenderedPageBreak(); + function WriteXmlChildLastRenderedPageBreak(_value); + +public + // Attributes + XmlAttrWRsidRPr: OpenXmlAttribute; + XmlAttrAnchor: OpenXmlAttribute; + XmlAttrHistory: OpenXmlAttribute; + + // Children + RPr: RPr; + Br: Br; + FldChar: FldChar; + InstrText: InstrText; + XmlChildSeparator: OpenXmlEmpty; + XmlChildContinuationSeparator: OpenXmlEmpty; + XmlChildLastRenderedPageBreak: OpenXmlEmpty; + Drawing: Drawing; + T: T; + +end; + +function R.Create();overload; +begin + self.Create(nil, "w", "r"); +end; + +function R.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function R.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function R.Init();override; +begin + self.XmlAttrWRsidRPr := new OpenXmlAttribute("w", "rsidRPr", nil); + self.XmlAttrAnchor := new OpenXmlAttribute("w", "anchor", nil); + self.XmlAttrHistory := new OpenXmlAttribute("w", "history", nil); + self.RPr := new RPr(self, self.Prefix, "rPr"); + self.Br := new Br(self, self.Prefix, "br"); + self.FldChar := new FldChar(self, self.Prefix, "fldChar"); + self.InstrText := new InstrText(self, self.Prefix, "instrText"); + self.XmlChildSeparator := new OpenXmlEmpty(self, self.Prefix, "separator"); + self.XmlChildContinuationSeparator := new OpenXmlEmpty(self, self.Prefix, "continuationSeparator"); + self.XmlChildLastRenderedPageBreak := new OpenXmlEmpty(self, self.Prefix, "lastRenderedPageBreak"); + self.Drawing := new Drawing(self, self.Prefix, "drawing"); + self.T := new T(self, self.Prefix, "t"); +end; + +function R.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrWRsidRPr, + self.XmlAttrAnchor, + self.XmlAttrHistory, + ); +end; + +function R.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + 1: self.Br, + 2: self.FldChar, + 3: self.InstrText, + 4: self.XmlChildSeparator, + 5: self.XmlChildContinuationSeparator, + 6: self.XmlChildLastRenderedPageBreak, + 7: self.Drawing, + 8: self.T, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + self.Br.ElementName: 1, + self.FldChar.ElementName: 2, + self.InstrText.ElementName: 3, + self.XmlChildSeparator.ElementName: 4, + self.XmlChildContinuationSeparator.ElementName: 5, + self.XmlChildLastRenderedPageBreak.ElementName: 6, + self.Drawing.ElementName: 7, + self.T.ElementName: 8, + ); +end; + +function R.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function R.Copy(_obj: R);override; +begin + if not ifnil(_obj.XmlAttrWRsidRPr.Value) then + self.XmlAttrWRsidRPr.Value := _obj.XmlAttrWRsidRPr.Value; + if not ifnil(_obj.XmlAttrAnchor.Value) then + self.XmlAttrAnchor.Value := _obj.XmlAttrAnchor.Value; + if not ifnil(_obj.XmlAttrHistory.Value) then + self.XmlAttrHistory.Value := _obj.XmlAttrHistory.Value; + self.RPr.Copy(_obj.RPr); + self.Br.Copy(_obj.Br); + self.FldChar.Copy(_obj.FldChar); + self.InstrText.Copy(_obj.InstrText); + self.XmlChildSeparator.Copy(_obj.XmlChildSeparator); + self.XmlChildContinuationSeparator.Copy(_obj.XmlChildContinuationSeparator); + self.XmlChildLastRenderedPageBreak.Copy(_obj.XmlChildLastRenderedPageBreak); + self.Drawing.Copy(_obj.Drawing); + self.T.Copy(_obj.T); +end; + +function R.ReadXmlAttrWRsidRPr(); +begin + return self.XmlAttrWRsidRPr.Value; +end; + +function R.WriteXmlAttrWRsidRPr(_value); +begin + self.XmlAttrWRsidRPr.Value := _value; +end; + +function R.ReadXmlAttrAnchor(); +begin + return self.XmlAttrAnchor.Value; +end; + +function R.WriteXmlAttrAnchor(_value); +begin + self.XmlAttrAnchor.Value := _value; +end; + +function R.ReadXmlAttrHistory(); +begin + return self.XmlAttrHistory.Value; +end; + +function R.WriteXmlAttrHistory(_value); +begin + self.XmlAttrHistory.Value := _value; +end; + +function R.ReadXmlChildSeparator(); +begin + return ifnil(self.XmlChildSeparator.Value) ? false : true; +end; + +function R.WriteXmlChildSeparator(_value); +begin + self.XmlChildSeparator.Value := _value; +end; + +function R.ReadXmlChildContinuationSeparator(); +begin + return ifnil(self.XmlChildContinuationSeparator.Value) ? false : true; +end; + +function R.WriteXmlChildContinuationSeparator(_value); +begin + self.XmlChildContinuationSeparator.Value := _value; +end; + +function R.ReadXmlChildLastRenderedPageBreak(); +begin + return ifnil(self.XmlChildLastRenderedPageBreak.Value) ? false : true; +end; + +function R.WriteXmlChildLastRenderedPageBreak(_value); +begin + self.XmlChildLastRenderedPageBreak.Value := _value; +end; diff --git a/autoclass/docx/RFonts@DOCX.tsf b/autoclass/docx/RFonts@DOCX.tsf new file mode 100644 index 0000000..6802327 --- /dev/null +++ b/autoclass/docx/RFonts@DOCX.tsf @@ -0,0 +1,207 @@ +type RFonts = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: RFonts);override; + + property Ascii read ReadXmlAttrAscii write WriteXmlAttrAscii; + property AsciiTheme read ReadXmlAttrAsciiTheme write WriteXmlAttrAsciiTheme; + property EastAsia read ReadXmlAttrEastAsia write WriteXmlAttrEastAsia; + property EastAsiaTheme read ReadXmlAttrEastAsiaTheme write WriteXmlAttrEastAsiaTheme; + property HAnsi read ReadXmlAttrHAnsi write WriteXmlAttrHAnsi; + property HAnsiTheme read ReadXmlAttrHAnsiTheme write WriteXmlAttrHAnsiTheme; + property Hint read ReadXmlAttrHint write WriteXmlAttrHint; + property CsTheme read ReadXmlAttrCsTheme write WriteXmlAttrCsTheme; + function ReadXmlAttrAscii(); + function WriteXmlAttrAscii(_value); + function ReadXmlAttrAsciiTheme(); + function WriteXmlAttrAsciiTheme(_value); + function ReadXmlAttrEastAsia(); + function WriteXmlAttrEastAsia(_value); + function ReadXmlAttrEastAsiaTheme(); + function WriteXmlAttrEastAsiaTheme(_value); + function ReadXmlAttrHAnsi(); + function WriteXmlAttrHAnsi(_value); + function ReadXmlAttrHAnsiTheme(); + function WriteXmlAttrHAnsiTheme(_value); + function ReadXmlAttrHint(); + function WriteXmlAttrHint(_value); + function ReadXmlAttrCsTheme(); + function WriteXmlAttrCsTheme(_value); + +public + // Attributes + XmlAttrAscii: OpenXmlAttribute; + XmlAttrAsciiTheme: OpenXmlAttribute; + XmlAttrEastAsia: OpenXmlAttribute; + XmlAttrEastAsiaTheme: OpenXmlAttribute; + XmlAttrHAnsi: OpenXmlAttribute; + XmlAttrHAnsiTheme: OpenXmlAttribute; + XmlAttrHint: OpenXmlAttribute; + XmlAttrCsTheme: OpenXmlAttribute; + + // Children + +end; + +function RFonts.Create();overload; +begin + self.Create(nil, "w", "rFonts"); +end; + +function RFonts.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function RFonts.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function RFonts.Init();override; +begin + self.XmlAttrAscii := new OpenXmlAttribute(self.Prefix, "ascii", nil); + self.XmlAttrAsciiTheme := new OpenXmlAttribute(self.Prefix, "asciiTheme", nil); + self.XmlAttrEastAsia := new OpenXmlAttribute(self.Prefix, "eastAsia", nil); + self.XmlAttrEastAsiaTheme := new OpenXmlAttribute(self.Prefix, "eastAsiaTheme", nil); + self.XmlAttrHAnsi := new OpenXmlAttribute(self.Prefix, "hAnsi", nil); + self.XmlAttrHAnsiTheme := new OpenXmlAttribute(self.Prefix, "hAnsiTheme", nil); + self.XmlAttrHint := new OpenXmlAttribute(self.Prefix, "hint", nil); + self.XmlAttrCsTheme := new OpenXmlAttribute(self.Prefix, "cstheme", nil); +end; + +function RFonts.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrAscii, + self.XmlAttrAsciiTheme, + self.XmlAttrEastAsia, + self.XmlAttrEastAsiaTheme, + self.XmlAttrHAnsi, + self.XmlAttrHAnsiTheme, + self.XmlAttrHint, + self.XmlAttrCsTheme, + ); +end; + +function RFonts.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function RFonts.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function RFonts.Copy(_obj: RFonts);override; +begin + if not ifnil(_obj.XmlAttrAscii.Value) then + self.XmlAttrAscii.Value := _obj.XmlAttrAscii.Value; + if not ifnil(_obj.XmlAttrAsciiTheme.Value) then + self.XmlAttrAsciiTheme.Value := _obj.XmlAttrAsciiTheme.Value; + if not ifnil(_obj.XmlAttrEastAsia.Value) then + self.XmlAttrEastAsia.Value := _obj.XmlAttrEastAsia.Value; + if not ifnil(_obj.XmlAttrEastAsiaTheme.Value) then + self.XmlAttrEastAsiaTheme.Value := _obj.XmlAttrEastAsiaTheme.Value; + if not ifnil(_obj.XmlAttrHAnsi.Value) then + self.XmlAttrHAnsi.Value := _obj.XmlAttrHAnsi.Value; + if not ifnil(_obj.XmlAttrHAnsiTheme.Value) then + self.XmlAttrHAnsiTheme.Value := _obj.XmlAttrHAnsiTheme.Value; + if not ifnil(_obj.XmlAttrHint.Value) then + self.XmlAttrHint.Value := _obj.XmlAttrHint.Value; + if not ifnil(_obj.XmlAttrCsTheme.Value) then + self.XmlAttrCsTheme.Value := _obj.XmlAttrCsTheme.Value; +end; + +function RFonts.ReadXmlAttrAscii(); +begin + return self.XmlAttrAscii.Value; +end; + +function RFonts.WriteXmlAttrAscii(_value); +begin + self.XmlAttrAscii.Value := _value; +end; + +function RFonts.ReadXmlAttrAsciiTheme(); +begin + return self.XmlAttrAsciiTheme.Value; +end; + +function RFonts.WriteXmlAttrAsciiTheme(_value); +begin + self.XmlAttrAsciiTheme.Value := _value; +end; + +function RFonts.ReadXmlAttrEastAsia(); +begin + return self.XmlAttrEastAsia.Value; +end; + +function RFonts.WriteXmlAttrEastAsia(_value); +begin + self.XmlAttrEastAsia.Value := _value; +end; + +function RFonts.ReadXmlAttrEastAsiaTheme(); +begin + return self.XmlAttrEastAsiaTheme.Value; +end; + +function RFonts.WriteXmlAttrEastAsiaTheme(_value); +begin + self.XmlAttrEastAsiaTheme.Value := _value; +end; + +function RFonts.ReadXmlAttrHAnsi(); +begin + return self.XmlAttrHAnsi.Value; +end; + +function RFonts.WriteXmlAttrHAnsi(_value); +begin + self.XmlAttrHAnsi.Value := _value; +end; + +function RFonts.ReadXmlAttrHAnsiTheme(); +begin + return self.XmlAttrHAnsiTheme.Value; +end; + +function RFonts.WriteXmlAttrHAnsiTheme(_value); +begin + self.XmlAttrHAnsiTheme.Value := _value; +end; + +function RFonts.ReadXmlAttrHint(); +begin + return self.XmlAttrHint.Value; +end; + +function RFonts.WriteXmlAttrHint(_value); +begin + self.XmlAttrHint.Value := _value; +end; + +function RFonts.ReadXmlAttrCsTheme(); +begin + return self.XmlAttrCsTheme.Value; +end; + +function RFonts.WriteXmlAttrCsTheme(_value); +begin + self.XmlAttrCsTheme.Value := _value; +end; diff --git a/autoclass/docx/RPr@DOCX.tsf b/autoclass/docx/RPr@DOCX.tsf new file mode 100644 index 0000000..862c1e3 --- /dev/null +++ b/autoclass/docx/RPr@DOCX.tsf @@ -0,0 +1,252 @@ +type RPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: RPr);override; + + property I read ReadXmlChildI write WriteXmlChildI; + property ICs read ReadXmlChildICs write WriteXmlChildICs; + property B read ReadXmlChildB write WriteXmlChildB; + property BCs read ReadXmlChildBCs write WriteXmlChildBCs; + property Strike read ReadXmlChildStrike write WriteXmlChildStrike; + property U read ReadXmlChildU write WriteXmlChildU; + function ReadXmlChildI(); + function WriteXmlChildI(_value); + function ReadXmlChildICs(); + function WriteXmlChildICs(_value); + function ReadXmlChildB(); + function WriteXmlChildB(_value); + function ReadXmlChildBCs(); + function WriteXmlChildBCs(_value); + function ReadXmlChildStrike(); + function WriteXmlChildStrike(_value); + function ReadXmlChildU(); + function WriteXmlChildU(_value); + +public + // Attributes + + // Children + NoProof: PureVal; + WebHidden: PureWVal; + RStyle: PureWVal; + RFonts: RFonts; + Kern: PureWVal; + XmlChildI: OpenXmlEmpty; + XmlChildICs: OpenXmlEmpty; + XmlChildB: OpenXmlEmpty; + XmlChildBCs: OpenXmlEmpty; + XmlChildStrike: OpenXmlEmpty; + Color: Color; + Sz: Sz; + SzCs: SzCs; + XmlChildU: OpenXmlEmpty; + Lang: Lang; + W14Ligatures: PureWVal; + +end; + +function RPr.Create();overload; +begin + self.Create(nil, "w", "rPr"); +end; + +function RPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function RPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function RPr.Init();override; +begin + self.NoProof := new PureVal(self, self.Prefix, "noProof"); + self.WebHidden := new PureWVal(self, self.Prefix, "wedHidden"); + self.RStyle := new PureWVal(self, self.Prefix, "rStyle"); + self.RFonts := new RFonts(self, self.Prefix, "rFonts"); + self.Kern := new PureWVal(self, self.Prefix, "kern"); + self.XmlChildI := new OpenXmlEmpty(self, self.Prefix, "i"); + self.XmlChildICs := new OpenXmlEmpty(self, self.Prefix, "iCs"); + self.XmlChildB := new OpenXmlEmpty(self, self.Prefix, "b"); + self.XmlChildBCs := new OpenXmlEmpty(self, self.Prefix, "bCs"); + self.XmlChildStrike := new OpenXmlEmpty(self, self.Prefix, "strike"); + self.Color := new Color(self, self.Prefix, "color"); + self.Sz := new Sz(self, self.Prefix, "sz"); + self.SzCs := new SzCs(self, self.Prefix, "szCs"); + self.XmlChildU := new OpenXmlEmpty(self, self.Prefix, "u"); + self.Lang := new Lang(self, self.Prefix, "lang"); + self.W14Ligatures := new PureWVal(self, "w14", "ligatures"); +end; + +function RPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function RPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.NoProof, + 1: self.WebHidden, + 2: self.RStyle, + 3: self.RFonts, + 4: self.Kern, + 5: self.XmlChildI, + 6: self.XmlChildICs, + 7: self.XmlChildB, + 8: self.XmlChildBCs, + 9: self.XmlChildStrike, + 10: self.Color, + 11: self.Sz, + 12: self.SzCs, + 13: self.XmlChildU, + 14: self.Lang, + 15: self.W14Ligatures, + ); + sorted_child_ := array( + "": -1, + self.NoProof.ElementName: 0, + self.WebHidden.ElementName: 1, + self.RStyle.ElementName: 2, + self.RFonts.ElementName: 3, + self.Kern.ElementName: 4, + self.XmlChildI.ElementName: 5, + self.XmlChildICs.ElementName: 6, + self.XmlChildB.ElementName: 7, + self.XmlChildBCs.ElementName: 8, + self.XmlChildStrike.ElementName: 9, + self.Color.ElementName: 10, + self.Sz.ElementName: 11, + self.SzCs.ElementName: 12, + self.XmlChildU.ElementName: 13, + self.Lang.ElementName: 14, + self.W14Ligatures.ElementName: 15, + ); +end; + +function RPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function RPr.Copy(_obj: RPr);override; +begin + self.NoProof.Copy(_obj.NoProof); + self.WebHidden.Copy(_obj.WebHidden); + self.RStyle.Copy(_obj.RStyle); + self.RFonts.Copy(_obj.RFonts); + self.Kern.Copy(_obj.Kern); + self.XmlChildI.Copy(_obj.XmlChildI); + self.XmlChildICs.Copy(_obj.XmlChildICs); + self.XmlChildB.Copy(_obj.XmlChildB); + self.XmlChildBCs.Copy(_obj.XmlChildBCs); + self.XmlChildStrike.Copy(_obj.XmlChildStrike); + self.Color.Copy(_obj.Color); + self.Sz.Copy(_obj.Sz); + self.SzCs.Copy(_obj.SzCs); + self.XmlChildU.Copy(_obj.XmlChildU); + self.Lang.Copy(_obj.Lang); + self.W14Ligatures.Copy(_obj.W14Ligatures); +end; + +function RPr.ReadXmlChildI(); +begin + return ifnil(self.XmlChildI.Value) ? false : true; +end; + +function RPr.WriteXmlChildI(_value); +begin + self.XmlChildI.Value := _value; +end; + +function RPr.ReadXmlChildICs(); +begin + return ifnil(self.XmlChildICs.Value) ? false : true; +end; + +function RPr.WriteXmlChildICs(_value); +begin + self.XmlChildICs.Value := _value; +end; + +function RPr.ReadXmlChildB(); +begin + return ifnil(self.XmlChildB.Value) ? false : true; +end; + +function RPr.WriteXmlChildB(_value); +begin + self.XmlChildB.Value := _value; +end; + +function RPr.ReadXmlChildBCs(); +begin + return ifnil(self.XmlChildBCs.Value) ? false : true; +end; + +function RPr.WriteXmlChildBCs(_value); +begin + self.XmlChildBCs.Value := _value; +end; + +function RPr.ReadXmlChildStrike(); +begin + return ifnil(self.XmlChildStrike.Value) ? false : true; +end; + +function RPr.WriteXmlChildStrike(_value); +begin + self.XmlChildStrike.Value := _value; +end; + +function RPr.ReadXmlChildU(); +begin + return ifnil(self.XmlChildU.Value) ? false : true; +end; + +function RPr.WriteXmlChildU(_value); +begin + self.XmlChildU.Value := _value; +end; diff --git a/autoclass/docx/RPrDefault@DOCX.tsf b/autoclass/docx/RPrDefault@DOCX.tsf new file mode 100644 index 0000000..fe00b38 --- /dev/null +++ b/autoclass/docx/RPrDefault@DOCX.tsf @@ -0,0 +1,98 @@ +type RPrDefault = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: RPrDefault);override; + +public + // Attributes + + // Children + RPr: RPr; + +end; + +function RPrDefault.Create();overload; +begin + self.Create(nil, "w", "rPrDefault"); +end; + +function RPrDefault.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function RPrDefault.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function RPrDefault.Init();override; +begin + self.RPr := new RPr(self, self.Prefix, "rPr"); +end; + +function RPrDefault.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function RPrDefault.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + ); +end; + +function RPrDefault.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function RPrDefault.Copy(_obj: RPrDefault);override; +begin + self.RPr.Copy(_obj.RPr); +end; diff --git a/autoclass/docx/Reference@DOCX.tsf b/autoclass/docx/Reference@DOCX.tsf new file mode 100644 index 0000000..8368fee --- /dev/null +++ b/autoclass/docx/Reference@DOCX.tsf @@ -0,0 +1,99 @@ +type Reference = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Reference);override; + + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Id read ReadXmlAttrId write WriteXmlAttrId; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + +public + // Attributes + XmlAttrType: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + + // Children + +end; + +function Reference.Create();overload; +begin + self.Create(nil, "w", ""); +end; + +function Reference.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Reference.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Reference.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); + self.XmlAttrId := new OpenXmlAttribute("r", "id", nil); +end; + +function Reference.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + self.XmlAttrId, + ); +end; + +function Reference.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Reference.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Reference.Copy(_obj: Reference);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; +end; + +function Reference.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Reference.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Reference.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Reference.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; diff --git a/autoclass/docx/Relationship@DOCX.tsf b/autoclass/docx/Relationship@DOCX.tsf new file mode 100644 index 0000000..3ff6fad --- /dev/null +++ b/autoclass/docx/Relationship@DOCX.tsf @@ -0,0 +1,117 @@ +type Relationship = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Relationship);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Target read ReadXmlAttrTarget write WriteXmlAttrTarget; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrTarget(); + function WriteXmlAttrTarget(_value); + +public + // Attributes + XmlAttrId: OpenXmlAttribute; + XmlAttrType: OpenXmlAttribute; + XmlAttrTarget: OpenXmlAttribute; + + // Children + +end; + +function Relationship.Create();overload; +begin + self.Create(nil, nil, "Relationship"); +end; + +function Relationship.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Relationship.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Relationship.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "Id", nil); + self.XmlAttrType := new OpenXmlAttribute(nil, "Type", nil); + self.XmlAttrTarget := new OpenXmlAttribute(nil, "Target", nil); +end; + +function Relationship.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrType, + self.XmlAttrTarget, + ); +end; + +function Relationship.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Relationship.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Relationship.Copy(_obj: Relationship);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrTarget.Value) then + self.XmlAttrTarget.Value := _obj.XmlAttrTarget.Value; +end; + +function Relationship.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Relationship.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function Relationship.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Relationship.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Relationship.ReadXmlAttrTarget(); +begin + return self.XmlAttrTarget.Value; +end; + +function Relationship.WriteXmlAttrTarget(_value); +begin + self.XmlAttrTarget.Value := _value; +end; diff --git a/autoclass/docx/Relationships@DOCX.tsf b/autoclass/docx/Relationships@DOCX.tsf new file mode 100644 index 0000000..b886e8f --- /dev/null +++ b/autoclass/docx/Relationships@DOCX.tsf @@ -0,0 +1,154 @@ +type Relationships = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Relationships);override; + function AddRelationship(): Relationship; + function AppendRelationship(): Relationship; + + property Relationships read ReadRelationships; + function ReadRelationships(_index); + + property xmlns read ReadXmlAttrxmlns write WriteXmlAttrxmlns; + function ReadXmlAttrxmlns(); + function WriteXmlAttrxmlns(_value); + +public + // Attributes + XmlAttrxmlns: OpenXmlAttribute; + + // Children + +end; + +function Relationships.Create();overload; +begin + self.Create(nil, nil, "Relationships"); +end; + +function Relationships.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Relationships.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Relationships.Init();override; +begin + self.XmlAttrxmlns := new OpenXmlAttribute(nil, "xmlns", "http://schemas.openxmlformats.org/package/2006/relationships"); +end; + +function Relationships.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrxmlns, + ); +end; + +function Relationships.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Relationships.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "Relationship": obj := self.AppendRelationship(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Relationships.Copy(_obj: Relationships);override; +begin + if not ifnil(_obj.XmlAttrxmlns.Value) then + self.XmlAttrxmlns.Value := _obj.XmlAttrxmlns.Value; +end; + +function Relationships.AddRelationship(): Relationship; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "Relationship" then break; + end + obj := new Relationship(self, nil, "Relationship"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Relationships.AppendRelationship(): Relationship; +begin + obj := new Relationship(self, nil, "Relationship"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Relationships.ReadRelationships(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "Relationship" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Relationships.ReadXmlAttrxmlns(); +begin + return self.XmlAttrxmlns.Value; +end; + +function Relationships.WriteXmlAttrxmlns(_value); +begin + self.XmlAttrxmlns.Value := _value; +end; diff --git a/autoclass/docx/Rich@DOCX.tsf b/autoclass/docx/Rich@DOCX.tsf new file mode 100644 index 0000000..da3699f --- /dev/null +++ b/autoclass/docx/Rich@DOCX.tsf @@ -0,0 +1,159 @@ +type Rich = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Rich);override; + function AddP(): Ap; + function AppendP(): Ap; + + property Ps read ReadPs; + function ReadPs(_index); + + property LstStyle read ReadXmlChildLstStyle write WriteXmlChildLstStyle; + function ReadXmlChildLstStyle(); + function WriteXmlChildLstStyle(_value); + +public + // Attributes + + // Children + BodyPr: BodyPr; + XmlChildLstStyle: OpenXmlEmpty; + +end; + +function Rich.Create();overload; +begin + self.Create(nil, "c", "rich"); +end; + +function Rich.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Rich.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Rich.Init();override; +begin + self.BodyPr := new BodyPr(self, "a", "BodyPr"); + self.XmlChildLstStyle := new OpenXmlEmpty(self, "a", "LstStyle"); +end; + +function Rich.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Rich.InitChildren();override; +begin + child_elements_ := array( + 0: self.BodyPr, + 1: self.XmlChildLstStyle, + ); + sorted_child_ := array( + "": -1, + self.BodyPr.ElementName: 0, + self.XmlChildLstStyle.ElementName: 1, + ); +end; + +function Rich.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "a:p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Rich.Copy(_obj: Rich);override; +begin + self.BodyPr.Copy(_obj.BodyPr); + self.XmlChildLstStyle.Copy(_obj.XmlChildLstStyle); +end; + +function Rich.AddP(): Ap; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new Ap(self, "a", "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Rich.AppendP(): Ap; +begin + obj := new Ap(self, "a", "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Rich.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Rich.ReadXmlChildLstStyle(); +begin + return ifnil(self.XmlChildLstStyle.Value) ? false : true; +end; + +function Rich.WriteXmlChildLstStyle(_value); +begin + self.XmlChildLstStyle.Value := _value; +end; diff --git a/autoclass/docx/Rsids@DOCX.tsf b/autoclass/docx/Rsids@DOCX.tsf new file mode 100644 index 0000000..d54251e --- /dev/null +++ b/autoclass/docx/Rsids@DOCX.tsf @@ -0,0 +1,140 @@ +type Rsids = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Rsids);override; + function AddRsid(): PureWVal; + function AppendRsid(): PureWVal; + + property Rsids read ReadRsids; + function ReadRsids(_index); + +public + // Attributes + + // Children + RsidRoot: PureWVal; + +end; + +function Rsids.Create();overload; +begin + self.Create(nil, "w", "rsids"); +end; + +function Rsids.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Rsids.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Rsids.Init();override; +begin + self.RsidRoot := new PureWVal(self, self.Prefix, "rsidRoot"); +end; + +function Rsids.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Rsids.InitChildren();override; +begin + child_elements_ := array( + 0: self.RsidRoot, + ); + sorted_child_ := array( + "": -1, + self.RsidRoot.ElementName: 0, + ); +end; + +function Rsids.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "rsid": obj := self.AppendRsid(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Rsids.Copy(_obj: Rsids);override; +begin + self.RsidRoot.Copy(_obj.RsidRoot); +end; + +function Rsids.AddRsid(): PureWVal; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "rsid" then break; + end + obj := new PureWVal(self, self.Prefix, "rsid"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Rsids.AppendRsid(): PureWVal; +begin + obj := new PureWVal(self, self.Prefix, "rsid"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Rsids.ReadRsids(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "rsid" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Scaling@DOCX.tsf b/autoclass/docx/Scaling@DOCX.tsf new file mode 100644 index 0000000..ebdd370 --- /dev/null +++ b/autoclass/docx/Scaling@DOCX.tsf @@ -0,0 +1,112 @@ +type Scaling = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Scaling);override; + + property Orientation read ReadXmlChildOrientation write WriteXmlChildOrientation; + function ReadXmlChildOrientation(); + function WriteXmlChildOrientation(_value); + +public + // Attributes + + // Children + XmlChildOrientation: OpenXmlEmpty; + +end; + +function Scaling.Create();overload; +begin + self.Create(nil, "c", "scaling"); +end; + +function Scaling.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Scaling.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Scaling.Init();override; +begin + self.XmlChildOrientation := new PureVal(self, self.Prefix, "orientation"); +end; + +function Scaling.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Scaling.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildOrientation, + ); + sorted_child_ := array( + "": -1, + self.XmlChildOrientation.ElementName: 0, + ); +end; + +function Scaling.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Scaling.Copy(_obj: Scaling);override; +begin + self.XmlChildOrientation.Copy(_obj.XmlChildOrientation); +end; + +function Scaling.ReadXmlChildOrientation(); +begin + return ifnil(self.XmlChildOrientation.Value) ? false : true; +end; + +function Scaling.WriteXmlChildOrientation(_value); +begin + self.XmlChildOrientation.Value := _value; +end; diff --git a/autoclass/docx/SchemeClr@DOCX.tsf b/autoclass/docx/SchemeClr@DOCX.tsf new file mode 100644 index 0000000..a66be58 --- /dev/null +++ b/autoclass/docx/SchemeClr@DOCX.tsf @@ -0,0 +1,127 @@ +type SchemeClr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SchemeClr);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + + // Children + LumMod: PureVal; + SatMod: PureVal; + Tint: PureVal; + +end; + +function SchemeClr.Create();overload; +begin + self.Create(nil, "a", "schemeClr"); +end; + +function SchemeClr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SchemeClr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SchemeClr.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.LumMod := new PureVal(self, self.Prefix, "lumMod"); + self.SatMod := new PureVal(self, self.Prefix, "satMod"); + self.Tint := new PureVal(self, self.Prefix, "tint"); +end; + +function SchemeClr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function SchemeClr.InitChildren();override; +begin + child_elements_ := array( + 0: self.LumMod, + 1: self.SatMod, + 2: self.Tint, + ); + sorted_child_ := array( + "": -1, + self.LumMod.ElementName: 0, + self.SatMod.ElementName: 1, + self.Tint.ElementName: 2, + ); +end; + +function SchemeClr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SchemeClr.Copy(_obj: SchemeClr);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + self.LumMod.Copy(_obj.LumMod); + self.SatMod.Copy(_obj.SatMod); + self.Tint.Copy(_obj.Tint); +end; + +function SchemeClr.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SchemeClr.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/Sdt@DOCX.tsf b/autoclass/docx/Sdt@DOCX.tsf new file mode 100644 index 0000000..262a788 --- /dev/null +++ b/autoclass/docx/Sdt@DOCX.tsf @@ -0,0 +1,108 @@ +type Sdt = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Sdt);override; + +public + // Attributes + + // Children + SdtPr: SdtPr; + SdtEndPr: SdtEndPr; + SdtContent: SdtContent; + +end; + +function Sdt.Create();overload; +begin + self.Create(nil, "w", "sdt"); +end; + +function Sdt.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Sdt.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Sdt.Init();override; +begin + self.SdtPr := new SdtPr(self, self.Prefix, "stdPr"); + self.SdtEndPr := new SdtEndPr(self, self.Prefix, "sdtEndPr"); + self.SdtContent := new SdtContent(self, self.Prefix, "sdtContent"); +end; + +function Sdt.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Sdt.InitChildren();override; +begin + child_elements_ := array( + 0: self.SdtPr, + 1: self.SdtEndPr, + 2: self.SdtContent, + ); + sorted_child_ := array( + "": -1, + self.SdtPr.ElementName: 0, + self.SdtEndPr.ElementName: 1, + self.SdtContent.ElementName: 2, + ); +end; + +function Sdt.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Sdt.Copy(_obj: Sdt);override; +begin + self.SdtPr.Copy(_obj.SdtPr); + self.SdtEndPr.Copy(_obj.SdtEndPr); + self.SdtContent.Copy(_obj.SdtContent); +end; diff --git a/autoclass/docx/SdtContent@DOCX.tsf b/autoclass/docx/SdtContent@DOCX.tsf new file mode 100644 index 0000000..528ad08 --- /dev/null +++ b/autoclass/docx/SdtContent@DOCX.tsf @@ -0,0 +1,137 @@ +type SdtContent = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SdtContent);override; + function AddP(): P; + function AppendP(): P; + + property Ps read ReadPs; + function ReadPs(_index); + +public + // Attributes + + // Children + +end; + +function SdtContent.Create();overload; +begin + self.Create(nil, "w", "sdtContent"); +end; + +function SdtContent.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SdtContent.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SdtContent.Init();override; +begin + +end; + +function SdtContent.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SdtContent.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SdtContent.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SdtContent.Copy(_obj: SdtContent);override; +begin + +end; + +function SdtContent.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SdtContent.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SdtContent.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/SdtEndPr@DOCX.tsf b/autoclass/docx/SdtEndPr@DOCX.tsf new file mode 100644 index 0000000..8331d1e --- /dev/null +++ b/autoclass/docx/SdtEndPr@DOCX.tsf @@ -0,0 +1,98 @@ +type SdtEndPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SdtEndPr);override; + +public + // Attributes + + // Children + RPr: RPr; + +end; + +function SdtEndPr.Create();overload; +begin + self.Create(nil, "w", "sdtEndPr"); +end; + +function SdtEndPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SdtEndPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SdtEndPr.Init();override; +begin + self.RPr := new RPr(self, self.Prefix, "rPr"); +end; + +function SdtEndPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SdtEndPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + ); +end; + +function SdtEndPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SdtEndPr.Copy(_obj: SdtEndPr);override; +begin + self.RPr.Copy(_obj.RPr); +end; diff --git a/autoclass/docx/SdtPr@DOCX.tsf b/autoclass/docx/SdtPr@DOCX.tsf new file mode 100644 index 0000000..d0491ac --- /dev/null +++ b/autoclass/docx/SdtPr@DOCX.tsf @@ -0,0 +1,108 @@ +type SdtPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SdtPr);override; + +public + // Attributes + + // Children + RPr: RPr; + Id: PureWVal; + DocPartObj: DocPartObj; + +end; + +function SdtPr.Create();overload; +begin + self.Create(nil, "w", "sdtPr"); +end; + +function SdtPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SdtPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SdtPr.Init();override; +begin + self.RPr := new RPr(self, self.Prefix, "rPr"); + self.Id := new PureWVal(self, self.Prefix, "id"); + self.DocPartObj := new DocPartObj(self, self.Prefix, "docPartObj"); +end; + +function SdtPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SdtPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + 1: self.Id, + 2: self.DocPartObj, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + self.Id.ElementName: 1, + self.DocPartObj.ElementName: 2, + ); +end; + +function SdtPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SdtPr.Copy(_obj: SdtPr);override; +begin + self.RPr.Copy(_obj.RPr); + self.Id.Copy(_obj.Id); + self.DocPartObj.Copy(_obj.DocPartObj); +end; diff --git a/autoclass/docx/SectPr@DOCX.tsf b/autoclass/docx/SectPr@DOCX.tsf new file mode 100644 index 0000000..dedc2d4 --- /dev/null +++ b/autoclass/docx/SectPr@DOCX.tsf @@ -0,0 +1,243 @@ +type SectPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SectPr);override; + function AddHeaderReference(): Reference; + function AddFooterReference(): Reference; + function AppendHeaderReference(): Reference; + function AppendFooterReference(): Reference; + + property HeaderReferences read ReadHeaderReferences; + property FooterReferences read ReadFooterReferences; + function ReadHeaderReferences(_index); + function ReadFooterReferences(_index); + + property WRsidR read ReadXmlAttrWRsidR write WriteXmlAttrWRsidR; + property WRsidSect read ReadXmlAttrWRsidSect write WriteXmlAttrWRsidSect; + function ReadXmlAttrWRsidR(); + function WriteXmlAttrWRsidR(_value); + function ReadXmlAttrWRsidSect(); + function WriteXmlAttrWRsidSect(_value); + +public + // Attributes + XmlAttrWRsidR: OpenXmlAttribute; + XmlAttrWRsidSect: OpenXmlAttribute; + + // Children + Type: PureWVal; + PgSz: PgSz; + PgMar: PgMar; + PgNumType: PgNumType; + Cols: Cols; + DocGrid: docGrid; + +end; + +function SectPr.Create();overload; +begin + self.Create(nil, "w", "sectPr"); +end; + +function SectPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SectPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SectPr.Init();override; +begin + self.XmlAttrWRsidR := new OpenXmlAttribute(self.Prefix, "rsidR", nil); + self.XmlAttrWRsidSect := new OpenXmlAttribute(self.Prefix, "rsidSect", nil); + self.Type := new PureWVal(self, self.Prefix, "type"); + self.PgSz := new PgSz(self, self.Prefix, "pgSz"); + self.PgMar := new PgMar(self, self.Prefix, "pgMar"); + self.PgNumType := new PgNumType(self, self.Prefix, "pgNumType"); + self.Cols := new Cols(self, self.Prefix, "cols"); + self.DocGrid := new docGrid(self, self.Prefix, "docGrid"); +end; + +function SectPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrWRsidR, + self.XmlAttrWRsidSect, + ); +end; + +function SectPr.InitChildren();override; +begin + child_elements_ := array( + 2: self.Type, + 3: self.PgSz, + 4: self.PgMar, + 5: self.PgNumType, + 6: self.Cols, + 7: self.DocGrid, + ); + sorted_child_ := array( + "": -1, + self.Type.ElementName: 2, + self.PgSz.ElementName: 3, + self.PgMar.ElementName: 4, + self.PgNumType.ElementName: 5, + self.Cols.ElementName: 6, + self.DocGrid.ElementName: 7, + ); +end; + +function SectPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "headerReference": obj := self.AppendHeaderReference(); + pre + "FooterReference": obj := self.AppendFooterReference(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SectPr.Copy(_obj: SectPr);override; +begin + if not ifnil(_obj.XmlAttrWRsidR.Value) then + self.XmlAttrWRsidR.Value := _obj.XmlAttrWRsidR.Value; + if not ifnil(_obj.XmlAttrWRsidSect.Value) then + self.XmlAttrWRsidSect.Value := _obj.XmlAttrWRsidSect.Value; + self.Type.Copy(_obj.Type); + self.PgSz.Copy(_obj.PgSz); + self.PgMar.Copy(_obj.PgMar); + self.PgNumType.Copy(_obj.PgNumType); + self.Cols.Copy(_obj.Cols); + self.DocGrid.Copy(_obj.DocGrid); +end; + +function SectPr.AddHeaderReference(): Reference; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "headerReference" then break; + end + obj := new Reference(self, self.Prefix, "headerReference"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SectPr.AddFooterReference(): Reference; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "FooterReference" then break; + end + obj := new Reference(self, self.Prefix, "FooterReference"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SectPr.AppendHeaderReference(): Reference; +begin + obj := new Reference(self, self.Prefix, "headerReference"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SectPr.AppendFooterReference(): Reference; +begin + obj := new Reference(self, self.Prefix, "FooterReference"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SectPr.ReadHeaderReferences(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "headerReference" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function SectPr.ReadFooterReferences(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "FooterReference" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function SectPr.ReadXmlAttrWRsidR(); +begin + return self.XmlAttrWRsidR.Value; +end; + +function SectPr.WriteXmlAttrWRsidR(_value); +begin + self.XmlAttrWRsidR.Value := _value; +end; + +function SectPr.ReadXmlAttrWRsidSect(); +begin + return self.XmlAttrWRsidSect.Value; +end; + +function SectPr.WriteXmlAttrWRsidSect(_value); +begin + self.XmlAttrWRsidSect.Value := _value; +end; diff --git a/autoclass/docx/Ser@DOCX.tsf b/autoclass/docx/Ser@DOCX.tsf new file mode 100644 index 0000000..5c1521b --- /dev/null +++ b/autoclass/docx/Ser@DOCX.tsf @@ -0,0 +1,133 @@ +type Ser = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Ser);override; + +public + // Attributes + + // Children + Idx: PureVal; + Order: PureVal; + Tx: Tx; + InvertIfNegative: PureVal; + DLbls: DLbls; + Cat: Cat; + Val: Val; + ExtLst: ExtLst; + +end; + +function Ser.Create();overload; +begin + self.Create(nil, "c", "ser"); +end; + +function Ser.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Ser.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ser.Init();override; +begin + self.Idx := new PureVal(self, self.Prefix, "idx"); + self.Order := new PureVal(self, self.Prefix, "order"); + self.Tx := new Tx(self, self.Prefix, "tx"); + self.InvertIfNegative := new PureVal(self, self.Prefix, "invertIfNegative"); + self.DLbls := new DLbls(self, self.Prefix, "dLbls"); + self.Cat := new Cat(self, self.Prefix, "cat"); + self.Val := new Val(self, self.Prefix, "val"); + self.ExtLst := new ExtLst(self, self.Prefix, "extLst"); +end; + +function Ser.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Ser.InitChildren();override; +begin + child_elements_ := array( + 0: self.Idx, + 1: self.Order, + 2: self.Tx, + 3: self.InvertIfNegative, + 4: self.DLbls, + 5: self.Cat, + 6: self.Val, + 7: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.Idx.ElementName: 0, + self.Order.ElementName: 1, + self.Tx.ElementName: 2, + self.InvertIfNegative.ElementName: 3, + self.DLbls.ElementName: 4, + self.Cat.ElementName: 5, + self.Val.ElementName: 6, + self.ExtLst.ElementName: 7, + ); +end; + +function Ser.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ser.Copy(_obj: Ser);override; +begin + self.Idx.Copy(_obj.Idx); + self.Order.Copy(_obj.Order); + self.Tx.Copy(_obj.Tx); + self.InvertIfNegative.Copy(_obj.InvertIfNegative); + self.DLbls.Copy(_obj.DLbls); + self.Cat.Copy(_obj.Cat); + self.Val.Copy(_obj.Val); + self.ExtLst.Copy(_obj.ExtLst); +end; diff --git a/autoclass/docx/Settings@DOCX.tsf b/autoclass/docx/Settings@DOCX.tsf new file mode 100644 index 0000000..2d67051 --- /dev/null +++ b/autoclass/docx/Settings@DOCX.tsf @@ -0,0 +1,514 @@ +type Settings = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Settings);override; + + property XmlnsO read ReadXmlAttrXmlnsO write WriteXmlAttrXmlnsO; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsM read ReadXmlAttrXmlnsM write WriteXmlAttrXmlnsM; + property XmlnsV read ReadXmlAttrXmlnsV write WriteXmlAttrXmlnsV; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property XmlnsSl read ReadXmlAttrXmlnsSl write WriteXmlAttrXmlnsSl; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsO(); + function WriteXmlAttrXmlnsO(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsM(); + function WriteXmlAttrXmlnsM(_value); + function ReadXmlAttrXmlnsV(); + function WriteXmlAttrXmlnsV(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrXmlnsSl(); + function WriteXmlAttrXmlnsSl(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + + property BordersDoNotSurroundHeader read ReadXmlChildBordersDoNotSurroundHeader write WriteXmlChildBordersDoNotSurroundHeader; + property BordersDoNotSurroundFooter read ReadXmlChildBordersDoNotSurroundFooter write WriteXmlChildBordersDoNotSurroundFooter; + property DoNotIncludeSubdocsInStats read ReadXmlChildDoNotIncludeSubdocsInStats write WriteXmlChildDoNotIncludeSubdocsInStats; + property W15ChartTrackingRefBased read ReadXmlChildW15ChartTrackingRefBased write WriteXmlChildW15ChartTrackingRefBased; + function ReadXmlChildBordersDoNotSurroundHeader(); + function WriteXmlChildBordersDoNotSurroundHeader(_value); + function ReadXmlChildBordersDoNotSurroundFooter(); + function WriteXmlChildBordersDoNotSurroundFooter(_value); + function ReadXmlChildDoNotIncludeSubdocsInStats(); + function WriteXmlChildDoNotIncludeSubdocsInStats(_value); + function ReadXmlChildW15ChartTrackingRefBased(); + function WriteXmlChildW15ChartTrackingRefBased(_value); + +public + // Attributes + XmlAttrXmlnsO: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsM: OpenXmlAttribute; + XmlAttrXmlnsV: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrXmlnsSl: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + Zoom: Zoom; + XmlChildBordersDoNotSurroundHeader: OpenXmlEmpty; + XmlChildBordersDoNotSurroundFooter: OpenXmlEmpty; + DefaultTabStop: PureWVal; + DrawingGridVerticalSpacing: PureWVal; + DisplayHorizontalDrawingGridEvery: PureWVal; + DisplayVerticalDrawingGridEvery: PureWVal; + CharacterSpacingControl: PureWVal; + HdrShapeDefaults: HdrShapeDefaults; + FootnotePr: FootnotePr; + EndnotePr: EndnotePr; + Compat: Compat; + Rsids: Rsids; + MathPr: MathPr; + ThemeFontLang: ThemeFontLang; + ClrSchemeMapping: ClrSchemeMapping; + XmlChildDoNotIncludeSubdocsInStats: OpenXmlEmpty; + ShapeDefaults: ShapeDefaults2; + DecimalSymbol: PureWVal; + ListSeparator: PureWVal; + W14DocId: PureWVal; + XmlChildW15ChartTrackingRefBased: OpenXmlEmpty; + W15DocId: PureWVal; + +end; + +function Settings.Create();overload; +begin + self.Create(nil, "w", "settings"); +end; + +function Settings.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Settings.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Settings.Init();override; +begin + self.XmlAttrXmlnsO := new OpenXmlAttribute("xmlns", "o", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsM := new OpenXmlAttribute("xmlns", "m", nil); + self.XmlAttrXmlnsV := new OpenXmlAttribute("xmlns", "v", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrXmlnsSl := new OpenXmlAttribute("xmlns", "sl", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); + self.Zoom := new Zoom(self, self.Prefix, "zoom"); + self.XmlChildBordersDoNotSurroundHeader := new OpenXmlEmpty(self, self.Prefix, "bordersDoNotSurroundHeader"); + self.XmlChildBordersDoNotSurroundFooter := new OpenXmlEmpty(self, self.Prefix, "bordersDoNotSurroundFooter"); + self.DefaultTabStop := new PureWVal(self, self.Prefix, "defaultTabStop"); + self.DrawingGridVerticalSpacing := new PureWVal(self, self.Prefix, "drawingGridVerticalSpacing"); + self.DisplayHorizontalDrawingGridEvery := new PureWVal(self, self.Prefix, "displayHorizontalDrawingGridEvery"); + self.DisplayVerticalDrawingGridEvery := new PureWVal(self, self.Prefix, "DisplayVerticalDrawingGridEvery"); + self.CharacterSpacingControl := new PureWVal(self, self.Prefix, "characterSpacingControl"); + self.HdrShapeDefaults := new HdrShapeDefaults(self, self.Prefix, "hdrShapeDefaults"); + self.FootnotePr := new FootnotePr(self, self.Prefix, "footnotePr"); + self.EndnotePr := new EndnotePr(self, self.Prefix, "endnotePr"); + self.Compat := new Compat(self, self.Prefix, "Compat"); + self.Rsids := new Rsids(self, self.Prefix, "rsids"); + self.MathPr := new MathPr(self, "m", "mathPr"); + self.ThemeFontLang := new ThemeFontLang(self, self.Prefix, "themeFontLang"); + self.ClrSchemeMapping := new ClrSchemeMapping(self, self.Prefix, "clrSchemeMapping"); + self.XmlChildDoNotIncludeSubdocsInStats := new OpenXmlEmpty(self, self.Prefix, "doNotIncludeSubdocsInStats"); + self.ShapeDefaults := new ShapeDefaults2(self, self.Prefix, "shapeDefaults"); + self.DecimalSymbol := new PureWVal(self, self.Prefix, "decimalSymbol"); + self.ListSeparator := new PureWVal(self, self.Prefix, "listSeparator"); + self.W14DocId := new PureWVal(self, "w14", "docId"); + self.XmlChildW15ChartTrackingRefBased := new OpenXmlEmpty(self, "w15", "chartTrackingRefBased"); + self.W15DocId := new PureWVal(self, "w15", "docId"); +end; + +function Settings.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsO, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsM, + self.XmlAttrXmlnsV, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16se, + self.XmlAttrXmlnsSl, + self.XmlAttrMcIgnorable, + ); +end; + +function Settings.InitChildren();override; +begin + child_elements_ := array( + 0: self.Zoom, + 1: self.XmlChildBordersDoNotSurroundHeader, + 2: self.XmlChildBordersDoNotSurroundFooter, + 3: self.DefaultTabStop, + 4: self.DrawingGridVerticalSpacing, + 5: self.DisplayHorizontalDrawingGridEvery, + 6: self.DisplayVerticalDrawingGridEvery, + 7: self.CharacterSpacingControl, + 8: self.HdrShapeDefaults, + 9: self.FootnotePr, + 10: self.EndnotePr, + 11: self.Compat, + 12: self.Rsids, + 13: self.MathPr, + 14: self.ThemeFontLang, + 15: self.ClrSchemeMapping, + 16: self.XmlChildDoNotIncludeSubdocsInStats, + 17: self.ShapeDefaults, + 18: self.DecimalSymbol, + 19: self.ListSeparator, + 20: self.W14DocId, + 21: self.XmlChildW15ChartTrackingRefBased, + 22: self.W15DocId, + ); + sorted_child_ := array( + "": -1, + self.Zoom.ElementName: 0, + self.XmlChildBordersDoNotSurroundHeader.ElementName: 1, + self.XmlChildBordersDoNotSurroundFooter.ElementName: 2, + self.DefaultTabStop.ElementName: 3, + self.DrawingGridVerticalSpacing.ElementName: 4, + self.DisplayHorizontalDrawingGridEvery.ElementName: 5, + self.DisplayVerticalDrawingGridEvery.ElementName: 6, + self.CharacterSpacingControl.ElementName: 7, + self.HdrShapeDefaults.ElementName: 8, + self.FootnotePr.ElementName: 9, + self.EndnotePr.ElementName: 10, + self.Compat.ElementName: 11, + self.Rsids.ElementName: 12, + self.MathPr.ElementName: 13, + self.ThemeFontLang.ElementName: 14, + self.ClrSchemeMapping.ElementName: 15, + self.XmlChildDoNotIncludeSubdocsInStats.ElementName: 16, + self.ShapeDefaults.ElementName: 17, + self.DecimalSymbol.ElementName: 18, + self.ListSeparator.ElementName: 19, + self.W14DocId.ElementName: 20, + self.XmlChildW15ChartTrackingRefBased.ElementName: 21, + self.W15DocId.ElementName: 22, + ); +end; + +function Settings.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Settings.Copy(_obj: Settings);override; +begin + if not ifnil(_obj.XmlAttrXmlnsO.Value) then + self.XmlAttrXmlnsO.Value := _obj.XmlAttrXmlnsO.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsM.Value) then + self.XmlAttrXmlnsM.Value := _obj.XmlAttrXmlnsM.Value; + if not ifnil(_obj.XmlAttrXmlnsV.Value) then + self.XmlAttrXmlnsV.Value := _obj.XmlAttrXmlnsV.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrXmlnsSl.Value) then + self.XmlAttrXmlnsSl.Value := _obj.XmlAttrXmlnsSl.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; + self.Zoom.Copy(_obj.Zoom); + self.XmlChildBordersDoNotSurroundHeader.Copy(_obj.XmlChildBordersDoNotSurroundHeader); + self.XmlChildBordersDoNotSurroundFooter.Copy(_obj.XmlChildBordersDoNotSurroundFooter); + self.DefaultTabStop.Copy(_obj.DefaultTabStop); + self.DrawingGridVerticalSpacing.Copy(_obj.DrawingGridVerticalSpacing); + self.DisplayHorizontalDrawingGridEvery.Copy(_obj.DisplayHorizontalDrawingGridEvery); + self.DisplayVerticalDrawingGridEvery.Copy(_obj.DisplayVerticalDrawingGridEvery); + self.CharacterSpacingControl.Copy(_obj.CharacterSpacingControl); + self.HdrShapeDefaults.Copy(_obj.HdrShapeDefaults); + self.FootnotePr.Copy(_obj.FootnotePr); + self.EndnotePr.Copy(_obj.EndnotePr); + self.Compat.Copy(_obj.Compat); + self.Rsids.Copy(_obj.Rsids); + self.MathPr.Copy(_obj.MathPr); + self.ThemeFontLang.Copy(_obj.ThemeFontLang); + self.ClrSchemeMapping.Copy(_obj.ClrSchemeMapping); + self.XmlChildDoNotIncludeSubdocsInStats.Copy(_obj.XmlChildDoNotIncludeSubdocsInStats); + self.ShapeDefaults.Copy(_obj.ShapeDefaults); + self.DecimalSymbol.Copy(_obj.DecimalSymbol); + self.ListSeparator.Copy(_obj.ListSeparator); + self.W14DocId.Copy(_obj.W14DocId); + self.XmlChildW15ChartTrackingRefBased.Copy(_obj.XmlChildW15ChartTrackingRefBased); + self.W15DocId.Copy(_obj.W15DocId); +end; + +function Settings.ReadXmlAttrXmlnsO(); +begin + return self.XmlAttrXmlnsO.Value; +end; + +function Settings.WriteXmlAttrXmlnsO(_value); +begin + self.XmlAttrXmlnsO.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Settings.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsM(); +begin + return self.XmlAttrXmlnsM.Value; +end; + +function Settings.WriteXmlAttrXmlnsM(_value); +begin + self.XmlAttrXmlnsM.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsV(); +begin + return self.XmlAttrXmlnsV.Value; +end; + +function Settings.WriteXmlAttrXmlnsV(_value); +begin + self.XmlAttrXmlnsV.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Settings.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Settings.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Settings.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Settings.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Settings.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Settings.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Settings.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Settings.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Settings.ReadXmlAttrXmlnsSl(); +begin + return self.XmlAttrXmlnsSl.Value; +end; + +function Settings.WriteXmlAttrXmlnsSl(_value); +begin + self.XmlAttrXmlnsSl.Value := _value; +end; + +function Settings.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Settings.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; + +function Settings.ReadXmlChildBordersDoNotSurroundHeader(); +begin + return ifnil(self.XmlChildBordersDoNotSurroundHeader.Value) ? false : true; +end; + +function Settings.WriteXmlChildBordersDoNotSurroundHeader(_value); +begin + self.XmlChildBordersDoNotSurroundHeader.Value := _value; +end; + +function Settings.ReadXmlChildBordersDoNotSurroundFooter(); +begin + return ifnil(self.XmlChildBordersDoNotSurroundFooter.Value) ? false : true; +end; + +function Settings.WriteXmlChildBordersDoNotSurroundFooter(_value); +begin + self.XmlChildBordersDoNotSurroundFooter.Value := _value; +end; + +function Settings.ReadXmlChildDoNotIncludeSubdocsInStats(); +begin + return ifnil(self.XmlChildDoNotIncludeSubdocsInStats.Value) ? false : true; +end; + +function Settings.WriteXmlChildDoNotIncludeSubdocsInStats(_value); +begin + self.XmlChildDoNotIncludeSubdocsInStats.Value := _value; +end; + +function Settings.ReadXmlChildW15ChartTrackingRefBased(); +begin + return ifnil(self.XmlChildW15ChartTrackingRefBased.Value) ? false : true; +end; + +function Settings.WriteXmlChildW15ChartTrackingRefBased(_value); +begin + self.XmlChildW15ChartTrackingRefBased.Value := _value; +end; diff --git a/autoclass/docx/ShapeDefaults2@DOCX.tsf b/autoclass/docx/ShapeDefaults2@DOCX.tsf new file mode 100644 index 0000000..030b5be --- /dev/null +++ b/autoclass/docx/ShapeDefaults2@DOCX.tsf @@ -0,0 +1,103 @@ +type ShapeDefaults2 = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ShapeDefaults2);override; + +public + // Attributes + + // Children + ShapeDefaults: ShapeDefaults; + ShapeLayout: ShapeLayout; + +end; + +function ShapeDefaults2.Create();overload; +begin + self.Create(nil, "w", "shapeDefaults"); +end; + +function ShapeDefaults2.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ShapeDefaults2.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ShapeDefaults2.Init();override; +begin + self.ShapeDefaults := new ShapeDefaults(self, "o", "shapeDefaults"); + self.ShapeLayout := new ShapeLayout(self, "o", "shapelayout"); +end; + +function ShapeDefaults2.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function ShapeDefaults2.InitChildren();override; +begin + child_elements_ := array( + 0: self.ShapeDefaults, + 1: self.ShapeLayout, + ); + sorted_child_ := array( + "": -1, + self.ShapeDefaults.ElementName: 0, + self.ShapeLayout.ElementName: 1, + ); +end; + +function ShapeDefaults2.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ShapeDefaults2.Copy(_obj: ShapeDefaults2);override; +begin + self.ShapeDefaults.Copy(_obj.ShapeDefaults); + self.ShapeLayout.Copy(_obj.ShapeLayout); +end; diff --git a/autoclass/docx/ShapeDefaults@DOCX.tsf b/autoclass/docx/ShapeDefaults@DOCX.tsf new file mode 100644 index 0000000..df04de9 --- /dev/null +++ b/autoclass/docx/ShapeDefaults@DOCX.tsf @@ -0,0 +1,99 @@ +type ShapeDefaults = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ShapeDefaults);override; + + property Ext read ReadXmlAttrExt write WriteXmlAttrExt; + property Spidmax read ReadXmlAttrSpidmax write WriteXmlAttrSpidmax; + function ReadXmlAttrExt(); + function WriteXmlAttrExt(_value); + function ReadXmlAttrSpidmax(); + function WriteXmlAttrSpidmax(_value); + +public + // Attributes + XmlAttrExt: OpenXmlAttribute; + XmlAttrSpidmax: OpenXmlAttribute; + + // Children + +end; + +function ShapeDefaults.Create();overload; +begin + self.Create(nil, "o", "shapeDefaults"); +end; + +function ShapeDefaults.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ShapeDefaults.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ShapeDefaults.Init();override; +begin + self.XmlAttrExt := new OpenXmlAttribute("v", "ext", nil); + self.XmlAttrSpidmax := new OpenXmlAttribute(nil, "spidmax", nil); +end; + +function ShapeDefaults.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrExt, + self.XmlAttrSpidmax, + ); +end; + +function ShapeDefaults.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ShapeDefaults.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function ShapeDefaults.Copy(_obj: ShapeDefaults);override; +begin + if not ifnil(_obj.XmlAttrExt.Value) then + self.XmlAttrExt.Value := _obj.XmlAttrExt.Value; + if not ifnil(_obj.XmlAttrSpidmax.Value) then + self.XmlAttrSpidmax.Value := _obj.XmlAttrSpidmax.Value; +end; + +function ShapeDefaults.ReadXmlAttrExt(); +begin + return self.XmlAttrExt.Value; +end; + +function ShapeDefaults.WriteXmlAttrExt(_value); +begin + self.XmlAttrExt.Value := _value; +end; + +function ShapeDefaults.ReadXmlAttrSpidmax(); +begin + return self.XmlAttrSpidmax.Value; +end; + +function ShapeDefaults.WriteXmlAttrSpidmax(_value); +begin + self.XmlAttrSpidmax.Value := _value; +end; diff --git a/autoclass/docx/ShapeLayout@DOCX.tsf b/autoclass/docx/ShapeLayout@DOCX.tsf new file mode 100644 index 0000000..91ed6b1 --- /dev/null +++ b/autoclass/docx/ShapeLayout@DOCX.tsf @@ -0,0 +1,117 @@ +type ShapeLayout = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ShapeLayout);override; + + property Ext read ReadXmlAttrExt write WriteXmlAttrExt; + function ReadXmlAttrExt(); + function WriteXmlAttrExt(_value); + +public + // Attributes + XmlAttrExt: OpenXmlAttribute; + + // Children + IdMap: IdMap; + +end; + +function ShapeLayout.Create();overload; +begin + self.Create(nil, "o", "shapelayout"); +end; + +function ShapeLayout.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ShapeLayout.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ShapeLayout.Init();override; +begin + self.XmlAttrExt := new OpenXmlAttribute("v", "ext", nil); + self.IdMap := new IdMap(self, self.Prefix, "idmap"); +end; + +function ShapeLayout.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrExt, + ); +end; + +function ShapeLayout.InitChildren();override; +begin + child_elements_ := array( + 0: self.IdMap, + ); + sorted_child_ := array( + "": -1, + self.IdMap.ElementName: 0, + ); +end; + +function ShapeLayout.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ShapeLayout.Copy(_obj: ShapeLayout);override; +begin + if not ifnil(_obj.XmlAttrExt.Value) then + self.XmlAttrExt.Value := _obj.XmlAttrExt.Value; + self.IdMap.Copy(_obj.IdMap); +end; + +function ShapeLayout.ReadXmlAttrExt(); +begin + return self.XmlAttrExt.Value; +end; + +function ShapeLayout.WriteXmlAttrExt(_value); +begin + self.XmlAttrExt.Value := _value; +end; diff --git a/autoclass/docx/Shd@DOCX.tsf b/autoclass/docx/Shd@DOCX.tsf new file mode 100644 index 0000000..9e63e15 --- /dev/null +++ b/autoclass/docx/Shd@DOCX.tsf @@ -0,0 +1,153 @@ +type Shd = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Shd);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property Color read ReadXmlAttrColor write WriteXmlAttrColor; + property Fill read ReadXmlAttrFill write WriteXmlAttrFill; + property ThemeFill read ReadXmlAttrThemeFill write WriteXmlAttrThemeFill; + property ThemeFillTint read ReadXmlAttrThemeFillTint write WriteXmlAttrThemeFillTint; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrColor(); + function WriteXmlAttrColor(_value); + function ReadXmlAttrFill(); + function WriteXmlAttrFill(_value); + function ReadXmlAttrThemeFill(); + function WriteXmlAttrThemeFill(_value); + function ReadXmlAttrThemeFillTint(); + function WriteXmlAttrThemeFillTint(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrColor: OpenXmlAttribute; + XmlAttrFill: OpenXmlAttribute; + XmlAttrThemeFill: OpenXmlAttribute; + XmlAttrThemeFillTint: OpenXmlAttribute; + + // Children + +end; + +function Shd.Create();overload; +begin + self.Create(nil, "w", "shd"); +end; + +function Shd.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Shd.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Shd.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute("w", "val", nil); + self.XmlAttrColor := new OpenXmlAttribute("w", "color", nil); + self.XmlAttrFill := new OpenXmlAttribute("w", "fill", nil); + self.XmlAttrThemeFill := new OpenXmlAttribute("w", "themeFill", nil); + self.XmlAttrThemeFillTint := new OpenXmlAttribute("w", "themeFillTint", nil); +end; + +function Shd.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrColor, + self.XmlAttrFill, + self.XmlAttrThemeFill, + self.XmlAttrThemeFillTint, + ); +end; + +function Shd.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Shd.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Shd.Copy(_obj: Shd);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrColor.Value) then + self.XmlAttrColor.Value := _obj.XmlAttrColor.Value; + if not ifnil(_obj.XmlAttrFill.Value) then + self.XmlAttrFill.Value := _obj.XmlAttrFill.Value; + if not ifnil(_obj.XmlAttrThemeFill.Value) then + self.XmlAttrThemeFill.Value := _obj.XmlAttrThemeFill.Value; + if not ifnil(_obj.XmlAttrThemeFillTint.Value) then + self.XmlAttrThemeFillTint.Value := _obj.XmlAttrThemeFillTint.Value; +end; + +function Shd.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function Shd.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function Shd.ReadXmlAttrColor(); +begin + return self.XmlAttrColor.Value; +end; + +function Shd.WriteXmlAttrColor(_value); +begin + self.XmlAttrColor.Value := _value; +end; + +function Shd.ReadXmlAttrFill(); +begin + return self.XmlAttrFill.Value; +end; + +function Shd.WriteXmlAttrFill(_value); +begin + self.XmlAttrFill.Value := _value; +end; + +function Shd.ReadXmlAttrThemeFill(); +begin + return self.XmlAttrThemeFill.Value; +end; + +function Shd.WriteXmlAttrThemeFill(_value); +begin + self.XmlAttrThemeFill.Value := _value; +end; + +function Shd.ReadXmlAttrThemeFillTint(); +begin + return self.XmlAttrThemeFillTint.Value; +end; + +function Shd.WriteXmlAttrThemeFillTint(_value); +begin + self.XmlAttrThemeFillTint.Value := _value; +end; diff --git a/autoclass/docx/Sig@DOCX.tsf b/autoclass/docx/Sig@DOCX.tsf new file mode 100644 index 0000000..450523d --- /dev/null +++ b/autoclass/docx/Sig@DOCX.tsf @@ -0,0 +1,171 @@ +type Sig = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Sig);override; + + property Usb0 read ReadXmlAttrUsb0 write WriteXmlAttrUsb0; + property Usb1 read ReadXmlAttrUsb1 write WriteXmlAttrUsb1; + property Usb2 read ReadXmlAttrUsb2 write WriteXmlAttrUsb2; + property Usb3 read ReadXmlAttrUsb3 write WriteXmlAttrUsb3; + property csb0 read ReadXmlAttrcsb0 write WriteXmlAttrcsb0; + property csb1 read ReadXmlAttrcsb1 write WriteXmlAttrcsb1; + function ReadXmlAttrUsb0(); + function WriteXmlAttrUsb0(_value); + function ReadXmlAttrUsb1(); + function WriteXmlAttrUsb1(_value); + function ReadXmlAttrUsb2(); + function WriteXmlAttrUsb2(_value); + function ReadXmlAttrUsb3(); + function WriteXmlAttrUsb3(_value); + function ReadXmlAttrcsb0(); + function WriteXmlAttrcsb0(_value); + function ReadXmlAttrcsb1(); + function WriteXmlAttrcsb1(_value); + +public + // Attributes + XmlAttrUsb0: OpenXmlAttribute; + XmlAttrUsb1: OpenXmlAttribute; + XmlAttrUsb2: OpenXmlAttribute; + XmlAttrUsb3: OpenXmlAttribute; + XmlAttrcsb0: OpenXmlAttribute; + XmlAttrcsb1: OpenXmlAttribute; + + // Children + +end; + +function Sig.Create();overload; +begin + self.Create(nil, "w", "sig"); +end; + +function Sig.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Sig.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Sig.Init();override; +begin + self.XmlAttrUsb0 := new OpenXmlAttribute(self.Prefix, "usb0", nil); + self.XmlAttrUsb1 := new OpenXmlAttribute(self.Prefix, "usb1", nil); + self.XmlAttrUsb2 := new OpenXmlAttribute(self.Prefix, "usb2", nil); + self.XmlAttrUsb3 := new OpenXmlAttribute(self.Prefix, "usb3", nil); + self.XmlAttrcsb0 := new OpenXmlAttribute(self.Prefix, "csb0", nil); + self.XmlAttrcsb1 := new OpenXmlAttribute(self.Prefix, "csb1", nil); +end; + +function Sig.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrUsb0, + self.XmlAttrUsb1, + self.XmlAttrUsb2, + self.XmlAttrUsb3, + self.XmlAttrcsb0, + self.XmlAttrcsb1, + ); +end; + +function Sig.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Sig.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Sig.Copy(_obj: Sig);override; +begin + if not ifnil(_obj.XmlAttrUsb0.Value) then + self.XmlAttrUsb0.Value := _obj.XmlAttrUsb0.Value; + if not ifnil(_obj.XmlAttrUsb1.Value) then + self.XmlAttrUsb1.Value := _obj.XmlAttrUsb1.Value; + if not ifnil(_obj.XmlAttrUsb2.Value) then + self.XmlAttrUsb2.Value := _obj.XmlAttrUsb2.Value; + if not ifnil(_obj.XmlAttrUsb3.Value) then + self.XmlAttrUsb3.Value := _obj.XmlAttrUsb3.Value; + if not ifnil(_obj.XmlAttrcsb0.Value) then + self.XmlAttrcsb0.Value := _obj.XmlAttrcsb0.Value; + if not ifnil(_obj.XmlAttrcsb1.Value) then + self.XmlAttrcsb1.Value := _obj.XmlAttrcsb1.Value; +end; + +function Sig.ReadXmlAttrUsb0(); +begin + return self.XmlAttrUsb0.Value; +end; + +function Sig.WriteXmlAttrUsb0(_value); +begin + self.XmlAttrUsb0.Value := _value; +end; + +function Sig.ReadXmlAttrUsb1(); +begin + return self.XmlAttrUsb1.Value; +end; + +function Sig.WriteXmlAttrUsb1(_value); +begin + self.XmlAttrUsb1.Value := _value; +end; + +function Sig.ReadXmlAttrUsb2(); +begin + return self.XmlAttrUsb2.Value; +end; + +function Sig.WriteXmlAttrUsb2(_value); +begin + self.XmlAttrUsb2.Value := _value; +end; + +function Sig.ReadXmlAttrUsb3(); +begin + return self.XmlAttrUsb3.Value; +end; + +function Sig.WriteXmlAttrUsb3(_value); +begin + self.XmlAttrUsb3.Value := _value; +end; + +function Sig.ReadXmlAttrcsb0(); +begin + return self.XmlAttrcsb0.Value; +end; + +function Sig.WriteXmlAttrcsb0(_value); +begin + self.XmlAttrcsb0.Value := _value; +end; + +function Sig.ReadXmlAttrcsb1(); +begin + return self.XmlAttrcsb1.Value; +end; + +function Sig.WriteXmlAttrcsb1(_value); +begin + self.XmlAttrcsb1.Value := _value; +end; diff --git a/autoclass/docx/SolidFill@DOCX.tsf b/autoclass/docx/SolidFill@DOCX.tsf new file mode 100644 index 0000000..d0bb4d0 --- /dev/null +++ b/autoclass/docx/SolidFill@DOCX.tsf @@ -0,0 +1,98 @@ +type SolidFill = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SolidFill);override; + +public + // Attributes + + // Children + SchemeClr: SchemeClr; + +end; + +function SolidFill.Create();overload; +begin + self.Create(nil, "a", "solidFill"); +end; + +function SolidFill.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SolidFill.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SolidFill.Init();override; +begin + self.SchemeClr := new SchemeClr(self, self.Prefix, "schemeClr"); +end; + +function SolidFill.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SolidFill.InitChildren();override; +begin + child_elements_ := array( + 0: self.SchemeClr, + ); + sorted_child_ := array( + "": -1, + self.SchemeClr.ElementName: 0, + ); +end; + +function SolidFill.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SolidFill.Copy(_obj: SolidFill);override; +begin + self.SchemeClr.Copy(_obj.SchemeClr); +end; diff --git a/autoclass/docx/SpPr@DOCX.tsf b/autoclass/docx/SpPr@DOCX.tsf new file mode 100644 index 0000000..234cdb0 --- /dev/null +++ b/autoclass/docx/SpPr@DOCX.tsf @@ -0,0 +1,137 @@ +type SpPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SpPr);override; + + property NoFill read ReadXmlChildNoFill write WriteXmlChildNoFill; + function ReadXmlChildNoFill(); + function WriteXmlChildNoFill(_value); + +public + // Attributes + + // Children + Xfrm: Xfrm; + PrstGeom: PrstGeom; + XmlChildNoFill: OpenXmlEmpty; + SolidFill: SolidFill; + Ln: Ln; + EffectLst: EffectLst; + +end; + +function SpPr.Create();overload; +begin + self.Create(nil, "pic", "spPr"); +end; + +function SpPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SpPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SpPr.Init();override; +begin + self.Xfrm := new Xfrm(self, "a", "xfrm"); + self.PrstGeom := new PrstGeom(self, "a", "prstGeom"); + self.XmlChildNoFill := new OpenXmlEmpty(self, "a", "noFill"); + self.SolidFill := new SolidFill(self, "a", "solidFill"); + self.Ln := new Ln(self, "a", "ln"); + self.EffectLst := new EffectLst(self, "a", "effectLst"); +end; + +function SpPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SpPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Xfrm, + 1: self.PrstGeom, + 2: self.XmlChildNoFill, + 3: self.SolidFill, + 4: self.Ln, + 5: self.EffectLst, + ); + sorted_child_ := array( + "": -1, + self.Xfrm.ElementName: 0, + self.PrstGeom.ElementName: 1, + self.XmlChildNoFill.ElementName: 2, + self.SolidFill.ElementName: 3, + self.Ln.ElementName: 4, + self.EffectLst.ElementName: 5, + ); +end; + +function SpPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SpPr.Copy(_obj: SpPr);override; +begin + self.Xfrm.Copy(_obj.Xfrm); + self.PrstGeom.Copy(_obj.PrstGeom); + self.XmlChildNoFill.Copy(_obj.XmlChildNoFill); + self.SolidFill.Copy(_obj.SolidFill); + self.Ln.Copy(_obj.Ln); + self.EffectLst.Copy(_obj.EffectLst); +end; + +function SpPr.ReadXmlChildNoFill(); +begin + return ifnil(self.XmlChildNoFill.Value) ? false : true; +end; + +function SpPr.WriteXmlChildNoFill(_value); +begin + self.XmlChildNoFill.Value := _value; +end; diff --git a/autoclass/docx/Spacing@DOCX.tsf b/autoclass/docx/Spacing@DOCX.tsf new file mode 100644 index 0000000..f9ace6a --- /dev/null +++ b/autoclass/docx/Spacing@DOCX.tsf @@ -0,0 +1,207 @@ +type Spacing = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Spacing);override; + + property Before read ReadXmlAttrBefore write WriteXmlAttrBefore; + property BeforeLines read ReadXmlAttrBeforeLines write WriteXmlAttrBeforeLines; + property BeforeAutospacing read ReadXmlAttrBeforeAutospacing write WriteXmlAttrBeforeAutospacing; + property After read ReadXmlAttrAfter write WriteXmlAttrAfter; + property AfterLines read ReadXmlAttrAfterLines write WriteXmlAttrAfterLines; + property AfterAutospacing read ReadXmlAttrAfterAutospacing write WriteXmlAttrAfterAutospacing; + property Line read ReadXmlAttrLine write WriteXmlAttrLine; + property LineRule read ReadXmlAttrLineRule write WriteXmlAttrLineRule; + function ReadXmlAttrBefore(); + function WriteXmlAttrBefore(_value); + function ReadXmlAttrBeforeLines(); + function WriteXmlAttrBeforeLines(_value); + function ReadXmlAttrBeforeAutospacing(); + function WriteXmlAttrBeforeAutospacing(_value); + function ReadXmlAttrAfter(); + function WriteXmlAttrAfter(_value); + function ReadXmlAttrAfterLines(); + function WriteXmlAttrAfterLines(_value); + function ReadXmlAttrAfterAutospacing(); + function WriteXmlAttrAfterAutospacing(_value); + function ReadXmlAttrLine(); + function WriteXmlAttrLine(_value); + function ReadXmlAttrLineRule(); + function WriteXmlAttrLineRule(_value); + +public + // Attributes + XmlAttrBefore: OpenXmlAttribute; + XmlAttrBeforeLines: OpenXmlAttribute; + XmlAttrBeforeAutospacing: OpenXmlAttribute; + XmlAttrAfter: OpenXmlAttribute; + XmlAttrAfterLines: OpenXmlAttribute; + XmlAttrAfterAutospacing: OpenXmlAttribute; + XmlAttrLine: OpenXmlAttribute; + XmlAttrLineRule: OpenXmlAttribute; + + // Children + +end; + +function Spacing.Create();overload; +begin + self.Create(nil, "w", "spacing"); +end; + +function Spacing.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Spacing.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Spacing.Init();override; +begin + self.XmlAttrBefore := new OpenXmlAttribute(self.Prefix, "before", nil); + self.XmlAttrBeforeLines := new OpenXmlAttribute(self.Prefix, "beforeLines", nil); + self.XmlAttrBeforeAutospacing := new OpenXmlAttribute(self.Prefix, "beforeAutospacing", nil); + self.XmlAttrAfter := new OpenXmlAttribute(self.Prefix, "after", nil); + self.XmlAttrAfterLines := new OpenXmlAttribute(self.Prefix, "afterLines", nil); + self.XmlAttrAfterAutospacing := new OpenXmlAttribute(self.Prefix, "afterAutospacing", nil); + self.XmlAttrLine := new OpenXmlAttribute(self.Prefix, "line", nil); + self.XmlAttrLineRule := new OpenXmlAttribute(self.Prefix, "lineRule", nil); +end; + +function Spacing.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrBefore, + self.XmlAttrBeforeLines, + self.XmlAttrBeforeAutospacing, + self.XmlAttrAfter, + self.XmlAttrAfterLines, + self.XmlAttrAfterAutospacing, + self.XmlAttrLine, + self.XmlAttrLineRule, + ); +end; + +function Spacing.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Spacing.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Spacing.Copy(_obj: Spacing);override; +begin + if not ifnil(_obj.XmlAttrBefore.Value) then + self.XmlAttrBefore.Value := _obj.XmlAttrBefore.Value; + if not ifnil(_obj.XmlAttrBeforeLines.Value) then + self.XmlAttrBeforeLines.Value := _obj.XmlAttrBeforeLines.Value; + if not ifnil(_obj.XmlAttrBeforeAutospacing.Value) then + self.XmlAttrBeforeAutospacing.Value := _obj.XmlAttrBeforeAutospacing.Value; + if not ifnil(_obj.XmlAttrAfter.Value) then + self.XmlAttrAfter.Value := _obj.XmlAttrAfter.Value; + if not ifnil(_obj.XmlAttrAfterLines.Value) then + self.XmlAttrAfterLines.Value := _obj.XmlAttrAfterLines.Value; + if not ifnil(_obj.XmlAttrAfterAutospacing.Value) then + self.XmlAttrAfterAutospacing.Value := _obj.XmlAttrAfterAutospacing.Value; + if not ifnil(_obj.XmlAttrLine.Value) then + self.XmlAttrLine.Value := _obj.XmlAttrLine.Value; + if not ifnil(_obj.XmlAttrLineRule.Value) then + self.XmlAttrLineRule.Value := _obj.XmlAttrLineRule.Value; +end; + +function Spacing.ReadXmlAttrBefore(); +begin + return self.XmlAttrBefore.Value; +end; + +function Spacing.WriteXmlAttrBefore(_value); +begin + self.XmlAttrBefore.Value := _value; +end; + +function Spacing.ReadXmlAttrBeforeLines(); +begin + return self.XmlAttrBeforeLines.Value; +end; + +function Spacing.WriteXmlAttrBeforeLines(_value); +begin + self.XmlAttrBeforeLines.Value := _value; +end; + +function Spacing.ReadXmlAttrBeforeAutospacing(); +begin + return self.XmlAttrBeforeAutospacing.Value; +end; + +function Spacing.WriteXmlAttrBeforeAutospacing(_value); +begin + self.XmlAttrBeforeAutospacing.Value := _value; +end; + +function Spacing.ReadXmlAttrAfter(); +begin + return self.XmlAttrAfter.Value; +end; + +function Spacing.WriteXmlAttrAfter(_value); +begin + self.XmlAttrAfter.Value := _value; +end; + +function Spacing.ReadXmlAttrAfterLines(); +begin + return self.XmlAttrAfterLines.Value; +end; + +function Spacing.WriteXmlAttrAfterLines(_value); +begin + self.XmlAttrAfterLines.Value := _value; +end; + +function Spacing.ReadXmlAttrAfterAutospacing(); +begin + return self.XmlAttrAfterAutospacing.Value; +end; + +function Spacing.WriteXmlAttrAfterAutospacing(_value); +begin + self.XmlAttrAfterAutospacing.Value := _value; +end; + +function Spacing.ReadXmlAttrLine(); +begin + return self.XmlAttrLine.Value; +end; + +function Spacing.WriteXmlAttrLine(_value); +begin + self.XmlAttrLine.Value := _value; +end; + +function Spacing.ReadXmlAttrLineRule(); +begin + return self.XmlAttrLineRule.Value; +end; + +function Spacing.WriteXmlAttrLineRule(_value); +begin + self.XmlAttrLineRule.Value := _value; +end; diff --git a/autoclass/docx/SrgbClr@DOCX.tsf b/autoclass/docx/SrgbClr@DOCX.tsf new file mode 100644 index 0000000..0e211c0 --- /dev/null +++ b/autoclass/docx/SrgbClr@DOCX.tsf @@ -0,0 +1,117 @@ +type SrgbClr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SrgbClr);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + + // Children + Alpha: PureVal; + +end; + +function SrgbClr.Create();overload; +begin + self.Create(nil, "a", "srgbClr"); +end; + +function SrgbClr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SrgbClr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SrgbClr.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.Alpha := new PureVal(self, self.Prefix, "aplha"); +end; + +function SrgbClr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function SrgbClr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Alpha, + ); + sorted_child_ := array( + "": -1, + self.Alpha.ElementName: 0, + ); +end; + +function SrgbClr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SrgbClr.Copy(_obj: SrgbClr);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + self.Alpha.Copy(_obj.Alpha); +end; + +function SrgbClr.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SrgbClr.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/StrRef@DOCX.tsf b/autoclass/docx/StrRef@DOCX.tsf new file mode 100644 index 0000000..4f5ed62 --- /dev/null +++ b/autoclass/docx/StrRef@DOCX.tsf @@ -0,0 +1,103 @@ +type StrRef = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: StrRef);override; + +public + // Attributes + + // Children + F: OpenXmlPcdata; + StrCache: Cache; + +end; + +function StrRef.Create();overload; +begin + self.Create(nil, "c", "strRef"); +end; + +function StrRef.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function StrRef.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function StrRef.Init();override; +begin + self.F := new OpenXmlPcdata(self, self.Prefix, "f"); + self.StrCache := new Cache(self, self.Prefix, "strCache"); +end; + +function StrRef.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function StrRef.InitChildren();override; +begin + child_elements_ := array( + 0: self.F, + 1: self.StrCache, + ); + sorted_child_ := array( + "": -1, + self.F.ElementName: 0, + self.StrCache.ElementName: 1, + ); +end; + +function StrRef.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function StrRef.Copy(_obj: StrRef);override; +begin + self.F.Copy(_obj.F); + self.StrCache.Copy(_obj.StrCache); +end; diff --git a/autoclass/docx/Stretch@DOCX.tsf b/autoclass/docx/Stretch@DOCX.tsf new file mode 100644 index 0000000..bac1cab --- /dev/null +++ b/autoclass/docx/Stretch@DOCX.tsf @@ -0,0 +1,98 @@ +type Stretch = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Stretch);override; + +public + // Attributes + + // Children + FillRect: PureVal; + +end; + +function Stretch.Create();overload; +begin + self.Create(nil, "a", "stretch"); +end; + +function Stretch.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Stretch.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Stretch.Init();override; +begin + self.FillRect := new PureVal(self, "a", "fillRect"); +end; + +function Stretch.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Stretch.InitChildren();override; +begin + child_elements_ := array( + 0: self.FillRect, + ); + sorted_child_ := array( + "": -1, + self.FillRect.ElementName: 0, + ); +end; + +function Stretch.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Stretch.Copy(_obj: Stretch);override; +begin + self.FillRect.Copy(_obj.FillRect); +end; diff --git a/autoclass/docx/Style@DOCX.tsf b/autoclass/docx/Style@DOCX.tsf new file mode 100644 index 0000000..431f403 --- /dev/null +++ b/autoclass/docx/Style@DOCX.tsf @@ -0,0 +1,281 @@ +type Style = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Style);override; + + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Default read ReadXmlAttrDefault write WriteXmlAttrDefault; + property StyleId read ReadXmlAttrStyleId write WriteXmlAttrStyleId; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrDefault(); + function WriteXmlAttrDefault(_value); + function ReadXmlAttrStyleId(); + function WriteXmlAttrStyleId(_value); + + property SemiHidden read ReadXmlChildSemiHidden write WriteXmlChildSemiHidden; + property UnhideWhenUsed read ReadXmlChildUnhideWhenUsed write WriteXmlChildUnhideWhenUsed; + property QFormat read ReadXmlChildQFormat write WriteXmlChildQFormat; + property Rsid read ReadXmlChildRsid write WriteXmlChildRsid; + function ReadXmlChildSemiHidden(); + function WriteXmlChildSemiHidden(_value); + function ReadXmlChildUnhideWhenUsed(); + function WriteXmlChildUnhideWhenUsed(_value); + function ReadXmlChildQFormat(); + function WriteXmlChildQFormat(_value); + function ReadXmlChildRsid(); + function WriteXmlChildRsid(_value); + +public + // Attributes + XmlAttrType: OpenXmlAttribute; + XmlAttrDefault: OpenXmlAttribute; + XmlAttrStyleId: OpenXmlAttribute; + + // Children + Name: PureWVal; + BasedOn: PureWVal; + Next: PureWVal; + AutoRedefine: PureWVal; + Link: PureWVal; + UIPriority: PureWVal; + XmlChildSemiHidden: OpenXmlEmpty; + XmlChildUnhideWhenUsed: OpenXmlEmpty; + XmlChildQFormat: OpenXmlEmpty; + XmlChildRsid: OpenXmlEmpty; + PPr: PPr; + RPr: RPr; + TblPr: TblPr; + TrPr: TrPr; + TcPr: TcPr; + TblStylePr: TblStylePr; + +end; + +function Style.Create();overload; +begin + self.Create(nil, "w", "style"); +end; + +function Style.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Style.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Style.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); + self.XmlAttrDefault := new OpenXmlAttribute(self.Prefix, "default", nil); + self.XmlAttrStyleId := new OpenXmlAttribute(self.Prefix, "styleId", nil); + self.Name := new PureWVal(self, self.Prefix, "name"); + self.BasedOn := new PureWVal(self, self.Prefix, "basedOn"); + self.Next := new PureWVal(self, self.Prefix, "next"); + self.AutoRedefine := new PureWVal(self, self.Prefix, "autoRedefine"); + self.Link := new PureWVal(self, self.Prefix, "link"); + self.UIPriority := new PureWVal(self, self.Prefix, "uiPriority"); + self.XmlChildSemiHidden := new OpenXmlEmpty(self, self.Prefix, "semiHidden"); + self.XmlChildUnhideWhenUsed := new OpenXmlEmpty(self, self.Prefix, "unhideWhenUsed"); + self.XmlChildQFormat := new OpenXmlEmpty(self, self.Prefix, "qFormat"); + self.XmlChildRsid := new PureWVal(self, self.Prefix, "rsid"); + self.PPr := new PPr(self, self.Prefix, "pPr"); + self.RPr := new RPr(self, self.Prefix, "rPr"); + self.TblPr := new TblPr(self, self.Prefix, "tblPr"); + self.TrPr := new TrPr(self, self.Prefix, "trPr"); + self.TcPr := new TcPr(self, self.Prefix, "tcPr"); + self.TblStylePr := new TblStylePr(self, self.Prefix, "tblStylePr"); +end; + +function Style.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + self.XmlAttrDefault, + self.XmlAttrStyleId, + ); +end; + +function Style.InitChildren();override; +begin + child_elements_ := array( + 0: self.Name, + 1: self.BasedOn, + 2: self.Next, + 3: self.AutoRedefine, + 4: self.Link, + 5: self.UIPriority, + 6: self.XmlChildSemiHidden, + 7: self.XmlChildUnhideWhenUsed, + 8: self.XmlChildQFormat, + 9: self.XmlChildRsid, + 10: self.PPr, + 11: self.RPr, + 12: self.TblPr, + 13: self.TrPr, + 14: self.TcPr, + 15: self.TblStylePr, + ); + sorted_child_ := array( + "": -1, + self.Name.ElementName: 0, + self.BasedOn.ElementName: 1, + self.Next.ElementName: 2, + self.AutoRedefine.ElementName: 3, + self.Link.ElementName: 4, + self.UIPriority.ElementName: 5, + self.XmlChildSemiHidden.ElementName: 6, + self.XmlChildUnhideWhenUsed.ElementName: 7, + self.XmlChildQFormat.ElementName: 8, + self.XmlChildRsid.ElementName: 9, + self.PPr.ElementName: 10, + self.RPr.ElementName: 11, + self.TblPr.ElementName: 12, + self.TrPr.ElementName: 13, + self.TcPr.ElementName: 14, + self.TblStylePr.ElementName: 15, + ); +end; + +function Style.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Style.Copy(_obj: Style);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrDefault.Value) then + self.XmlAttrDefault.Value := _obj.XmlAttrDefault.Value; + if not ifnil(_obj.XmlAttrStyleId.Value) then + self.XmlAttrStyleId.Value := _obj.XmlAttrStyleId.Value; + self.Name.Copy(_obj.Name); + self.BasedOn.Copy(_obj.BasedOn); + self.Next.Copy(_obj.Next); + self.AutoRedefine.Copy(_obj.AutoRedefine); + self.Link.Copy(_obj.Link); + self.UIPriority.Copy(_obj.UIPriority); + self.XmlChildSemiHidden.Copy(_obj.XmlChildSemiHidden); + self.XmlChildUnhideWhenUsed.Copy(_obj.XmlChildUnhideWhenUsed); + self.XmlChildQFormat.Copy(_obj.XmlChildQFormat); + self.XmlChildRsid.Copy(_obj.XmlChildRsid); + self.PPr.Copy(_obj.PPr); + self.RPr.Copy(_obj.RPr); + self.TblPr.Copy(_obj.TblPr); + self.TrPr.Copy(_obj.TrPr); + self.TcPr.Copy(_obj.TcPr); + self.TblStylePr.Copy(_obj.TblStylePr); +end; + +function Style.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Style.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Style.ReadXmlAttrDefault(); +begin + return self.XmlAttrDefault.Value; +end; + +function Style.WriteXmlAttrDefault(_value); +begin + self.XmlAttrDefault.Value := _value; +end; + +function Style.ReadXmlAttrStyleId(); +begin + return self.XmlAttrStyleId.Value; +end; + +function Style.WriteXmlAttrStyleId(_value); +begin + self.XmlAttrStyleId.Value := _value; +end; + +function Style.ReadXmlChildSemiHidden(); +begin + return ifnil(self.XmlChildSemiHidden.Value) ? false : true; +end; + +function Style.WriteXmlChildSemiHidden(_value); +begin + self.XmlChildSemiHidden.Value := _value; +end; + +function Style.ReadXmlChildUnhideWhenUsed(); +begin + return ifnil(self.XmlChildUnhideWhenUsed.Value) ? false : true; +end; + +function Style.WriteXmlChildUnhideWhenUsed(_value); +begin + self.XmlChildUnhideWhenUsed.Value := _value; +end; + +function Style.ReadXmlChildQFormat(); +begin + return ifnil(self.XmlChildQFormat.Value) ? false : true; +end; + +function Style.WriteXmlChildQFormat(_value); +begin + self.XmlChildQFormat.Value := _value; +end; + +function Style.ReadXmlChildRsid(); +begin + return ifnil(self.XmlChildRsid.Value) ? false : true; +end; + +function Style.WriteXmlChildRsid(_value); +begin + self.XmlChildRsid.Value := _value; +end; diff --git a/autoclass/docx/Styles@DOCX.tsf b/autoclass/docx/Styles@DOCX.tsf new file mode 100644 index 0000000..1035658 --- /dev/null +++ b/autoclass/docx/Styles@DOCX.tsf @@ -0,0 +1,362 @@ +type Styles = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Styles);override; + function AddStyle(): Style; + function AppendStyle(): Style; + + property Styles read ReadStyles; + function ReadStyles(_index); + + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + +public + // Attributes + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + DocDefaults: DocDefaults; + LatenStyles: LatenStyles; + +end; + +function Styles.Create();overload; +begin + self.Create(nil, "w", "styles"); +end; + +function Styles.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Styles.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Styles.Init();override; +begin + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); + self.DocDefaults := new DocDefaults(self, self.Prefix, "docDefaults"); + self.LatenStyles := new LatenStyles(self, self.Prefix, "latenStyles"); +end; + +function Styles.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrMcIgnorable, + ); +end; + +function Styles.InitChildren();override; +begin + child_elements_ := array( + 0: self.DocDefaults, + 1: self.LatenStyles, + ); + sorted_child_ := array( + "": -1, + self.DocDefaults.ElementName: 0, + self.LatenStyles.ElementName: 1, + ); +end; + +function Styles.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "style": obj := self.AppendStyle(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Styles.Copy(_obj: Styles);override; +begin + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; + self.DocDefaults.Copy(_obj.DocDefaults); + self.LatenStyles.Copy(_obj.LatenStyles); +end; + +function Styles.AddStyle(): Style; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "style" then break; + end + obj := new Style(self, self.Prefix, "style"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Styles.AppendStyle(): Style; +begin + obj := new Style(self, self.Prefix, "style"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Styles.ReadStyles(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "style" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Styles.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function Styles.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Styles.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function Styles.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function Styles.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function Styles.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function Styles.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function Styles.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function Styles.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function Styles.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function Styles.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function Styles.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function Styles.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function Styles.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function Styles.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; diff --git a/autoclass/docx/SysClr@DOCX.tsf b/autoclass/docx/SysClr@DOCX.tsf new file mode 100644 index 0000000..5af6af7 --- /dev/null +++ b/autoclass/docx/SysClr@DOCX.tsf @@ -0,0 +1,99 @@ +type SysClr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SysClr);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property LastClr read ReadXmlAttrLastClr write WriteXmlAttrLastClr; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrLastClr(); + function WriteXmlAttrLastClr(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrLastClr: OpenXmlAttribute; + + // Children + +end; + +function SysClr.Create();overload; +begin + self.Create(nil, "a", "sysClr"); +end; + +function SysClr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SysClr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SysClr.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.XmlAttrLastClr := new OpenXmlAttribute(nil, "LastClr", nil); +end; + +function SysClr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrLastClr, + ); +end; + +function SysClr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SysClr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function SysClr.Copy(_obj: SysClr);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrLastClr.Value) then + self.XmlAttrLastClr.Value := _obj.XmlAttrLastClr.Value; +end; + +function SysClr.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SysClr.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function SysClr.ReadXmlAttrLastClr(); +begin + return self.XmlAttrLastClr.Value; +end; + +function SysClr.WriteXmlAttrLastClr(_value); +begin + self.XmlAttrLastClr.Value := _value; +end; diff --git a/autoclass/docx/Sz@DOCX.tsf b/autoclass/docx/Sz@DOCX.tsf new file mode 100644 index 0000000..da8ef80 --- /dev/null +++ b/autoclass/docx/Sz@DOCX.tsf @@ -0,0 +1,81 @@ +type Sz = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Sz);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + + // Children + +end; + +function Sz.Create();overload; +begin + self.Create(nil, "w", "sz"); +end; + +function Sz.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Sz.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Sz.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute("w", "val", nil); +end; + +function Sz.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function Sz.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Sz.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Sz.Copy(_obj: Sz);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function Sz.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function Sz.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/SzCs@DOCX.tsf b/autoclass/docx/SzCs@DOCX.tsf new file mode 100644 index 0000000..5b48edd --- /dev/null +++ b/autoclass/docx/SzCs@DOCX.tsf @@ -0,0 +1,81 @@ +type SzCs = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: SzCs);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + + // Children + +end; + +function SzCs.Create();overload; +begin + self.Create(nil, "w", "szCs"); +end; + +function SzCs.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function SzCs.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SzCs.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute("w", "val", nil); +end; + +function SzCs.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function SzCs.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SzCs.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function SzCs.Copy(_obj: SzCs);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function SzCs.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SzCs.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/docx/T@DOCX.tsf b/autoclass/docx/T@DOCX.tsf new file mode 100644 index 0000000..7d05c39 --- /dev/null +++ b/autoclass/docx/T@DOCX.tsf @@ -0,0 +1,71 @@ +type T = class(OpenXmlPcdata) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: T);override; + + property Space read ReadXmlAttrSpace write WriteXmlAttrSpace; + function ReadXmlAttrSpace(); + function WriteXmlAttrSpace(_value); + +public + // Attributes + XmlAttrSpace: OpenXmlAttribute; + + // Children + +end; + +function T.Create();overload; +begin + self.Create(nil, "w", "t"); +end; + +function T.Create(_node: XmlNode);overload; +begin + class(OpenXmlPcdata).Create(_node: XmlNode); +end; + +function T.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlPcdata).Create(_parent, _prefix, _local_name); +end; + +function T.Init();override; +begin + self.XmlAttrSpace := new OpenXmlAttribute("xml", "space", nil); +end; + +function T.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrSpace, + ); +end; + +function T.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function T.Copy(_obj: T);override; +begin + if not ifnil(_obj.XmlAttrSpace.Value) then + self.XmlAttrSpace.Value := _obj.XmlAttrSpace.Value; +end; + +function T.ReadXmlAttrSpace(); +begin + return self.XmlAttrSpace.Value; +end; + +function T.WriteXmlAttrSpace(_value); +begin + self.XmlAttrSpace.Value := _value; +end; diff --git a/autoclass/docx/Tab@DOCX.tsf b/autoclass/docx/Tab@DOCX.tsf new file mode 100644 index 0000000..cd9da46 --- /dev/null +++ b/autoclass/docx/Tab@DOCX.tsf @@ -0,0 +1,117 @@ +type Tab = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Tab);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property Leader read ReadXmlAttrLeader write WriteXmlAttrLeader; + property Pos read ReadXmlAttrPos write WriteXmlAttrPos; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrLeader(); + function WriteXmlAttrLeader(_value); + function ReadXmlAttrPos(); + function WriteXmlAttrPos(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrLeader: OpenXmlAttribute; + XmlAttrPos: OpenXmlAttribute; + + // Children + +end; + +function Tab.Create();overload; +begin + self.Create(nil, "w", "tab"); +end; + +function Tab.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Tab.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Tab.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.XmlAttrLeader := new OpenXmlAttribute(self.Prefix, "leader", nil); + self.XmlAttrPos := new OpenXmlAttribute(self.Prefix, "pos", nil); +end; + +function Tab.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrLeader, + self.XmlAttrPos, + ); +end; + +function Tab.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Tab.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Tab.Copy(_obj: Tab);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrLeader.Value) then + self.XmlAttrLeader.Value := _obj.XmlAttrLeader.Value; + if not ifnil(_obj.XmlAttrPos.Value) then + self.XmlAttrPos.Value := _obj.XmlAttrPos.Value; +end; + +function Tab.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function Tab.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function Tab.ReadXmlAttrLeader(); +begin + return self.XmlAttrLeader.Value; +end; + +function Tab.WriteXmlAttrLeader(_value); +begin + self.XmlAttrLeader.Value := _value; +end; + +function Tab.ReadXmlAttrPos(); +begin + return self.XmlAttrPos.Value; +end; + +function Tab.WriteXmlAttrPos(_value); +begin + self.XmlAttrPos.Value := _value; +end; diff --git a/autoclass/docx/Tabs@DOCX.tsf b/autoclass/docx/Tabs@DOCX.tsf new file mode 100644 index 0000000..c56c51c --- /dev/null +++ b/autoclass/docx/Tabs@DOCX.tsf @@ -0,0 +1,137 @@ +type Tabs = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Tabs);override; + function AddTab(): Tab; + function AppendTab(): Tab; + + property Tabs read ReadTabs; + function ReadTabs(_index); + +public + // Attributes + + // Children + +end; + +function Tabs.Create();overload; +begin + self.Create(nil, "w", "tabs"); +end; + +function Tabs.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Tabs.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Tabs.Init();override; +begin + +end; + +function Tabs.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Tabs.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Tabs.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "tab": obj := self.AppendTab(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Tabs.Copy(_obj: Tabs);override; +begin + +end; + +function Tabs.AddTab(): Tab; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "tab" then break; + end + obj := new Tab(self, self.Prefix, "tab"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Tabs.AppendTab(): Tab; +begin + obj := new Tab(self, self.Prefix, "tab"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Tabs.ReadTabs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "tab" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Tbl@DOCX.tsf b/autoclass/docx/Tbl@DOCX.tsf new file mode 100644 index 0000000..4cc169c --- /dev/null +++ b/autoclass/docx/Tbl@DOCX.tsf @@ -0,0 +1,145 @@ +type Tbl = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Tbl);override; + function AddTr(): Tr; + function AppendTr(): Tr; + + property Trs read ReadTrs; + function ReadTrs(_index); + +public + // Attributes + + // Children + TblPr: TblPr; + TblGrid: TblGrid; + +end; + +function Tbl.Create();overload; +begin + self.Create(nil, "w", "tbl"); +end; + +function Tbl.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Tbl.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Tbl.Init();override; +begin + self.TblPr := new TblPr(self, self.Prefix, "tblPr"); + self.TblGrid := new TblGrid(self, self.Prefix, "tblGrid"); +end; + +function Tbl.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Tbl.InitChildren();override; +begin + child_elements_ := array( + 0: self.TblPr, + 1: self.TblGrid, + ); + sorted_child_ := array( + "": -1, + self.TblPr.ElementName: 0, + self.TblGrid.ElementName: 1, + ); +end; + +function Tbl.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "tr": obj := self.AppendTr(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Tbl.Copy(_obj: Tbl);override; +begin + self.TblPr.Copy(_obj.TblPr); + self.TblGrid.Copy(_obj.TblGrid); +end; + +function Tbl.AddTr(): Tr; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "tr" then break; + end + obj := new Tr(self, self.Prefix, "tr"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Tbl.AppendTr(): Tr; +begin + obj := new Tr(self, self.Prefix, "tr"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Tbl.ReadTrs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "tr" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/TblBorder@DOCX.tsf b/autoclass/docx/TblBorder@DOCX.tsf new file mode 100644 index 0000000..689cd4e --- /dev/null +++ b/autoclass/docx/TblBorder@DOCX.tsf @@ -0,0 +1,171 @@ +type TblBorder = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblBorder);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property Color read ReadXmlAttrColor write WriteXmlAttrColor; + property Spce read ReadXmlAttrSpce write WriteXmlAttrSpce; + property ThemeColor read ReadXmlAttrThemeColor write WriteXmlAttrThemeColor; + property ThemeTint read ReadXmlAttrThemeTint write WriteXmlAttrThemeTint; + property Sz read ReadXmlAttrSz write WriteXmlAttrSz; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrColor(); + function WriteXmlAttrColor(_value); + function ReadXmlAttrSpce(); + function WriteXmlAttrSpce(_value); + function ReadXmlAttrThemeColor(); + function WriteXmlAttrThemeColor(_value); + function ReadXmlAttrThemeTint(); + function WriteXmlAttrThemeTint(_value); + function ReadXmlAttrSz(); + function WriteXmlAttrSz(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrColor: OpenXmlAttribute; + XmlAttrSpce: OpenXmlAttribute; + XmlAttrThemeColor: OpenXmlAttribute; + XmlAttrThemeTint: OpenXmlAttribute; + XmlAttrSz: OpenXmlAttribute; + + // Children + +end; + +function TblBorder.Create();overload; +begin + self.Create(nil, "w", ""); +end; + +function TblBorder.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblBorder.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblBorder.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(self.Prefix, "val", nil); + self.XmlAttrColor := new OpenXmlAttribute(self.Prefix, "color", nil); + self.XmlAttrSpce := new OpenXmlAttribute(self.Prefix, "space", nil); + self.XmlAttrThemeColor := new OpenXmlAttribute(self.Prefix, "themeColor", nil); + self.XmlAttrThemeTint := new OpenXmlAttribute(self.Prefix, "themeTint", nil); + self.XmlAttrSz := new OpenXmlAttribute(self.Prefix, "sz", nil); +end; + +function TblBorder.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrColor, + self.XmlAttrSpce, + self.XmlAttrThemeColor, + self.XmlAttrThemeTint, + self.XmlAttrSz, + ); +end; + +function TblBorder.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblBorder.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TblBorder.Copy(_obj: TblBorder);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrColor.Value) then + self.XmlAttrColor.Value := _obj.XmlAttrColor.Value; + if not ifnil(_obj.XmlAttrSpce.Value) then + self.XmlAttrSpce.Value := _obj.XmlAttrSpce.Value; + if not ifnil(_obj.XmlAttrThemeColor.Value) then + self.XmlAttrThemeColor.Value := _obj.XmlAttrThemeColor.Value; + if not ifnil(_obj.XmlAttrThemeTint.Value) then + self.XmlAttrThemeTint.Value := _obj.XmlAttrThemeTint.Value; + if not ifnil(_obj.XmlAttrSz.Value) then + self.XmlAttrSz.Value := _obj.XmlAttrSz.Value; +end; + +function TblBorder.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function TblBorder.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function TblBorder.ReadXmlAttrColor(); +begin + return self.XmlAttrColor.Value; +end; + +function TblBorder.WriteXmlAttrColor(_value); +begin + self.XmlAttrColor.Value := _value; +end; + +function TblBorder.ReadXmlAttrSpce(); +begin + return self.XmlAttrSpce.Value; +end; + +function TblBorder.WriteXmlAttrSpce(_value); +begin + self.XmlAttrSpce.Value := _value; +end; + +function TblBorder.ReadXmlAttrThemeColor(); +begin + return self.XmlAttrThemeColor.Value; +end; + +function TblBorder.WriteXmlAttrThemeColor(_value); +begin + self.XmlAttrThemeColor.Value := _value; +end; + +function TblBorder.ReadXmlAttrThemeTint(); +begin + return self.XmlAttrThemeTint.Value; +end; + +function TblBorder.WriteXmlAttrThemeTint(_value); +begin + self.XmlAttrThemeTint.Value := _value; +end; + +function TblBorder.ReadXmlAttrSz(); +begin + return self.XmlAttrSz.Value; +end; + +function TblBorder.WriteXmlAttrSz(_value); +begin + self.XmlAttrSz.Value := _value; +end; diff --git a/autoclass/docx/TblBorders@DOCX.tsf b/autoclass/docx/TblBorders@DOCX.tsf new file mode 100644 index 0000000..172d0ed --- /dev/null +++ b/autoclass/docx/TblBorders@DOCX.tsf @@ -0,0 +1,123 @@ +type TblBorders = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblBorders);override; + +public + // Attributes + + // Children + Top: tblBorder; + Left: tblBorder; + Bottom: tblBorder; + Right: tblBorder; + InsideH: PureWVal; + InsideV: PureWVal; + +end; + +function TblBorders.Create();overload; +begin + self.Create(nil, "w", "tblBorders"); +end; + +function TblBorders.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblBorders.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblBorders.Init();override; +begin + self.Top := new tblBorder(self, self.Prefix, "top"); + self.Left := new tblBorder(self, self.Prefix, "left"); + self.Bottom := new tblBorder(self, self.Prefix, "bottom"); + self.Right := new tblBorder(self, self.Prefix, "right"); + self.InsideH := new PureWVal(self, self.Prefix, "insideH"); + self.InsideV := new PureWVal(self, self.Prefix, "insideV"); +end; + +function TblBorders.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TblBorders.InitChildren();override; +begin + child_elements_ := array( + 0: self.Top, + 1: self.Left, + 2: self.Bottom, + 3: self.Right, + 4: self.InsideH, + 5: self.InsideV, + ); + sorted_child_ := array( + "": -1, + self.Top.ElementName: 0, + self.Left.ElementName: 1, + self.Bottom.ElementName: 2, + self.Right.ElementName: 3, + self.InsideH.ElementName: 4, + self.InsideV.ElementName: 5, + ); +end; + +function TblBorders.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TblBorders.Copy(_obj: TblBorders);override; +begin + self.Top.Copy(_obj.Top); + self.Left.Copy(_obj.Left); + self.Bottom.Copy(_obj.Bottom); + self.Right.Copy(_obj.Right); + self.InsideH.Copy(_obj.InsideH); + self.InsideV.Copy(_obj.InsideV); +end; diff --git a/autoclass/docx/TblCellMar@DOCX.tsf b/autoclass/docx/TblCellMar@DOCX.tsf new file mode 100644 index 0000000..1ad54ab --- /dev/null +++ b/autoclass/docx/TblCellMar@DOCX.tsf @@ -0,0 +1,113 @@ +type TblCellMar = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblCellMar);override; + +public + // Attributes + + // Children + Top: TblInd; + Left: TblInd; + Bottom: TblInd; + Right: TblInd; + +end; + +function TblCellMar.Create();overload; +begin + self.Create(nil, "w", "tblCellMar"); +end; + +function TblCellMar.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblCellMar.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblCellMar.Init();override; +begin + self.Top := new TblInd(self, self.Prefix, "top"); + self.Left := new TblInd(self, self.Prefix, "left"); + self.Bottom := new TblInd(self, self.Prefix, "bottom"); + self.Right := new TblInd(self, self.Prefix, "right"); +end; + +function TblCellMar.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TblCellMar.InitChildren();override; +begin + child_elements_ := array( + 0: self.Top, + 1: self.Left, + 2: self.Bottom, + 3: self.Right, + ); + sorted_child_ := array( + "": -1, + self.Top.ElementName: 0, + self.Left.ElementName: 1, + self.Bottom.ElementName: 2, + self.Right.ElementName: 3, + ); +end; + +function TblCellMar.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TblCellMar.Copy(_obj: TblCellMar);override; +begin + self.Top.Copy(_obj.Top); + self.Left.Copy(_obj.Left); + self.Bottom.Copy(_obj.Bottom); + self.Right.Copy(_obj.Right); +end; diff --git a/autoclass/docx/TblGrid@DOCX.tsf b/autoclass/docx/TblGrid@DOCX.tsf new file mode 100644 index 0000000..4fa68ca --- /dev/null +++ b/autoclass/docx/TblGrid@DOCX.tsf @@ -0,0 +1,137 @@ +type TblGrid = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblGrid);override; + function AddGridCol(): GridCol; + function AppendGridCol(): GridCol; + + property GridCols read ReadGridCols; + function ReadGridCols(_index); + +public + // Attributes + + // Children + +end; + +function TblGrid.Create();overload; +begin + self.Create(nil, "w", "tblGrid"); +end; + +function TblGrid.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblGrid.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblGrid.Init();override; +begin + +end; + +function TblGrid.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TblGrid.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblGrid.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "gridCol": obj := self.AppendGridCol(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TblGrid.Copy(_obj: TblGrid);override; +begin + +end; + +function TblGrid.AddGridCol(): GridCol; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "gridCol" then break; + end + obj := new GridCol(self, self.Prefix, "gridCol"); + self.InsertChild(obj, i+1); + return obj; +end; + +function TblGrid.AppendGridCol(): GridCol; +begin + obj := new GridCol(self, self.Prefix, "gridCol"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function TblGrid.ReadGridCols(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "gridCol" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/TblInd@DOCX.tsf b/autoclass/docx/TblInd@DOCX.tsf new file mode 100644 index 0000000..800517e --- /dev/null +++ b/autoclass/docx/TblInd@DOCX.tsf @@ -0,0 +1,99 @@ +type TblInd = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblInd);override; + + property W read ReadXmlAttrW write WriteXmlAttrW; + property Type read ReadXmlAttrType write WriteXmlAttrType; + function ReadXmlAttrW(); + function WriteXmlAttrW(_value); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + +public + // Attributes + XmlAttrW: OpenXmlAttribute; + XmlAttrType: OpenXmlAttribute; + + // Children + +end; + +function TblInd.Create();overload; +begin + self.Create(nil, "w", "tblInd"); +end; + +function TblInd.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblInd.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblInd.Init();override; +begin + self.XmlAttrW := new OpenXmlAttribute(self.Prefix, "w", nil); + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); +end; + +function TblInd.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrW, + self.XmlAttrType, + ); +end; + +function TblInd.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblInd.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TblInd.Copy(_obj: TblInd);override; +begin + if not ifnil(_obj.XmlAttrW.Value) then + self.XmlAttrW.Value := _obj.XmlAttrW.Value; + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; +end; + +function TblInd.ReadXmlAttrW(); +begin + return self.XmlAttrW.Value; +end; + +function TblInd.WriteXmlAttrW(_value); +begin + self.XmlAttrW.Value := _value; +end; + +function TblInd.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function TblInd.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; diff --git a/autoclass/docx/TblLayout@DOCX.tsf b/autoclass/docx/TblLayout@DOCX.tsf new file mode 100644 index 0000000..8ae0eba --- /dev/null +++ b/autoclass/docx/TblLayout@DOCX.tsf @@ -0,0 +1,81 @@ +type TblLayout = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblLayout);override; + + property Type read ReadXmlAttrType write WriteXmlAttrType; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + +public + // Attributes + XmlAttrType: OpenXmlAttribute; + + // Children + +end; + +function TblLayout.Create();overload; +begin + self.Create(nil, "w", "tblLayout"); +end; + +function TblLayout.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblLayout.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblLayout.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); +end; + +function TblLayout.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + ); +end; + +function TblLayout.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblLayout.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TblLayout.Copy(_obj: TblLayout);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; +end; + +function TblLayout.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function TblLayout.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; diff --git a/autoclass/docx/TblLook@DOCX.tsf b/autoclass/docx/TblLook@DOCX.tsf new file mode 100644 index 0000000..78e97f7 --- /dev/null +++ b/autoclass/docx/TblLook@DOCX.tsf @@ -0,0 +1,189 @@ +type TblLook = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblLook);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property FirstRow read ReadXmlAttrFirstRow write WriteXmlAttrFirstRow; + property LastRow read ReadXmlAttrLastRow write WriteXmlAttrLastRow; + property FirstColumn read ReadXmlAttrFirstColumn write WriteXmlAttrFirstColumn; + property LastColumn read ReadXmlAttrLastColumn write WriteXmlAttrLastColumn; + property NoHBand read ReadXmlAttrNoHBand write WriteXmlAttrNoHBand; + property NoVBand read ReadXmlAttrNoVBand write WriteXmlAttrNoVBand; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrFirstRow(); + function WriteXmlAttrFirstRow(_value); + function ReadXmlAttrLastRow(); + function WriteXmlAttrLastRow(_value); + function ReadXmlAttrFirstColumn(); + function WriteXmlAttrFirstColumn(_value); + function ReadXmlAttrLastColumn(); + function WriteXmlAttrLastColumn(_value); + function ReadXmlAttrNoHBand(); + function WriteXmlAttrNoHBand(_value); + function ReadXmlAttrNoVBand(); + function WriteXmlAttrNoVBand(_value); + +public + // Attributes + XmlAttrVal: OpenXmlAttribute; + XmlAttrFirstRow: OpenXmlAttribute; + XmlAttrLastRow: OpenXmlAttribute; + XmlAttrFirstColumn: OpenXmlAttribute; + XmlAttrLastColumn: OpenXmlAttribute; + XmlAttrNoHBand: OpenXmlAttribute; + XmlAttrNoVBand: OpenXmlAttribute; + + // Children + +end; + +function TblLook.Create();overload; +begin + self.Create(nil, "w", "tblLook"); +end; + +function TblLook.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblLook.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblLook.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(self.Prefix, "val", nil); + self.XmlAttrFirstRow := new OpenXmlAttribute(self.Prefix, "firstRow", nil); + self.XmlAttrLastRow := new OpenXmlAttribute(self.Prefix, "lastRow", nil); + self.XmlAttrFirstColumn := new OpenXmlAttribute(self.Prefix, "firstColumn", nil); + self.XmlAttrLastColumn := new OpenXmlAttribute(self.Prefix, "lastColumn", nil); + self.XmlAttrNoHBand := new OpenXmlAttribute(self.Prefix, "noHBand", nil); + self.XmlAttrNoVBand := new OpenXmlAttribute(self.Prefix, "noVBand", nil); +end; + +function TblLook.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrFirstRow, + self.XmlAttrLastRow, + self.XmlAttrFirstColumn, + self.XmlAttrLastColumn, + self.XmlAttrNoHBand, + self.XmlAttrNoVBand, + ); +end; + +function TblLook.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblLook.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TblLook.Copy(_obj: TblLook);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrFirstRow.Value) then + self.XmlAttrFirstRow.Value := _obj.XmlAttrFirstRow.Value; + if not ifnil(_obj.XmlAttrLastRow.Value) then + self.XmlAttrLastRow.Value := _obj.XmlAttrLastRow.Value; + if not ifnil(_obj.XmlAttrFirstColumn.Value) then + self.XmlAttrFirstColumn.Value := _obj.XmlAttrFirstColumn.Value; + if not ifnil(_obj.XmlAttrLastColumn.Value) then + self.XmlAttrLastColumn.Value := _obj.XmlAttrLastColumn.Value; + if not ifnil(_obj.XmlAttrNoHBand.Value) then + self.XmlAttrNoHBand.Value := _obj.XmlAttrNoHBand.Value; + if not ifnil(_obj.XmlAttrNoVBand.Value) then + self.XmlAttrNoVBand.Value := _obj.XmlAttrNoVBand.Value; +end; + +function TblLook.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function TblLook.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function TblLook.ReadXmlAttrFirstRow(); +begin + return self.XmlAttrFirstRow.Value; +end; + +function TblLook.WriteXmlAttrFirstRow(_value); +begin + self.XmlAttrFirstRow.Value := _value; +end; + +function TblLook.ReadXmlAttrLastRow(); +begin + return self.XmlAttrLastRow.Value; +end; + +function TblLook.WriteXmlAttrLastRow(_value); +begin + self.XmlAttrLastRow.Value := _value; +end; + +function TblLook.ReadXmlAttrFirstColumn(); +begin + return self.XmlAttrFirstColumn.Value; +end; + +function TblLook.WriteXmlAttrFirstColumn(_value); +begin + self.XmlAttrFirstColumn.Value := _value; +end; + +function TblLook.ReadXmlAttrLastColumn(); +begin + return self.XmlAttrLastColumn.Value; +end; + +function TblLook.WriteXmlAttrLastColumn(_value); +begin + self.XmlAttrLastColumn.Value := _value; +end; + +function TblLook.ReadXmlAttrNoHBand(); +begin + return self.XmlAttrNoHBand.Value; +end; + +function TblLook.WriteXmlAttrNoHBand(_value); +begin + self.XmlAttrNoHBand.Value := _value; +end; + +function TblLook.ReadXmlAttrNoVBand(); +begin + return self.XmlAttrNoVBand.Value; +end; + +function TblLook.WriteXmlAttrNoVBand(_value); +begin + self.XmlAttrNoVBand.Value := _value; +end; diff --git a/autoclass/docx/TblPr@DOCX.tsf b/autoclass/docx/TblPr@DOCX.tsf new file mode 100644 index 0000000..cd0e767 --- /dev/null +++ b/autoclass/docx/TblPr@DOCX.tsf @@ -0,0 +1,133 @@ +type TblPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblPr);override; + +public + // Attributes + + // Children + Jc: PureWVal; + TblStyle: PureWVal; + TblW: TblW; + TblInd: TblW; + TblLayout: TblLayout; + TblLook: TblLook; + TblBorders: TblBorders; + TblCellMar: TblCellMar; + +end; + +function TblPr.Create();overload; +begin + self.Create(nil, "w", "tblPr"); +end; + +function TblPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblPr.Init();override; +begin + self.Jc := new PureWVal(self, self.Prefix, "jc"); + self.TblStyle := new PureWVal(self, self.Prefix, "tblStyle"); + self.TblW := new TblW(self, self.Prefix, "tblW"); + self.TblInd := new TblW(self, self.Prefix, "tblInd"); + self.TblLayout := new TblLayout(self, self.Prefix, "tblLayout"); + self.TblLook := new TblLook(self, self.Prefix, "tblLook"); + self.TblBorders := new TblBorders(self, self.Prefix, "tblBorders"); + self.TblCellMar := new TblCellMar(self, self.Prefix, "tblCellMar"); +end; + +function TblPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TblPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Jc, + 1: self.TblStyle, + 2: self.TblW, + 3: self.TblInd, + 4: self.TblLayout, + 5: self.TblLook, + 6: self.TblBorders, + 7: self.TblCellMar, + ); + sorted_child_ := array( + "": -1, + self.Jc.ElementName: 0, + self.TblStyle.ElementName: 1, + self.TblW.ElementName: 2, + self.TblInd.ElementName: 3, + self.TblLayout.ElementName: 4, + self.TblLook.ElementName: 5, + self.TblBorders.ElementName: 6, + self.TblCellMar.ElementName: 7, + ); +end; + +function TblPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TblPr.Copy(_obj: TblPr);override; +begin + self.Jc.Copy(_obj.Jc); + self.TblStyle.Copy(_obj.TblStyle); + self.TblW.Copy(_obj.TblW); + self.TblInd.Copy(_obj.TblInd); + self.TblLayout.Copy(_obj.TblLayout); + self.TblLook.Copy(_obj.TblLook); + self.TblBorders.Copy(_obj.TblBorders); + self.TblCellMar.Copy(_obj.TblCellMar); +end; diff --git a/autoclass/docx/TblStylePr@DOCX.tsf b/autoclass/docx/TblStylePr@DOCX.tsf new file mode 100644 index 0000000..ea29bcc --- /dev/null +++ b/autoclass/docx/TblStylePr@DOCX.tsf @@ -0,0 +1,113 @@ +type TblStylePr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblStylePr);override; + +public + // Attributes + + // Children + PPr: PPr; + TblPr: TblPr; + TrPr: TrPr; + TcPr: TcPr; + +end; + +function TblStylePr.Create();overload; +begin + self.Create(nil, "w", "tblStylePr"); +end; + +function TblStylePr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblStylePr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblStylePr.Init();override; +begin + self.PPr := new PPr(self, self.Prefix, "pPr"); + self.TblPr := new TblPr(self, self.Prefix, "tblPr"); + self.TrPr := new TrPr(self, self.Prefix, "trPr"); + self.TcPr := new TcPr(self, self.Prefix, "tcPr"); +end; + +function TblStylePr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TblStylePr.InitChildren();override; +begin + child_elements_ := array( + 0: self.PPr, + 1: self.TblPr, + 2: self.TrPr, + 3: self.TcPr, + ); + sorted_child_ := array( + "": -1, + self.PPr.ElementName: 0, + self.TblPr.ElementName: 1, + self.TrPr.ElementName: 2, + self.TcPr.ElementName: 3, + ); +end; + +function TblStylePr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TblStylePr.Copy(_obj: TblStylePr);override; +begin + self.PPr.Copy(_obj.PPr); + self.TblPr.Copy(_obj.TblPr); + self.TrPr.Copy(_obj.TrPr); + self.TcPr.Copy(_obj.TcPr); +end; diff --git a/autoclass/docx/TblW@DOCX.tsf b/autoclass/docx/TblW@DOCX.tsf new file mode 100644 index 0000000..a3078cd --- /dev/null +++ b/autoclass/docx/TblW@DOCX.tsf @@ -0,0 +1,99 @@ +type TblW = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TblW);override; + + property W read ReadXmlAttrW write WriteXmlAttrW; + property Type read ReadXmlAttrType write WriteXmlAttrType; + function ReadXmlAttrW(); + function WriteXmlAttrW(_value); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + +public + // Attributes + XmlAttrW: OpenXmlAttribute; + XmlAttrType: OpenXmlAttribute; + + // Children + +end; + +function TblW.Create();overload; +begin + self.Create(nil, "w", "tblW"); +end; + +function TblW.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TblW.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblW.Init();override; +begin + self.XmlAttrW := new OpenXmlAttribute(self.Prefix, "w", nil); + self.XmlAttrType := new OpenXmlAttribute(self.Prefix, "type", nil); +end; + +function TblW.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrW, + self.XmlAttrType, + ); +end; + +function TblW.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblW.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TblW.Copy(_obj: TblW);override; +begin + if not ifnil(_obj.XmlAttrW.Value) then + self.XmlAttrW.Value := _obj.XmlAttrW.Value; + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; +end; + +function TblW.ReadXmlAttrW(); +begin + return self.XmlAttrW.Value; +end; + +function TblW.WriteXmlAttrW(_value); +begin + self.XmlAttrW.Value := _value; +end; + +function TblW.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function TblW.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; diff --git a/autoclass/docx/Tc@DOCX.tsf b/autoclass/docx/Tc@DOCX.tsf new file mode 100644 index 0000000..ccd7133 --- /dev/null +++ b/autoclass/docx/Tc@DOCX.tsf @@ -0,0 +1,181 @@ +type Tc = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Tc);override; + function AddP(): P; + function AddTbl(): Tbl; + function AppendP(): P; + function AppendTbl(): Tbl; + + property Ps read ReadPs; + property Tbls read ReadTbls; + function ReadPs(_index); + function ReadTbls(_index); + +public + // Attributes + + // Children + TcPr: TcPr; + +end; + +function Tc.Create();overload; +begin + self.Create(nil, "w", "tc"); +end; + +function Tc.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Tc.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Tc.Init();override; +begin + self.TcPr := new TcPr(self, self.Prefix, "tcPr"); +end; + +function Tc.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Tc.InitChildren();override; +begin + child_elements_ := array( + 0: self.TcPr, + ); + sorted_child_ := array( + "": -1, + self.TcPr.ElementName: 0, + ); +end; + +function Tc.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "p": obj := self.AppendP(); + pre + "tbl": obj := self.AppendTbl(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Tc.Copy(_obj: Tc);override; +begin + self.TcPr.Copy(_obj.TcPr); +end; + +function Tc.AddP(): P; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, self.Prefix, "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Tc.AddTbl(): Tbl; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "tbl" then break; + end + obj := new Tbl(self, self.Prefix, "tbl"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Tc.AppendP(): P; +begin + obj := new P(self, self.Prefix, "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Tc.AppendTbl(): Tbl; +begin + obj := new Tbl(self, self.Prefix, "tbl"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Tc.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Tc.ReadTbls(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "tbl" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/TcPr@DOCX.tsf b/autoclass/docx/TcPr@DOCX.tsf new file mode 100644 index 0000000..d3ddc87 --- /dev/null +++ b/autoclass/docx/TcPr@DOCX.tsf @@ -0,0 +1,118 @@ +type TcPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TcPr);override; + +public + // Attributes + + // Children + TcW: TblW; + GridSpan: PureWVal; + VMerge: PureWVal; + VAlign: PureWVal; + Shd: Shd; + +end; + +function TcPr.Create();overload; +begin + self.Create(nil, "w", "tcPr"); +end; + +function TcPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TcPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TcPr.Init();override; +begin + self.TcW := new TblW(self, self.Prefix, "tcW"); + self.GridSpan := new PureWVal(self, self.Prefix, "gridSpan"); + self.VMerge := new PureWVal(self, self.Prefix, "vMerge"); + self.VAlign := new PureWVal(self, self.Prefix, "vAlign"); + self.Shd := new Shd(self, self.Prefix, "shd"); +end; + +function TcPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TcPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.TcW, + 1: self.GridSpan, + 2: self.VMerge, + 3: self.VAlign, + 4: self.Shd, + ); + sorted_child_ := array( + "": -1, + self.TcW.ElementName: 0, + self.GridSpan.ElementName: 1, + self.VMerge.ElementName: 2, + self.VAlign.ElementName: 3, + self.Shd.ElementName: 4, + ); +end; + +function TcPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TcPr.Copy(_obj: TcPr);override; +begin + self.TcW.Copy(_obj.TcW); + self.GridSpan.Copy(_obj.GridSpan); + self.VMerge.Copy(_obj.VMerge); + self.VAlign.Copy(_obj.VAlign); + self.Shd.Copy(_obj.Shd); +end; diff --git a/autoclass/docx/Theme@DOCX.tsf b/autoclass/docx/Theme@DOCX.tsf new file mode 100644 index 0000000..73926cd --- /dev/null +++ b/autoclass/docx/Theme@DOCX.tsf @@ -0,0 +1,177 @@ +type Theme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Theme);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + + property ObjectDefaults read ReadXmlChildObjectDefaults write WriteXmlChildObjectDefaults; + property ExtraClrSchemeLst read ReadXmlChildExtraClrSchemeLst write WriteXmlChildExtraClrSchemeLst; + function ReadXmlChildObjectDefaults(); + function WriteXmlChildObjectDefaults(_value); + function ReadXmlChildExtraClrSchemeLst(); + function WriteXmlChildExtraClrSchemeLst(_value); + +public + // Attributes + XmlAttrXmlnsA: OpenXmlAttribute; + XmlAttrName: OpenXmlAttribute; + + // Children + ThemeElements: ThemeElements; + XmlChildObjectDefaults: OpenXmlEmpty; + XmlChildExtraClrSchemeLst: OpenXmlEmpty; + ExtLst: ExtLst; + +end; + +function Theme.Create();overload; +begin + self.Create(nil, "a", "theme"); +end; + +function Theme.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Theme.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Theme.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrName := new OpenXmlAttribute(nil, "name", "Office 主题"); + self.ThemeElements := new ThemeElements(self, self.Prefix, "themeElements"); + self.XmlChildObjectDefaults := new OpenXmlEmpty(self, self.Prefix, "objectDefaults"); + self.XmlChildExtraClrSchemeLst := new OpenXmlEmpty(self, self.Prefix, "extraClrSchemeLst"); + self.ExtLst := new ExtLst(self, self.Prefix, "extLst"); +end; + +function Theme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrName, + ); +end; + +function Theme.InitChildren();override; +begin + child_elements_ := array( + 0: self.ThemeElements, + 1: self.XmlChildObjectDefaults, + 2: self.XmlChildExtraClrSchemeLst, + 3: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.ThemeElements.ElementName: 0, + self.XmlChildObjectDefaults.ElementName: 1, + self.XmlChildExtraClrSchemeLst.ElementName: 2, + self.ExtLst.ElementName: 3, + ); +end; + +function Theme.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Theme.Copy(_obj: Theme);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.ThemeElements.Copy(_obj.ThemeElements); + self.XmlChildObjectDefaults.Copy(_obj.XmlChildObjectDefaults); + self.XmlChildExtraClrSchemeLst.Copy(_obj.XmlChildExtraClrSchemeLst); + self.ExtLst.Copy(_obj.ExtLst); +end; + +function Theme.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function Theme.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function Theme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function Theme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function Theme.ReadXmlChildObjectDefaults(); +begin + return ifnil(self.XmlChildObjectDefaults.Value) ? false : true; +end; + +function Theme.WriteXmlChildObjectDefaults(_value); +begin + self.XmlChildObjectDefaults.Value := _value; +end; + +function Theme.ReadXmlChildExtraClrSchemeLst(); +begin + return ifnil(self.XmlChildExtraClrSchemeLst.Value) ? false : true; +end; + +function Theme.WriteXmlChildExtraClrSchemeLst(_value); +begin + self.XmlChildExtraClrSchemeLst.Value := _value; +end; diff --git a/autoclass/docx/ThemeElements@DOCX.tsf b/autoclass/docx/ThemeElements@DOCX.tsf new file mode 100644 index 0000000..626b3b2 --- /dev/null +++ b/autoclass/docx/ThemeElements@DOCX.tsf @@ -0,0 +1,127 @@ +type ThemeElements = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ThemeElements);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName: OpenXmlAttribute; + + // Children + ClrScheme: ClrScheme; + FontScheme: FontScheme; + FmtScheme: FmtScheme; + +end; + +function ThemeElements.Create();overload; +begin + self.Create(nil, "a", "themeElements"); +end; + +function ThemeElements.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ThemeElements.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ThemeElements.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.ClrScheme := new ClrScheme(self, self.Prefix, "clrScheme"); + self.FontScheme := new FontScheme(self, self.Prefix, "fontScheme"); + self.FmtScheme := new FmtScheme(self, self.Prefix, "fmtScheme"); +end; + +function ThemeElements.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function ThemeElements.InitChildren();override; +begin + child_elements_ := array( + 0: self.ClrScheme, + 1: self.FontScheme, + 2: self.FmtScheme, + ); + sorted_child_ := array( + "": -1, + self.ClrScheme.ElementName: 0, + self.FontScheme.ElementName: 1, + self.FmtScheme.ElementName: 2, + ); +end; + +function ThemeElements.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ThemeElements.Copy(_obj: ThemeElements);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.ClrScheme.Copy(_obj.ClrScheme); + self.FontScheme.Copy(_obj.FontScheme); + self.FmtScheme.Copy(_obj.FmtScheme); +end; + +function ThemeElements.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function ThemeElements.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/docx/ThemeFamily@DOCX.tsf b/autoclass/docx/ThemeFamily@DOCX.tsf new file mode 100644 index 0000000..bc1fadc --- /dev/null +++ b/autoclass/docx/ThemeFamily@DOCX.tsf @@ -0,0 +1,135 @@ +type ThemeFamily = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: ThemeFamily);override; + + property XmlnsThm15 read ReadXmlAttrXmlnsThm15 write WriteXmlAttrXmlnsThm15; + property Name read ReadXmlAttrName write WriteXmlAttrName; + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Vid read ReadXmlAttrVid write WriteXmlAttrVid; + function ReadXmlAttrXmlnsThm15(); + function WriteXmlAttrXmlnsThm15(_value); + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrVid(); + function WriteXmlAttrVid(_value); + +public + // Attributes + XmlAttrXmlnsThm15: OpenXmlAttribute; + XmlAttrName: OpenXmlAttribute; + XmlAttrId: OpenXmlAttribute; + XmlAttrVid: OpenXmlAttribute; + + // Children + +end; + +function ThemeFamily.Create();overload; +begin + self.Create(nil, "thm15", "themeFamily"); +end; + +function ThemeFamily.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function ThemeFamily.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ThemeFamily.Init();override; +begin + self.XmlAttrXmlnsThm15 := new OpenXmlAttribute("xmlns", "thm15", nil); + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.XmlAttrId := new OpenXmlAttribute(nil, "Id", nil); + self.XmlAttrVid := new OpenXmlAttribute(nil, "vid", nil); +end; + +function ThemeFamily.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsThm15, + self.XmlAttrName, + self.XmlAttrId, + self.XmlAttrVid, + ); +end; + +function ThemeFamily.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ThemeFamily.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function ThemeFamily.Copy(_obj: ThemeFamily);override; +begin + if not ifnil(_obj.XmlAttrXmlnsThm15.Value) then + self.XmlAttrXmlnsThm15.Value := _obj.XmlAttrXmlnsThm15.Value; + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrVid.Value) then + self.XmlAttrVid.Value := _obj.XmlAttrVid.Value; +end; + +function ThemeFamily.ReadXmlAttrXmlnsThm15(); +begin + return self.XmlAttrXmlnsThm15.Value; +end; + +function ThemeFamily.WriteXmlAttrXmlnsThm15(_value); +begin + self.XmlAttrXmlnsThm15.Value := _value; +end; + +function ThemeFamily.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function ThemeFamily.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function ThemeFamily.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function ThemeFamily.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function ThemeFamily.ReadXmlAttrVid(); +begin + return self.XmlAttrVid.Value; +end; + +function ThemeFamily.WriteXmlAttrVid(_value); +begin + self.XmlAttrVid.Value := _value; +end; diff --git a/autoclass/docx/Title@DOCX.tsf b/autoclass/docx/Title@DOCX.tsf new file mode 100644 index 0000000..ab1181e --- /dev/null +++ b/autoclass/docx/Title@DOCX.tsf @@ -0,0 +1,122 @@ +type Title = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Title);override; + + property Layout read ReadXmlChildLayout write WriteXmlChildLayout; + function ReadXmlChildLayout(); + function WriteXmlChildLayout(_value); + +public + // Attributes + + // Children + Tx: Tx; + XmlChildLayout: OpenXmlEmpty; + Overlay: PureVal; + +end; + +function Title.Create();overload; +begin + self.Create(nil, "c", "title"); +end; + +function Title.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Title.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Title.Init();override; +begin + self.Tx := new Tx(self, self.Prefix, "tx"); + self.XmlChildLayout := new OpenXmlEmpty(self, self.Prefix, "layout"); + self.Overlay := new PureVal(self, self.Prefix, "overlay"); +end; + +function Title.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Title.InitChildren();override; +begin + child_elements_ := array( + 0: self.Tx, + 1: self.XmlChildLayout, + 2: self.Overlay, + ); + sorted_child_ := array( + "": -1, + self.Tx.ElementName: 0, + self.XmlChildLayout.ElementName: 1, + self.Overlay.ElementName: 2, + ); +end; + +function Title.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Title.Copy(_obj: Title);override; +begin + self.Tx.Copy(_obj.Tx); + self.XmlChildLayout.Copy(_obj.XmlChildLayout); + self.Overlay.Copy(_obj.Overlay); +end; + +function Title.ReadXmlChildLayout(); +begin + return ifnil(self.XmlChildLayout.Value) ? false : true; +end; + +function Title.WriteXmlChildLayout(_value); +begin + self.XmlChildLayout.Value := _value; +end; diff --git a/autoclass/docx/Tr@DOCX.tsf b/autoclass/docx/Tr@DOCX.tsf new file mode 100644 index 0000000..56a92a0 --- /dev/null +++ b/autoclass/docx/Tr@DOCX.tsf @@ -0,0 +1,213 @@ +type Tr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Tr);override; + function AddTc(): Tc; + function AppendTc(): Tc; + + property Tcs read ReadTcs; + function ReadTcs(_index); + + property WRsidR read ReadXmlAttrWRsidR write WriteXmlAttrWRsidR; + property W14ParaId read ReadXmlAttrW14ParaId write WriteXmlAttrW14ParaId; + property W14TextId read ReadXmlAttrW14TextId write WriteXmlAttrW14TextId; + property WRsidTr read ReadXmlAttrWRsidTr write WriteXmlAttrWRsidTr; + function ReadXmlAttrWRsidR(); + function WriteXmlAttrWRsidR(_value); + function ReadXmlAttrW14ParaId(); + function WriteXmlAttrW14ParaId(_value); + function ReadXmlAttrW14TextId(); + function WriteXmlAttrW14TextId(_value); + function ReadXmlAttrWRsidTr(); + function WriteXmlAttrWRsidTr(_value); + +public + // Attributes + XmlAttrWRsidR: OpenXmlAttribute; + XmlAttrW14ParaId: OpenXmlAttribute; + XmlAttrW14TextId: OpenXmlAttribute; + XmlAttrWRsidTr: OpenXmlAttribute; + + // Children + TrPr: TrPr; + +end; + +function Tr.Create();overload; +begin + self.Create(nil, "w", "tr"); +end; + +function Tr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Tr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Tr.Init();override; +begin + self.XmlAttrWRsidR := new OpenXmlAttribute("w", "rsidR", nil); + self.XmlAttrW14ParaId := new OpenXmlAttribute("w14", "paraId", nil); + self.XmlAttrW14TextId := new OpenXmlAttribute("w14", "textId", nil); + self.XmlAttrWRsidTr := new OpenXmlAttribute("w", "rsidTr", nil); + self.TrPr := new TrPr(self, self.Prefix, "trPr"); +end; + +function Tr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrWRsidR, + self.XmlAttrW14ParaId, + self.XmlAttrW14TextId, + self.XmlAttrWRsidTr, + ); +end; + +function Tr.InitChildren();override; +begin + child_elements_ := array( + 0: self.TrPr, + ); + sorted_child_ := array( + "": -1, + self.TrPr.ElementName: 0, + ); +end; + +function Tr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "tc": obj := self.AppendTc(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Tr.Copy(_obj: Tr);override; +begin + if not ifnil(_obj.XmlAttrWRsidR.Value) then + self.XmlAttrWRsidR.Value := _obj.XmlAttrWRsidR.Value; + if not ifnil(_obj.XmlAttrW14ParaId.Value) then + self.XmlAttrW14ParaId.Value := _obj.XmlAttrW14ParaId.Value; + if not ifnil(_obj.XmlAttrW14TextId.Value) then + self.XmlAttrW14TextId.Value := _obj.XmlAttrW14TextId.Value; + if not ifnil(_obj.XmlAttrWRsidTr.Value) then + self.XmlAttrWRsidTr.Value := _obj.XmlAttrWRsidTr.Value; + self.TrPr.Copy(_obj.TrPr); +end; + +function Tr.AddTc(): Tc; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "tc" then break; + end + obj := new Tc(self, self.Prefix, "tc"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Tr.AppendTc(): Tc; +begin + obj := new Tc(self, self.Prefix, "tc"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Tr.ReadTcs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "tc" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Tr.ReadXmlAttrWRsidR(); +begin + return self.XmlAttrWRsidR.Value; +end; + +function Tr.WriteXmlAttrWRsidR(_value); +begin + self.XmlAttrWRsidR.Value := _value; +end; + +function Tr.ReadXmlAttrW14ParaId(); +begin + return self.XmlAttrW14ParaId.Value; +end; + +function Tr.WriteXmlAttrW14ParaId(_value); +begin + self.XmlAttrW14ParaId.Value := _value; +end; + +function Tr.ReadXmlAttrW14TextId(); +begin + return self.XmlAttrW14TextId.Value; +end; + +function Tr.WriteXmlAttrW14TextId(_value); +begin + self.XmlAttrW14TextId.Value := _value; +end; + +function Tr.ReadXmlAttrWRsidTr(); +begin + return self.XmlAttrWRsidTr.Value; +end; + +function Tr.WriteXmlAttrWRsidTr(_value); +begin + self.XmlAttrWRsidTr.Value := _value; +end; diff --git a/autoclass/docx/TrHeight@DOCX.tsf b/autoclass/docx/TrHeight@DOCX.tsf new file mode 100644 index 0000000..57d8fff --- /dev/null +++ b/autoclass/docx/TrHeight@DOCX.tsf @@ -0,0 +1,81 @@ +type TrHeight = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TrHeight);override; + + property val read ReadXmlAttrval write WriteXmlAttrval; + function ReadXmlAttrval(); + function WriteXmlAttrval(_value); + +public + // Attributes + XmlAttrval: OpenXmlAttribute; + + // Children + +end; + +function TrHeight.Create();overload; +begin + self.Create(nil, "w", "trHeight"); +end; + +function TrHeight.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TrHeight.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TrHeight.Init();override; +begin + self.XmlAttrval := new OpenXmlAttribute(self.Prefix, "val", nil); +end; + +function TrHeight.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrval, + ); +end; + +function TrHeight.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TrHeight.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TrHeight.Copy(_obj: TrHeight);override; +begin + if not ifnil(_obj.XmlAttrval.Value) then + self.XmlAttrval.Value := _obj.XmlAttrval.Value; +end; + +function TrHeight.ReadXmlAttrval(); +begin + return self.XmlAttrval.Value; +end; + +function TrHeight.WriteXmlAttrval(_value); +begin + self.XmlAttrval.Value := _value; +end; diff --git a/autoclass/docx/TrPr@DOCX.tsf b/autoclass/docx/TrPr@DOCX.tsf new file mode 100644 index 0000000..6460537 --- /dev/null +++ b/autoclass/docx/TrPr@DOCX.tsf @@ -0,0 +1,122 @@ +type TrPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TrPr);override; + + property CantSplit read ReadXmlChildCantSplit write WriteXmlChildCantSplit; + function ReadXmlChildCantSplit(); + function WriteXmlChildCantSplit(_value); + +public + // Attributes + + // Children + TrHeight: TrHeight; + Jc: PureWVal; + XmlChildCantSplit: OpenXmlEmpty; + +end; + +function TrPr.Create();overload; +begin + self.Create(nil, "w", "trPr"); +end; + +function TrPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TrPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TrPr.Init();override; +begin + self.TrHeight := new TrHeight(self, self.Prefix, "trHeight"); + self.Jc := new PureWVal(self, self.Prefix, "jc"); + self.XmlChildCantSplit := new OpenXmlEmpty(self, self.Prefix, "cantSplit"); +end; + +function TrPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TrPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.TrHeight, + 1: self.Jc, + 2: self.XmlChildCantSplit, + ); + sorted_child_ := array( + "": -1, + self.TrHeight.ElementName: 0, + self.Jc.ElementName: 1, + self.XmlChildCantSplit.ElementName: 2, + ); +end; + +function TrPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TrPr.Copy(_obj: TrPr);override; +begin + self.TrHeight.Copy(_obj.TrHeight); + self.Jc.Copy(_obj.Jc); + self.XmlChildCantSplit.Copy(_obj.XmlChildCantSplit); +end; + +function TrPr.ReadXmlChildCantSplit(); +begin + return ifnil(self.XmlChildCantSplit.Value) ? false : true; +end; + +function TrPr.WriteXmlChildCantSplit(_value); +begin + self.XmlChildCantSplit.Value := _value; +end; diff --git a/autoclass/docx/Tx@DOCX.tsf b/autoclass/docx/Tx@DOCX.tsf new file mode 100644 index 0000000..b29782f --- /dev/null +++ b/autoclass/docx/Tx@DOCX.tsf @@ -0,0 +1,103 @@ +type Tx = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Tx);override; + +public + // Attributes + + // Children + StrRef: StrRef; + Rich: Rich; + +end; + +function Tx.Create();overload; +begin + self.Create(nil, "c", "tx"); +end; + +function Tx.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Tx.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Tx.Init();override; +begin + self.StrRef := new StrRef(self, self.Prefix, "strRef"); + self.Rich := new Rich(self, self.Prefix, "rich"); +end; + +function Tx.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Tx.InitChildren();override; +begin + child_elements_ := array( + 0: self.StrRef, + 1: self.Rich, + ); + sorted_child_ := array( + "": -1, + self.StrRef.ElementName: 0, + self.Rich.ElementName: 1, + ); +end; + +function Tx.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Tx.Copy(_obj: Tx);override; +begin + self.StrRef.Copy(_obj.StrRef); + self.Rich.Copy(_obj.Rich); +end; diff --git a/autoclass/docx/TxPr@DOCX.tsf b/autoclass/docx/TxPr@DOCX.tsf new file mode 100644 index 0000000..7806063 --- /dev/null +++ b/autoclass/docx/TxPr@DOCX.tsf @@ -0,0 +1,159 @@ +type TxPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: TxPr);override; + function AddP(): Ap; + function AppendP(): Ap; + + property Ps read ReadPs; + function ReadPs(_index); + + property LstStyle read ReadXmlChildLstStyle write WriteXmlChildLstStyle; + function ReadXmlChildLstStyle(); + function WriteXmlChildLstStyle(_value); + +public + // Attributes + + // Children + BodyPr: BodyPr; + XmlChildLstStyle: OpenXmlEmpty; + +end; + +function TxPr.Create();overload; +begin + self.Create(nil, "c", "txPr"); +end; + +function TxPr.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function TxPr.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TxPr.Init();override; +begin + self.BodyPr := new BodyPr(self, "a", "BodyPr"); + self.XmlChildLstStyle := new OpenXmlEmpty(self, "a", "LstStyle"); +end; + +function TxPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TxPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.BodyPr, + 1: self.XmlChildLstStyle, + ); + sorted_child_ := array( + "": -1, + self.BodyPr.ElementName: 0, + self.XmlChildLstStyle.ElementName: 1, + ); +end; + +function TxPr.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "a:p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TxPr.Copy(_obj: TxPr);override; +begin + self.BodyPr.Copy(_obj.BodyPr); + self.XmlChildLstStyle.Copy(_obj.XmlChildLstStyle); +end; + +function TxPr.AddP(): Ap; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new Ap(self, "a", "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function TxPr.AppendP(): Ap; +begin + obj := new Ap(self, "a", "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function TxPr.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function TxPr.ReadXmlChildLstStyle(); +begin + return ifnil(self.XmlChildLstStyle.Value) ? false : true; +end; + +function TxPr.WriteXmlChildLstStyle(_value); +begin + self.XmlChildLstStyle.Value := _value; +end; diff --git a/autoclass/docx/Types@DOCX.tsf b/autoclass/docx/Types@DOCX.tsf new file mode 100644 index 0000000..890e3dc --- /dev/null +++ b/autoclass/docx/Types@DOCX.tsf @@ -0,0 +1,178 @@ +type Types = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Types);override; + function AddDefault(): Default; + function AddOverride(): _Override; + function AppendDefault(): Default; + function AppendOverride(): _Override; + + property Defaults read ReadDefaults; + property Overrides read ReadOverrides; + function ReadDefaults(_index); + function ReadOverrides(_index); + +public + // Attributes + + // Children + +end; + +function Types.Create();overload; +begin + self.Create(nil, nil, "Types"); +end; + +function Types.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Types.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Types.Init();override; +begin + +end; + +function Types.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Types.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Types.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "Default": obj := self.AppendDefault(); + "Override": obj := self.AppendOverride(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Types.Copy(_obj: Types);override; +begin + +end; + +function Types.AddDefault(): Default; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "Default" then break; + end + obj := new Default(self, nil, "Default"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Types.AddOverride(): _Override; +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "Override" then break; + end + obj := new _Override(self, nil, "Override"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Types.AppendDefault(): Default; +begin + obj := new Default(self, nil, "Default"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Types.AppendOverride(): _Override; +begin + obj := new _Override(self, nil, "Override"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Types.ReadDefaults(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "Default" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Types.ReadOverrides(_index); +begin + ind := ifnil(_index) ? -2 : _index; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "Override" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/docx/Val@DOCX.tsf b/autoclass/docx/Val@DOCX.tsf new file mode 100644 index 0000000..593a53f --- /dev/null +++ b/autoclass/docx/Val@DOCX.tsf @@ -0,0 +1,98 @@ +type Val = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Val);override; + +public + // Attributes + + // Children + NumRef: NumRef; + +end; + +function Val.Create();overload; +begin + self.Create(nil, "c", "val"); +end; + +function Val.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Val.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Val.Init();override; +begin + self.NumRef := new NumRef(self, self.Prefix, "numRef"); +end; + +function Val.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Val.InitChildren();override; +begin + child_elements_ := array( + 0: self.NumRef, + ); + sorted_child_ := array( + "": -1, + self.NumRef.ElementName: 0, + ); +end; + +function Val.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Val.Copy(_obj: Val);override; +begin + self.NumRef.Copy(_obj.NumRef); +end; diff --git a/autoclass/docx/View3D@DOCX.tsf b/autoclass/docx/View3D@DOCX.tsf new file mode 100644 index 0000000..67d5954 --- /dev/null +++ b/autoclass/docx/View3D@DOCX.tsf @@ -0,0 +1,108 @@ +type View3D = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: View3D);override; + +public + // Attributes + + // Children + RotX: PureVal; + RotY: PureVal; + RAngAx: PureVal; + +end; + +function View3D.Create();overload; +begin + self.Create(nil, "c", "view3D"); +end; + +function View3D.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function View3D.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function View3D.Init();override; +begin + self.RotX := new PureVal(self, self.Prefix, "rotX"); + self.RotY := new PureVal(self, self.Prefix, "rotY"); + self.RAngAx := new PureVal(self, self.Prefix, "rAngAx"); +end; + +function View3D.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function View3D.InitChildren();override; +begin + child_elements_ := array( + 0: self.RotX, + 1: self.RotY, + 2: self.RAngAx, + ); + sorted_child_ := array( + "": -1, + self.RotX.ElementName: 0, + self.RotY.ElementName: 1, + self.RAngAx.ElementName: 2, + ); +end; + +function View3D.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function View3D.Copy(_obj: View3D);override; +begin + self.RotX.Copy(_obj.RotX); + self.RotY.Copy(_obj.RotY); + self.RAngAx.Copy(_obj.RAngAx); +end; diff --git a/autoclass/docx/WebSettings@DOCX.tsf b/autoclass/docx/WebSettings@DOCX.tsf new file mode 100644 index 0000000..35b7ffa --- /dev/null +++ b/autoclass/docx/WebSettings@DOCX.tsf @@ -0,0 +1,347 @@ +type WebSettings = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: WebSettings);override; + + property XmlnsMc read ReadXmlAttrXmlnsMc write WriteXmlAttrXmlnsMc; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsW read ReadXmlAttrXmlnsW write WriteXmlAttrXmlnsW; + property XmlnsW14 read ReadXmlAttrXmlnsW14 write WriteXmlAttrXmlnsW14; + property XmlnsW15 read ReadXmlAttrXmlnsW15 write WriteXmlAttrXmlnsW15; + property XmlnsW16Cex read ReadXmlAttrXmlnsW16Cex write WriteXmlAttrXmlnsW16Cex; + property XmlnsW16Cid read ReadXmlAttrXmlnsW16Cid write WriteXmlAttrXmlnsW16Cid; + property XmlnsW16 read ReadXmlAttrXmlnsW16 write WriteXmlAttrXmlnsW16; + property XmlnsW16Du read ReadXmlAttrXmlnsW16Du write WriteXmlAttrXmlnsW16Du; + property XmlnsW16sdtdh read ReadXmlAttrXmlnsW16sdtdh write WriteXmlAttrXmlnsW16sdtdh; + property XmlnsW16se read ReadXmlAttrXmlnsW16se write WriteXmlAttrXmlnsW16se; + property McIgnorable read ReadXmlAttrMcIgnorable write WriteXmlAttrMcIgnorable; + function ReadXmlAttrXmlnsMc(); + function WriteXmlAttrXmlnsMc(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsW(); + function WriteXmlAttrXmlnsW(_value); + function ReadXmlAttrXmlnsW14(); + function WriteXmlAttrXmlnsW14(_value); + function ReadXmlAttrXmlnsW15(); + function WriteXmlAttrXmlnsW15(_value); + function ReadXmlAttrXmlnsW16Cex(); + function WriteXmlAttrXmlnsW16Cex(_value); + function ReadXmlAttrXmlnsW16Cid(); + function WriteXmlAttrXmlnsW16Cid(_value); + function ReadXmlAttrXmlnsW16(); + function WriteXmlAttrXmlnsW16(_value); + function ReadXmlAttrXmlnsW16Du(); + function WriteXmlAttrXmlnsW16Du(_value); + function ReadXmlAttrXmlnsW16sdtdh(); + function WriteXmlAttrXmlnsW16sdtdh(_value); + function ReadXmlAttrXmlnsW16se(); + function WriteXmlAttrXmlnsW16se(_value); + function ReadXmlAttrMcIgnorable(); + function WriteXmlAttrMcIgnorable(_value); + + property OptimizeForBrowser read ReadXmlChildOptimizeForBrowser write WriteXmlChildOptimizeForBrowser; + property AllowPNG read ReadXmlChildAllowPNG write WriteXmlChildAllowPNG; + function ReadXmlChildOptimizeForBrowser(); + function WriteXmlChildOptimizeForBrowser(_value); + function ReadXmlChildAllowPNG(); + function WriteXmlChildAllowPNG(_value); + +public + // Attributes + XmlAttrXmlnsMc: OpenXmlAttribute; + XmlAttrXmlnsR: OpenXmlAttribute; + XmlAttrXmlnsW: OpenXmlAttribute; + XmlAttrXmlnsW14: OpenXmlAttribute; + XmlAttrXmlnsW15: OpenXmlAttribute; + XmlAttrXmlnsW16Cex: OpenXmlAttribute; + XmlAttrXmlnsW16Cid: OpenXmlAttribute; + XmlAttrXmlnsW16: OpenXmlAttribute; + XmlAttrXmlnsW16Du: OpenXmlAttribute; + XmlAttrXmlnsW16sdtdh: OpenXmlAttribute; + XmlAttrXmlnsW16se: OpenXmlAttribute; + XmlAttrMcIgnorable: OpenXmlAttribute; + + // Children + XmlChildOptimizeForBrowser: OpenXmlEmpty; + XmlChildAllowPNG: OpenXmlEmpty; + +end; + +function WebSettings.Create();overload; +begin + self.Create(nil, "w", "webSettings"); +end; + +function WebSettings.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function WebSettings.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function WebSettings.Init();override; +begin + self.XmlAttrXmlnsMc := new OpenXmlAttribute("xmlns", "mc", nil); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", nil); + self.XmlAttrXmlnsW := new OpenXmlAttribute("xmlns", "w", nil); + self.XmlAttrXmlnsW14 := new OpenXmlAttribute("xmlns", "w14", nil); + self.XmlAttrXmlnsW15 := new OpenXmlAttribute("xmlns", "w15", nil); + self.XmlAttrXmlnsW16Cex := new OpenXmlAttribute("xmlns", "w16cex", nil); + self.XmlAttrXmlnsW16Cid := new OpenXmlAttribute("xmlns", "w16cid", nil); + self.XmlAttrXmlnsW16 := new OpenXmlAttribute("xmlns", "w16", nil); + self.XmlAttrXmlnsW16Du := new OpenXmlAttribute("xmlns", "w16du", nil); + self.XmlAttrXmlnsW16sdtdh := new OpenXmlAttribute("xmlns", "w16sdtdh", nil); + self.XmlAttrXmlnsW16se := new OpenXmlAttribute("xmlns", "w16se", nil); + self.XmlAttrMcIgnorable := new OpenXmlAttribute("mc", "Ignorable", nil); + self.XmlChildOptimizeForBrowser := new OpenXmlEmpty(self, self.Prefix, "optimizeForBrowser"); + self.XmlChildAllowPNG := new OpenXmlEmpty(self, self.Prefix, "allowPNG"); +end; + +function WebSettings.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsMc, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsW, + self.XmlAttrXmlnsW14, + self.XmlAttrXmlnsW15, + self.XmlAttrXmlnsW16Cex, + self.XmlAttrXmlnsW16Cid, + self.XmlAttrXmlnsW16, + self.XmlAttrXmlnsW16Du, + self.XmlAttrXmlnsW16sdtdh, + self.XmlAttrXmlnsW16se, + self.XmlAttrMcIgnorable, + ); +end; + +function WebSettings.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildOptimizeForBrowser, + 1: self.XmlChildAllowPNG, + ); + sorted_child_ := array( + "": -1, + self.XmlChildOptimizeForBrowser.ElementName: 0, + self.XmlChildAllowPNG.ElementName: 1, + ); +end; + +function WebSettings.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function WebSettings.Copy(_obj: WebSettings);override; +begin + if not ifnil(_obj.XmlAttrXmlnsMc.Value) then + self.XmlAttrXmlnsMc.Value := _obj.XmlAttrXmlnsMc.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsW.Value) then + self.XmlAttrXmlnsW.Value := _obj.XmlAttrXmlnsW.Value; + if not ifnil(_obj.XmlAttrXmlnsW14.Value) then + self.XmlAttrXmlnsW14.Value := _obj.XmlAttrXmlnsW14.Value; + if not ifnil(_obj.XmlAttrXmlnsW15.Value) then + self.XmlAttrXmlnsW15.Value := _obj.XmlAttrXmlnsW15.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cex.Value) then + self.XmlAttrXmlnsW16Cex.Value := _obj.XmlAttrXmlnsW16Cex.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Cid.Value) then + self.XmlAttrXmlnsW16Cid.Value := _obj.XmlAttrXmlnsW16Cid.Value; + if not ifnil(_obj.XmlAttrXmlnsW16.Value) then + self.XmlAttrXmlnsW16.Value := _obj.XmlAttrXmlnsW16.Value; + if not ifnil(_obj.XmlAttrXmlnsW16Du.Value) then + self.XmlAttrXmlnsW16Du.Value := _obj.XmlAttrXmlnsW16Du.Value; + if not ifnil(_obj.XmlAttrXmlnsW16sdtdh.Value) then + self.XmlAttrXmlnsW16sdtdh.Value := _obj.XmlAttrXmlnsW16sdtdh.Value; + if not ifnil(_obj.XmlAttrXmlnsW16se.Value) then + self.XmlAttrXmlnsW16se.Value := _obj.XmlAttrXmlnsW16se.Value; + if not ifnil(_obj.XmlAttrMcIgnorable.Value) then + self.XmlAttrMcIgnorable.Value := _obj.XmlAttrMcIgnorable.Value; + self.XmlChildOptimizeForBrowser.Copy(_obj.XmlChildOptimizeForBrowser); + self.XmlChildAllowPNG.Copy(_obj.XmlChildAllowPNG); +end; + +function WebSettings.ReadXmlAttrXmlnsMc(); +begin + return self.XmlAttrXmlnsMc.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsMc(_value); +begin + self.XmlAttrXmlnsMc.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW(); +begin + return self.XmlAttrXmlnsW.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW(_value); +begin + self.XmlAttrXmlnsW.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW14(); +begin + return self.XmlAttrXmlnsW14.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW14(_value); +begin + self.XmlAttrXmlnsW14.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW15(); +begin + return self.XmlAttrXmlnsW15.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW15(_value); +begin + self.XmlAttrXmlnsW15.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW16Cex(); +begin + return self.XmlAttrXmlnsW16Cex.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW16Cex(_value); +begin + self.XmlAttrXmlnsW16Cex.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW16Cid(); +begin + return self.XmlAttrXmlnsW16Cid.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW16Cid(_value); +begin + self.XmlAttrXmlnsW16Cid.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW16(); +begin + return self.XmlAttrXmlnsW16.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW16(_value); +begin + self.XmlAttrXmlnsW16.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW16Du(); +begin + return self.XmlAttrXmlnsW16Du.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW16Du(_value); +begin + self.XmlAttrXmlnsW16Du.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW16sdtdh(); +begin + return self.XmlAttrXmlnsW16sdtdh.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW16sdtdh(_value); +begin + self.XmlAttrXmlnsW16sdtdh.Value := _value; +end; + +function WebSettings.ReadXmlAttrXmlnsW16se(); +begin + return self.XmlAttrXmlnsW16se.Value; +end; + +function WebSettings.WriteXmlAttrXmlnsW16se(_value); +begin + self.XmlAttrXmlnsW16se.Value := _value; +end; + +function WebSettings.ReadXmlAttrMcIgnorable(); +begin + return self.XmlAttrMcIgnorable.Value; +end; + +function WebSettings.WriteXmlAttrMcIgnorable(_value); +begin + self.XmlAttrMcIgnorable.Value := _value; +end; + +function WebSettings.ReadXmlChildOptimizeForBrowser(); +begin + return ifnil(self.XmlChildOptimizeForBrowser.Value) ? false : true; +end; + +function WebSettings.WriteXmlChildOptimizeForBrowser(_value); +begin + self.XmlChildOptimizeForBrowser.Value := _value; +end; + +function WebSettings.ReadXmlChildAllowPNG(); +begin + return ifnil(self.XmlChildAllowPNG.Value) ? false : true; +end; + +function WebSettings.WriteXmlChildAllowPNG(_value); +begin + self.XmlChildAllowPNG.Value := _value; +end; diff --git a/autoclass/docx/XY@DOCX.tsf b/autoclass/docx/XY@DOCX.tsf new file mode 100644 index 0000000..7b03395 --- /dev/null +++ b/autoclass/docx/XY@DOCX.tsf @@ -0,0 +1,99 @@ +type XY = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: XY);override; + + property X read ReadXmlAttrX write WriteXmlAttrX; + property Y read ReadXmlAttrY write WriteXmlAttrY; + function ReadXmlAttrX(); + function WriteXmlAttrX(_value); + function ReadXmlAttrY(); + function WriteXmlAttrY(_value); + +public + // Attributes + XmlAttrX: OpenXmlAttribute; + XmlAttrY: OpenXmlAttribute; + + // Children + +end; + +function XY.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function XY.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function XY.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function XY.Init();override; +begin + self.XmlAttrX := new OpenXmlAttribute(nil, "x", nil); + self.XmlAttrY := new OpenXmlAttribute(nil, "y", nil); +end; + +function XY.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrX, + self.XmlAttrY, + ); +end; + +function XY.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function XY.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function XY.Copy(_obj: XY);override; +begin + if not ifnil(_obj.XmlAttrX.Value) then + self.XmlAttrX.Value := _obj.XmlAttrX.Value; + if not ifnil(_obj.XmlAttrY.Value) then + self.XmlAttrY.Value := _obj.XmlAttrY.Value; +end; + +function XY.ReadXmlAttrX(); +begin + return self.XmlAttrX.Value; +end; + +function XY.WriteXmlAttrX(_value); +begin + self.XmlAttrX.Value := _value; +end; + +function XY.ReadXmlAttrY(); +begin + return self.XmlAttrY.Value; +end; + +function XY.WriteXmlAttrY(_value); +begin + self.XmlAttrY.Value := _value; +end; diff --git a/autoclass/docx/Xfrm@DOCX.tsf b/autoclass/docx/Xfrm@DOCX.tsf new file mode 100644 index 0000000..f4b6445 --- /dev/null +++ b/autoclass/docx/Xfrm@DOCX.tsf @@ -0,0 +1,103 @@ +type Xfrm = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Xfrm);override; + +public + // Attributes + + // Children + Off: XY; + Ext: CXY; + +end; + +function Xfrm.Create();overload; +begin + self.Create(nil, "a", "xfrm"); +end; + +function Xfrm.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Xfrm.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Xfrm.Init();override; +begin + self.Off := new XY(self, self.Prefix, "off"); + self.Ext := new CXY(self, self.Prefix, "ext"); +end; + +function Xfrm.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Xfrm.InitChildren();override; +begin + child_elements_ := array( + 0: self.Off, + 1: self.Ext, + ); + sorted_child_ := array( + "": -1, + self.Off.ElementName: 0, + self.Ext.ElementName: 1, + ); +end; + +function Xfrm.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Xfrm.Copy(_obj: Xfrm);override; +begin + self.Off.Copy(_obj.Off); + self.Ext.Copy(_obj.Ext); +end; diff --git a/autoclass/docx/Zoom@DOCX.tsf b/autoclass/docx/Zoom@DOCX.tsf new file mode 100644 index 0000000..d4c841b --- /dev/null +++ b/autoclass/docx/Zoom@DOCX.tsf @@ -0,0 +1,81 @@ +type Zoom = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: Zoom);override; + + property Percent read ReadXmlAttrPercent write WriteXmlAttrPercent; + function ReadXmlAttrPercent(); + function WriteXmlAttrPercent(_value); + +public + // Attributes + XmlAttrPercent: OpenXmlAttribute; + + // Children + +end; + +function Zoom.Create();overload; +begin + self.Create(nil, "w", "zoom"); +end; + +function Zoom.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function Zoom.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Zoom.Init();override; +begin + self.XmlAttrPercent := new OpenXmlAttribute(self.Prefix, "percent", nil); +end; + +function Zoom.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPercent, + ); +end; + +function Zoom.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Zoom.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Zoom.Copy(_obj: Zoom);override; +begin + if not ifnil(_obj.XmlAttrPercent.Value) then + self.XmlAttrPercent.Value := _obj.XmlAttrPercent.Value; +end; + +function Zoom.ReadXmlAttrPercent(); +begin + return self.XmlAttrPercent.Value; +end; + +function Zoom.WriteXmlAttrPercent(_value); +begin + self.XmlAttrPercent.Value := _value; +end; diff --git a/autoclass/docx/_Inline@DOCX.tsf b/autoclass/docx/_Inline@DOCX.tsf new file mode 100644 index 0000000..f2a97d0 --- /dev/null +++ b/autoclass/docx/_Inline@DOCX.tsf @@ -0,0 +1,227 @@ +type _Inline = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: _Inline);override; + + property DistT read ReadXmlAttrDistT write WriteXmlAttrDistT; + property DistB read ReadXmlAttrDistB write WriteXmlAttrDistB; + property DistL read ReadXmlAttrDistL write WriteXmlAttrDistL; + property DistR read ReadXmlAttrDistR write WriteXmlAttrDistR; + property AnchorId read ReadXmlAttrAnchorId write WriteXmlAttrAnchorId; + property EditId read ReadXmlAttrEditId write WriteXmlAttrEditId; + function ReadXmlAttrDistT(); + function WriteXmlAttrDistT(_value); + function ReadXmlAttrDistB(); + function WriteXmlAttrDistB(_value); + function ReadXmlAttrDistL(); + function WriteXmlAttrDistL(_value); + function ReadXmlAttrDistR(); + function WriteXmlAttrDistR(_value); + function ReadXmlAttrAnchorId(); + function WriteXmlAttrAnchorId(_value); + function ReadXmlAttrEditId(); + function WriteXmlAttrEditId(_value); + +public + // Attributes + XmlAttrDistT: OpenXmlAttribute; + XmlAttrDistB: OpenXmlAttribute; + XmlAttrDistL: OpenXmlAttribute; + XmlAttrDistR: OpenXmlAttribute; + XmlAttrAnchorId: OpenXmlAttribute; + XmlAttrEditId: OpenXmlAttribute; + + // Children + Extent: CXY; + EffectExtent: EffectExtent; + DocPr: DocPr; + CNvGraphicFramePr: CNvGraphicFramePr; + Graphic: Graphic; + +end; + +function _Inline.Create();overload; +begin + self.Create(nil, "wp", "inline"); +end; + +function _Inline.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function _Inline.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function _Inline.Init();override; +begin + self.XmlAttrDistT := new OpenXmlAttribute(nil, "distT", nil); + self.XmlAttrDistB := new OpenXmlAttribute(nil, "distB", nil); + self.XmlAttrDistL := new OpenXmlAttribute(nil, "distL", nil); + self.XmlAttrDistR := new OpenXmlAttribute(nil, "distR", nil); + self.XmlAttrAnchorId := new OpenXmlAttribute("wp14", "anchorId", nil); + self.XmlAttrEditId := new OpenXmlAttribute("wp14", "editId", nil); + self.Extent := new CXY(self, self.Prefix, "extent"); + self.EffectExtent := new EffectExtent(self, self.Prefix, "effectExtent"); + self.DocPr := new DocPr(self, self.Prefix, "docPr"); + self.CNvGraphicFramePr := new CNvGraphicFramePr(self, self.Prefix, "cNvGraphicFramePr"); + self.Graphic := new Graphic(self, "a", "graphic"); +end; + +function _Inline.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrDistT, + self.XmlAttrDistB, + self.XmlAttrDistL, + self.XmlAttrDistR, + self.XmlAttrAnchorId, + self.XmlAttrEditId, + ); +end; + +function _Inline.InitChildren();override; +begin + child_elements_ := array( + 0: self.Extent, + 1: self.EffectExtent, + 2: self.DocPr, + 3: self.CNvGraphicFramePr, + 4: self.Graphic, + ); + sorted_child_ := array( + "": -1, + self.Extent.ElementName: 0, + self.EffectExtent.ElementName: 1, + self.DocPr.ElementName: 2, + self.CNvGraphicFramePr.ElementName: 3, + self.Graphic.ElementName: 4, + ); +end; + +function _Inline.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function _Inline.Copy(_obj: _Inline);override; +begin + if not ifnil(_obj.XmlAttrDistT.Value) then + self.XmlAttrDistT.Value := _obj.XmlAttrDistT.Value; + if not ifnil(_obj.XmlAttrDistB.Value) then + self.XmlAttrDistB.Value := _obj.XmlAttrDistB.Value; + if not ifnil(_obj.XmlAttrDistL.Value) then + self.XmlAttrDistL.Value := _obj.XmlAttrDistL.Value; + if not ifnil(_obj.XmlAttrDistR.Value) then + self.XmlAttrDistR.Value := _obj.XmlAttrDistR.Value; + if not ifnil(_obj.XmlAttrAnchorId.Value) then + self.XmlAttrAnchorId.Value := _obj.XmlAttrAnchorId.Value; + if not ifnil(_obj.XmlAttrEditId.Value) then + self.XmlAttrEditId.Value := _obj.XmlAttrEditId.Value; + self.Extent.Copy(_obj.Extent); + self.EffectExtent.Copy(_obj.EffectExtent); + self.DocPr.Copy(_obj.DocPr); + self.CNvGraphicFramePr.Copy(_obj.CNvGraphicFramePr); + self.Graphic.Copy(_obj.Graphic); +end; + +function _Inline.ReadXmlAttrDistT(); +begin + return self.XmlAttrDistT.Value; +end; + +function _Inline.WriteXmlAttrDistT(_value); +begin + self.XmlAttrDistT.Value := _value; +end; + +function _Inline.ReadXmlAttrDistB(); +begin + return self.XmlAttrDistB.Value; +end; + +function _Inline.WriteXmlAttrDistB(_value); +begin + self.XmlAttrDistB.Value := _value; +end; + +function _Inline.ReadXmlAttrDistL(); +begin + return self.XmlAttrDistL.Value; +end; + +function _Inline.WriteXmlAttrDistL(_value); +begin + self.XmlAttrDistL.Value := _value; +end; + +function _Inline.ReadXmlAttrDistR(); +begin + return self.XmlAttrDistR.Value; +end; + +function _Inline.WriteXmlAttrDistR(_value); +begin + self.XmlAttrDistR.Value := _value; +end; + +function _Inline.ReadXmlAttrAnchorId(); +begin + return self.XmlAttrAnchorId.Value; +end; + +function _Inline.WriteXmlAttrAnchorId(_value); +begin + self.XmlAttrAnchorId.Value := _value; +end; + +function _Inline.ReadXmlAttrEditId(); +begin + return self.XmlAttrEditId.Value; +end; + +function _Inline.WriteXmlAttrEditId(_value); +begin + self.XmlAttrEditId.Value := _value; +end; diff --git a/autoclass/docx/_Override@DOCX.tsf b/autoclass/docx/_Override@DOCX.tsf new file mode 100644 index 0000000..751eecd --- /dev/null +++ b/autoclass/docx/_Override@DOCX.tsf @@ -0,0 +1,99 @@ +type _Override = class(OpenXmlElement) +public + function Create();overload; + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node: XmlNode);override; + function Copy(_obj: _Override);override; + + property PartName read ReadXmlAttrPartName write WriteXmlAttrPartName; + property ContentType read ReadXmlAttrContentType write WriteXmlAttrContentType; + function ReadXmlAttrPartName(); + function WriteXmlAttrPartName(_value); + function ReadXmlAttrContentType(); + function WriteXmlAttrContentType(_value); + +public + // Attributes + XmlAttrPartName: OpenXmlAttribute; + XmlAttrContentType: OpenXmlAttribute; + + // Children + +end; + +function _Override.Create();overload; +begin + self.Create(nil, nil, "Override"); +end; + +function _Override.Create(_node: XmlNode);overload; +begin + class(OpenXmlElement).Create(_node: XmlNode); +end; + +function _Override.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function _Override.Init();override; +begin + self.XmlAttrPartName := new OpenXmlAttribute(nil, "PartName", nil); + self.XmlAttrContentType := new OpenXmlAttribute(nil, "ContentType", nil); +end; + +function _Override.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPartName, + self.XmlAttrContentType, + ); +end; + +function _Override.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function _Override.InitNode(_node: XmlNode);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function _Override.Copy(_obj: _Override);override; +begin + if not ifnil(_obj.XmlAttrPartName.Value) then + self.XmlAttrPartName.Value := _obj.XmlAttrPartName.Value; + if not ifnil(_obj.XmlAttrContentType.Value) then + self.XmlAttrContentType.Value := _obj.XmlAttrContentType.Value; +end; + +function _Override.ReadXmlAttrPartName(); +begin + return self.XmlAttrPartName.Value; +end; + +function _Override.WriteXmlAttrPartName(_value); +begin + self.XmlAttrPartName.Value := _value; +end; + +function _Override.ReadXmlAttrContentType(); +begin + return self.XmlAttrContentType.Value; +end; + +function _Override.WriteXmlAttrContentType(_value); +begin + self.XmlAttrContentType.Value := _value; +end; diff --git a/autoclass/pptx/Bg@PPTX.tsf b/autoclass/pptx/Bg@PPTX.tsf new file mode 100644 index 0000000..e9118bb --- /dev/null +++ b/autoclass/pptx/Bg@PPTX.tsf @@ -0,0 +1,98 @@ +type Bg = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + BgRef; + +end; + +function Bg.Create();overload; +begin + self.Create(nil, "p", "bg"); +end; + +function Bg.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Bg.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Bg.Init();override; +begin + self.BgRef := new BgRef(self, self.Prefix, "bgRef"); +end; + +function Bg.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Bg.InitChildren();override; +begin + child_elements_ := array( + 0: self.BgRef, + ); + sorted_child_ := array( + "": -1, + self.BgRef.ElementName: 0, + ); +end; + +function Bg.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Bg.Copy(_obj);override; +begin + self.BgRef.Copy(_obj.BgRef); +end; diff --git a/autoclass/pptx/BgRef@PPTX.tsf b/autoclass/pptx/BgRef@PPTX.tsf new file mode 100644 index 0000000..5eed551 --- /dev/null +++ b/autoclass/pptx/BgRef@PPTX.tsf @@ -0,0 +1,117 @@ +type BgRef = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Idx read ReadXmlAttrIdx write WriteXmlAttrIdx; + function ReadXmlAttrIdx(); + function WriteXmlAttrIdx(_value); + +public + // Attributes + XmlAttrIdx; + + // Children + SchemeClr; + +end; + +function BgRef.Create();overload; +begin + self.Create(nil, "p", "bgRef"); +end; + +function BgRef.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function BgRef.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BgRef.Init();override; +begin + self.XmlAttrIdx := new OpenXmlAttribute(nil, "idx", nil); + self.SchemeClr := new SchemeClr(self, "a", "schemeClr"); +end; + +function BgRef.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrIdx, + ); +end; + +function BgRef.InitChildren();override; +begin + child_elements_ := array( + 0: self.SchemeClr, + ); + sorted_child_ := array( + "": -1, + self.SchemeClr.ElementName: 0, + ); +end; + +function BgRef.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function BgRef.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrIdx.Value) then + self.XmlAttrIdx.Value := _obj.XmlAttrIdx.Value; + self.SchemeClr.Copy(_obj.SchemeClr); +end; + +function BgRef.ReadXmlAttrIdx(); +begin + return self.XmlAttrIdx.Value; +end; + +function BgRef.WriteXmlAttrIdx(_value); +begin + self.XmlAttrIdx.Value := _value; +end; diff --git a/autoclass/pptx/BodyPr@PPTX.tsf b/autoclass/pptx/BodyPr@PPTX.tsf new file mode 100644 index 0000000..e5c8237 --- /dev/null +++ b/autoclass/pptx/BodyPr@PPTX.tsf @@ -0,0 +1,239 @@ +type BodyPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Anchor read ReadXmlAttrAnchor write WriteXmlAttrAnchor; + property Vert read ReadXmlAttrVert write WriteXmlAttrVert; + property LIns read ReadXmlAttrLIns write WriteXmlAttrLIns; + property TIns read ReadXmlAttrTIns write WriteXmlAttrTIns; + property RIns read ReadXmlAttrRIns write WriteXmlAttrRIns; + property BIns read ReadXmlAttrBIns write WriteXmlAttrBIns; + property RtlCol read ReadXmlAttrRtlCol write WriteXmlAttrRtlCol; + function ReadXmlAttrAnchor(); + function WriteXmlAttrAnchor(_value); + function ReadXmlAttrVert(); + function WriteXmlAttrVert(_value); + function ReadXmlAttrLIns(); + function WriteXmlAttrLIns(_value); + function ReadXmlAttrTIns(); + function WriteXmlAttrTIns(_value); + function ReadXmlAttrRIns(); + function WriteXmlAttrRIns(_value); + function ReadXmlAttrBIns(); + function WriteXmlAttrBIns(_value); + function ReadXmlAttrRtlCol(); + function WriteXmlAttrRtlCol(_value); + + property NormAutoFit read ReadXmlChildNormAutoFit write WriteXmlChildNormAutoFit; + function ReadXmlChildNormAutoFit(); + function WriteXmlChildNormAutoFit(_value); + +public + // Attributes + XmlAttrAnchor; + XmlAttrVert; + XmlAttrLIns; + XmlAttrTIns; + XmlAttrRIns; + XmlAttrBIns; + XmlAttrRtlCol; + + // Children + XmlChildNormAutoFit; + +end; + +function BodyPr.Create();overload; +begin + self.Create(nil, "a", "bodyPr"); +end; + +function BodyPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function BodyPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BodyPr.Init();override; +begin + self.XmlAttrAnchor := new OpenXmlAttribute(nil, "anchor", nil); + self.XmlAttrVert := new OpenXmlAttribute(nil, "vert", nil); + self.XmlAttrLIns := new OpenXmlAttribute(nil, "lIns", nil); + self.XmlAttrTIns := new OpenXmlAttribute(nil, "tIns", nil); + self.XmlAttrRIns := new OpenXmlAttribute(nil, "rIns", nil); + self.XmlAttrBIns := new OpenXmlAttribute(nil, "bIns", nil); + self.XmlAttrRtlCol := new OpenXmlAttribute(nil, "rtlCol", nil); + self.XmlChildNormAutoFit := new OpenXmlEmpty(self, self.Prefix, "normAutofit"); +end; + +function BodyPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrAnchor, + self.XmlAttrVert, + self.XmlAttrLIns, + self.XmlAttrTIns, + self.XmlAttrRIns, + self.XmlAttrBIns, + self.XmlAttrRtlCol, + ); +end; + +function BodyPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildNormAutoFit, + ); + sorted_child_ := array( + "": -1, + self.XmlChildNormAutoFit.ElementName: 0, + ); +end; + +function BodyPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function BodyPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrAnchor.Value) then + self.XmlAttrAnchor.Value := _obj.XmlAttrAnchor.Value; + if not ifnil(_obj.XmlAttrVert.Value) then + self.XmlAttrVert.Value := _obj.XmlAttrVert.Value; + if not ifnil(_obj.XmlAttrLIns.Value) then + self.XmlAttrLIns.Value := _obj.XmlAttrLIns.Value; + if not ifnil(_obj.XmlAttrTIns.Value) then + self.XmlAttrTIns.Value := _obj.XmlAttrTIns.Value; + if not ifnil(_obj.XmlAttrRIns.Value) then + self.XmlAttrRIns.Value := _obj.XmlAttrRIns.Value; + if not ifnil(_obj.XmlAttrBIns.Value) then + self.XmlAttrBIns.Value := _obj.XmlAttrBIns.Value; + if not ifnil(_obj.XmlAttrRtlCol.Value) then + self.XmlAttrRtlCol.Value := _obj.XmlAttrRtlCol.Value; + self.XmlChildNormAutoFit.Copy(_obj.XmlChildNormAutoFit); +end; + +function BodyPr.ReadXmlAttrAnchor(); +begin + return self.XmlAttrAnchor.Value; +end; + +function BodyPr.WriteXmlAttrAnchor(_value); +begin + self.XmlAttrAnchor.Value := _value; +end; + +function BodyPr.ReadXmlAttrVert(); +begin + return self.XmlAttrVert.Value; +end; + +function BodyPr.WriteXmlAttrVert(_value); +begin + self.XmlAttrVert.Value := _value; +end; + +function BodyPr.ReadXmlAttrLIns(); +begin + return self.XmlAttrLIns.Value; +end; + +function BodyPr.WriteXmlAttrLIns(_value); +begin + self.XmlAttrLIns.Value := _value; +end; + +function BodyPr.ReadXmlAttrTIns(); +begin + return self.XmlAttrTIns.Value; +end; + +function BodyPr.WriteXmlAttrTIns(_value); +begin + self.XmlAttrTIns.Value := _value; +end; + +function BodyPr.ReadXmlAttrRIns(); +begin + return self.XmlAttrRIns.Value; +end; + +function BodyPr.WriteXmlAttrRIns(_value); +begin + self.XmlAttrRIns.Value := _value; +end; + +function BodyPr.ReadXmlAttrBIns(); +begin + return self.XmlAttrBIns.Value; +end; + +function BodyPr.WriteXmlAttrBIns(_value); +begin + self.XmlAttrBIns.Value := _value; +end; + +function BodyPr.ReadXmlAttrRtlCol(); +begin + return self.XmlAttrRtlCol.Value; +end; + +function BodyPr.WriteXmlAttrRtlCol(_value); +begin + self.XmlAttrRtlCol.Value := _value; +end; + +function BodyPr.ReadXmlChildNormAutoFit(); +begin + return ifnil(self.XmlChildNormAutoFit.Value) ? false : true; +end; + +function BodyPr.WriteXmlChildNormAutoFit(_value); +begin + self.XmlChildNormAutoFit.Value := _value; +end; diff --git a/autoclass/pptx/BuChar@PPTX.tsf b/autoclass/pptx/BuChar@PPTX.tsf new file mode 100644 index 0000000..2aca28d --- /dev/null +++ b/autoclass/pptx/BuChar@PPTX.tsf @@ -0,0 +1,81 @@ +type BuChar = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Char read ReadXmlAttrChar write WriteXmlAttrChar; + function ReadXmlAttrChar(); + function WriteXmlAttrChar(_value); + +public + // Attributes + XmlAttrChar; + + // Children + +end; + +function BuChar.Create();overload; +begin + self.Create(nil, "a", "buChar"); +end; + +function BuChar.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function BuChar.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BuChar.Init();override; +begin + self.XmlAttrChar := new OpenXmlAttribute(nil, "char", nil); +end; + +function BuChar.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrChar, + ); +end; + +function BuChar.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function BuChar.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function BuChar.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrChar.Value) then + self.XmlAttrChar.Value := _obj.XmlAttrChar.Value; +end; + +function BuChar.ReadXmlAttrChar(); +begin + return self.XmlAttrChar.Value; +end; + +function BuChar.WriteXmlAttrChar(_value); +begin + self.XmlAttrChar.Value := _value; +end; diff --git a/autoclass/pptx/BuFont@PPTX.tsf b/autoclass/pptx/BuFont@PPTX.tsf new file mode 100644 index 0000000..0f6c867 --- /dev/null +++ b/autoclass/pptx/BuFont@PPTX.tsf @@ -0,0 +1,135 @@ +type BuFont = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; + property Panose read ReadXmlAttrPanose write WriteXmlAttrPanose; + property PitchFamily read ReadXmlAttrPitchFamily write WriteXmlAttrPitchFamily; + property Charset read ReadXmlAttrCharset write WriteXmlAttrCharset; + function ReadXmlAttrTypeface(); + function WriteXmlAttrTypeface(_value); + function ReadXmlAttrPanose(); + function WriteXmlAttrPanose(_value); + function ReadXmlAttrPitchFamily(); + function WriteXmlAttrPitchFamily(_value); + function ReadXmlAttrCharset(); + function WriteXmlAttrCharset(_value); + +public + // Attributes + XmlAttrTypeface; + XmlAttrPanose; + XmlAttrPitchFamily; + XmlAttrCharset; + + // Children + +end; + +function BuFont.Create();overload; +begin + self.Create(nil, "a", "buFont"); +end; + +function BuFont.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function BuFont.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function BuFont.Init();override; +begin + self.XmlAttrTypeface := new OpenXmlAttribute(nil, "typeface", nil); + self.XmlAttrPanose := new OpenXmlAttribute(nil, "panose", nil); + self.XmlAttrPitchFamily := new OpenXmlAttribute(nil, "pitchFamily", nil); + self.XmlAttrCharset := new OpenXmlAttribute(nil, "charset", nil); +end; + +function BuFont.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrTypeface, + self.XmlAttrPanose, + self.XmlAttrPitchFamily, + self.XmlAttrCharset, + ); +end; + +function BuFont.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function BuFont.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function BuFont.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrTypeface.Value) then + self.XmlAttrTypeface.Value := _obj.XmlAttrTypeface.Value; + if not ifnil(_obj.XmlAttrPanose.Value) then + self.XmlAttrPanose.Value := _obj.XmlAttrPanose.Value; + if not ifnil(_obj.XmlAttrPitchFamily.Value) then + self.XmlAttrPitchFamily.Value := _obj.XmlAttrPitchFamily.Value; + if not ifnil(_obj.XmlAttrCharset.Value) then + self.XmlAttrCharset.Value := _obj.XmlAttrCharset.Value; +end; + +function BuFont.ReadXmlAttrTypeface(); +begin + return self.XmlAttrTypeface.Value; +end; + +function BuFont.WriteXmlAttrTypeface(_value); +begin + self.XmlAttrTypeface.Value := _value; +end; + +function BuFont.ReadXmlAttrPanose(); +begin + return self.XmlAttrPanose.Value; +end; + +function BuFont.WriteXmlAttrPanose(_value); +begin + self.XmlAttrPanose.Value := _value; +end; + +function BuFont.ReadXmlAttrPitchFamily(); +begin + return self.XmlAttrPitchFamily.Value; +end; + +function BuFont.WriteXmlAttrPitchFamily(_value); +begin + self.XmlAttrPitchFamily.Value := _value; +end; + +function BuFont.ReadXmlAttrCharset(); +begin + return self.XmlAttrCharset.Value; +end; + +function BuFont.WriteXmlAttrCharset(_value); +begin + self.XmlAttrCharset.Value := _value; +end; diff --git a/autoclass/pptx/CNvPr@PPTX.tsf b/autoclass/pptx/CNvPr@PPTX.tsf new file mode 100644 index 0000000..2db3ab3 --- /dev/null +++ b/autoclass/pptx/CNvPr@PPTX.tsf @@ -0,0 +1,135 @@ +type CNvPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrId; + XmlAttrName; + + // Children + ExtLst; + +end; + +function CNvPr.Create();overload; +begin + self.Create(nil, "p", "cNvPr"); +end; + +function CNvPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CNvPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CNvPr.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "id", nil); + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.ExtLst := new ExtLst(self, "a", "extLst"); +end; + +function CNvPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrName, + ); +end; + +function CNvPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.ExtLst.ElementName: 0, + ); +end; + +function CNvPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CNvPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.ExtLst.Copy(_obj.ExtLst); +end; + +function CNvPr.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function CNvPr.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function CNvPr.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function CNvPr.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/pptx/CNvSpPr@PPTX.tsf b/autoclass/pptx/CNvSpPr@PPTX.tsf new file mode 100644 index 0000000..9c56ef3 --- /dev/null +++ b/autoclass/pptx/CNvSpPr@PPTX.tsf @@ -0,0 +1,117 @@ +type CNvSpPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property TxBox read ReadXmlAttrTxBox write WriteXmlAttrTxBox; + function ReadXmlAttrTxBox(); + function WriteXmlAttrTxBox(_value); + +public + // Attributes + XmlAttrTxBox; + + // Children + SpLocks; + +end; + +function CNvSpPr.Create();overload; +begin + self.Create(nil, "p", "cNvSpPr"); +end; + +function CNvSpPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CNvSpPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CNvSpPr.Init();override; +begin + self.XmlAttrTxBox := new OpenXmlAttribute(nil, "txBox", nil); + self.SpLocks := new SpLocks(self, "a", "spLocks"); +end; + +function CNvSpPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrTxBox, + ); +end; + +function CNvSpPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.SpLocks, + ); + sorted_child_ := array( + "": -1, + self.SpLocks.ElementName: 0, + ); +end; + +function CNvSpPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CNvSpPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrTxBox.Value) then + self.XmlAttrTxBox.Value := _obj.XmlAttrTxBox.Value; + self.SpLocks.Copy(_obj.SpLocks); +end; + +function CNvSpPr.ReadXmlAttrTxBox(); +begin + return self.XmlAttrTxBox.Value; +end; + +function CNvSpPr.WriteXmlAttrTxBox(_value); +begin + self.XmlAttrTxBox.Value := _value; +end; diff --git a/autoclass/pptx/CSld@PPTX.tsf b/autoclass/pptx/CSld@PPTX.tsf new file mode 100644 index 0000000..e5f2cbf --- /dev/null +++ b/autoclass/pptx/CSld@PPTX.tsf @@ -0,0 +1,127 @@ +type CSld = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName; + + // Children + Bg; + SpTree; + ExtLst; + +end; + +function CSld.Create();overload; +begin + self.Create(nil, "p", "cSld"); +end; + +function CSld.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CSld.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CSld.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.Bg := new Bg(self, self.Prefix, "bg"); + self.SpTree := new SpTree(self, self.Prefix, "spTree"); + self.ExtLst := new ExtLst(self, self.Prefix, "extLst"); +end; + +function CSld.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function CSld.InitChildren();override; +begin + child_elements_ := array( + 0: self.Bg, + 1: self.SpTree, + 2: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.Bg.ElementName: 0, + self.SpTree.ElementName: 1, + self.ExtLst.ElementName: 2, + ); +end; + +function CSld.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CSld.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.Bg.Copy(_obj.Bg); + self.SpTree.Copy(_obj.SpTree); + self.ExtLst.Copy(_obj.ExtLst); +end; + +function CSld.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function CSld.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/pptx/CSldViewPr@PPTX.tsf b/autoclass/pptx/CSldViewPr@PPTX.tsf new file mode 100644 index 0000000..df28621 --- /dev/null +++ b/autoclass/pptx/CSldViewPr@PPTX.tsf @@ -0,0 +1,136 @@ +type CSldViewPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property SnapToGrid read ReadXmlAttrSnapToGrid write WriteXmlAttrSnapToGrid; + function ReadXmlAttrSnapToGrid(); + function WriteXmlAttrSnapToGrid(_value); + + property GuideLst read ReadXmlChildGuideLst write WriteXmlChildGuideLst; + function ReadXmlChildGuideLst(); + function WriteXmlChildGuideLst(_value); + +public + // Attributes + XmlAttrSnapToGrid; + + // Children + CViewPr; + XmlChildGuideLst; + +end; + +function CSldViewPr.Create();overload; +begin + self.Create(nil, "p", "cSldViewPr"); +end; + +function CSldViewPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CSldViewPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CSldViewPr.Init();override; +begin + self.XmlAttrSnapToGrid := new OpenXmlAttribute(nil, "snapToGrid", nil); + self.CViewPr := new CViewPr(self, self.Prefix, "cViewPr"); + self.XmlChildGuideLst := new OpenXmlEmpty(self, self.Prefix, "guideLst"); +end; + +function CSldViewPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrSnapToGrid, + ); +end; + +function CSldViewPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.CViewPr, + 1: self.XmlChildGuideLst, + ); + sorted_child_ := array( + "": -1, + self.CViewPr.ElementName: 0, + self.XmlChildGuideLst.ElementName: 1, + ); +end; + +function CSldViewPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CSldViewPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrSnapToGrid.Value) then + self.XmlAttrSnapToGrid.Value := _obj.XmlAttrSnapToGrid.Value; + self.CViewPr.Copy(_obj.CViewPr); + self.XmlChildGuideLst.Copy(_obj.XmlChildGuideLst); +end; + +function CSldViewPr.ReadXmlAttrSnapToGrid(); +begin + return self.XmlAttrSnapToGrid.Value; +end; + +function CSldViewPr.WriteXmlAttrSnapToGrid(_value); +begin + self.XmlAttrSnapToGrid.Value := _value; +end; + +function CSldViewPr.ReadXmlChildGuideLst(); +begin + return ifnil(self.XmlChildGuideLst.Value) ? false : true; +end; + +function CSldViewPr.WriteXmlChildGuideLst(_value); +begin + self.XmlChildGuideLst.Value := _value; +end; diff --git a/autoclass/pptx/CViewPr@PPTX.tsf b/autoclass/pptx/CViewPr@PPTX.tsf new file mode 100644 index 0000000..b66e738 --- /dev/null +++ b/autoclass/pptx/CViewPr@PPTX.tsf @@ -0,0 +1,122 @@ +type CViewPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property VarScale read ReadXmlAttrVarScale write WriteXmlAttrVarScale; + function ReadXmlAttrVarScale(); + function WriteXmlAttrVarScale(_value); + +public + // Attributes + XmlAttrVarScale; + + // Children + Scale; + Origin; + +end; + +function CViewPr.Create();overload; +begin + self.Create(nil, "p", "cViewPr"); +end; + +function CViewPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CViewPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CViewPr.Init();override; +begin + self.XmlAttrVarScale := new OpenXmlAttribute(nil, "varScale", nil); + self.Scale := new Scale(self, self.Prefix, "scale"); + self.Origin := new XY(self, self.Prefix, "origin"); +end; + +function CViewPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVarScale, + ); +end; + +function CViewPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Scale, + 1: self.Origin, + ); + sorted_child_ := array( + "": -1, + self.Scale.ElementName: 0, + self.Origin.ElementName: 1, + ); +end; + +function CViewPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CViewPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVarScale.Value) then + self.XmlAttrVarScale.Value := _obj.XmlAttrVarScale.Value; + self.Scale.Copy(_obj.Scale); + self.Origin.Copy(_obj.Origin); +end; + +function CViewPr.ReadXmlAttrVarScale(); +begin + return self.XmlAttrVarScale.Value; +end; + +function CViewPr.WriteXmlAttrVarScale(_value); +begin + self.XmlAttrVarScale.Value := _value; +end; diff --git a/autoclass/pptx/CXY@PPTX.tsf b/autoclass/pptx/CXY@PPTX.tsf new file mode 100644 index 0000000..0676e7e --- /dev/null +++ b/autoclass/pptx/CXY@PPTX.tsf @@ -0,0 +1,99 @@ +type CXY = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property CX read ReadXmlAttrCX write WriteXmlAttrCX; + property CY read ReadXmlAttrCY write WriteXmlAttrCY; + function ReadXmlAttrCX(); + function WriteXmlAttrCX(_value); + function ReadXmlAttrCY(); + function WriteXmlAttrCY(_value); + +public + // Attributes + XmlAttrCX; + XmlAttrCY; + + // Children + +end; + +function CXY.Create();overload; +begin + self.Create(nil, nil, "off"); +end; + +function CXY.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CXY.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CXY.Init();override; +begin + self.XmlAttrCX := new OpenXmlAttribute(nil, "cx", nil); + self.XmlAttrCY := new OpenXmlAttribute(nil, "cy", nil); +end; + +function CXY.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrCX, + self.XmlAttrCY, + ); +end; + +function CXY.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function CXY.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function CXY.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrCX.Value) then + self.XmlAttrCX.Value := _obj.XmlAttrCX.Value; + if not ifnil(_obj.XmlAttrCY.Value) then + self.XmlAttrCY.Value := _obj.XmlAttrCY.Value; +end; + +function CXY.ReadXmlAttrCX(); +begin + return self.XmlAttrCX.Value; +end; + +function CXY.WriteXmlAttrCX(_value); +begin + self.XmlAttrCX.Value := _value; +end; + +function CXY.ReadXmlAttrCY(); +begin + return self.XmlAttrCY.Value; +end; + +function CXY.WriteXmlAttrCY(_value); +begin + self.XmlAttrCY.Value := _value; +end; diff --git a/autoclass/pptx/Clr1@PPTX.tsf b/autoclass/pptx/Clr1@PPTX.tsf new file mode 100644 index 0000000..0c2ec32 --- /dev/null +++ b/autoclass/pptx/Clr1@PPTX.tsf @@ -0,0 +1,98 @@ +type Clr1 = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + SysClr; + +end; + +function Clr1.Create();overload; +begin + self.Create(nil, "a", ""); +end; + +function Clr1.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Clr1.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Clr1.Init();override; +begin + self.SysClr := new SysClr(self, self.Prefix, "sysClr"); +end; + +function Clr1.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Clr1.InitChildren();override; +begin + child_elements_ := array( + 0: self.SysClr, + ); + sorted_child_ := array( + "": -1, + self.SysClr.ElementName: 0, + ); +end; + +function Clr1.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Clr1.Copy(_obj);override; +begin + self.SysClr.Copy(_obj.SysClr); +end; diff --git a/autoclass/pptx/Clr2@PPTX.tsf b/autoclass/pptx/Clr2@PPTX.tsf new file mode 100644 index 0000000..8e5d20b --- /dev/null +++ b/autoclass/pptx/Clr2@PPTX.tsf @@ -0,0 +1,98 @@ +type Clr2 = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + SrgbClr; + +end; + +function Clr2.Create();overload; +begin + self.Create(nil, "a", ""); +end; + +function Clr2.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Clr2.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Clr2.Init();override; +begin + self.SrgbClr := new SrgbClr(self, self.Prefix, "srgbClr"); +end; + +function Clr2.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Clr2.InitChildren();override; +begin + child_elements_ := array( + 0: self.SrgbClr, + ); + sorted_child_ := array( + "": -1, + self.SrgbClr.ElementName: 0, + ); +end; + +function Clr2.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Clr2.Copy(_obj);override; +begin + self.SrgbClr.Copy(_obj.SrgbClr); +end; diff --git a/autoclass/pptx/ClrMap@PPTX.tsf b/autoclass/pptx/ClrMap@PPTX.tsf new file mode 100644 index 0000000..7b73c22 --- /dev/null +++ b/autoclass/pptx/ClrMap@PPTX.tsf @@ -0,0 +1,189 @@ +type ClrMap = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Bg1 read ReadXmlAttrBg1 write WriteXmlAttrBg1; + property Tx1 read ReadXmlAttrTx1 write WriteXmlAttrTx1; + property Bg2 read ReadXmlAttrBg2 write WriteXmlAttrBg2; + property Tx2 read ReadXmlAttrTx2 write WriteXmlAttrTx2; + property Accent1 read ReadXmlAttrAccent1 write WriteXmlAttrAccent1; + property Accent2 read ReadXmlAttrAccent2 write WriteXmlAttrAccent2; + property FolHlink read ReadXmlAttrFolHlink write WriteXmlAttrFolHlink; + function ReadXmlAttrBg1(); + function WriteXmlAttrBg1(_value); + function ReadXmlAttrTx1(); + function WriteXmlAttrTx1(_value); + function ReadXmlAttrBg2(); + function WriteXmlAttrBg2(_value); + function ReadXmlAttrTx2(); + function WriteXmlAttrTx2(_value); + function ReadXmlAttrAccent1(); + function WriteXmlAttrAccent1(_value); + function ReadXmlAttrAccent2(); + function WriteXmlAttrAccent2(_value); + function ReadXmlAttrFolHlink(); + function WriteXmlAttrFolHlink(_value); + +public + // Attributes + XmlAttrBg1; + XmlAttrTx1; + XmlAttrBg2; + XmlAttrTx2; + XmlAttrAccent1; + XmlAttrAccent2; + XmlAttrFolHlink; + + // Children + +end; + +function ClrMap.Create();overload; +begin + self.Create(nil, "p", "clrMap"); +end; + +function ClrMap.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ClrMap.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ClrMap.Init();override; +begin + self.XmlAttrBg1 := new OpenXmlAttribute(nil, "bg1", nil); + self.XmlAttrTx1 := new OpenXmlAttribute(nil, "tx1", nil); + self.XmlAttrBg2 := new OpenXmlAttribute(nil, "bg2", nil); + self.XmlAttrTx2 := new OpenXmlAttribute(nil, "tx2", nil); + self.XmlAttrAccent1 := new OpenXmlAttribute(nil, "accent1", nil); + self.XmlAttrAccent2 := new OpenXmlAttribute(nil, "accent2", nil); + self.XmlAttrFolHlink := new OpenXmlAttribute(nil, "folHlink", nil); +end; + +function ClrMap.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrBg1, + self.XmlAttrTx1, + self.XmlAttrBg2, + self.XmlAttrTx2, + self.XmlAttrAccent1, + self.XmlAttrAccent2, + self.XmlAttrFolHlink, + ); +end; + +function ClrMap.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ClrMap.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function ClrMap.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrBg1.Value) then + self.XmlAttrBg1.Value := _obj.XmlAttrBg1.Value; + if not ifnil(_obj.XmlAttrTx1.Value) then + self.XmlAttrTx1.Value := _obj.XmlAttrTx1.Value; + if not ifnil(_obj.XmlAttrBg2.Value) then + self.XmlAttrBg2.Value := _obj.XmlAttrBg2.Value; + if not ifnil(_obj.XmlAttrTx2.Value) then + self.XmlAttrTx2.Value := _obj.XmlAttrTx2.Value; + if not ifnil(_obj.XmlAttrAccent1.Value) then + self.XmlAttrAccent1.Value := _obj.XmlAttrAccent1.Value; + if not ifnil(_obj.XmlAttrAccent2.Value) then + self.XmlAttrAccent2.Value := _obj.XmlAttrAccent2.Value; + if not ifnil(_obj.XmlAttrFolHlink.Value) then + self.XmlAttrFolHlink.Value := _obj.XmlAttrFolHlink.Value; +end; + +function ClrMap.ReadXmlAttrBg1(); +begin + return self.XmlAttrBg1.Value; +end; + +function ClrMap.WriteXmlAttrBg1(_value); +begin + self.XmlAttrBg1.Value := _value; +end; + +function ClrMap.ReadXmlAttrTx1(); +begin + return self.XmlAttrTx1.Value; +end; + +function ClrMap.WriteXmlAttrTx1(_value); +begin + self.XmlAttrTx1.Value := _value; +end; + +function ClrMap.ReadXmlAttrBg2(); +begin + return self.XmlAttrBg2.Value; +end; + +function ClrMap.WriteXmlAttrBg2(_value); +begin + self.XmlAttrBg2.Value := _value; +end; + +function ClrMap.ReadXmlAttrTx2(); +begin + return self.XmlAttrTx2.Value; +end; + +function ClrMap.WriteXmlAttrTx2(_value); +begin + self.XmlAttrTx2.Value := _value; +end; + +function ClrMap.ReadXmlAttrAccent1(); +begin + return self.XmlAttrAccent1.Value; +end; + +function ClrMap.WriteXmlAttrAccent1(_value); +begin + self.XmlAttrAccent1.Value := _value; +end; + +function ClrMap.ReadXmlAttrAccent2(); +begin + return self.XmlAttrAccent2.Value; +end; + +function ClrMap.WriteXmlAttrAccent2(_value); +begin + self.XmlAttrAccent2.Value := _value; +end; + +function ClrMap.ReadXmlAttrFolHlink(); +begin + return self.XmlAttrFolHlink.Value; +end; + +function ClrMap.WriteXmlAttrFolHlink(_value); +begin + self.XmlAttrFolHlink.Value := _value; +end; diff --git a/autoclass/pptx/ClrMapOvr@PPTX.tsf b/autoclass/pptx/ClrMapOvr@PPTX.tsf new file mode 100644 index 0000000..b48980d --- /dev/null +++ b/autoclass/pptx/ClrMapOvr@PPTX.tsf @@ -0,0 +1,112 @@ +type ClrMapOvr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property MasterClrMapping read ReadXmlChildMasterClrMapping write WriteXmlChildMasterClrMapping; + function ReadXmlChildMasterClrMapping(); + function WriteXmlChildMasterClrMapping(_value); + +public + // Attributes + + // Children + XmlChildMasterClrMapping; + +end; + +function ClrMapOvr.Create();overload; +begin + self.Create(nil, "p", "clrMapOvr"); +end; + +function ClrMapOvr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ClrMapOvr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ClrMapOvr.Init();override; +begin + self.XmlChildMasterClrMapping := new OpenXmlEmpty(self, "a", "masterClrMapping"); +end; + +function ClrMapOvr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function ClrMapOvr.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildMasterClrMapping, + ); + sorted_child_ := array( + "": -1, + self.XmlChildMasterClrMapping.ElementName: 0, + ); +end; + +function ClrMapOvr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ClrMapOvr.Copy(_obj);override; +begin + self.XmlChildMasterClrMapping.Copy(_obj.XmlChildMasterClrMapping); +end; + +function ClrMapOvr.ReadXmlChildMasterClrMapping(); +begin + return ifnil(self.XmlChildMasterClrMapping.Value) ? false : true; +end; + +function ClrMapOvr.WriteXmlChildMasterClrMapping(_value); +begin + self.XmlChildMasterClrMapping.Value := _value; +end; diff --git a/autoclass/pptx/ClrScheme@PPTX.tsf b/autoclass/pptx/ClrScheme@PPTX.tsf new file mode 100644 index 0000000..ab009fb --- /dev/null +++ b/autoclass/pptx/ClrScheme@PPTX.tsf @@ -0,0 +1,172 @@ +type ClrScheme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName; + + // Children + Dk1; + Lt1; + Dk2; + Lt2; + Accent1; + Accent2; + Accent3; + Accent4; + Accent5; + Accent6; + Hlink; + FolHlink; + +end; + +function ClrScheme.Create();overload; +begin + self.Create(nil, "a", "clrsCheme"); +end; + +function ClrScheme.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ClrScheme.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ClrScheme.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.Dk1 := new Clr1(self, self.Prefix, "dk1"); + self.Lt1 := new Clr1(self, self.Prefix, "lt1"); + self.Dk2 := new Clr2(self, self.Prefix, "dk2"); + self.Lt2 := new Clr2(self, self.Prefix, "lt2"); + self.Accent1 := new Clr2(self, self.Prefix, "accent1"); + self.Accent2 := new Clr2(self, self.Prefix, "accent2"); + self.Accent3 := new Clr2(self, self.Prefix, "accent3"); + self.Accent4 := new Clr2(self, self.Prefix, "accent4"); + self.Accent5 := new Clr2(self, self.Prefix, "accent5"); + self.Accent6 := new Clr2(self, self.Prefix, "accent6"); + self.Hlink := new Clr2(self, self.Prefix, "hlink"); + self.FolHlink := new Clr2(self, self.Prefix, "folHlink"); +end; + +function ClrScheme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function ClrScheme.InitChildren();override; +begin + child_elements_ := array( + 0: self.Dk1, + 1: self.Lt1, + 2: self.Dk2, + 3: self.Lt2, + 4: self.Accent1, + 5: self.Accent2, + 6: self.Accent3, + 7: self.Accent4, + 8: self.Accent5, + 9: self.Accent6, + 10: self.Hlink, + 11: self.FolHlink, + ); + sorted_child_ := array( + "": -1, + self.Dk1.ElementName: 0, + self.Lt1.ElementName: 1, + self.Dk2.ElementName: 2, + self.Lt2.ElementName: 3, + self.Accent1.ElementName: 4, + self.Accent2.ElementName: 5, + self.Accent3.ElementName: 6, + self.Accent4.ElementName: 7, + self.Accent5.ElementName: 8, + self.Accent6.ElementName: 9, + self.Hlink.ElementName: 10, + self.FolHlink.ElementName: 11, + ); +end; + +function ClrScheme.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ClrScheme.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.Dk1.Copy(_obj.Dk1); + self.Lt1.Copy(_obj.Lt1); + self.Dk2.Copy(_obj.Dk2); + self.Lt2.Copy(_obj.Lt2); + self.Accent1.Copy(_obj.Accent1); + self.Accent2.Copy(_obj.Accent2); + self.Accent3.Copy(_obj.Accent3); + self.Accent4.Copy(_obj.Accent4); + self.Accent5.Copy(_obj.Accent5); + self.Accent6.Copy(_obj.Accent6); + self.Hlink.Copy(_obj.Hlink); + self.FolHlink.Copy(_obj.FolHlink); +end; + +function ClrScheme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function ClrScheme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/pptx/CoreProperties@PPTX.tsf b/autoclass/pptx/CoreProperties@PPTX.tsf new file mode 100644 index 0000000..2d915f1 --- /dev/null +++ b/autoclass/pptx/CoreProperties@PPTX.tsf @@ -0,0 +1,214 @@ +type CoreProperties = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsCp read ReadXmlAttrXmlnsCp write WriteXmlAttrXmlnsCp; + property XmlnsDc read ReadXmlAttrXmlnsDc write WriteXmlAttrXmlnsDc; + property XmlnsDcterms read ReadXmlAttrXmlnsDcterms write WriteXmlAttrXmlnsDcterms; + property XmlnsDcmitype read ReadXmlAttrXmlnsDcmitype write WriteXmlAttrXmlnsDcmitype; + property XmlnsXsi read ReadXmlAttrXmlnsXsi write WriteXmlAttrXmlnsXsi; + function ReadXmlAttrXmlnsCp(); + function WriteXmlAttrXmlnsCp(_value); + function ReadXmlAttrXmlnsDc(); + function WriteXmlAttrXmlnsDc(_value); + function ReadXmlAttrXmlnsDcterms(); + function WriteXmlAttrXmlnsDcterms(_value); + function ReadXmlAttrXmlnsDcmitype(); + function WriteXmlAttrXmlnsDcmitype(_value); + function ReadXmlAttrXmlnsXsi(); + function WriteXmlAttrXmlnsXsi(_value); + +public + // Attributes + XmlAttrXmlnsCp; + XmlAttrXmlnsDc; + XmlAttrXmlnsDcterms; + XmlAttrXmlnsDcmitype; + XmlAttrXmlnsXsi; + + // Children + Title; + Creator; + LastModifiedBy; + Revision; + Created; + Modified; + +end; + +function CoreProperties.Create();overload; +begin + self.Create(nil, "cp", "coreProperties"); +end; + +function CoreProperties.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function CoreProperties.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function CoreProperties.Init();override; +begin + self.XmlAttrXmlnsCp := new OpenXmlAttribute("xmlns", "cp", "http://schemas.openxmlformats.org/package/2006/metadata/core-properties"); + self.XmlAttrXmlnsDc := new OpenXmlAttribute("xmlns", "dc", "http://purl.org/dc/elements/1.1/"); + self.XmlAttrXmlnsDcterms := new OpenXmlAttribute("xmlns", "dcterms", "http://purl.org/dc/terms/"); + self.XmlAttrXmlnsDcmitype := new OpenXmlAttribute("xmlns", "dcmitype", "http://purl.org/dc/dcmitype/"); + self.XmlAttrXmlnsXsi := new OpenXmlAttribute("xmlns", "xsi", "http://www.w3.org/2001/XMLSchema-instance"); + self.Title := new OpenXmlPcdata(self, "dc", "title"); + self.Creator := new OpenXmlPcdata(self, "dc", "creator"); + self.LastModifiedBy := new OpenXmlPcdata(self, "cp", "lastModifiedBy"); + self.Revision := new OpenXmlPcdata(self, "cp", "revision"); + self.Created := new Created(self, "dcterms", "created"); + self.Modified := new Modified(self, "dcterms", "modified"); +end; + +function CoreProperties.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsCp, + self.XmlAttrXmlnsDc, + self.XmlAttrXmlnsDcterms, + self.XmlAttrXmlnsDcmitype, + self.XmlAttrXmlnsXsi, + ); +end; + +function CoreProperties.InitChildren();override; +begin + child_elements_ := array( + 0: self.Title, + 1: self.Creator, + 2: self.LastModifiedBy, + 3: self.Revision, + 4: self.Created, + 5: self.Modified, + ); + sorted_child_ := array( + "": -1, + self.Title.ElementName: 0, + self.Creator.ElementName: 1, + self.LastModifiedBy.ElementName: 2, + self.Revision.ElementName: 3, + self.Created.ElementName: 4, + self.Modified.ElementName: 5, + ); +end; + +function CoreProperties.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function CoreProperties.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsCp.Value) then + self.XmlAttrXmlnsCp.Value := _obj.XmlAttrXmlnsCp.Value; + if not ifnil(_obj.XmlAttrXmlnsDc.Value) then + self.XmlAttrXmlnsDc.Value := _obj.XmlAttrXmlnsDc.Value; + if not ifnil(_obj.XmlAttrXmlnsDcterms.Value) then + self.XmlAttrXmlnsDcterms.Value := _obj.XmlAttrXmlnsDcterms.Value; + if not ifnil(_obj.XmlAttrXmlnsDcmitype.Value) then + self.XmlAttrXmlnsDcmitype.Value := _obj.XmlAttrXmlnsDcmitype.Value; + if not ifnil(_obj.XmlAttrXmlnsXsi.Value) then + self.XmlAttrXmlnsXsi.Value := _obj.XmlAttrXmlnsXsi.Value; + self.Title.Copy(_obj.Title); + self.Creator.Copy(_obj.Creator); + self.LastModifiedBy.Copy(_obj.LastModifiedBy); + self.Revision.Copy(_obj.Revision); + self.Created.Copy(_obj.Created); + self.Modified.Copy(_obj.Modified); +end; + +function CoreProperties.ReadXmlAttrXmlnsCp(); +begin + return self.XmlAttrXmlnsCp.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsCp(_value); +begin + self.XmlAttrXmlnsCp.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsDc(); +begin + return self.XmlAttrXmlnsDc.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsDc(_value); +begin + self.XmlAttrXmlnsDc.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsDcterms(); +begin + return self.XmlAttrXmlnsDcterms.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsDcterms(_value); +begin + self.XmlAttrXmlnsDcterms.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsDcmitype(); +begin + return self.XmlAttrXmlnsDcmitype.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsDcmitype(_value); +begin + self.XmlAttrXmlnsDcmitype.Value := _value; +end; + +function CoreProperties.ReadXmlAttrXmlnsXsi(); +begin + return self.XmlAttrXmlnsXsi.Value; +end; + +function CoreProperties.WriteXmlAttrXmlnsXsi(_value); +begin + self.XmlAttrXmlnsXsi.Value := _value; +end; diff --git a/autoclass/pptx/Created@PPTX.tsf b/autoclass/pptx/Created@PPTX.tsf new file mode 100644 index 0000000..986ab0b --- /dev/null +++ b/autoclass/pptx/Created@PPTX.tsf @@ -0,0 +1,71 @@ +type Created = class(OpenXmlPcdata) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XsiType read ReadXmlAttrXsiType write WriteXmlAttrXsiType; + function ReadXmlAttrXsiType(); + function WriteXmlAttrXsiType(_value); + +public + // Attributes + XmlAttrXsiType; + + // Children + +end; + +function Created.Create();overload; +begin + self.Create(nil, "dcterms", "created"); +end; + +function Created.Create(_node);overload; +begin + class(OpenXmlPcdata).Create(_node); +end; + +function Created.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlPcdata).Create(_parent, _prefix, _local_name); +end; + +function Created.Init();override; +begin + self.XmlAttrXsiType := new OpenXmlAttribute("xsi", "type", nil); +end; + +function Created.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXsiType, + ); +end; + +function Created.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Created.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXsiType.Value) then + self.XmlAttrXsiType.Value := _obj.XmlAttrXsiType.Value; +end; + +function Created.ReadXmlAttrXsiType(); +begin + return self.XmlAttrXsiType.Value; +end; + +function Created.WriteXmlAttrXsiType(_value); +begin + self.XmlAttrXsiType.Value := _value; +end; diff --git a/autoclass/pptx/DefPPr@PPTX.tsf b/autoclass/pptx/DefPPr@PPTX.tsf new file mode 100644 index 0000000..bbfbea7 --- /dev/null +++ b/autoclass/pptx/DefPPr@PPTX.tsf @@ -0,0 +1,98 @@ +type DefPPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + DefRPr; + +end; + +function DefPPr.Create();overload; +begin + self.Create(nil, nil, "defPPr"); +end; + +function DefPPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function DefPPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DefPPr.Init();override; +begin + self.DefRPr := new DefRPr(self, self.Prefix, "defRPr"); +end; + +function DefPPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function DefPPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.DefRPr, + ); + sorted_child_ := array( + "": -1, + self.DefRPr.ElementName: 0, + ); +end; + +function DefPPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DefPPr.Copy(_obj);override; +begin + self.DefRPr.Copy(_obj.DefRPr); +end; diff --git a/autoclass/pptx/DefRPr@PPTX.tsf b/autoclass/pptx/DefRPr@PPTX.tsf new file mode 100644 index 0000000..0b23cb9 --- /dev/null +++ b/autoclass/pptx/DefRPr@PPTX.tsf @@ -0,0 +1,168 @@ +type DefRPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Lang read ReadXmlAttrLang write WriteXmlAttrLang; + property Sz read ReadXmlAttrSz write WriteXmlAttrSz; + property Kern read ReadXmlAttrKern write WriteXmlAttrKern; + function ReadXmlAttrLang(); + function WriteXmlAttrLang(_value); + function ReadXmlAttrSz(); + function WriteXmlAttrSz(_value); + function ReadXmlAttrKern(); + function WriteXmlAttrKern(_value); + +public + // Attributes + XmlAttrLang; + XmlAttrSz; + XmlAttrKern; + + // Children + SolidFill; + Latin; + Ea; + Cs; + +end; + +function DefRPr.Create();overload; +begin + self.Create(nil, "a", "defRPr"); +end; + +function DefRPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function DefRPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DefRPr.Init();override; +begin + self.XmlAttrLang := new OpenXmlAttribute(nil, "lang", nil); + self.XmlAttrSz := new OpenXmlAttribute(nil, "sz", nil); + self.XmlAttrKern := new OpenXmlAttribute(nil, "kern", nil); + self.SolidFill := new SolidFill(self, self.Prefix, "solidFill"); + self.Latin := new Latin(self, self.Prefix, "latin"); + self.Ea := new Latin(self, self.Prefix, "ea"); + self.Cs := new Latin(self, self.Prefix, "cs"); +end; + +function DefRPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrLang, + self.XmlAttrSz, + self.XmlAttrKern, + ); +end; + +function DefRPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.SolidFill, + 1: self.Latin, + 2: self.Ea, + 3: self.Cs, + ); + sorted_child_ := array( + "": -1, + self.SolidFill.ElementName: 0, + self.Latin.ElementName: 1, + self.Ea.ElementName: 2, + self.Cs.ElementName: 3, + ); +end; + +function DefRPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DefRPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrLang.Value) then + self.XmlAttrLang.Value := _obj.XmlAttrLang.Value; + if not ifnil(_obj.XmlAttrSz.Value) then + self.XmlAttrSz.Value := _obj.XmlAttrSz.Value; + if not ifnil(_obj.XmlAttrKern.Value) then + self.XmlAttrKern.Value := _obj.XmlAttrKern.Value; + self.SolidFill.Copy(_obj.SolidFill); + self.Latin.Copy(_obj.Latin); + self.Ea.Copy(_obj.Ea); + self.Cs.Copy(_obj.Cs); +end; + +function DefRPr.ReadXmlAttrLang(); +begin + return self.XmlAttrLang.Value; +end; + +function DefRPr.WriteXmlAttrLang(_value); +begin + self.XmlAttrLang.Value := _value; +end; + +function DefRPr.ReadXmlAttrSz(); +begin + return self.XmlAttrSz.Value; +end; + +function DefRPr.WriteXmlAttrSz(_value); +begin + self.XmlAttrSz.Value := _value; +end; + +function DefRPr.ReadXmlAttrKern(); +begin + return self.XmlAttrKern.Value; +end; + +function DefRPr.WriteXmlAttrKern(_value); +begin + self.XmlAttrKern.Value := _value; +end; diff --git a/autoclass/pptx/Default@PPTX.tsf b/autoclass/pptx/Default@PPTX.tsf new file mode 100644 index 0000000..6a5a5bc --- /dev/null +++ b/autoclass/pptx/Default@PPTX.tsf @@ -0,0 +1,99 @@ +type Default = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Extension read ReadXmlAttrExtension write WriteXmlAttrExtension; + property ContentType read ReadXmlAttrContentType write WriteXmlAttrContentType; + function ReadXmlAttrExtension(); + function WriteXmlAttrExtension(_value); + function ReadXmlAttrContentType(); + function WriteXmlAttrContentType(_value); + +public + // Attributes + XmlAttrExtension; + XmlAttrContentType; + + // Children + +end; + +function Default.Create();overload; +begin + self.Create(nil, nil, "Default"); +end; + +function Default.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Default.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Default.Init();override; +begin + self.XmlAttrExtension := new OpenXmlAttribute(nil, "Extension", nil); + self.XmlAttrContentType := new OpenXmlAttribute(nil, "ContentType", nil); +end; + +function Default.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrExtension, + self.XmlAttrContentType, + ); +end; + +function Default.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Default.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Default.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrExtension.Value) then + self.XmlAttrExtension.Value := _obj.XmlAttrExtension.Value; + if not ifnil(_obj.XmlAttrContentType.Value) then + self.XmlAttrContentType.Value := _obj.XmlAttrContentType.Value; +end; + +function Default.ReadXmlAttrExtension(); +begin + return self.XmlAttrExtension.Value; +end; + +function Default.WriteXmlAttrExtension(_value); +begin + self.XmlAttrExtension.Value := _value; +end; + +function Default.ReadXmlAttrContentType(); +begin + return self.XmlAttrContentType.Value; +end; + +function Default.WriteXmlAttrContentType(_value); +begin + self.XmlAttrContentType.Value := _value; +end; diff --git a/autoclass/pptx/DefaultTextStyle@PPTX.tsf b/autoclass/pptx/DefaultTextStyle@PPTX.tsf new file mode 100644 index 0000000..6c688e2 --- /dev/null +++ b/autoclass/pptx/DefaultTextStyle@PPTX.tsf @@ -0,0 +1,143 @@ +type DefaultTextStyle = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + DefPPr; + Lvl1PPr; + Lvl2PPr; + Lvl3PPr; + Lvl4PPr; + Lvl5PPr; + Lvl6PPr; + Lvl7PPr; + Lvl8PPr; + Lvl9PPr; + +end; + +function DefaultTextStyle.Create();overload; +begin + self.Create(nil, "p", "lstStyle"); +end; + +function DefaultTextStyle.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function DefaultTextStyle.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function DefaultTextStyle.Init();override; +begin + self.DefPPr := new DefPPr(self, "a", "defPPr"); + self.Lvl1PPr := new LvlPPr(self, "a", "lvl1pPr"); + self.Lvl2PPr := new LvlPPr(self, "a", "lvl2pPr"); + self.Lvl3PPr := new LvlPPr(self, "a", "lvl3pPr"); + self.Lvl4PPr := new LvlPPr(self, "a", "lvl4pPr"); + self.Lvl5PPr := new LvlPPr(self, "a", "lvl5pPr"); + self.Lvl6PPr := new LvlPPr(self, "a", "lvl6pPr"); + self.Lvl7PPr := new LvlPPr(self, "a", "lvl7pPr"); + self.Lvl8PPr := new LvlPPr(self, "a", "lvl8pPr"); + self.Lvl9PPr := new LvlPPr(self, "a", "lvl9pPr"); +end; + +function DefaultTextStyle.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function DefaultTextStyle.InitChildren();override; +begin + child_elements_ := array( + 0: self.DefPPr, + 1: self.Lvl1PPr, + 2: self.Lvl2PPr, + 3: self.Lvl3PPr, + 4: self.Lvl4PPr, + 5: self.Lvl5PPr, + 6: self.Lvl6PPr, + 7: self.Lvl7PPr, + 8: self.Lvl8PPr, + 9: self.Lvl9PPr, + ); + sorted_child_ := array( + "": -1, + self.DefPPr.ElementName: 0, + self.Lvl1PPr.ElementName: 1, + self.Lvl2PPr.ElementName: 2, + self.Lvl3PPr.ElementName: 3, + self.Lvl4PPr.ElementName: 4, + self.Lvl5PPr.ElementName: 5, + self.Lvl6PPr.ElementName: 6, + self.Lvl7PPr.ElementName: 7, + self.Lvl8PPr.ElementName: 8, + self.Lvl9PPr.ElementName: 9, + ); +end; + +function DefaultTextStyle.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function DefaultTextStyle.Copy(_obj);override; +begin + self.DefPPr.Copy(_obj.DefPPr); + self.Lvl1PPr.Copy(_obj.Lvl1PPr); + self.Lvl2PPr.Copy(_obj.Lvl2PPr); + self.Lvl3PPr.Copy(_obj.Lvl3PPr); + self.Lvl4PPr.Copy(_obj.Lvl4PPr); + self.Lvl5PPr.Copy(_obj.Lvl5PPr); + self.Lvl6PPr.Copy(_obj.Lvl6PPr); + self.Lvl7PPr.Copy(_obj.Lvl7PPr); + self.Lvl8PPr.Copy(_obj.Lvl8PPr); + self.Lvl9PPr.Copy(_obj.Lvl9PPr); +end; diff --git a/autoclass/pptx/EffectLst@PPTX.tsf b/autoclass/pptx/EffectLst@PPTX.tsf new file mode 100644 index 0000000..f73215a --- /dev/null +++ b/autoclass/pptx/EffectLst@PPTX.tsf @@ -0,0 +1,98 @@ +type EffectLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + OuterShdw; + +end; + +function EffectLst.Create();overload; +begin + self.Create(nil, "a", "effectLst"); +end; + +function EffectLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function EffectLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectLst.Init();override; +begin + self.OuterShdw := new OuterShdw(self, self.Prefix, "outerShdw"); +end; + +function EffectLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EffectLst.InitChildren();override; +begin + child_elements_ := array( + 0: self.OuterShdw, + ); + sorted_child_ := array( + "": -1, + self.OuterShdw.ElementName: 0, + ); +end; + +function EffectLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EffectLst.Copy(_obj);override; +begin + self.OuterShdw.Copy(_obj.OuterShdw); +end; diff --git a/autoclass/pptx/EffectStyle@PPTX.tsf b/autoclass/pptx/EffectStyle@PPTX.tsf new file mode 100644 index 0000000..d23df02 --- /dev/null +++ b/autoclass/pptx/EffectStyle@PPTX.tsf @@ -0,0 +1,98 @@ +type EffectStyle = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + EffectLst; + +end; + +function EffectStyle.Create();overload; +begin + self.Create(nil, "a", "effectStyle"); +end; + +function EffectStyle.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function EffectStyle.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectStyle.Init();override; +begin + self.EffectLst := new EffectLst(self, self.Prefix, "effectLst"); +end; + +function EffectStyle.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EffectStyle.InitChildren();override; +begin + child_elements_ := array( + 0: self.EffectLst, + ); + sorted_child_ := array( + "": -1, + self.EffectLst.ElementName: 0, + ); +end; + +function EffectStyle.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EffectStyle.Copy(_obj);override; +begin + self.EffectLst.Copy(_obj.EffectLst); +end; diff --git a/autoclass/pptx/EffectStyleLst@PPTX.tsf b/autoclass/pptx/EffectStyleLst@PPTX.tsf new file mode 100644 index 0000000..7adf248 --- /dev/null +++ b/autoclass/pptx/EffectStyleLst@PPTX.tsf @@ -0,0 +1,137 @@ +type EffectStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddEffectStyle(); + function AppendEffectStyle(); + + property EffectStyles read ReadEffectStyles; + function ReadEffectStyles(_index); + +public + // Attributes + + // Children + +end; + +function EffectStyleLst.Create();overload; +begin + self.Create(nil, "a", "effectStyleLst"); +end; + +function EffectStyleLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function EffectStyleLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function EffectStyleLst.Init();override; +begin + +end; + +function EffectStyleLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function EffectStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function EffectStyleLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "effectStyle": obj := self.AppendEffectStyle(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function EffectStyleLst.Copy(_obj);override; +begin + +end; + +function EffectStyleLst.AddEffectStyle(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "effectStyle" then break; + end + obj := new EffectStyle(self, self.Prefix, "effectStyle"); + self.InsertChild(obj, i+1); + return obj; +end; + +function EffectStyleLst.AppendEffectStyle(); +begin + obj := new EffectStyle(self, self.Prefix, "effectStyle"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function EffectStyleLst.ReadEffectStyles(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "effectStyle" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/Ext@PPTX.tsf b/autoclass/pptx/Ext@PPTX.tsf new file mode 100644 index 0000000..dacf107 --- /dev/null +++ b/autoclass/pptx/Ext@PPTX.tsf @@ -0,0 +1,137 @@ +type Ext = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Uri read ReadXmlAttrUri write WriteXmlAttrUri; + function ReadXmlAttrUri(); + function WriteXmlAttrUri(_value); + +public + // Attributes + XmlAttrUri; + + // Children + P14CreationId; + P16CreationId; + P14DiscardImageEditData; + P14DefaultImageDpi; + P15ChartTrackingRefBased; + +end; + +function Ext.Create();overload; +begin + self.Create(nil, "p", "ext"); +end; + +function Ext.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Ext.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ext.Init();override; +begin + self.XmlAttrUri := new OpenXmlAttribute(nil, "uri", nil); + self.P14CreationId := new ExtChild(self, "p14", "creationId"); + self.P16CreationId := new ExtChild(self, "p16", "creationId"); + self.P14DiscardImageEditData := new ExtChild(self, "p14", "discardImageEditData"); + self.P14DefaultImageDpi := new ExtChild(self, "p14", "defaultImageDpi"); + self.P15ChartTrackingRefBased := new ExtChild(self, "p15", "chartTrackingRefBased"); +end; + +function Ext.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrUri, + ); +end; + +function Ext.InitChildren();override; +begin + child_elements_ := array( + 0: self.P14CreationId, + 1: self.P16CreationId, + 2: self.P14DiscardImageEditData, + 3: self.P14DefaultImageDpi, + 4: self.P15ChartTrackingRefBased, + ); + sorted_child_ := array( + "": -1, + self.P14CreationId.ElementName: 0, + self.P16CreationId.ElementName: 1, + self.P14DiscardImageEditData.ElementName: 2, + self.P14DefaultImageDpi.ElementName: 3, + self.P15ChartTrackingRefBased.ElementName: 4, + ); +end; + +function Ext.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ext.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrUri.Value) then + self.XmlAttrUri.Value := _obj.XmlAttrUri.Value; + self.P14CreationId.Copy(_obj.P14CreationId); + self.P16CreationId.Copy(_obj.P16CreationId); + self.P14DiscardImageEditData.Copy(_obj.P14DiscardImageEditData); + self.P14DefaultImageDpi.Copy(_obj.P14DefaultImageDpi); + self.P15ChartTrackingRefBased.Copy(_obj.P15ChartTrackingRefBased); +end; + +function Ext.ReadXmlAttrUri(); +begin + return self.XmlAttrUri.Value; +end; + +function Ext.WriteXmlAttrUri(_value); +begin + self.XmlAttrUri.Value := _value; +end; diff --git a/autoclass/pptx/ExtChild@PPTX.tsf b/autoclass/pptx/ExtChild@PPTX.tsf new file mode 100644 index 0000000..2a397da --- /dev/null +++ b/autoclass/pptx/ExtChild@PPTX.tsf @@ -0,0 +1,99 @@ +type ExtChild = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Xmlns read ReadXmlAttrXmlns write WriteXmlAttrXmlns; + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrXmlns(); + function WriteXmlAttrXmlns(_value); + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrXmlns; + XmlAttrVal; + + // Children + +end; + +function ExtChild.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function ExtChild.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ExtChild.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ExtChild.Init();override; +begin + self.XmlAttrXmlns := new OpenXmlAttribute(nil, "xmlns", "http://schemas.microsoft.com/office/powerpoint/2010/main"); + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); +end; + +function ExtChild.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlns, + self.XmlAttrVal, + ); +end; + +function ExtChild.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ExtChild.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function ExtChild.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlns.Value) then + self.XmlAttrXmlns.Value := _obj.XmlAttrXmlns.Value; + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function ExtChild.ReadXmlAttrXmlns(); +begin + return self.XmlAttrXmlns.Value; +end; + +function ExtChild.WriteXmlAttrXmlns(_value); +begin + self.XmlAttrXmlns.Value := _value; +end; + +function ExtChild.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function ExtChild.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/pptx/ExtLst@PPTX.tsf b/autoclass/pptx/ExtLst@PPTX.tsf new file mode 100644 index 0000000..9b4b3f3 --- /dev/null +++ b/autoclass/pptx/ExtLst@PPTX.tsf @@ -0,0 +1,137 @@ +type ExtLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddExt(); + function AppendExt(); + + property Exts read ReadExts; + function ReadExts(_index); + +public + // Attributes + + // Children + +end; + +function ExtLst.Create();overload; +begin + self.Create(nil, "p", "extLst"); +end; + +function ExtLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ExtLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ExtLst.Init();override; +begin + +end; + +function ExtLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function ExtLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ExtLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "ext": obj := self.AppendExt(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ExtLst.Copy(_obj);override; +begin + +end; + +function ExtLst.AddExt(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "ext" then break; + end + obj := new Ext(self, self.Prefix, "ext"); + self.InsertChild(obj, i+1); + return obj; +end; + +function ExtLst.AppendExt(); +begin + obj := new Ext(self, self.Prefix, "ext"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function ExtLst.ReadExts(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "ext" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/FillStyleLst@PPTX.tsf b/autoclass/pptx/FillStyleLst@PPTX.tsf new file mode 100644 index 0000000..f64219c --- /dev/null +++ b/autoclass/pptx/FillStyleLst@PPTX.tsf @@ -0,0 +1,178 @@ +type FillStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddSolidFill(); + function AddGradFill(); + function AppendSolidFill(); + function AppendGradFill(); + + property SolidFills read ReadSolidFills; + property GradFills read ReadGradFills; + function ReadSolidFills(_index); + function ReadGradFills(_index); + +public + // Attributes + + // Children + +end; + +function FillStyleLst.Create();overload; +begin + self.Create(nil, "a", "fillStyleLst"); +end; + +function FillStyleLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function FillStyleLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FillStyleLst.Init();override; +begin + +end; + +function FillStyleLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function FillStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function FillStyleLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "solidFill": obj := self.AppendSolidFill(); + pre + "gradFill": obj := self.AppendGradFill(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FillStyleLst.Copy(_obj);override; +begin + +end; + +function FillStyleLst.AddSolidFill(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "solidFill" then break; + end + obj := new SolidFill(self, self.Prefix, "solidFill"); + self.InsertChild(obj, i+1); + return obj; +end; + +function FillStyleLst.AddGradFill(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "gradFill" then break; + end + obj := new GradFill(self, self.Prefix, "gradFill"); + self.InsertChild(obj, i+1); + return obj; +end; + +function FillStyleLst.AppendSolidFill(); +begin + obj := new SolidFill(self, self.Prefix, "solidFill"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function FillStyleLst.AppendGradFill(); +begin + obj := new GradFill(self, self.Prefix, "gradFill"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function FillStyleLst.ReadSolidFills(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "solidFill" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function FillStyleLst.ReadGradFills(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "gradFill" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/Fld@PPTX.tsf b/autoclass/pptx/Fld@PPTX.tsf new file mode 100644 index 0000000..9cba57c --- /dev/null +++ b/autoclass/pptx/Fld@PPTX.tsf @@ -0,0 +1,140 @@ +type Fld = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Type read ReadXmlAttrType write WriteXmlAttrType; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + +public + // Attributes + XmlAttrId; + XmlAttrType; + + // Children + RPr; + T; + +end; + +function Fld.Create();overload; +begin + self.Create(nil, "a", "fld"); +end; + +function Fld.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Fld.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Fld.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "id", nil); + self.XmlAttrType := new OpenXmlAttribute(nil, "type", nil); + self.RPr := new RPr(self, self.Prefix, "rPr"); + self.T := new OpenXmlPcdata(self, self.Prefix, "t"); +end; + +function Fld.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrType, + ); +end; + +function Fld.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + 1: self.T, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + self.T.ElementName: 1, + ); +end; + +function Fld.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Fld.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + self.RPr.Copy(_obj.RPr); + self.T.Copy(_obj.T); +end; + +function Fld.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Fld.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function Fld.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Fld.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; diff --git a/autoclass/pptx/FmtScheme@PPTX.tsf b/autoclass/pptx/FmtScheme@PPTX.tsf new file mode 100644 index 0000000..8a9bd6b --- /dev/null +++ b/autoclass/pptx/FmtScheme@PPTX.tsf @@ -0,0 +1,132 @@ +type FmtScheme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName; + + // Children + FillStyleLst; + LnStyleLst; + EffectStyleLst; + BgFillStyleLst; + +end; + +function FmtScheme.Create();overload; +begin + self.Create(nil, "a", "fmtScheme"); +end; + +function FmtScheme.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function FmtScheme.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FmtScheme.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.FillStyleLst := new FillStyleLst(self, self.Prefix, "fillStyleLst"); + self.LnStyleLst := new LnStyleLst(self, self.Prefix, "lnStyleLst"); + self.EffectStyleLst := new EffectStyleLst(self, self.Prefix, "effectStyleLst"); + self.BgFillStyleLst := new FillStyleLst(self, self.Prefix, "bgFillStyleLst"); +end; + +function FmtScheme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function FmtScheme.InitChildren();override; +begin + child_elements_ := array( + 0: self.FillStyleLst, + 1: self.LnStyleLst, + 2: self.EffectStyleLst, + 3: self.BgFillStyleLst, + ); + sorted_child_ := array( + "": -1, + self.FillStyleLst.ElementName: 0, + self.LnStyleLst.ElementName: 1, + self.EffectStyleLst.ElementName: 2, + self.BgFillStyleLst.ElementName: 3, + ); +end; + +function FmtScheme.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FmtScheme.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.FillStyleLst.Copy(_obj.FillStyleLst); + self.LnStyleLst.Copy(_obj.LnStyleLst); + self.EffectStyleLst.Copy(_obj.EffectStyleLst); + self.BgFillStyleLst.Copy(_obj.BgFillStyleLst); +end; + +function FmtScheme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function FmtScheme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/pptx/FontScheme@PPTX.tsf b/autoclass/pptx/FontScheme@PPTX.tsf new file mode 100644 index 0000000..d301040 --- /dev/null +++ b/autoclass/pptx/FontScheme@PPTX.tsf @@ -0,0 +1,122 @@ +type FontScheme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName; + + // Children + Majorfont; + Minorfont; + +end; + +function FontScheme.Create();overload; +begin + self.Create(nil, "a", "fontScheme"); +end; + +function FontScheme.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function FontScheme.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function FontScheme.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.Majorfont := new Mfont(self, self.Prefix, "majorFont"); + self.Minorfont := new Mfont(self, self.Prefix, "minorFont"); +end; + +function FontScheme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function FontScheme.InitChildren();override; +begin + child_elements_ := array( + 0: self.Majorfont, + 1: self.Minorfont, + ); + sorted_child_ := array( + "": -1, + self.Majorfont.ElementName: 0, + self.Minorfont.ElementName: 1, + ); +end; + +function FontScheme.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function FontScheme.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.Majorfont.Copy(_obj.Majorfont); + self.Minorfont.Copy(_obj.Minorfont); +end; + +function FontScheme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function FontScheme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/pptx/GradFill@PPTX.tsf b/autoclass/pptx/GradFill@PPTX.tsf new file mode 100644 index 0000000..e79a833 --- /dev/null +++ b/autoclass/pptx/GradFill@PPTX.tsf @@ -0,0 +1,122 @@ +type GradFill = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property RotWithShape read ReadXmlAttrRotWithShape write WriteXmlAttrRotWithShape; + function ReadXmlAttrRotWithShape(); + function WriteXmlAttrRotWithShape(_value); + +public + // Attributes + XmlAttrRotWithShape; + + // Children + GsLst; + Lin; + +end; + +function GradFill.Create();overload; +begin + self.Create(nil, "a", "gradFill"); +end; + +function GradFill.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function GradFill.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GradFill.Init();override; +begin + self.XmlAttrRotWithShape := new OpenXmlAttribute(nil, "rotWithShape", nil); + self.GsLst := new GsLst(self, self.Prefix, "gsLst"); + self.Lin := new Lin(self, self.Prefix, "lin"); +end; + +function GradFill.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrRotWithShape, + ); +end; + +function GradFill.InitChildren();override; +begin + child_elements_ := array( + 0: self.GsLst, + 1: self.Lin, + ); + sorted_child_ := array( + "": -1, + self.GsLst.ElementName: 0, + self.Lin.ElementName: 1, + ); +end; + +function GradFill.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function GradFill.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrRotWithShape.Value) then + self.XmlAttrRotWithShape.Value := _obj.XmlAttrRotWithShape.Value; + self.GsLst.Copy(_obj.GsLst); + self.Lin.Copy(_obj.Lin); +end; + +function GradFill.ReadXmlAttrRotWithShape(); +begin + return self.XmlAttrRotWithShape.Value; +end; + +function GradFill.WriteXmlAttrRotWithShape(_value); +begin + self.XmlAttrRotWithShape.Value := _value; +end; diff --git a/autoclass/pptx/GrpSpPr@PPTX.tsf b/autoclass/pptx/GrpSpPr@PPTX.tsf new file mode 100644 index 0000000..bf8e956 --- /dev/null +++ b/autoclass/pptx/GrpSpPr@PPTX.tsf @@ -0,0 +1,98 @@ +type GrpSpPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + Xfrm; + +end; + +function GrpSpPr.Create();overload; +begin + self.Create(nil, "p", "grpSpPr"); +end; + +function GrpSpPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function GrpSpPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GrpSpPr.Init();override; +begin + self.Xfrm := new Xfrm(self, "a", "xfrm"); +end; + +function GrpSpPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function GrpSpPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Xfrm, + ); + sorted_child_ := array( + "": -1, + self.Xfrm.ElementName: 0, + ); +end; + +function GrpSpPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function GrpSpPr.Copy(_obj);override; +begin + self.Xfrm.Copy(_obj.Xfrm); +end; diff --git a/autoclass/pptx/Gs@PPTX.tsf b/autoclass/pptx/Gs@PPTX.tsf new file mode 100644 index 0000000..37afed8 --- /dev/null +++ b/autoclass/pptx/Gs@PPTX.tsf @@ -0,0 +1,117 @@ +type Gs = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Pos read ReadXmlAttrPos write WriteXmlAttrPos; + function ReadXmlAttrPos(); + function WriteXmlAttrPos(_value); + +public + // Attributes + XmlAttrPos; + + // Children + SchemeClr; + +end; + +function Gs.Create();overload; +begin + self.Create(nil, "a", "gs"); +end; + +function Gs.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Gs.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Gs.Init();override; +begin + self.XmlAttrPos := new OpenXmlAttribute(nil, "pos", nil); + self.SchemeClr := new SchemeClr(self, self.Prefix, "schemeClr"); +end; + +function Gs.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPos, + ); +end; + +function Gs.InitChildren();override; +begin + child_elements_ := array( + 0: self.SchemeClr, + ); + sorted_child_ := array( + "": -1, + self.SchemeClr.ElementName: 0, + ); +end; + +function Gs.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Gs.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrPos.Value) then + self.XmlAttrPos.Value := _obj.XmlAttrPos.Value; + self.SchemeClr.Copy(_obj.SchemeClr); +end; + +function Gs.ReadXmlAttrPos(); +begin + return self.XmlAttrPos.Value; +end; + +function Gs.WriteXmlAttrPos(_value); +begin + self.XmlAttrPos.Value := _value; +end; diff --git a/autoclass/pptx/GsLst@PPTX.tsf b/autoclass/pptx/GsLst@PPTX.tsf new file mode 100644 index 0000000..c437305 --- /dev/null +++ b/autoclass/pptx/GsLst@PPTX.tsf @@ -0,0 +1,137 @@ +type GsLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddGs(); + function AppendGs(); + + property Gses read ReadGses; + function ReadGses(_index); + +public + // Attributes + + // Children + +end; + +function GsLst.Create();overload; +begin + self.Create(nil, "a", "gsLst"); +end; + +function GsLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function GsLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function GsLst.Init();override; +begin + +end; + +function GsLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function GsLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function GsLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "gs": obj := self.AppendGs(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function GsLst.Copy(_obj);override; +begin + +end; + +function GsLst.AddGs(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "gs" then break; + end + obj := new Gs(self, self.Prefix, "gs"); + self.InsertChild(obj, i+1); + return obj; +end; + +function GsLst.AppendGs(); +begin + obj := new Gs(self, self.Prefix, "gs"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function GsLst.ReadGses(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "gs" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/HeadingPairs@PPTX.tsf b/autoclass/pptx/HeadingPairs@PPTX.tsf new file mode 100644 index 0000000..fd29b9d --- /dev/null +++ b/autoclass/pptx/HeadingPairs@PPTX.tsf @@ -0,0 +1,98 @@ +type HeadingPairs = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + Vector; + +end; + +function HeadingPairs.Create();overload; +begin + self.Create(nil, nil, "HeadingPairs"); +end; + +function HeadingPairs.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function HeadingPairs.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function HeadingPairs.Init();override; +begin + self.Vector := new Vector(self, "vt", "vector"); +end; + +function HeadingPairs.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function HeadingPairs.InitChildren();override; +begin + child_elements_ := array( + 0: self.Vector, + ); + sorted_child_ := array( + "": -1, + self.Vector.ElementName: 0, + ); +end; + +function HeadingPairs.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function HeadingPairs.Copy(_obj);override; +begin + self.Vector.Copy(_obj.Vector); +end; diff --git a/autoclass/pptx/IdLst@PPTX.tsf b/autoclass/pptx/IdLst@PPTX.tsf new file mode 100644 index 0000000..4ba8957 --- /dev/null +++ b/autoclass/pptx/IdLst@PPTX.tsf @@ -0,0 +1,99 @@ +type IdLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property RId read ReadXmlAttrRId write WriteXmlAttrRId; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrRId(); + function WriteXmlAttrRId(_value); + +public + // Attributes + XmlAttrId; + XmlAttrRId; + + // Children + +end; + +function IdLst.Create();overload; +begin + self.Create(nil, "p", "idLst"); +end; + +function IdLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function IdLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function IdLst.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "id", nil); + self.XmlAttrRId := new OpenXmlAttribute("r", "id", nil); +end; + +function IdLst.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrRId, + ); +end; + +function IdLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function IdLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function IdLst.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrRId.Value) then + self.XmlAttrRId.Value := _obj.XmlAttrRId.Value; +end; + +function IdLst.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function IdLst.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function IdLst.ReadXmlAttrRId(); +begin + return self.XmlAttrRId.Value; +end; + +function IdLst.WriteXmlAttrRId(_value); +begin + self.XmlAttrRId.Value := _value; +end; diff --git a/autoclass/pptx/Latin@PPTX.tsf b/autoclass/pptx/Latin@PPTX.tsf new file mode 100644 index 0000000..54dca07 --- /dev/null +++ b/autoclass/pptx/Latin@PPTX.tsf @@ -0,0 +1,99 @@ +type Latin = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; + property Panose read ReadXmlAttrPanose write WriteXmlAttrPanose; + function ReadXmlAttrTypeface(); + function WriteXmlAttrTypeface(_value); + function ReadXmlAttrPanose(); + function WriteXmlAttrPanose(_value); + +public + // Attributes + XmlAttrTypeface; + XmlAttrPanose; + + // Children + +end; + +function Latin.Create();overload; +begin + self.Create(nil, "a", "latin"); +end; + +function Latin.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Latin.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Latin.Init();override; +begin + self.XmlAttrTypeface := new OpenXmlAttribute(nil, "typeface", nil); + self.XmlAttrPanose := new OpenXmlAttribute(nil, "panose", nil); +end; + +function Latin.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrTypeface, + self.XmlAttrPanose, + ); +end; + +function Latin.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Latin.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Latin.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrTypeface.Value) then + self.XmlAttrTypeface.Value := _obj.XmlAttrTypeface.Value; + if not ifnil(_obj.XmlAttrPanose.Value) then + self.XmlAttrPanose.Value := _obj.XmlAttrPanose.Value; +end; + +function Latin.ReadXmlAttrTypeface(); +begin + return self.XmlAttrTypeface.Value; +end; + +function Latin.WriteXmlAttrTypeface(_value); +begin + self.XmlAttrTypeface.Value := _value; +end; + +function Latin.ReadXmlAttrPanose(); +begin + return self.XmlAttrPanose.Value; +end; + +function Latin.WriteXmlAttrPanose(_value); +begin + self.XmlAttrPanose.Value := _value; +end; diff --git a/autoclass/pptx/Lin@PPTX.tsf b/autoclass/pptx/Lin@PPTX.tsf new file mode 100644 index 0000000..bbc6106 --- /dev/null +++ b/autoclass/pptx/Lin@PPTX.tsf @@ -0,0 +1,99 @@ +type Lin = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Ang read ReadXmlAttrAng write WriteXmlAttrAng; + property Scaled read ReadXmlAttrScaled write WriteXmlAttrScaled; + function ReadXmlAttrAng(); + function WriteXmlAttrAng(_value); + function ReadXmlAttrScaled(); + function WriteXmlAttrScaled(_value); + +public + // Attributes + XmlAttrAng; + XmlAttrScaled; + + // Children + +end; + +function Lin.Create();overload; +begin + self.Create(nil, "a", "lin"); +end; + +function Lin.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Lin.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Lin.Init();override; +begin + self.XmlAttrAng := new OpenXmlAttribute(nil, "ang", nil); + self.XmlAttrScaled := new OpenXmlAttribute(nil, "scaled", nil); +end; + +function Lin.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrAng, + self.XmlAttrScaled, + ); +end; + +function Lin.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Lin.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Lin.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrAng.Value) then + self.XmlAttrAng.Value := _obj.XmlAttrAng.Value; + if not ifnil(_obj.XmlAttrScaled.Value) then + self.XmlAttrScaled.Value := _obj.XmlAttrScaled.Value; +end; + +function Lin.ReadXmlAttrAng(); +begin + return self.XmlAttrAng.Value; +end; + +function Lin.WriteXmlAttrAng(_value); +begin + self.XmlAttrAng.Value := _value; +end; + +function Lin.ReadXmlAttrScaled(); +begin + return self.XmlAttrScaled.Value; +end; + +function Lin.WriteXmlAttrScaled(_value); +begin + self.XmlAttrScaled.Value := _value; +end; diff --git a/autoclass/pptx/Ln@PPTX.tsf b/autoclass/pptx/Ln@PPTX.tsf new file mode 100644 index 0000000..619ee16 --- /dev/null +++ b/autoclass/pptx/Ln@PPTX.tsf @@ -0,0 +1,181 @@ +type Ln = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property W read ReadXmlAttrW write WriteXmlAttrW; + property Cap read ReadXmlAttrCap write WriteXmlAttrCap; + property Cmpd read ReadXmlAttrCmpd write WriteXmlAttrCmpd; + property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; + function ReadXmlAttrW(); + function WriteXmlAttrW(_value); + function ReadXmlAttrCap(); + function WriteXmlAttrCap(_value); + function ReadXmlAttrCmpd(); + function WriteXmlAttrCmpd(_value); + function ReadXmlAttrAlgn(); + function WriteXmlAttrAlgn(_value); + +public + // Attributes + XmlAttrW; + XmlAttrCap; + XmlAttrCmpd; + XmlAttrAlgn; + + // Children + SolidFill; + PrstDash; + Miter; + +end; + +function Ln.Create();overload; +begin + self.Create(nil, "a", "ln"); +end; + +function Ln.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Ln.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ln.Init();override; +begin + self.XmlAttrW := new OpenXmlAttribute(nil, "w", nil); + self.XmlAttrCap := new OpenXmlAttribute(nil, "cap", nil); + self.XmlAttrCmpd := new OpenXmlAttribute(nil, "cmpd", nil); + self.XmlAttrAlgn := new OpenXmlAttribute(nil, "algn", nil); + self.SolidFill := new SolidFill(self, self.Prefix, "solidFill"); + self.PrstDash := new PureVal(self, self.Prefix, "prstDash"); + self.Miter := new Miter(self, self.Prefix, "miter"); +end; + +function Ln.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrW, + self.XmlAttrCap, + self.XmlAttrCmpd, + self.XmlAttrAlgn, + ); +end; + +function Ln.InitChildren();override; +begin + child_elements_ := array( + 0: self.SolidFill, + 1: self.PrstDash, + 2: self.Miter, + ); + sorted_child_ := array( + "": -1, + self.SolidFill.ElementName: 0, + self.PrstDash.ElementName: 1, + self.Miter.ElementName: 2, + ); +end; + +function Ln.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Ln.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrW.Value) then + self.XmlAttrW.Value := _obj.XmlAttrW.Value; + if not ifnil(_obj.XmlAttrCap.Value) then + self.XmlAttrCap.Value := _obj.XmlAttrCap.Value; + if not ifnil(_obj.XmlAttrCmpd.Value) then + self.XmlAttrCmpd.Value := _obj.XmlAttrCmpd.Value; + if not ifnil(_obj.XmlAttrAlgn.Value) then + self.XmlAttrAlgn.Value := _obj.XmlAttrAlgn.Value; + self.SolidFill.Copy(_obj.SolidFill); + self.PrstDash.Copy(_obj.PrstDash); + self.Miter.Copy(_obj.Miter); +end; + +function Ln.ReadXmlAttrW(); +begin + return self.XmlAttrW.Value; +end; + +function Ln.WriteXmlAttrW(_value); +begin + self.XmlAttrW.Value := _value; +end; + +function Ln.ReadXmlAttrCap(); +begin + return self.XmlAttrCap.Value; +end; + +function Ln.WriteXmlAttrCap(_value); +begin + self.XmlAttrCap.Value := _value; +end; + +function Ln.ReadXmlAttrCmpd(); +begin + return self.XmlAttrCmpd.Value; +end; + +function Ln.WriteXmlAttrCmpd(_value); +begin + self.XmlAttrCmpd.Value := _value; +end; + +function Ln.ReadXmlAttrAlgn(); +begin + return self.XmlAttrAlgn.Value; +end; + +function Ln.WriteXmlAttrAlgn(_value); +begin + self.XmlAttrAlgn.Value := _value; +end; diff --git a/autoclass/pptx/LnSpc@PPTX.tsf b/autoclass/pptx/LnSpc@PPTX.tsf new file mode 100644 index 0000000..be8dac3 --- /dev/null +++ b/autoclass/pptx/LnSpc@PPTX.tsf @@ -0,0 +1,98 @@ +type LnSpc = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + SpcPct; + +end; + +function LnSpc.Create();overload; +begin + self.Create(nil, "a", "lnSpc"); +end; + +function LnSpc.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function LnSpc.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LnSpc.Init();override; +begin + self.SpcPct := new SpcPct(self, self.Prefix, "spcPct"); +end; + +function LnSpc.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function LnSpc.InitChildren();override; +begin + child_elements_ := array( + 0: self.SpcPct, + ); + sorted_child_ := array( + "": -1, + self.SpcPct.ElementName: 0, + ); +end; + +function LnSpc.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function LnSpc.Copy(_obj);override; +begin + self.SpcPct.Copy(_obj.SpcPct); +end; diff --git a/autoclass/pptx/LnStyleLst@PPTX.tsf b/autoclass/pptx/LnStyleLst@PPTX.tsf new file mode 100644 index 0000000..92d12de --- /dev/null +++ b/autoclass/pptx/LnStyleLst@PPTX.tsf @@ -0,0 +1,137 @@ +type LnStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddLn(); + function AppendLn(); + + property Lns read ReadLns; + function ReadLns(_index); + +public + // Attributes + + // Children + +end; + +function LnStyleLst.Create();overload; +begin + self.Create(nil, "a", "lnStyleLst"); +end; + +function LnStyleLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function LnStyleLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LnStyleLst.Init();override; +begin + +end; + +function LnStyleLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function LnStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function LnStyleLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "ln": obj := self.AppendLn(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function LnStyleLst.Copy(_obj);override; +begin + +end; + +function LnStyleLst.AddLn(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "ln" then break; + end + obj := new Ln(self, self.Prefix, "ln"); + self.InsertChild(obj, i+1); + return obj; +end; + +function LnStyleLst.AppendLn(); +begin + obj := new Ln(self, self.Prefix, "ln"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function LnStyleLst.ReadLns(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "ln" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/LstStyle@PPTX.tsf b/autoclass/pptx/LstStyle@PPTX.tsf new file mode 100644 index 0000000..ef06fbf --- /dev/null +++ b/autoclass/pptx/LstStyle@PPTX.tsf @@ -0,0 +1,143 @@ +type LstStyle = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + DefPPr; + Lvl1PPr; + Lvl2PPr; + Lvl3PPr; + Lvl4PPr; + Lvl5PPr; + Lvl6PPr; + Lvl7PPr; + Lvl8PPr; + Lvl9PPr; + +end; + +function LstStyle.Create();overload; +begin + self.Create(nil, "a", "lstStyle"); +end; + +function LstStyle.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function LstStyle.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LstStyle.Init();override; +begin + self.DefPPr := new DefPPr(self, self.Prefix, "defPPr"); + self.Lvl1PPr := new LvlPPr(self, self.Prefix, "lvl1pPr"); + self.Lvl2PPr := new LvlPPr(self, self.Prefix, "lvl2pPr"); + self.Lvl3PPr := new LvlPPr(self, self.Prefix, "lvl3pPr"); + self.Lvl4PPr := new LvlPPr(self, self.Prefix, "lvl4pPr"); + self.Lvl5PPr := new LvlPPr(self, self.Prefix, "lvl5pPr"); + self.Lvl6PPr := new LvlPPr(self, self.Prefix, "lvl6pPr"); + self.Lvl7PPr := new LvlPPr(self, self.Prefix, "lvl7pPr"); + self.Lvl8PPr := new LvlPPr(self, self.Prefix, "lvl8pPr"); + self.Lvl9PPr := new LvlPPr(self, self.Prefix, "lvl9pPr"); +end; + +function LstStyle.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function LstStyle.InitChildren();override; +begin + child_elements_ := array( + 0: self.DefPPr, + 1: self.Lvl1PPr, + 2: self.Lvl2PPr, + 3: self.Lvl3PPr, + 4: self.Lvl4PPr, + 5: self.Lvl5PPr, + 6: self.Lvl6PPr, + 7: self.Lvl7PPr, + 8: self.Lvl8PPr, + 9: self.Lvl9PPr, + ); + sorted_child_ := array( + "": -1, + self.DefPPr.ElementName: 0, + self.Lvl1PPr.ElementName: 1, + self.Lvl2PPr.ElementName: 2, + self.Lvl3PPr.ElementName: 3, + self.Lvl4PPr.ElementName: 4, + self.Lvl5PPr.ElementName: 5, + self.Lvl6PPr.ElementName: 6, + self.Lvl7PPr.ElementName: 7, + self.Lvl8PPr.ElementName: 8, + self.Lvl9PPr.ElementName: 9, + ); +end; + +function LstStyle.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function LstStyle.Copy(_obj);override; +begin + self.DefPPr.Copy(_obj.DefPPr); + self.Lvl1PPr.Copy(_obj.Lvl1PPr); + self.Lvl2PPr.Copy(_obj.Lvl2PPr); + self.Lvl3PPr.Copy(_obj.Lvl3PPr); + self.Lvl4PPr.Copy(_obj.Lvl4PPr); + self.Lvl5PPr.Copy(_obj.Lvl5PPr); + self.Lvl6PPr.Copy(_obj.Lvl6PPr); + self.Lvl7PPr.Copy(_obj.Lvl7PPr); + self.Lvl8PPr.Copy(_obj.Lvl8PPr); + self.Lvl9PPr.Copy(_obj.Lvl9PPr); +end; diff --git a/autoclass/pptx/LvlPPr@PPTX.tsf b/autoclass/pptx/LvlPPr@PPTX.tsf new file mode 100644 index 0000000..638cc76 --- /dev/null +++ b/autoclass/pptx/LvlPPr@PPTX.tsf @@ -0,0 +1,321 @@ +type LvlPPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property MarL read ReadXmlAttrMarL write WriteXmlAttrMarL; + property Indent read ReadXmlAttrIndent write WriteXmlAttrIndent; + property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; + property DefTabSz read ReadXmlAttrDefTabSz write WriteXmlAttrDefTabSz; + property Rtl read ReadXmlAttrRtl write WriteXmlAttrRtl; + property EaLnBr read ReadXmlAttrEaLnBr write WriteXmlAttrEaLnBr; + property LatinLnBrk read ReadXmlAttrLatinLnBrk write WriteXmlAttrLatinLnBrk; + property HangingPunct read ReadXmlAttrHangingPunct write WriteXmlAttrHangingPunct; + function ReadXmlAttrMarL(); + function WriteXmlAttrMarL(_value); + function ReadXmlAttrIndent(); + function WriteXmlAttrIndent(_value); + function ReadXmlAttrAlgn(); + function WriteXmlAttrAlgn(_value); + function ReadXmlAttrDefTabSz(); + function WriteXmlAttrDefTabSz(_value); + function ReadXmlAttrRtl(); + function WriteXmlAttrRtl(_value); + function ReadXmlAttrEaLnBr(); + function WriteXmlAttrEaLnBr(_value); + function ReadXmlAttrLatinLnBrk(); + function WriteXmlAttrLatinLnBrk(_value); + function ReadXmlAttrHangingPunct(); + function WriteXmlAttrHangingPunct(_value); + + property SpcBef read ReadXmlChildSpcBef write WriteXmlChildSpcBef; + property BuNone read ReadXmlChildBuNone write WriteXmlChildBuNone; + property BuFont read ReadXmlChildBuFont write WriteXmlChildBuFont; + property BuChar read ReadXmlChildBuChar write WriteXmlChildBuChar; + function ReadXmlChildSpcBef(); + function WriteXmlChildSpcBef(_value); + function ReadXmlChildBuNone(); + function WriteXmlChildBuNone(_value); + function ReadXmlChildBuFont(); + function WriteXmlChildBuFont(_value); + function ReadXmlChildBuChar(); + function WriteXmlChildBuChar(_value); + +public + // Attributes + XmlAttrMarL; + XmlAttrIndent; + XmlAttrAlgn; + XmlAttrDefTabSz; + XmlAttrRtl; + XmlAttrEaLnBr; + XmlAttrLatinLnBrk; + XmlAttrHangingPunct; + + // Children + LnSpc; + XmlChildSpcBef; + XmlChildBuNone; + XmlChildBuFont; + XmlChildBuChar; + DefRPr; + +end; + +function LvlPPr.Create();overload; +begin + self.Create(nil, "a", "lvldpPr"); +end; + +function LvlPPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function LvlPPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function LvlPPr.Init();override; +begin + self.XmlAttrMarL := new OpenXmlAttribute(nil, "marl", nil); + self.XmlAttrIndent := new OpenXmlAttribute(nil, "indent", nil); + self.XmlAttrAlgn := new OpenXmlAttribute(nil, "algn", nil); + self.XmlAttrDefTabSz := new OpenXmlAttribute(nil, "defTabSz", nil); + self.XmlAttrRtl := new OpenXmlAttribute(nil, "rtl", nil); + self.XmlAttrEaLnBr := new OpenXmlAttribute(nil, "eaLnBrk", nil); + self.XmlAttrLatinLnBrk := new OpenXmlAttribute(nil, "latinLnBrk", nil); + self.XmlAttrHangingPunct := new OpenXmlAttribute(nil, "hangingPunct", nil); + self.LnSpc := new LnSpc(self, self.Prefix, "lnSpc"); + self.XmlChildSpcBef := new SpcBef(self, self.Prefix, "spcBef"); + self.XmlChildBuNone := new OpenXmlEmpty(self, self.Prefix, "buNone"); + self.XmlChildBuFont := new BuFont(self, self.Prefix, "buFont"); + self.XmlChildBuChar := new BuChar(self, self.Prefix, "buChar"); + self.DefRPr := new DefRPr(self, self.Prefix, "defRPr"); +end; + +function LvlPPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrMarL, + self.XmlAttrIndent, + self.XmlAttrAlgn, + self.XmlAttrDefTabSz, + self.XmlAttrRtl, + self.XmlAttrEaLnBr, + self.XmlAttrLatinLnBrk, + self.XmlAttrHangingPunct, + ); +end; + +function LvlPPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.LnSpc, + 1: self.XmlChildSpcBef, + 2: self.XmlChildBuNone, + 3: self.XmlChildBuFont, + 4: self.XmlChildBuChar, + 5: self.DefRPr, + ); + sorted_child_ := array( + "": -1, + self.LnSpc.ElementName: 0, + self.XmlChildSpcBef.ElementName: 1, + self.XmlChildBuNone.ElementName: 2, + self.XmlChildBuFont.ElementName: 3, + self.XmlChildBuChar.ElementName: 4, + self.DefRPr.ElementName: 5, + ); +end; + +function LvlPPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function LvlPPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrMarL.Value) then + self.XmlAttrMarL.Value := _obj.XmlAttrMarL.Value; + if not ifnil(_obj.XmlAttrIndent.Value) then + self.XmlAttrIndent.Value := _obj.XmlAttrIndent.Value; + if not ifnil(_obj.XmlAttrAlgn.Value) then + self.XmlAttrAlgn.Value := _obj.XmlAttrAlgn.Value; + if not ifnil(_obj.XmlAttrDefTabSz.Value) then + self.XmlAttrDefTabSz.Value := _obj.XmlAttrDefTabSz.Value; + if not ifnil(_obj.XmlAttrRtl.Value) then + self.XmlAttrRtl.Value := _obj.XmlAttrRtl.Value; + if not ifnil(_obj.XmlAttrEaLnBr.Value) then + self.XmlAttrEaLnBr.Value := _obj.XmlAttrEaLnBr.Value; + if not ifnil(_obj.XmlAttrLatinLnBrk.Value) then + self.XmlAttrLatinLnBrk.Value := _obj.XmlAttrLatinLnBrk.Value; + if not ifnil(_obj.XmlAttrHangingPunct.Value) then + self.XmlAttrHangingPunct.Value := _obj.XmlAttrHangingPunct.Value; + self.LnSpc.Copy(_obj.LnSpc); + self.XmlChildSpcBef.Copy(_obj.XmlChildSpcBef); + self.XmlChildBuNone.Copy(_obj.XmlChildBuNone); + self.XmlChildBuFont.Copy(_obj.XmlChildBuFont); + self.XmlChildBuChar.Copy(_obj.XmlChildBuChar); + self.DefRPr.Copy(_obj.DefRPr); +end; + +function LvlPPr.ReadXmlAttrMarL(); +begin + return self.XmlAttrMarL.Value; +end; + +function LvlPPr.WriteXmlAttrMarL(_value); +begin + self.XmlAttrMarL.Value := _value; +end; + +function LvlPPr.ReadXmlAttrIndent(); +begin + return self.XmlAttrIndent.Value; +end; + +function LvlPPr.WriteXmlAttrIndent(_value); +begin + self.XmlAttrIndent.Value := _value; +end; + +function LvlPPr.ReadXmlAttrAlgn(); +begin + return self.XmlAttrAlgn.Value; +end; + +function LvlPPr.WriteXmlAttrAlgn(_value); +begin + self.XmlAttrAlgn.Value := _value; +end; + +function LvlPPr.ReadXmlAttrDefTabSz(); +begin + return self.XmlAttrDefTabSz.Value; +end; + +function LvlPPr.WriteXmlAttrDefTabSz(_value); +begin + self.XmlAttrDefTabSz.Value := _value; +end; + +function LvlPPr.ReadXmlAttrRtl(); +begin + return self.XmlAttrRtl.Value; +end; + +function LvlPPr.WriteXmlAttrRtl(_value); +begin + self.XmlAttrRtl.Value := _value; +end; + +function LvlPPr.ReadXmlAttrEaLnBr(); +begin + return self.XmlAttrEaLnBr.Value; +end; + +function LvlPPr.WriteXmlAttrEaLnBr(_value); +begin + self.XmlAttrEaLnBr.Value := _value; +end; + +function LvlPPr.ReadXmlAttrLatinLnBrk(); +begin + return self.XmlAttrLatinLnBrk.Value; +end; + +function LvlPPr.WriteXmlAttrLatinLnBrk(_value); +begin + self.XmlAttrLatinLnBrk.Value := _value; +end; + +function LvlPPr.ReadXmlAttrHangingPunct(); +begin + return self.XmlAttrHangingPunct.Value; +end; + +function LvlPPr.WriteXmlAttrHangingPunct(_value); +begin + self.XmlAttrHangingPunct.Value := _value; +end; + +function LvlPPr.ReadXmlChildSpcBef(); +begin + return ifnil(self.XmlChildSpcBef.Value) ? false : true; +end; + +function LvlPPr.WriteXmlChildSpcBef(_value); +begin + self.XmlChildSpcBef.Value := _value; +end; + +function LvlPPr.ReadXmlChildBuNone(); +begin + return ifnil(self.XmlChildBuNone.Value) ? false : true; +end; + +function LvlPPr.WriteXmlChildBuNone(_value); +begin + self.XmlChildBuNone.Value := _value; +end; + +function LvlPPr.ReadXmlChildBuFont(); +begin + return ifnil(self.XmlChildBuFont.Value) ? false : true; +end; + +function LvlPPr.WriteXmlChildBuFont(_value); +begin + self.XmlChildBuFont.Value := _value; +end; + +function LvlPPr.ReadXmlChildBuChar(); +begin + return ifnil(self.XmlChildBuChar.Value) ? false : true; +end; + +function LvlPPr.WriteXmlChildBuChar(_value); +begin + self.XmlChildBuChar.Value := _value; +end; diff --git a/autoclass/pptx/MFont@PPTX.tsf b/autoclass/pptx/MFont@PPTX.tsf new file mode 100644 index 0000000..f150fda --- /dev/null +++ b/autoclass/pptx/MFont@PPTX.tsf @@ -0,0 +1,150 @@ +type MFont = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddFont(); + function AppendFont(); + + property Fonts read ReadFonts; + function ReadFonts(_index); + +public + // Attributes + + // Children + Latin; + Ea; + Cs; + +end; + +function MFont.Create();overload; +begin + self.Create(nil, "a", ""); +end; + +function MFont.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function MFont.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function MFont.Init();override; +begin + self.Latin := new Latin(self, self.Prefix, "latin"); + self.Ea := new Latin(self, self.Prefix, "ea"); + self.Cs := new Latin(self, self.Prefix, "cs"); +end; + +function MFont.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function MFont.InitChildren();override; +begin + child_elements_ := array( + 0: self.Latin, + 1: self.Ea, + 2: self.Cs, + ); + sorted_child_ := array( + "": -1, + self.Latin.ElementName: 0, + self.Ea.ElementName: 1, + self.Cs.ElementName: 2, + ); +end; + +function MFont.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "font": obj := self.AppendFont(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function MFont.Copy(_obj);override; +begin + self.Latin.Copy(_obj.Latin); + self.Ea.Copy(_obj.Ea); + self.Cs.Copy(_obj.Cs); +end; + +function MFont.AddFont(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "font" then break; + end + obj := new MFontFont(self, self.Prefix, "font"); + self.InsertChild(obj, i+1); + return obj; +end; + +function MFont.AppendFont(); +begin + obj := new MFontFont(self, self.Prefix, "font"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function MFont.ReadFonts(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "font" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/MFontFont@PPTX.tsf b/autoclass/pptx/MFontFont@PPTX.tsf new file mode 100644 index 0000000..1cad144 --- /dev/null +++ b/autoclass/pptx/MFontFont@PPTX.tsf @@ -0,0 +1,99 @@ +type MFontFont = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Script read ReadXmlAttrScript write WriteXmlAttrScript; + property Typeface read ReadXmlAttrTypeface write WriteXmlAttrTypeface; + function ReadXmlAttrScript(); + function WriteXmlAttrScript(_value); + function ReadXmlAttrTypeface(); + function WriteXmlAttrTypeface(_value); + +public + // Attributes + XmlAttrScript; + XmlAttrTypeface; + + // Children + +end; + +function MFontFont.Create();overload; +begin + self.Create(nil, "a", "defRPr"); +end; + +function MFontFont.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function MFontFont.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function MFontFont.Init();override; +begin + self.XmlAttrScript := new OpenXmlAttribute(nil, "script", nil); + self.XmlAttrTypeface := new OpenXmlAttribute(nil, "typeface", nil); +end; + +function MFontFont.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrScript, + self.XmlAttrTypeface, + ); +end; + +function MFontFont.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function MFontFont.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function MFontFont.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrScript.Value) then + self.XmlAttrScript.Value := _obj.XmlAttrScript.Value; + if not ifnil(_obj.XmlAttrTypeface.Value) then + self.XmlAttrTypeface.Value := _obj.XmlAttrTypeface.Value; +end; + +function MFontFont.ReadXmlAttrScript(); +begin + return self.XmlAttrScript.Value; +end; + +function MFontFont.WriteXmlAttrScript(_value); +begin + self.XmlAttrScript.Value := _value; +end; + +function MFontFont.ReadXmlAttrTypeface(); +begin + return self.XmlAttrTypeface.Value; +end; + +function MFontFont.WriteXmlAttrTypeface(_value); +begin + self.XmlAttrTypeface.Value := _value; +end; diff --git a/autoclass/pptx/Miter@PPTX.tsf b/autoclass/pptx/Miter@PPTX.tsf new file mode 100644 index 0000000..02e63eb --- /dev/null +++ b/autoclass/pptx/Miter@PPTX.tsf @@ -0,0 +1,81 @@ +type Miter = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Lim read ReadXmlAttrLim write WriteXmlAttrLim; + function ReadXmlAttrLim(); + function WriteXmlAttrLim(_value); + +public + // Attributes + XmlAttrLim; + + // Children + +end; + +function Miter.Create();overload; +begin + self.Create(nil, "a", "miter"); +end; + +function Miter.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Miter.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Miter.Init();override; +begin + self.XmlAttrLim := new OpenXmlAttribute(nil, "lim", nil); +end; + +function Miter.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrLim, + ); +end; + +function Miter.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Miter.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Miter.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrLim.Value) then + self.XmlAttrLim.Value := _obj.XmlAttrLim.Value; +end; + +function Miter.ReadXmlAttrLim(); +begin + return self.XmlAttrLim.Value; +end; + +function Miter.WriteXmlAttrLim(_value); +begin + self.XmlAttrLim.Value := _value; +end; diff --git a/autoclass/pptx/Modified@PPTX.tsf b/autoclass/pptx/Modified@PPTX.tsf new file mode 100644 index 0000000..50b1d1f --- /dev/null +++ b/autoclass/pptx/Modified@PPTX.tsf @@ -0,0 +1,71 @@ +type Modified = class(OpenXmlPcdata) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XsiType read ReadXmlAttrXsiType write WriteXmlAttrXsiType; + function ReadXmlAttrXsiType(); + function WriteXmlAttrXsiType(_value); + +public + // Attributes + XmlAttrXsiType; + + // Children + +end; + +function Modified.Create();overload; +begin + self.Create(nil, "dcterms", "modified"); +end; + +function Modified.Create(_node);overload; +begin + class(OpenXmlPcdata).Create(_node); +end; + +function Modified.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlPcdata).Create(_parent, _prefix, _local_name); +end; + +function Modified.Init();override; +begin + self.XmlAttrXsiType := new OpenXmlAttribute("xsi", "type", nil); +end; + +function Modified.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXsiType, + ); +end; + +function Modified.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Modified.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXsiType.Value) then + self.XmlAttrXsiType.Value := _obj.XmlAttrXsiType.Value; +end; + +function Modified.ReadXmlAttrXsiType(); +begin + return self.XmlAttrXsiType.Value; +end; + +function Modified.WriteXmlAttrXsiType(_value); +begin + self.XmlAttrXsiType.Value := _value; +end; diff --git a/autoclass/pptx/ND@PPTX.tsf b/autoclass/pptx/ND@PPTX.tsf new file mode 100644 index 0000000..4aa985b --- /dev/null +++ b/autoclass/pptx/ND@PPTX.tsf @@ -0,0 +1,99 @@ +type ND = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property N read ReadXmlAttrN write WriteXmlAttrN; + property D read ReadXmlAttrD write WriteXmlAttrD; + function ReadXmlAttrN(); + function WriteXmlAttrN(_value); + function ReadXmlAttrD(); + function WriteXmlAttrD(_value); + +public + // Attributes + XmlAttrN; + XmlAttrD; + + // Children + +end; + +function ND.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function ND.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ND.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ND.Init();override; +begin + self.XmlAttrN := new OpenXmlAttribute(nil, "n", nil); + self.XmlAttrD := new OpenXmlAttribute(nil, "d", nil); +end; + +function ND.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrN, + self.XmlAttrD, + ); +end; + +function ND.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function ND.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function ND.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrN.Value) then + self.XmlAttrN.Value := _obj.XmlAttrN.Value; + if not ifnil(_obj.XmlAttrD.Value) then + self.XmlAttrD.Value := _obj.XmlAttrD.Value; +end; + +function ND.ReadXmlAttrN(); +begin + return self.XmlAttrN.Value; +end; + +function ND.WriteXmlAttrN(_value); +begin + self.XmlAttrN.Value := _value; +end; + +function ND.ReadXmlAttrD(); +begin + return self.XmlAttrD.Value; +end; + +function ND.WriteXmlAttrD(_value); +begin + self.XmlAttrD.Value := _value; +end; diff --git a/autoclass/pptx/NormalViewPr@PPTX.tsf b/autoclass/pptx/NormalViewPr@PPTX.tsf new file mode 100644 index 0000000..0a1510a --- /dev/null +++ b/autoclass/pptx/NormalViewPr@PPTX.tsf @@ -0,0 +1,122 @@ +type NormalViewPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property HorzBarState read ReadXmlAttrHorzBarState write WriteXmlAttrHorzBarState; + function ReadXmlAttrHorzBarState(); + function WriteXmlAttrHorzBarState(_value); + +public + // Attributes + XmlAttrHorzBarState; + + // Children + RestoredLeft; + RestoredTop; + +end; + +function NormalViewPr.Create();overload; +begin + self.Create(nil, "p", "normalViewPr"); +end; + +function NormalViewPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function NormalViewPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NormalViewPr.Init();override; +begin + self.XmlAttrHorzBarState := new OpenXmlAttribute(nil, "horzBarState", nil); + self.RestoredLeft := new Restored(self, self.Prefix, "restoredLeft"); + self.RestoredTop := new Restored(self, self.Prefix, "restoredTop"); +end; + +function NormalViewPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrHorzBarState, + ); +end; + +function NormalViewPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.RestoredLeft, + 1: self.RestoredTop, + ); + sorted_child_ := array( + "": -1, + self.RestoredLeft.ElementName: 0, + self.RestoredTop.ElementName: 1, + ); +end; + +function NormalViewPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NormalViewPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrHorzBarState.Value) then + self.XmlAttrHorzBarState.Value := _obj.XmlAttrHorzBarState.Value; + self.RestoredLeft.Copy(_obj.RestoredLeft); + self.RestoredTop.Copy(_obj.RestoredTop); +end; + +function NormalViewPr.ReadXmlAttrHorzBarState(); +begin + return self.XmlAttrHorzBarState.Value; +end; + +function NormalViewPr.WriteXmlAttrHorzBarState(_value); +begin + self.XmlAttrHorzBarState.Value := _value; +end; diff --git a/autoclass/pptx/NotesTextViewPr@PPTX.tsf b/autoclass/pptx/NotesTextViewPr@PPTX.tsf new file mode 100644 index 0000000..d9f6330 --- /dev/null +++ b/autoclass/pptx/NotesTextViewPr@PPTX.tsf @@ -0,0 +1,98 @@ +type NotesTextViewPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + CViewPr; + +end; + +function NotesTextViewPr.Create();overload; +begin + self.Create(nil, "p", "notesTextViewPr"); +end; + +function NotesTextViewPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function NotesTextViewPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NotesTextViewPr.Init();override; +begin + self.CViewPr := new CViewPr(self, self.Prefix, "cViewPr"); +end; + +function NotesTextViewPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NotesTextViewPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.CViewPr, + ); + sorted_child_ := array( + "": -1, + self.CViewPr.ElementName: 0, + ); +end; + +function NotesTextViewPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NotesTextViewPr.Copy(_obj);override; +begin + self.CViewPr.Copy(_obj.CViewPr); +end; diff --git a/autoclass/pptx/NvGrpSpPr@PPTX.tsf b/autoclass/pptx/NvGrpSpPr@PPTX.tsf new file mode 100644 index 0000000..48b924c --- /dev/null +++ b/autoclass/pptx/NvGrpSpPr@PPTX.tsf @@ -0,0 +1,135 @@ +type NvGrpSpPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property CNvGrpSpPr read ReadXmlChildCNvGrpSpPr write WriteXmlChildCNvGrpSpPr; + property NvPr read ReadXmlChildNvPr write WriteXmlChildNvPr; + function ReadXmlChildCNvGrpSpPr(); + function WriteXmlChildCNvGrpSpPr(_value); + function ReadXmlChildNvPr(); + function WriteXmlChildNvPr(_value); + +public + // Attributes + + // Children + CNvPr; + XmlChildCNvGrpSpPr; + XmlChildNvPr; + +end; + +function NvGrpSpPr.Create();overload; +begin + self.Create(nil, "p", "nvGrpSpPr"); +end; + +function NvGrpSpPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function NvGrpSpPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NvGrpSpPr.Init();override; +begin + self.CNvPr := new CNvPr(self, self.Prefix, "cNvPr"); + self.XmlChildCNvGrpSpPr := new OpenXmlEmpty(self, self.Prefix, "cNvGrpSpPr"); + self.XmlChildNvPr := new OpenXmlEmpty(self, self.Prefix, "nvPr"); +end; + +function NvGrpSpPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NvGrpSpPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.CNvPr, + 1: self.XmlChildCNvGrpSpPr, + 2: self.XmlChildNvPr, + ); + sorted_child_ := array( + "": -1, + self.CNvPr.ElementName: 0, + self.XmlChildCNvGrpSpPr.ElementName: 1, + self.XmlChildNvPr.ElementName: 2, + ); +end; + +function NvGrpSpPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NvGrpSpPr.Copy(_obj);override; +begin + self.CNvPr.Copy(_obj.CNvPr); + self.XmlChildCNvGrpSpPr.Copy(_obj.XmlChildCNvGrpSpPr); + self.XmlChildNvPr.Copy(_obj.XmlChildNvPr); +end; + +function NvGrpSpPr.ReadXmlChildCNvGrpSpPr(); +begin + return ifnil(self.XmlChildCNvGrpSpPr.Value) ? false : true; +end; + +function NvGrpSpPr.WriteXmlChildCNvGrpSpPr(_value); +begin + self.XmlChildCNvGrpSpPr.Value := _value; +end; + +function NvGrpSpPr.ReadXmlChildNvPr(); +begin + return ifnil(self.XmlChildNvPr.Value) ? false : true; +end; + +function NvGrpSpPr.WriteXmlChildNvPr(_value); +begin + self.XmlChildNvPr.Value := _value; +end; diff --git a/autoclass/pptx/NvPr@PPTX.tsf b/autoclass/pptx/NvPr@PPTX.tsf new file mode 100644 index 0000000..0e2d22e --- /dev/null +++ b/autoclass/pptx/NvPr@PPTX.tsf @@ -0,0 +1,98 @@ +type NvPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + Ph; + +end; + +function NvPr.Create();overload; +begin + self.Create(nil, "p", "nvPr"); +end; + +function NvPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function NvPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NvPr.Init();override; +begin + self.Ph := new Ph(self, self.Prefix, "ph"); +end; + +function NvPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NvPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Ph, + ); + sorted_child_ := array( + "": -1, + self.Ph.ElementName: 0, + ); +end; + +function NvPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NvPr.Copy(_obj);override; +begin + self.Ph.Copy(_obj.Ph); +end; diff --git a/autoclass/pptx/NvSpPr@PPTX.tsf b/autoclass/pptx/NvSpPr@PPTX.tsf new file mode 100644 index 0000000..b177294 --- /dev/null +++ b/autoclass/pptx/NvSpPr@PPTX.tsf @@ -0,0 +1,108 @@ +type NvSpPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + CNvPr; + CNvSpPr; + NvPr; + +end; + +function NvSpPr.Create();overload; +begin + self.Create(nil, "p", "nvSpPr"); +end; + +function NvSpPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function NvSpPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function NvSpPr.Init();override; +begin + self.CNvPr := new CNvPr(self, self.Prefix, "cNvPr"); + self.CNvSpPr := new CNvSpPr(self, self.Prefix, "cNvSpPr"); + self.NvPr := new NvPr(self, self.Prefix, "nvPr"); +end; + +function NvSpPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function NvSpPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.CNvPr, + 1: self.CNvSpPr, + 2: self.NvPr, + ); + sorted_child_ := array( + "": -1, + self.CNvPr.ElementName: 0, + self.CNvSpPr.ElementName: 1, + self.NvPr.ElementName: 2, + ); +end; + +function NvSpPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function NvSpPr.Copy(_obj);override; +begin + self.CNvPr.Copy(_obj.CNvPr); + self.CNvSpPr.Copy(_obj.CNvSpPr); + self.NvPr.Copy(_obj.NvPr); +end; diff --git a/autoclass/pptx/OuterShdw@PPTX.tsf b/autoclass/pptx/OuterShdw@PPTX.tsf new file mode 100644 index 0000000..8ef30e5 --- /dev/null +++ b/autoclass/pptx/OuterShdw@PPTX.tsf @@ -0,0 +1,189 @@ +type OuterShdw = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property BlurRad read ReadXmlAttrBlurRad write WriteXmlAttrBlurRad; + property Dist read ReadXmlAttrDist write WriteXmlAttrDist; + property Dir read ReadXmlAttrDir write WriteXmlAttrDir; + property Algn read ReadXmlAttrAlgn write WriteXmlAttrAlgn; + property RotWithShape read ReadXmlAttrRotWithShape write WriteXmlAttrRotWithShape; + function ReadXmlAttrBlurRad(); + function WriteXmlAttrBlurRad(_value); + function ReadXmlAttrDist(); + function WriteXmlAttrDist(_value); + function ReadXmlAttrDir(); + function WriteXmlAttrDir(_value); + function ReadXmlAttrAlgn(); + function WriteXmlAttrAlgn(_value); + function ReadXmlAttrRotWithShape(); + function WriteXmlAttrRotWithShape(_value); + +public + // Attributes + XmlAttrBlurRad; + XmlAttrDist; + XmlAttrDir; + XmlAttrAlgn; + XmlAttrRotWithShape; + + // Children + SrgbClr; + +end; + +function OuterShdw.Create();overload; +begin + self.Create(nil, "a", "outerShdw"); +end; + +function OuterShdw.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function OuterShdw.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function OuterShdw.Init();override; +begin + self.XmlAttrBlurRad := new OpenXmlAttribute(nil, "blurRad", nil); + self.XmlAttrDist := new OpenXmlAttribute(nil, "dist", nil); + self.XmlAttrDir := new OpenXmlAttribute(nil, "dir", nil); + self.XmlAttrAlgn := new OpenXmlAttribute(nil, "algn", nil); + self.XmlAttrRotWithShape := new OpenXmlAttribute(nil, "rotWithShape", nil); + self.SrgbClr := new SrgbClr(self, self.Prefix, "srgbClr"); +end; + +function OuterShdw.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrBlurRad, + self.XmlAttrDist, + self.XmlAttrDir, + self.XmlAttrAlgn, + self.XmlAttrRotWithShape, + ); +end; + +function OuterShdw.InitChildren();override; +begin + child_elements_ := array( + 0: self.SrgbClr, + ); + sorted_child_ := array( + "": -1, + self.SrgbClr.ElementName: 0, + ); +end; + +function OuterShdw.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function OuterShdw.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrBlurRad.Value) then + self.XmlAttrBlurRad.Value := _obj.XmlAttrBlurRad.Value; + if not ifnil(_obj.XmlAttrDist.Value) then + self.XmlAttrDist.Value := _obj.XmlAttrDist.Value; + if not ifnil(_obj.XmlAttrDir.Value) then + self.XmlAttrDir.Value := _obj.XmlAttrDir.Value; + if not ifnil(_obj.XmlAttrAlgn.Value) then + self.XmlAttrAlgn.Value := _obj.XmlAttrAlgn.Value; + if not ifnil(_obj.XmlAttrRotWithShape.Value) then + self.XmlAttrRotWithShape.Value := _obj.XmlAttrRotWithShape.Value; + self.SrgbClr.Copy(_obj.SrgbClr); +end; + +function OuterShdw.ReadXmlAttrBlurRad(); +begin + return self.XmlAttrBlurRad.Value; +end; + +function OuterShdw.WriteXmlAttrBlurRad(_value); +begin + self.XmlAttrBlurRad.Value := _value; +end; + +function OuterShdw.ReadXmlAttrDist(); +begin + return self.XmlAttrDist.Value; +end; + +function OuterShdw.WriteXmlAttrDist(_value); +begin + self.XmlAttrDist.Value := _value; +end; + +function OuterShdw.ReadXmlAttrDir(); +begin + return self.XmlAttrDir.Value; +end; + +function OuterShdw.WriteXmlAttrDir(_value); +begin + self.XmlAttrDir.Value := _value; +end; + +function OuterShdw.ReadXmlAttrAlgn(); +begin + return self.XmlAttrAlgn.Value; +end; + +function OuterShdw.WriteXmlAttrAlgn(_value); +begin + self.XmlAttrAlgn.Value := _value; +end; + +function OuterShdw.ReadXmlAttrRotWithShape(); +begin + return self.XmlAttrRotWithShape.Value; +end; + +function OuterShdw.WriteXmlAttrRotWithShape(_value); +begin + self.XmlAttrRotWithShape.Value := _value; +end; diff --git a/autoclass/pptx/P@PPTX.tsf b/autoclass/pptx/P@PPTX.tsf new file mode 100644 index 0000000..5e71e16 --- /dev/null +++ b/autoclass/pptx/P@PPTX.tsf @@ -0,0 +1,150 @@ +type P = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddR(); + function AppendR(); + + property Rs read ReadRs; + function ReadRs(_index); + +public + // Attributes + + // Children + PPr; + Fld; + EndParaRPr; + +end; + +function P.Create();overload; +begin + self.Create(nil, "a", "p"); +end; + +function P.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function P.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function P.Init();override; +begin + self.PPr := new RPr(self, self.Prefix, "pPr"); + self.Fld := new Fld(self, self.Prefix, "fld"); + self.EndParaRPr := new RPr(self, self.Prefix, "endParaRPr"); +end; + +function P.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function P.InitChildren();override; +begin + child_elements_ := array( + 0: self.PPr, + 1: self.Fld, + 2: self.EndParaRPr, + ); + sorted_child_ := array( + "": -1, + self.PPr.ElementName: 0, + self.Fld.ElementName: 1, + self.EndParaRPr.ElementName: 2, + ); +end; + +function P.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "r": obj := self.AppendR(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function P.Copy(_obj);override; +begin + self.PPr.Copy(_obj.PPr); + self.Fld.Copy(_obj.Fld); + self.EndParaRPr.Copy(_obj.EndParaRPr); +end; + +function P.AddR(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "r" then break; + end + obj := new R(self, self.Prefix, "r"); + self.InsertChild(obj, i+1); + return obj; +end; + +function P.AppendR(); +begin + obj := new R(self, self.Prefix, "r"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function P.ReadRs(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "r" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/Ph@PPTX.tsf b/autoclass/pptx/Ph@PPTX.tsf new file mode 100644 index 0000000..09e9c4d --- /dev/null +++ b/autoclass/pptx/Ph@PPTX.tsf @@ -0,0 +1,117 @@ +type Ph = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Sz read ReadXmlAttrSz write WriteXmlAttrSz; + property Idx read ReadXmlAttrIdx write WriteXmlAttrIdx; + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrSz(); + function WriteXmlAttrSz(_value); + function ReadXmlAttrIdx(); + function WriteXmlAttrIdx(_value); + +public + // Attributes + XmlAttrType; + XmlAttrSz; + XmlAttrIdx; + + // Children + +end; + +function Ph.Create();overload; +begin + self.Create(nil, "p", "ph"); +end; + +function Ph.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Ph.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Ph.Init();override; +begin + self.XmlAttrType := new OpenXmlAttribute(nil, "type", nil); + self.XmlAttrSz := new OpenXmlAttribute(nil, "sz", nil); + self.XmlAttrIdx := new OpenXmlAttribute(nil, "idx", nil); +end; + +function Ph.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrType, + self.XmlAttrSz, + self.XmlAttrIdx, + ); +end; + +function Ph.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Ph.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Ph.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrSz.Value) then + self.XmlAttrSz.Value := _obj.XmlAttrSz.Value; + if not ifnil(_obj.XmlAttrIdx.Value) then + self.XmlAttrIdx.Value := _obj.XmlAttrIdx.Value; +end; + +function Ph.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Ph.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Ph.ReadXmlAttrSz(); +begin + return self.XmlAttrSz.Value; +end; + +function Ph.WriteXmlAttrSz(_value); +begin + self.XmlAttrSz.Value := _value; +end; + +function Ph.ReadXmlAttrIdx(); +begin + return self.XmlAttrIdx.Value; +end; + +function Ph.WriteXmlAttrIdx(_value); +begin + self.XmlAttrIdx.Value := _value; +end; diff --git a/autoclass/pptx/Presentation@PPTX.tsf b/autoclass/pptx/Presentation@PPTX.tsf new file mode 100644 index 0000000..00ba009 --- /dev/null +++ b/autoclass/pptx/Presentation@PPTX.tsf @@ -0,0 +1,191 @@ +type Presentation = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsP read ReadXmlAttrXmlnsP write WriteXmlAttrXmlnsP; + property SaveSubsetFonts read ReadXmlAttrSaveSubsetFonts write WriteXmlAttrSaveSubsetFonts; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsP(); + function WriteXmlAttrXmlnsP(_value); + function ReadXmlAttrSaveSubsetFonts(); + function WriteXmlAttrSaveSubsetFonts(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrXmlnsR; + XmlAttrXmlnsP; + XmlAttrSaveSubsetFonts; + + // Children + SldMasterIdLst; + SldIdLst; + SldSz; + NotesSz; + DefaultTextStyle; + +end; + +function Presentation.Create();overload; +begin + self.Create(nil, "p", "presentation"); +end; + +function Presentation.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Presentation.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Presentation.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.XmlAttrXmlnsP := new OpenXmlAttribute("xmlns", "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); + self.XmlAttrSaveSubsetFonts := new OpenXmlAttribute(nil, "saveSubsetFonts", nil); + self.SldMasterIdLst := new SldMasterIdLst(self, self.Prefix, "sldMasterIdLst"); + self.SldIdLst := new SldIdLst(self, self.Prefix, "sldIdLst"); + self.SldSz := new CXY(self, self.Prefix, "sldSz"); + self.NotesSz := new CXY(self, self.Prefix, "notesSz"); + self.DefaultTextStyle := new DefaultTextStyle(self, self.Prefix, "defaultTextStyle"); +end; + +function Presentation.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsP, + self.XmlAttrSaveSubsetFonts, + ); +end; + +function Presentation.InitChildren();override; +begin + child_elements_ := array( + 0: self.SldMasterIdLst, + 1: self.SldIdLst, + 2: self.SldSz, + 3: self.NotesSz, + 4: self.DefaultTextStyle, + ); + sorted_child_ := array( + "": -1, + self.SldMasterIdLst.ElementName: 0, + self.SldIdLst.ElementName: 1, + self.SldSz.ElementName: 2, + self.NotesSz.ElementName: 3, + self.DefaultTextStyle.ElementName: 4, + ); +end; + +function Presentation.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Presentation.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsP.Value) then + self.XmlAttrXmlnsP.Value := _obj.XmlAttrXmlnsP.Value; + if not ifnil(_obj.XmlAttrSaveSubsetFonts.Value) then + self.XmlAttrSaveSubsetFonts.Value := _obj.XmlAttrSaveSubsetFonts.Value; + self.SldMasterIdLst.Copy(_obj.SldMasterIdLst); + self.SldIdLst.Copy(_obj.SldIdLst); + self.SldSz.Copy(_obj.SldSz); + self.NotesSz.Copy(_obj.NotesSz); + self.DefaultTextStyle.Copy(_obj.DefaultTextStyle); +end; + +function Presentation.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function Presentation.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function Presentation.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Presentation.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Presentation.ReadXmlAttrXmlnsP(); +begin + return self.XmlAttrXmlnsP.Value; +end; + +function Presentation.WriteXmlAttrXmlnsP(_value); +begin + self.XmlAttrXmlnsP.Value := _value; +end; + +function Presentation.ReadXmlAttrSaveSubsetFonts(); +begin + return self.XmlAttrSaveSubsetFonts.Value; +end; + +function Presentation.WriteXmlAttrSaveSubsetFonts(_value); +begin + self.XmlAttrSaveSubsetFonts.Value := _value; +end; diff --git a/autoclass/pptx/PresnetationPr@PPTX.tsf b/autoclass/pptx/PresnetationPr@PPTX.tsf new file mode 100644 index 0000000..44846cf --- /dev/null +++ b/autoclass/pptx/PresnetationPr@PPTX.tsf @@ -0,0 +1,153 @@ +type PresnetationPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsP read ReadXmlAttrXmlnsP write WriteXmlAttrXmlnsP; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsP(); + function WriteXmlAttrXmlnsP(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrXmlnsR; + XmlAttrXmlnsP; + + // Children + ExtLst; + +end; + +function PresnetationPr.Create();overload; +begin + self.Create(nil, "p", "presentationPr"); +end; + +function PresnetationPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function PresnetationPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PresnetationPr.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.XmlAttrXmlnsP := new OpenXmlAttribute("xmlns", "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); + self.ExtLst := new ExtLst(self, self.Prefix, "extLst"); +end; + +function PresnetationPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsP, + ); +end; + +function PresnetationPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.ExtLst.ElementName: 0, + ); +end; + +function PresnetationPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PresnetationPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsP.Value) then + self.XmlAttrXmlnsP.Value := _obj.XmlAttrXmlnsP.Value; + self.ExtLst.Copy(_obj.ExtLst); +end; + +function PresnetationPr.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function PresnetationPr.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function PresnetationPr.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function PresnetationPr.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function PresnetationPr.ReadXmlAttrXmlnsP(); +begin + return self.XmlAttrXmlnsP.Value; +end; + +function PresnetationPr.WriteXmlAttrXmlnsP(_value); +begin + self.XmlAttrXmlnsP.Value := _value; +end; diff --git a/autoclass/pptx/Properties@PPTX.tsf b/autoclass/pptx/Properties@PPTX.tsf new file mode 100644 index 0000000..7873097 --- /dev/null +++ b/autoclass/pptx/Properties@PPTX.tsf @@ -0,0 +1,215 @@ +type Properties = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Xmlns read ReadXmlAttrXmlns write WriteXmlAttrXmlns; + property XmlnsVt read ReadXmlAttrXmlnsVt write WriteXmlAttrXmlnsVt; + function ReadXmlAttrXmlns(); + function WriteXmlAttrXmlns(_value); + function ReadXmlAttrXmlnsVt(); + function WriteXmlAttrXmlnsVt(_value); + +public + // Attributes + XmlAttrXmlns; + XmlAttrXmlnsVt; + + // Children + TotalTime; + Words; + Application; + PresentationFormat; + Paragraphs; + Slides; + Notes; + HiddenSlides; + MMClips; + ScaleCrop; + HeadingPairs; + TitlesOfParts; + Company; + LinksUpToDate; + SharedDoc; + HyperlinksChanged; + AppVersion; + +end; + +function Properties.Create();overload; +begin + self.Create(nil, nil, "Properties"); +end; + +function Properties.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Properties.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Properties.Init();override; +begin + self.XmlAttrXmlns := new OpenXmlAttribute(nil, "xmlns", "http://schemas.openxmlformats.org/officeDocument/2006/extended-properties"); + self.XmlAttrXmlnsVt := new OpenXmlAttribute("xmlns", "vt", "http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"); + self.TotalTime := new OpenXmlPcdata(self, nil, "TotalTime"); + self.Words := new OpenXmlPcdata(self, nil, "Words"); + self.Application := new OpenXmlPcdata(self, nil, "Application"); + self.PresentationFormat := new OpenXmlPcdata(self, nil, "PresentationFormat"); + self.Paragraphs := new OpenXmlPcdata(self, nil, "Paragraphs"); + self.Slides := new OpenXmlPcdata(self, nil, "Slides"); + self.Notes := new OpenXmlPcdata(self, nil, "Notes"); + self.HiddenSlides := new OpenXmlPcdata(self, nil, "HiddenSlides"); + self.MMClips := new OpenXmlPcdata(self, nil, "MMClips"); + self.ScaleCrop := new OpenXmlPcdata(self, nil, "ScaleCrop"); + self.HeadingPairs := new HeadingPairs(self, nil, "HeadingPairs"); + self.TitlesOfParts := new TitlesOfParts(self, nil, "TitlesOfParts"); + self.Company := new OpenXmlPcdata(self, nil, "Company"); + self.LinksUpToDate := new OpenXmlPcdata(self, nil, "LinksUpToDate"); + self.SharedDoc := new OpenXmlPcdata(self, nil, "SharedDoc"); + self.HyperlinksChanged := new OpenXmlPcdata(self, nil, "HyperlinksChanged"); + self.AppVersion := new OpenXmlPcdata(self, nil, "AppVersion"); +end; + +function Properties.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlns, + self.XmlAttrXmlnsVt, + ); +end; + +function Properties.InitChildren();override; +begin + child_elements_ := array( + 0: self.TotalTime, + 1: self.Words, + 2: self.Application, + 3: self.PresentationFormat, + 4: self.Paragraphs, + 5: self.Slides, + 6: self.Notes, + 7: self.HiddenSlides, + 8: self.MMClips, + 9: self.ScaleCrop, + 10: self.HeadingPairs, + 11: self.TitlesOfParts, + 12: self.Company, + 13: self.LinksUpToDate, + 14: self.SharedDoc, + 15: self.HyperlinksChanged, + 16: self.AppVersion, + ); + sorted_child_ := array( + "": -1, + self.TotalTime.ElementName: 0, + self.Words.ElementName: 1, + self.Application.ElementName: 2, + self.PresentationFormat.ElementName: 3, + self.Paragraphs.ElementName: 4, + self.Slides.ElementName: 5, + self.Notes.ElementName: 6, + self.HiddenSlides.ElementName: 7, + self.MMClips.ElementName: 8, + self.ScaleCrop.ElementName: 9, + self.HeadingPairs.ElementName: 10, + self.TitlesOfParts.ElementName: 11, + self.Company.ElementName: 12, + self.LinksUpToDate.ElementName: 13, + self.SharedDoc.ElementName: 14, + self.HyperlinksChanged.ElementName: 15, + self.AppVersion.ElementName: 16, + ); +end; + +function Properties.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Properties.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlns.Value) then + self.XmlAttrXmlns.Value := _obj.XmlAttrXmlns.Value; + if not ifnil(_obj.XmlAttrXmlnsVt.Value) then + self.XmlAttrXmlnsVt.Value := _obj.XmlAttrXmlnsVt.Value; + self.TotalTime.Copy(_obj.TotalTime); + self.Words.Copy(_obj.Words); + self.Application.Copy(_obj.Application); + self.PresentationFormat.Copy(_obj.PresentationFormat); + self.Paragraphs.Copy(_obj.Paragraphs); + self.Slides.Copy(_obj.Slides); + self.Notes.Copy(_obj.Notes); + self.HiddenSlides.Copy(_obj.HiddenSlides); + self.MMClips.Copy(_obj.MMClips); + self.ScaleCrop.Copy(_obj.ScaleCrop); + self.HeadingPairs.Copy(_obj.HeadingPairs); + self.TitlesOfParts.Copy(_obj.TitlesOfParts); + self.Company.Copy(_obj.Company); + self.LinksUpToDate.Copy(_obj.LinksUpToDate); + self.SharedDoc.Copy(_obj.SharedDoc); + self.HyperlinksChanged.Copy(_obj.HyperlinksChanged); + self.AppVersion.Copy(_obj.AppVersion); +end; + +function Properties.ReadXmlAttrXmlns(); +begin + return self.XmlAttrXmlns.Value; +end; + +function Properties.WriteXmlAttrXmlns(_value); +begin + self.XmlAttrXmlns.Value := _value; +end; + +function Properties.ReadXmlAttrXmlnsVt(); +begin + return self.XmlAttrXmlnsVt.Value; +end; + +function Properties.WriteXmlAttrXmlnsVt(_value); +begin + self.XmlAttrXmlnsVt.Value := _value; +end; diff --git a/autoclass/pptx/PrstGeom@PPTX.tsf b/autoclass/pptx/PrstGeom@PPTX.tsf new file mode 100644 index 0000000..77dd706 --- /dev/null +++ b/autoclass/pptx/PrstGeom@PPTX.tsf @@ -0,0 +1,131 @@ +type PrstGeom = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Prst read ReadXmlAttrPrst write WriteXmlAttrPrst; + function ReadXmlAttrPrst(); + function WriteXmlAttrPrst(_value); + + property AvLst read ReadXmlChildAvLst write WriteXmlChildAvLst; + function ReadXmlChildAvLst(); + function WriteXmlChildAvLst(_value); + +public + // Attributes + XmlAttrPrst; + + // Children + XmlChildAvLst; + +end; + +function PrstGeom.Create();overload; +begin + self.Create(nil, "a", "prstGeom"); +end; + +function PrstGeom.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function PrstGeom.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PrstGeom.Init();override; +begin + self.XmlAttrPrst := new OpenXmlAttribute(nil, "prst", nil); + self.XmlChildAvLst := new OpenXmlEmpty(self, self.Prefix, "avLst"); +end; + +function PrstGeom.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPrst, + ); +end; + +function PrstGeom.InitChildren();override; +begin + child_elements_ := array( + 0: self.XmlChildAvLst, + ); + sorted_child_ := array( + "": -1, + self.XmlChildAvLst.ElementName: 0, + ); +end; + +function PrstGeom.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function PrstGeom.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrPrst.Value) then + self.XmlAttrPrst.Value := _obj.XmlAttrPrst.Value; + self.XmlChildAvLst.Copy(_obj.XmlChildAvLst); +end; + +function PrstGeom.ReadXmlAttrPrst(); +begin + return self.XmlAttrPrst.Value; +end; + +function PrstGeom.WriteXmlAttrPrst(_value); +begin + self.XmlAttrPrst.Value := _value; +end; + +function PrstGeom.ReadXmlChildAvLst(); +begin + return ifnil(self.XmlChildAvLst.Value) ? false : true; +end; + +function PrstGeom.WriteXmlChildAvLst(_value); +begin + self.XmlChildAvLst.Value := _value; +end; diff --git a/autoclass/pptx/PureVal@PPTX.tsf b/autoclass/pptx/PureVal@PPTX.tsf new file mode 100644 index 0000000..a4bfcc2 --- /dev/null +++ b/autoclass/pptx/PureVal@PPTX.tsf @@ -0,0 +1,81 @@ +type PureVal = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal; + + // Children + +end; + +function PureVal.Create();overload; +begin + self.Create(nil, nil, ""); +end; + +function PureVal.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function PureVal.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function PureVal.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); +end; + +function PureVal.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function PureVal.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function PureVal.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function PureVal.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function PureVal.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function PureVal.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/pptx/R@PPTX.tsf b/autoclass/pptx/R@PPTX.tsf new file mode 100644 index 0000000..c535169 --- /dev/null +++ b/autoclass/pptx/R@PPTX.tsf @@ -0,0 +1,103 @@ +type R = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + RPr; + T; + +end; + +function R.Create();overload; +begin + self.Create(nil, nil, "r"); +end; + +function R.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function R.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function R.Init();override; +begin + self.RPr := new RPr(self, self.Prefix, "rPr"); + self.T := new OpenXmlPcdata(self, self.Prefix, "t"); +end; + +function R.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function R.InitChildren();override; +begin + child_elements_ := array( + 0: self.RPr, + 1: self.T, + ); + sorted_child_ := array( + "": -1, + self.RPr.ElementName: 0, + self.T.ElementName: 1, + ); +end; + +function R.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function R.Copy(_obj);override; +begin + self.RPr.Copy(_obj.RPr); + self.T.Copy(_obj.T); +end; diff --git a/autoclass/pptx/RPr@PPTX.tsf b/autoclass/pptx/RPr@PPTX.tsf new file mode 100644 index 0000000..09938bb --- /dev/null +++ b/autoclass/pptx/RPr@PPTX.tsf @@ -0,0 +1,153 @@ +type RPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Lvl read ReadXmlAttrLvl write WriteXmlAttrLvl; + property Lang read ReadXmlAttrLang write WriteXmlAttrLang; + property AltLang read ReadXmlAttrAltLang write WriteXmlAttrAltLang; + property Dirty read ReadXmlAttrDirty write WriteXmlAttrDirty; + property SmtClean read ReadXmlAttrSmtClean write WriteXmlAttrSmtClean; + function ReadXmlAttrLvl(); + function WriteXmlAttrLvl(_value); + function ReadXmlAttrLang(); + function WriteXmlAttrLang(_value); + function ReadXmlAttrAltLang(); + function WriteXmlAttrAltLang(_value); + function ReadXmlAttrDirty(); + function WriteXmlAttrDirty(_value); + function ReadXmlAttrSmtClean(); + function WriteXmlAttrSmtClean(_value); + +public + // Attributes + XmlAttrLvl; + XmlAttrLang; + XmlAttrAltLang; + XmlAttrDirty; + XmlAttrSmtClean; + + // Children + +end; + +function RPr.Create();overload; +begin + self.Create(nil, "a", "rPr"); +end; + +function RPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function RPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function RPr.Init();override; +begin + self.XmlAttrLvl := new OpenXmlAttribute(nil, "lvl", nil); + self.XmlAttrLang := new OpenXmlAttribute(nil, "lang", nil); + self.XmlAttrAltLang := new OpenXmlAttribute(nil, "altLang", nil); + self.XmlAttrDirty := new OpenXmlAttribute(nil, "dirty", nil); + self.XmlAttrSmtClean := new OpenXmlAttribute(nil, "smtClean", nil); +end; + +function RPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrLvl, + self.XmlAttrLang, + self.XmlAttrAltLang, + self.XmlAttrDirty, + self.XmlAttrSmtClean, + ); +end; + +function RPr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function RPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function RPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrLvl.Value) then + self.XmlAttrLvl.Value := _obj.XmlAttrLvl.Value; + if not ifnil(_obj.XmlAttrLang.Value) then + self.XmlAttrLang.Value := _obj.XmlAttrLang.Value; + if not ifnil(_obj.XmlAttrAltLang.Value) then + self.XmlAttrAltLang.Value := _obj.XmlAttrAltLang.Value; + if not ifnil(_obj.XmlAttrDirty.Value) then + self.XmlAttrDirty.Value := _obj.XmlAttrDirty.Value; + if not ifnil(_obj.XmlAttrSmtClean.Value) then + self.XmlAttrSmtClean.Value := _obj.XmlAttrSmtClean.Value; +end; + +function RPr.ReadXmlAttrLvl(); +begin + return self.XmlAttrLvl.Value; +end; + +function RPr.WriteXmlAttrLvl(_value); +begin + self.XmlAttrLvl.Value := _value; +end; + +function RPr.ReadXmlAttrLang(); +begin + return self.XmlAttrLang.Value; +end; + +function RPr.WriteXmlAttrLang(_value); +begin + self.XmlAttrLang.Value := _value; +end; + +function RPr.ReadXmlAttrAltLang(); +begin + return self.XmlAttrAltLang.Value; +end; + +function RPr.WriteXmlAttrAltLang(_value); +begin + self.XmlAttrAltLang.Value := _value; +end; + +function RPr.ReadXmlAttrDirty(); +begin + return self.XmlAttrDirty.Value; +end; + +function RPr.WriteXmlAttrDirty(_value); +begin + self.XmlAttrDirty.Value := _value; +end; + +function RPr.ReadXmlAttrSmtClean(); +begin + return self.XmlAttrSmtClean.Value; +end; + +function RPr.WriteXmlAttrSmtClean(_value); +begin + self.XmlAttrSmtClean.Value := _value; +end; diff --git a/autoclass/pptx/Relationship@PPTX.tsf b/autoclass/pptx/Relationship@PPTX.tsf new file mode 100644 index 0000000..01408bc --- /dev/null +++ b/autoclass/pptx/Relationship@PPTX.tsf @@ -0,0 +1,117 @@ +type Relationship = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Target read ReadXmlAttrTarget write WriteXmlAttrTarget; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrTarget(); + function WriteXmlAttrTarget(_value); + +public + // Attributes + XmlAttrId; + XmlAttrType; + XmlAttrTarget; + + // Children + +end; + +function Relationship.Create();overload; +begin + self.Create(nil, nil, "Relationship"); +end; + +function Relationship.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Relationship.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Relationship.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "Id", nil); + self.XmlAttrType := new OpenXmlAttribute(nil, "Type", nil); + self.XmlAttrTarget := new OpenXmlAttribute(nil, "Target", nil); +end; + +function Relationship.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrType, + self.XmlAttrTarget, + ); +end; + +function Relationship.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Relationship.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Relationship.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrTarget.Value) then + self.XmlAttrTarget.Value := _obj.XmlAttrTarget.Value; +end; + +function Relationship.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function Relationship.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function Relationship.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function Relationship.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function Relationship.ReadXmlAttrTarget(); +begin + return self.XmlAttrTarget.Value; +end; + +function Relationship.WriteXmlAttrTarget(_value); +begin + self.XmlAttrTarget.Value := _value; +end; diff --git a/autoclass/pptx/Relationships@PPTX.tsf b/autoclass/pptx/Relationships@PPTX.tsf new file mode 100644 index 0000000..892b07f --- /dev/null +++ b/autoclass/pptx/Relationships@PPTX.tsf @@ -0,0 +1,154 @@ +type Relationships = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddRelationship(); + function AppendRelationship(); + + property Relationships read ReadRelationships; + function ReadRelationships(_index); + + property xmlns read ReadXmlAttrxmlns write WriteXmlAttrxmlns; + function ReadXmlAttrxmlns(); + function WriteXmlAttrxmlns(_value); + +public + // Attributes + XmlAttrxmlns; + + // Children + +end; + +function Relationships.Create();overload; +begin + self.Create(nil, nil, "Relationships"); +end; + +function Relationships.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Relationships.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Relationships.Init();override; +begin + self.XmlAttrxmlns := new OpenXmlAttribute(nil, "xmlns", "http://schemas.openxmlformats.org/package/2006/relationships"); +end; + +function Relationships.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrxmlns, + ); +end; + +function Relationships.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Relationships.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "Relationship": obj := self.AppendRelationship(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Relationships.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrxmlns.Value) then + self.XmlAttrxmlns.Value := _obj.XmlAttrxmlns.Value; +end; + +function Relationships.AddRelationship(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "Relationship" then break; + end + obj := new Relationship(self, nil, "Relationship"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Relationships.AppendRelationship(); +begin + obj := new Relationship(self, nil, "Relationship"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Relationships.ReadRelationships(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "Relationship" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Relationships.ReadXmlAttrxmlns(); +begin + return self.XmlAttrxmlns.Value; +end; + +function Relationships.WriteXmlAttrxmlns(_value); +begin + self.XmlAttrxmlns.Value := _value; +end; diff --git a/autoclass/pptx/Restored@PPTX.tsf b/autoclass/pptx/Restored@PPTX.tsf new file mode 100644 index 0000000..0700475 --- /dev/null +++ b/autoclass/pptx/Restored@PPTX.tsf @@ -0,0 +1,99 @@ +type Restored = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Sz read ReadXmlAttrSz write WriteXmlAttrSz; + property AutoAdjust read ReadXmlAttrAutoAdjust write WriteXmlAttrAutoAdjust; + function ReadXmlAttrSz(); + function WriteXmlAttrSz(_value); + function ReadXmlAttrAutoAdjust(); + function WriteXmlAttrAutoAdjust(_value); + +public + // Attributes + XmlAttrSz; + XmlAttrAutoAdjust; + + // Children + +end; + +function Restored.Create();overload; +begin + self.Create(nil, "p", ""); +end; + +function Restored.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Restored.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Restored.Init();override; +begin + self.XmlAttrSz := new OpenXmlAttribute(nil, "sz", nil); + self.XmlAttrAutoAdjust := new OpenXmlAttribute(nil, "autoAdjust", nil); +end; + +function Restored.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrSz, + self.XmlAttrAutoAdjust, + ); +end; + +function Restored.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Restored.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function Restored.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrSz.Value) then + self.XmlAttrSz.Value := _obj.XmlAttrSz.Value; + if not ifnil(_obj.XmlAttrAutoAdjust.Value) then + self.XmlAttrAutoAdjust.Value := _obj.XmlAttrAutoAdjust.Value; +end; + +function Restored.ReadXmlAttrSz(); +begin + return self.XmlAttrSz.Value; +end; + +function Restored.WriteXmlAttrSz(_value); +begin + self.XmlAttrSz.Value := _value; +end; + +function Restored.ReadXmlAttrAutoAdjust(); +begin + return self.XmlAttrAutoAdjust.Value; +end; + +function Restored.WriteXmlAttrAutoAdjust(_value); +begin + self.XmlAttrAutoAdjust.Value := _value; +end; diff --git a/autoclass/pptx/Scale@PPTX.tsf b/autoclass/pptx/Scale@PPTX.tsf new file mode 100644 index 0000000..a7707f8 --- /dev/null +++ b/autoclass/pptx/Scale@PPTX.tsf @@ -0,0 +1,103 @@ +type Scale = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + SX; + SY; + +end; + +function Scale.Create();overload; +begin + self.Create(nil, "p", "scale"); +end; + +function Scale.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Scale.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Scale.Init();override; +begin + self.SX := new ND(self, "a", "sx"); + self.SY := new ND(self, "a", "sy"); +end; + +function Scale.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Scale.InitChildren();override; +begin + child_elements_ := array( + 0: self.SX, + 1: self.SY, + ); + sorted_child_ := array( + "": -1, + self.SX.ElementName: 0, + self.SY.ElementName: 1, + ); +end; + +function Scale.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Scale.Copy(_obj);override; +begin + self.SX.Copy(_obj.SX); + self.SY.Copy(_obj.SY); +end; diff --git a/autoclass/pptx/SchemeClr@PPTX.tsf b/autoclass/pptx/SchemeClr@PPTX.tsf new file mode 100644 index 0000000..7af8881 --- /dev/null +++ b/autoclass/pptx/SchemeClr@PPTX.tsf @@ -0,0 +1,127 @@ +type SchemeClr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal; + + // Children + LumMod; + SatMod; + Tint; + +end; + +function SchemeClr.Create();overload; +begin + self.Create(nil, "a", "schemeClr"); +end; + +function SchemeClr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SchemeClr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SchemeClr.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.LumMod := new PureVal(self, self.Prefix, "lumMod"); + self.SatMod := new PureVal(self, self.Prefix, "satMod"); + self.Tint := new PureVal(self, self.Prefix, "tint"); +end; + +function SchemeClr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function SchemeClr.InitChildren();override; +begin + child_elements_ := array( + 0: self.LumMod, + 1: self.SatMod, + 2: self.Tint, + ); + sorted_child_ := array( + "": -1, + self.LumMod.ElementName: 0, + self.SatMod.ElementName: 1, + self.Tint.ElementName: 2, + ); +end; + +function SchemeClr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SchemeClr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + self.LumMod.Copy(_obj.LumMod); + self.SatMod.Copy(_obj.SatMod); + self.Tint.Copy(_obj.Tint); +end; + +function SchemeClr.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SchemeClr.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/pptx/Sld@PPTX.tsf b/autoclass/pptx/Sld@PPTX.tsf new file mode 100644 index 0000000..8e64800 --- /dev/null +++ b/autoclass/pptx/Sld@PPTX.tsf @@ -0,0 +1,158 @@ +type Sld = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsP read ReadXmlAttrXmlnsP write WriteXmlAttrXmlnsP; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsP(); + function WriteXmlAttrXmlnsP(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrXmlnsR; + XmlAttrXmlnsP; + + // Children + CSld; + ClrMapOvr; + +end; + +function Sld.Create();overload; +begin + self.Create(nil, "p", "sld"); +end; + +function Sld.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Sld.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Sld.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.XmlAttrXmlnsP := new OpenXmlAttribute("xmlns", "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); + self.CSld := new CSld(self, self.Prefix, "cSld"); + self.ClrMapOvr := new ClrMapOvr(self, self.Prefix, "clrMapOvr"); +end; + +function Sld.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsP, + ); +end; + +function Sld.InitChildren();override; +begin + child_elements_ := array( + 0: self.CSld, + 1: self.ClrMapOvr, + ); + sorted_child_ := array( + "": -1, + self.CSld.ElementName: 0, + self.ClrMapOvr.ElementName: 1, + ); +end; + +function Sld.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Sld.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsP.Value) then + self.XmlAttrXmlnsP.Value := _obj.XmlAttrXmlnsP.Value; + self.CSld.Copy(_obj.CSld); + self.ClrMapOvr.Copy(_obj.ClrMapOvr); +end; + +function Sld.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function Sld.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function Sld.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function Sld.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function Sld.ReadXmlAttrXmlnsP(); +begin + return self.XmlAttrXmlnsP.Value; +end; + +function Sld.WriteXmlAttrXmlnsP(_value); +begin + self.XmlAttrXmlnsP.Value := _value; +end; diff --git a/autoclass/pptx/SldIdLst@PPTX.tsf b/autoclass/pptx/SldIdLst@PPTX.tsf new file mode 100644 index 0000000..87e140b --- /dev/null +++ b/autoclass/pptx/SldIdLst@PPTX.tsf @@ -0,0 +1,137 @@ +type SldIdLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddSldId(); + function AppendSldId(); + + property SldIds read ReadSldIds; + function ReadSldIds(_index); + +public + // Attributes + + // Children + +end; + +function SldIdLst.Create();overload; +begin + self.Create(nil, "p", "sldIdLst"); +end; + +function SldIdLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SldIdLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SldIdLst.Init();override; +begin + +end; + +function SldIdLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SldIdLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SldIdLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "sldId": obj := self.AppendSldId(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SldIdLst.Copy(_obj);override; +begin + +end; + +function SldIdLst.AddSldId(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "sldId" then break; + end + obj := new IdLst(self, self.Prefix, "sldId"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SldIdLst.AppendSldId(); +begin + obj := new IdLst(self, self.Prefix, "sldId"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SldIdLst.ReadSldIds(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "sldId" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/SldLayout@PPTX.tsf b/autoclass/pptx/SldLayout@PPTX.tsf new file mode 100644 index 0000000..907da80 --- /dev/null +++ b/autoclass/pptx/SldLayout@PPTX.tsf @@ -0,0 +1,194 @@ +type SldLayout = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsP read ReadXmlAttrXmlnsP write WriteXmlAttrXmlnsP; + property Type read ReadXmlAttrType write WriteXmlAttrType; + property Preserve read ReadXmlAttrPreserve write WriteXmlAttrPreserve; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsP(); + function WriteXmlAttrXmlnsP(_value); + function ReadXmlAttrType(); + function WriteXmlAttrType(_value); + function ReadXmlAttrPreserve(); + function WriteXmlAttrPreserve(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrXmlnsR; + XmlAttrXmlnsP; + XmlAttrType; + XmlAttrPreserve; + + // Children + CSld; + ClrMapOvr; + +end; + +function SldLayout.Create();overload; +begin + self.Create(nil, "p", "sldLayout"); +end; + +function SldLayout.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SldLayout.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SldLayout.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.XmlAttrXmlnsP := new OpenXmlAttribute("xmlns", "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); + self.XmlAttrType := new OpenXmlAttribute(nil, "type", nil); + self.XmlAttrPreserve := new OpenXmlAttribute(nil, "preserve", nil); + self.CSld := new CSld(self, self.Prefix, "cSld"); + self.ClrMapOvr := new ClrMapOvr(self, self.Prefix, "clrMapOvr"); +end; + +function SldLayout.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsP, + self.XmlAttrType, + self.XmlAttrPreserve, + ); +end; + +function SldLayout.InitChildren();override; +begin + child_elements_ := array( + 0: self.CSld, + 1: self.ClrMapOvr, + ); + sorted_child_ := array( + "": -1, + self.CSld.ElementName: 0, + self.ClrMapOvr.ElementName: 1, + ); +end; + +function SldLayout.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SldLayout.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsP.Value) then + self.XmlAttrXmlnsP.Value := _obj.XmlAttrXmlnsP.Value; + if not ifnil(_obj.XmlAttrType.Value) then + self.XmlAttrType.Value := _obj.XmlAttrType.Value; + if not ifnil(_obj.XmlAttrPreserve.Value) then + self.XmlAttrPreserve.Value := _obj.XmlAttrPreserve.Value; + self.CSld.Copy(_obj.CSld); + self.ClrMapOvr.Copy(_obj.ClrMapOvr); +end; + +function SldLayout.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function SldLayout.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function SldLayout.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function SldLayout.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function SldLayout.ReadXmlAttrXmlnsP(); +begin + return self.XmlAttrXmlnsP.Value; +end; + +function SldLayout.WriteXmlAttrXmlnsP(_value); +begin + self.XmlAttrXmlnsP.Value := _value; +end; + +function SldLayout.ReadXmlAttrType(); +begin + return self.XmlAttrType.Value; +end; + +function SldLayout.WriteXmlAttrType(_value); +begin + self.XmlAttrType.Value := _value; +end; + +function SldLayout.ReadXmlAttrPreserve(); +begin + return self.XmlAttrPreserve.Value; +end; + +function SldLayout.WriteXmlAttrPreserve(_value); +begin + self.XmlAttrPreserve.Value := _value; +end; diff --git a/autoclass/pptx/SldLayoutId@PPTX.tsf b/autoclass/pptx/SldLayoutId@PPTX.tsf new file mode 100644 index 0000000..4061a60 --- /dev/null +++ b/autoclass/pptx/SldLayoutId@PPTX.tsf @@ -0,0 +1,99 @@ +type SldLayoutId = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Id read ReadXmlAttrId write WriteXmlAttrId; + property RId read ReadXmlAttrRId write WriteXmlAttrRId; + function ReadXmlAttrId(); + function WriteXmlAttrId(_value); + function ReadXmlAttrRId(); + function WriteXmlAttrRId(_value); + +public + // Attributes + XmlAttrId; + XmlAttrRId; + + // Children + +end; + +function SldLayoutId.Create();overload; +begin + self.Create(nil, "p", "sldLayoutId"); +end; + +function SldLayoutId.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SldLayoutId.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SldLayoutId.Init();override; +begin + self.XmlAttrId := new OpenXmlAttribute(nil, "id", nil); + self.XmlAttrRId := new OpenXmlAttribute("id", "r", nil); +end; + +function SldLayoutId.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrId, + self.XmlAttrRId, + ); +end; + +function SldLayoutId.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SldLayoutId.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function SldLayoutId.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrId.Value) then + self.XmlAttrId.Value := _obj.XmlAttrId.Value; + if not ifnil(_obj.XmlAttrRId.Value) then + self.XmlAttrRId.Value := _obj.XmlAttrRId.Value; +end; + +function SldLayoutId.ReadXmlAttrId(); +begin + return self.XmlAttrId.Value; +end; + +function SldLayoutId.WriteXmlAttrId(_value); +begin + self.XmlAttrId.Value := _value; +end; + +function SldLayoutId.ReadXmlAttrRId(); +begin + return self.XmlAttrRId.Value; +end; + +function SldLayoutId.WriteXmlAttrRId(_value); +begin + self.XmlAttrRId.Value := _value; +end; diff --git a/autoclass/pptx/SldLayoutIdLst@PPTX.tsf b/autoclass/pptx/SldLayoutIdLst@PPTX.tsf new file mode 100644 index 0000000..75e2859 --- /dev/null +++ b/autoclass/pptx/SldLayoutIdLst@PPTX.tsf @@ -0,0 +1,137 @@ +type SldLayoutIdLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddSldLayoutId(); + function AppendSldLayoutId(); + + property SldLayoutIds read ReadSldLayoutIds; + function ReadSldLayoutIds(_index); + +public + // Attributes + + // Children + +end; + +function SldLayoutIdLst.Create();overload; +begin + self.Create(nil, "p", "sldLayoutIdLst"); +end; + +function SldLayoutIdLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SldLayoutIdLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SldLayoutIdLst.Init();override; +begin + +end; + +function SldLayoutIdLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SldLayoutIdLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SldLayoutIdLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "sldLayoutId": obj := self.AppendSldLayoutId(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SldLayoutIdLst.Copy(_obj);override; +begin + +end; + +function SldLayoutIdLst.AddSldLayoutId(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "sldLayoutId" then break; + end + obj := new SldLayoutId(self, self.Prefix, "sldLayoutId"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SldLayoutIdLst.AppendSldLayoutId(); +begin + obj := new SldLayoutId(self, self.Prefix, "sldLayoutId"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SldLayoutIdLst.ReadSldLayoutIds(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "sldLayoutId" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/SldMaster@PPTX.tsf b/autoclass/pptx/SldMaster@PPTX.tsf new file mode 100644 index 0000000..a46ec12 --- /dev/null +++ b/autoclass/pptx/SldMaster@PPTX.tsf @@ -0,0 +1,168 @@ +type SldMaster = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsP read ReadXmlAttrXmlnsP write WriteXmlAttrXmlnsP; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsP(); + function WriteXmlAttrXmlnsP(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrXmlnsR; + XmlAttrXmlnsP; + + // Children + CSld; + ClrMap; + SldLayoutIdLst; + TxStyles; + +end; + +function SldMaster.Create();overload; +begin + self.Create(nil, "p", "sldMaster"); +end; + +function SldMaster.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SldMaster.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SldMaster.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.XmlAttrXmlnsP := new OpenXmlAttribute("xmlns", "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); + self.CSld := new CSld(self, self.Prefix, "cSld"); + self.ClrMap := new ClrMap(self, self.Prefix, "clrMap"); + self.SldLayoutIdLst := new SldLayoutIdLst(self, self.Prefix, "sldLayoutIdLst"); + self.TxStyles := new TxStyles(self, self.Prefix, "txStyles"); +end; + +function SldMaster.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsP, + ); +end; + +function SldMaster.InitChildren();override; +begin + child_elements_ := array( + 0: self.CSld, + 1: self.ClrMap, + 2: self.SldLayoutIdLst, + 3: self.TxStyles, + ); + sorted_child_ := array( + "": -1, + self.CSld.ElementName: 0, + self.ClrMap.ElementName: 1, + self.SldLayoutIdLst.ElementName: 2, + self.TxStyles.ElementName: 3, + ); +end; + +function SldMaster.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SldMaster.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsP.Value) then + self.XmlAttrXmlnsP.Value := _obj.XmlAttrXmlnsP.Value; + self.CSld.Copy(_obj.CSld); + self.ClrMap.Copy(_obj.ClrMap); + self.SldLayoutIdLst.Copy(_obj.SldLayoutIdLst); + self.TxStyles.Copy(_obj.TxStyles); +end; + +function SldMaster.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function SldMaster.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function SldMaster.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function SldMaster.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function SldMaster.ReadXmlAttrXmlnsP(); +begin + return self.XmlAttrXmlnsP.Value; +end; + +function SldMaster.WriteXmlAttrXmlnsP(_value); +begin + self.XmlAttrXmlnsP.Value := _value; +end; diff --git a/autoclass/pptx/SldMasterIdLst@PPTX.tsf b/autoclass/pptx/SldMasterIdLst@PPTX.tsf new file mode 100644 index 0000000..408ffab --- /dev/null +++ b/autoclass/pptx/SldMasterIdLst@PPTX.tsf @@ -0,0 +1,137 @@ +type SldMasterIdLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddSldMasterId(); + function AppendSldMasterId(); + + property SldMasterIds read ReadSldMasterIds; + function ReadSldMasterIds(_index); + +public + // Attributes + + // Children + +end; + +function SldMasterIdLst.Create();overload; +begin + self.Create(nil, "p", "sldMasterIdLst"); +end; + +function SldMasterIdLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SldMasterIdLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SldMasterIdLst.Init();override; +begin + +end; + +function SldMasterIdLst.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SldMasterIdLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SldMasterIdLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "sldMasterId": obj := self.AppendSldMasterId(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SldMasterIdLst.Copy(_obj);override; +begin + +end; + +function SldMasterIdLst.AddSldMasterId(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "sldMasterId" then break; + end + obj := new IdLst(self, self.Prefix, "sldMasterId"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SldMasterIdLst.AppendSldMasterId(); +begin + obj := new IdLst(self, self.Prefix, "sldMasterId"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SldMasterIdLst.ReadSldMasterIds(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "sldMasterId" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/SlideViewPr@PPTX.tsf b/autoclass/pptx/SlideViewPr@PPTX.tsf new file mode 100644 index 0000000..5c24fa8 --- /dev/null +++ b/autoclass/pptx/SlideViewPr@PPTX.tsf @@ -0,0 +1,98 @@ +type SlideViewPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + CSldViewPr; + +end; + +function SlideViewPr.Create();overload; +begin + self.Create(nil, "p", "slideViewPr"); +end; + +function SlideViewPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SlideViewPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SlideViewPr.Init();override; +begin + self.CSldViewPr := new CSldViewPr(self, self.Prefix, "cSldViewPr"); +end; + +function SlideViewPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SlideViewPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.CSldViewPr, + ); + sorted_child_ := array( + "": -1, + self.CSldViewPr.ElementName: 0, + ); +end; + +function SlideViewPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SlideViewPr.Copy(_obj);override; +begin + self.CSldViewPr.Copy(_obj.CSldViewPr); +end; diff --git a/autoclass/pptx/SolidFill@PPTX.tsf b/autoclass/pptx/SolidFill@PPTX.tsf new file mode 100644 index 0000000..f612953 --- /dev/null +++ b/autoclass/pptx/SolidFill@PPTX.tsf @@ -0,0 +1,98 @@ +type SolidFill = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + SchemeClr; + +end; + +function SolidFill.Create();overload; +begin + self.Create(nil, "a", "solidFill"); +end; + +function SolidFill.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SolidFill.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SolidFill.Init();override; +begin + self.SchemeClr := new SchemeClr(self, self.Prefix, "schemeClr"); +end; + +function SolidFill.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SolidFill.InitChildren();override; +begin + child_elements_ := array( + 0: self.SchemeClr, + ); + sorted_child_ := array( + "": -1, + self.SchemeClr.ElementName: 0, + ); +end; + +function SolidFill.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SolidFill.Copy(_obj);override; +begin + self.SchemeClr.Copy(_obj.SchemeClr); +end; diff --git a/autoclass/pptx/Sp@PPTX.tsf b/autoclass/pptx/Sp@PPTX.tsf new file mode 100644 index 0000000..0dd3e3d --- /dev/null +++ b/autoclass/pptx/Sp@PPTX.tsf @@ -0,0 +1,108 @@ +type Sp = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + NvSpPr; + SpPr; + TxBody; + +end; + +function Sp.Create();overload; +begin + self.Create(nil, "p", "sp"); +end; + +function Sp.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Sp.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Sp.Init();override; +begin + self.NvSpPr := new NvSpPr(self, self.Prefix, "nvSpPr"); + self.SpPr := new SpPr(self, self.Prefix, "spPr"); + self.TxBody := new TxBody(self, self.Prefix, "txBody"); +end; + +function Sp.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Sp.InitChildren();override; +begin + child_elements_ := array( + 0: self.NvSpPr, + 1: self.SpPr, + 2: self.TxBody, + ); + sorted_child_ := array( + "": -1, + self.NvSpPr.ElementName: 0, + self.SpPr.ElementName: 1, + self.TxBody.ElementName: 2, + ); +end; + +function Sp.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Sp.Copy(_obj);override; +begin + self.NvSpPr.Copy(_obj.NvSpPr); + self.SpPr.Copy(_obj.SpPr); + self.TxBody.Copy(_obj.TxBody); +end; diff --git a/autoclass/pptx/SpLocks@PPTX.tsf b/autoclass/pptx/SpLocks@PPTX.tsf new file mode 100644 index 0000000..a3b367c --- /dev/null +++ b/autoclass/pptx/SpLocks@PPTX.tsf @@ -0,0 +1,81 @@ +type SpLocks = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property NoGrp read ReadXmlAttrNoGrp write WriteXmlAttrNoGrp; + function ReadXmlAttrNoGrp(); + function WriteXmlAttrNoGrp(_value); + +public + // Attributes + XmlAttrNoGrp; + + // Children + +end; + +function SpLocks.Create();overload; +begin + self.Create(nil, "a", "spLocks"); +end; + +function SpLocks.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SpLocks.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SpLocks.Init();override; +begin + self.XmlAttrNoGrp := new OpenXmlAttribute(nil, "noGrp", nil); +end; + +function SpLocks.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrNoGrp, + ); +end; + +function SpLocks.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SpLocks.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function SpLocks.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrNoGrp.Value) then + self.XmlAttrNoGrp.Value := _obj.XmlAttrNoGrp.Value; +end; + +function SpLocks.ReadXmlAttrNoGrp(); +begin + return self.XmlAttrNoGrp.Value; +end; + +function SpLocks.WriteXmlAttrNoGrp(_value); +begin + self.XmlAttrNoGrp.Value := _value; +end; diff --git a/autoclass/pptx/SpPr@PPTX.tsf b/autoclass/pptx/SpPr@PPTX.tsf new file mode 100644 index 0000000..0453986 --- /dev/null +++ b/autoclass/pptx/SpPr@PPTX.tsf @@ -0,0 +1,122 @@ +type SpPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property NoFill read ReadXmlChildNoFill write WriteXmlChildNoFill; + function ReadXmlChildNoFill(); + function WriteXmlChildNoFill(_value); + +public + // Attributes + + // Children + Xfrm; + PrstGeom; + XmlChildNoFill; + +end; + +function SpPr.Create();overload; +begin + self.Create(nil, "p", "spPr"); +end; + +function SpPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SpPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SpPr.Init();override; +begin + self.Xfrm := new Xfrm(self, "a", "xfrm"); + self.PrstGeom := new PrstGeom(self, "a", "prstGeom"); + self.XmlChildNoFill := new OpenXmlEmpty(self, "a", "noFill"); +end; + +function SpPr.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SpPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Xfrm, + 1: self.PrstGeom, + 2: self.XmlChildNoFill, + ); + sorted_child_ := array( + "": -1, + self.Xfrm.ElementName: 0, + self.PrstGeom.ElementName: 1, + self.XmlChildNoFill.ElementName: 2, + ); +end; + +function SpPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SpPr.Copy(_obj);override; +begin + self.Xfrm.Copy(_obj.Xfrm); + self.PrstGeom.Copy(_obj.PrstGeom); + self.XmlChildNoFill.Copy(_obj.XmlChildNoFill); +end; + +function SpPr.ReadXmlChildNoFill(); +begin + return ifnil(self.XmlChildNoFill.Value) ? false : true; +end; + +function SpPr.WriteXmlChildNoFill(_value); +begin + self.XmlChildNoFill.Value := _value; +end; diff --git a/autoclass/pptx/SpTree@PPTX.tsf b/autoclass/pptx/SpTree@PPTX.tsf new file mode 100644 index 0000000..2e84327 --- /dev/null +++ b/autoclass/pptx/SpTree@PPTX.tsf @@ -0,0 +1,145 @@ +type SpTree = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddSp(); + function AppendSp(); + + property Sps read ReadSps; + function ReadSps(_index); + +public + // Attributes + + // Children + NvGrpSpPr; + GrpSpPr; + +end; + +function SpTree.Create();overload; +begin + self.Create(nil, "p", "spTree"); +end; + +function SpTree.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SpTree.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SpTree.Init();override; +begin + self.NvGrpSpPr := new NvGrpSpPr(self, self.Prefix, "nvGrpSpPr"); + self.GrpSpPr := new GrpSpPr(self, self.Prefix, "grpSpPr"); +end; + +function SpTree.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SpTree.InitChildren();override; +begin + child_elements_ := array( + 0: self.NvGrpSpPr, + 1: self.GrpSpPr, + ); + sorted_child_ := array( + "": -1, + self.NvGrpSpPr.ElementName: 0, + self.GrpSpPr.ElementName: 1, + ); +end; + +function SpTree.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "sp": obj := self.AppendSp(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SpTree.Copy(_obj);override; +begin + self.NvGrpSpPr.Copy(_obj.NvGrpSpPr); + self.GrpSpPr.Copy(_obj.GrpSpPr); +end; + +function SpTree.AddSp(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "sp" then break; + end + obj := new Sp(self, self.Prefix, "sp"); + self.InsertChild(obj, i+1); + return obj; +end; + +function SpTree.AppendSp(); +begin + obj := new Sp(self, self.Prefix, "sp"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function SpTree.ReadSps(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "sp" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/SpcBef@PPTX.tsf b/autoclass/pptx/SpcBef@PPTX.tsf new file mode 100644 index 0000000..5caffb3 --- /dev/null +++ b/autoclass/pptx/SpcBef@PPTX.tsf @@ -0,0 +1,98 @@ +type SpcBef = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + SpcPct; + +end; + +function SpcBef.Create();overload; +begin + self.Create(nil, "a", "SpcBef"); +end; + +function SpcBef.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SpcBef.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SpcBef.Init();override; +begin + self.SpcPct := new SpcPct(self, self.Prefix, "spcPct"); +end; + +function SpcBef.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function SpcBef.InitChildren();override; +begin + child_elements_ := array( + 0: self.SpcPct, + ); + sorted_child_ := array( + "": -1, + self.SpcPct.ElementName: 0, + ); +end; + +function SpcBef.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SpcBef.Copy(_obj);override; +begin + self.SpcPct.Copy(_obj.SpcPct); +end; diff --git a/autoclass/pptx/SpcPct@PPTX.tsf b/autoclass/pptx/SpcPct@PPTX.tsf new file mode 100644 index 0000000..0de4586 --- /dev/null +++ b/autoclass/pptx/SpcPct@PPTX.tsf @@ -0,0 +1,81 @@ +type SpcPct = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal; + + // Children + +end; + +function SpcPct.Create();overload; +begin + self.Create(nil, "a", "spcPct"); +end; + +function SpcPct.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SpcPct.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SpcPct.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); +end; + +function SpcPct.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function SpcPct.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SpcPct.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function SpcPct.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function SpcPct.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SpcPct.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/pptx/SrgbClr@PPTX.tsf b/autoclass/pptx/SrgbClr@PPTX.tsf new file mode 100644 index 0000000..d008e9b --- /dev/null +++ b/autoclass/pptx/SrgbClr@PPTX.tsf @@ -0,0 +1,117 @@ +type SrgbClr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + +public + // Attributes + XmlAttrVal; + + // Children + Alpha; + +end; + +function SrgbClr.Create();overload; +begin + self.Create(nil, "a", "srgbClr"); +end; + +function SrgbClr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SrgbClr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SrgbClr.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.Alpha := new PureVal(self, self.Prefix, "aplha"); +end; + +function SrgbClr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + ); +end; + +function SrgbClr.InitChildren();override; +begin + child_elements_ := array( + 0: self.Alpha, + ); + sorted_child_ := array( + "": -1, + self.Alpha.ElementName: 0, + ); +end; + +function SrgbClr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function SrgbClr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + self.Alpha.Copy(_obj.Alpha); +end; + +function SrgbClr.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SrgbClr.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/autoclass/pptx/SysClr@PPTX.tsf b/autoclass/pptx/SysClr@PPTX.tsf new file mode 100644 index 0000000..9f96ca2 --- /dev/null +++ b/autoclass/pptx/SysClr@PPTX.tsf @@ -0,0 +1,99 @@ +type SysClr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + property LastClr read ReadXmlAttrLastClr write WriteXmlAttrLastClr; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value); + function ReadXmlAttrLastClr(); + function WriteXmlAttrLastClr(_value); + +public + // Attributes + XmlAttrVal; + XmlAttrLastClr; + + // Children + +end; + +function SysClr.Create();overload; +begin + self.Create(nil, "a", "sysClr"); +end; + +function SysClr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function SysClr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function SysClr.Init();override; +begin + self.XmlAttrVal := new OpenXmlAttribute(nil, "val", nil); + self.XmlAttrLastClr := new OpenXmlAttribute(nil, "LastClr", nil); +end; + +function SysClr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrVal, + self.XmlAttrLastClr, + ); +end; + +function SysClr.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function SysClr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function SysClr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrVal.Value) then + self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; + if not ifnil(_obj.XmlAttrLastClr.Value) then + self.XmlAttrLastClr.Value := _obj.XmlAttrLastClr.Value; +end; + +function SysClr.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function SysClr.WriteXmlAttrVal(_value); +begin + self.XmlAttrVal.Value := _value; +end; + +function SysClr.ReadXmlAttrLastClr(); +begin + return self.XmlAttrLastClr.Value; +end; + +function SysClr.WriteXmlAttrLastClr(_value); +begin + self.XmlAttrLastClr.Value := _value; +end; diff --git a/autoclass/pptx/TblStyleLst@PPTX.tsf b/autoclass/pptx/TblStyleLst@PPTX.tsf new file mode 100644 index 0000000..617e812 --- /dev/null +++ b/autoclass/pptx/TblStyleLst@PPTX.tsf @@ -0,0 +1,99 @@ +type TblStyleLst = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property Def read ReadXmlAttrDef write WriteXmlAttrDef; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrDef(); + function WriteXmlAttrDef(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrDef; + + // Children + +end; + +function TblStyleLst.Create();overload; +begin + self.Create(nil, "a", "tblStyleLst"); +end; + +function TblStyleLst.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function TblStyleLst.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TblStyleLst.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrDef := new OpenXmlAttribute(nil, "def", nil); +end; + +function TblStyleLst.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrDef, + ); +end; + +function TblStyleLst.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function TblStyleLst.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function TblStyleLst.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrDef.Value) then + self.XmlAttrDef.Value := _obj.XmlAttrDef.Value; +end; + +function TblStyleLst.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function TblStyleLst.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function TblStyleLst.ReadXmlAttrDef(); +begin + return self.XmlAttrDef.Value; +end; + +function TblStyleLst.WriteXmlAttrDef(_value); +begin + self.XmlAttrDef.Value := _value; +end; diff --git a/autoclass/pptx/Theme@PPTX.tsf b/autoclass/pptx/Theme@PPTX.tsf new file mode 100644 index 0000000..7f42cc0 --- /dev/null +++ b/autoclass/pptx/Theme@PPTX.tsf @@ -0,0 +1,177 @@ +type Theme = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + + property ObjectDefaults read ReadXmlChildObjectDefaults write WriteXmlChildObjectDefaults; + property ExtraClrSchemeLst read ReadXmlChildExtraClrSchemeLst write WriteXmlChildExtraClrSchemeLst; + function ReadXmlChildObjectDefaults(); + function WriteXmlChildObjectDefaults(_value); + function ReadXmlChildExtraClrSchemeLst(); + function WriteXmlChildExtraClrSchemeLst(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrName; + + // Children + ThemeElements; + XmlChildObjectDefaults; + XmlChildExtraClrSchemeLst; + ExtLst; + +end; + +function Theme.Create();overload; +begin + self.Create(nil, "a", "theme"); +end; + +function Theme.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Theme.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Theme.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrName := new OpenXmlAttribute(nil, "name", "Offic 主题"); + self.ThemeElements := new ThemeElements(self, self.Prefix, "themeElements"); + self.XmlChildObjectDefaults := new OpenXmlEmpty(self, self.Prefix, "objectDefaults"); + self.XmlChildExtraClrSchemeLst := new OpenXmlEmpty(self, self.Prefix, "extraClrSchemeLst"); + self.ExtLst := new ExtLst(self, self.Prefix, "extLst"); +end; + +function Theme.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrName, + ); +end; + +function Theme.InitChildren();override; +begin + child_elements_ := array( + 0: self.ThemeElements, + 1: self.XmlChildObjectDefaults, + 2: self.XmlChildExtraClrSchemeLst, + 3: self.ExtLst, + ); + sorted_child_ := array( + "": -1, + self.ThemeElements.ElementName: 0, + self.XmlChildObjectDefaults.ElementName: 1, + self.XmlChildExtraClrSchemeLst.ElementName: 2, + self.ExtLst.ElementName: 3, + ); +end; + +function Theme.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Theme.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.ThemeElements.Copy(_obj.ThemeElements); + self.XmlChildObjectDefaults.Copy(_obj.XmlChildObjectDefaults); + self.XmlChildExtraClrSchemeLst.Copy(_obj.XmlChildExtraClrSchemeLst); + self.ExtLst.Copy(_obj.ExtLst); +end; + +function Theme.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function Theme.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function Theme.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function Theme.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; + +function Theme.ReadXmlChildObjectDefaults(); +begin + return ifnil(self.XmlChildObjectDefaults.Value) ? false : true; +end; + +function Theme.WriteXmlChildObjectDefaults(_value); +begin + self.XmlChildObjectDefaults.Value := _value; +end; + +function Theme.ReadXmlChildExtraClrSchemeLst(); +begin + return ifnil(self.XmlChildExtraClrSchemeLst.Value) ? false : true; +end; + +function Theme.WriteXmlChildExtraClrSchemeLst(_value); +begin + self.XmlChildExtraClrSchemeLst.Value := _value; +end; diff --git a/autoclass/pptx/ThemeElements@PPTX.tsf b/autoclass/pptx/ThemeElements@PPTX.tsf new file mode 100644 index 0000000..72d5454 --- /dev/null +++ b/autoclass/pptx/ThemeElements@PPTX.tsf @@ -0,0 +1,127 @@ +type ThemeElements = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property Name read ReadXmlAttrName write WriteXmlAttrName; + function ReadXmlAttrName(); + function WriteXmlAttrName(_value); + +public + // Attributes + XmlAttrName; + + // Children + ClrScheme; + FontScheme; + FmtScheme; + +end; + +function ThemeElements.Create();overload; +begin + self.Create(nil, "a", "themeElements"); +end; + +function ThemeElements.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ThemeElements.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ThemeElements.Init();override; +begin + self.XmlAttrName := new OpenXmlAttribute(nil, "name", nil); + self.ClrScheme := new ClrScheme(self, self.Prefix, "clrScheme"); + self.FontScheme := new FontScheme(self, self.Prefix, "fontScheme"); + self.FmtScheme := new FmtScheme(self, self.Prefix, "fmtScheme"); +end; + +function ThemeElements.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrName, + ); +end; + +function ThemeElements.InitChildren();override; +begin + child_elements_ := array( + 0: self.ClrScheme, + 1: self.FontScheme, + 2: self.FmtScheme, + ); + sorted_child_ := array( + "": -1, + self.ClrScheme.ElementName: 0, + self.FontScheme.ElementName: 1, + self.FmtScheme.ElementName: 2, + ); +end; + +function ThemeElements.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ThemeElements.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrName.Value) then + self.XmlAttrName.Value := _obj.XmlAttrName.Value; + self.ClrScheme.Copy(_obj.ClrScheme); + self.FontScheme.Copy(_obj.FontScheme); + self.FmtScheme.Copy(_obj.FmtScheme); +end; + +function ThemeElements.ReadXmlAttrName(); +begin + return self.XmlAttrName.Value; +end; + +function ThemeElements.WriteXmlAttrName(_value); +begin + self.XmlAttrName.Value := _value; +end; diff --git a/autoclass/pptx/TitleStyle@PPTX.tsf b/autoclass/pptx/TitleStyle@PPTX.tsf new file mode 100644 index 0000000..b4e6163 --- /dev/null +++ b/autoclass/pptx/TitleStyle@PPTX.tsf @@ -0,0 +1,143 @@ +type TitleStyle = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + DefPPr; + Lvl1PPr; + Lvl2PPr; + Lvl3PPr; + Lvl4PPr; + Lvl5PPr; + Lvl6PPr; + Lvl7PPr; + Lvl8PPr; + Lvl9PPr; + +end; + +function TitleStyle.Create();overload; +begin + self.Create(nil, "p", "titleStyle"); +end; + +function TitleStyle.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function TitleStyle.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TitleStyle.Init();override; +begin + self.DefPPr := new DefPPr(self, "a", "defPPr"); + self.Lvl1PPr := new LvlPPr(self, "a", "lvl1pPr"); + self.Lvl2PPr := new LvlPPr(self, "a", "lvl2pPr"); + self.Lvl3PPr := new LvlPPr(self, "a", "lvl3pPr"); + self.Lvl4PPr := new LvlPPr(self, "a", "lvl4pPr"); + self.Lvl5PPr := new LvlPPr(self, "a", "lvl5pPr"); + self.Lvl6PPr := new LvlPPr(self, "a", "lvl6pPr"); + self.Lvl7PPr := new LvlPPr(self, "a", "lvl7pPr"); + self.Lvl8PPr := new LvlPPr(self, "a", "lvl8pPr"); + self.Lvl9PPr := new LvlPPr(self, "a", "lvl9pPr"); +end; + +function TitleStyle.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TitleStyle.InitChildren();override; +begin + child_elements_ := array( + 0: self.DefPPr, + 1: self.Lvl1PPr, + 2: self.Lvl2PPr, + 3: self.Lvl3PPr, + 4: self.Lvl4PPr, + 5: self.Lvl5PPr, + 6: self.Lvl6PPr, + 7: self.Lvl7PPr, + 8: self.Lvl8PPr, + 9: self.Lvl9PPr, + ); + sorted_child_ := array( + "": -1, + self.DefPPr.ElementName: 0, + self.Lvl1PPr.ElementName: 1, + self.Lvl2PPr.ElementName: 2, + self.Lvl3PPr.ElementName: 3, + self.Lvl4PPr.ElementName: 4, + self.Lvl5PPr.ElementName: 5, + self.Lvl6PPr.ElementName: 6, + self.Lvl7PPr.ElementName: 7, + self.Lvl8PPr.ElementName: 8, + self.Lvl9PPr.ElementName: 9, + ); +end; + +function TitleStyle.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TitleStyle.Copy(_obj);override; +begin + self.DefPPr.Copy(_obj.DefPPr); + self.Lvl1PPr.Copy(_obj.Lvl1PPr); + self.Lvl2PPr.Copy(_obj.Lvl2PPr); + self.Lvl3PPr.Copy(_obj.Lvl3PPr); + self.Lvl4PPr.Copy(_obj.Lvl4PPr); + self.Lvl5PPr.Copy(_obj.Lvl5PPr); + self.Lvl6PPr.Copy(_obj.Lvl6PPr); + self.Lvl7PPr.Copy(_obj.Lvl7PPr); + self.Lvl8PPr.Copy(_obj.Lvl8PPr); + self.Lvl9PPr.Copy(_obj.Lvl9PPr); +end; diff --git a/autoclass/pptx/TitlesOfParts@PPTX.tsf b/autoclass/pptx/TitlesOfParts@PPTX.tsf new file mode 100644 index 0000000..9274b5f --- /dev/null +++ b/autoclass/pptx/TitlesOfParts@PPTX.tsf @@ -0,0 +1,98 @@ +type TitlesOfParts = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + Vector; + +end; + +function TitlesOfParts.Create();overload; +begin + self.Create(nil, nil, "TitlesOfParts"); +end; + +function TitlesOfParts.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function TitlesOfParts.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TitlesOfParts.Init();override; +begin + self.Vector := new Vector(self, "vt", "vector"); +end; + +function TitlesOfParts.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TitlesOfParts.InitChildren();override; +begin + child_elements_ := array( + 0: self.Vector, + ); + sorted_child_ := array( + "": -1, + self.Vector.ElementName: 0, + ); +end; + +function TitlesOfParts.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TitlesOfParts.Copy(_obj);override; +begin + self.Vector.Copy(_obj.Vector); +end; diff --git a/autoclass/pptx/TxBody@PPTX.tsf b/autoclass/pptx/TxBody@PPTX.tsf new file mode 100644 index 0000000..f9b8b2c --- /dev/null +++ b/autoclass/pptx/TxBody@PPTX.tsf @@ -0,0 +1,145 @@ +type TxBody = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddP(); + function AppendP(); + + property Ps read ReadPs; + function ReadPs(_index); + +public + // Attributes + + // Children + BodyPr; + LstStyle; + +end; + +function TxBody.Create();overload; +begin + self.Create(nil, "p", "txBody"); +end; + +function TxBody.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function TxBody.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TxBody.Init();override; +begin + self.BodyPr := new BodyPr(self, "a", "bodyPr"); + self.LstStyle := new LstStyle(self, "a", "lstStyle"); +end; + +function TxBody.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TxBody.InitChildren();override; +begin + child_elements_ := array( + 0: self.BodyPr, + 1: self.LstStyle, + ); + sorted_child_ := array( + "": -1, + self.BodyPr.ElementName: 0, + self.LstStyle.ElementName: 1, + ); +end; + +function TxBody.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "a:p": obj := self.AppendP(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TxBody.Copy(_obj);override; +begin + self.BodyPr.Copy(_obj.BodyPr); + self.LstStyle.Copy(_obj.LstStyle); +end; + +function TxBody.AddP(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "p" then break; + end + obj := new P(self, "a", "p"); + self.InsertChild(obj, i+1); + return obj; +end; + +function TxBody.AppendP(); +begin + obj := new P(self, "a", "p"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function TxBody.ReadPs(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "p" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/TxStyles@PPTX.tsf b/autoclass/pptx/TxStyles@PPTX.tsf new file mode 100644 index 0000000..25bdf4f --- /dev/null +++ b/autoclass/pptx/TxStyles@PPTX.tsf @@ -0,0 +1,108 @@ +type TxStyles = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + TitleStyle; + BodyStyle; + OtherStyle; + +end; + +function TxStyles.Create();overload; +begin + self.Create(nil, "p", "txStyles"); +end; + +function TxStyles.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function TxStyles.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function TxStyles.Init();override; +begin + self.TitleStyle := new TitleStyle(self, self.Prefix, "titleStyle"); + self.BodyStyle := new TitleStyle(self, self.Prefix, "bodyStyle"); + self.OtherStyle := new TitleStyle(self, self.Prefix, "otherStyle"); +end; + +function TxStyles.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function TxStyles.InitChildren();override; +begin + child_elements_ := array( + 0: self.TitleStyle, + 1: self.BodyStyle, + 2: self.OtherStyle, + ); + sorted_child_ := array( + "": -1, + self.TitleStyle.ElementName: 0, + self.BodyStyle.ElementName: 1, + self.OtherStyle.ElementName: 2, + ); +end; + +function TxStyles.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function TxStyles.Copy(_obj);override; +begin + self.TitleStyle.Copy(_obj.TitleStyle); + self.BodyStyle.Copy(_obj.BodyStyle); + self.OtherStyle.Copy(_obj.OtherStyle); +end; diff --git a/autoclass/pptx/Types@PPTX.tsf b/autoclass/pptx/Types@PPTX.tsf new file mode 100644 index 0000000..8b3741d --- /dev/null +++ b/autoclass/pptx/Types@PPTX.tsf @@ -0,0 +1,178 @@ +type Types = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddDefault(); + function AddOverride(); + function AppendDefault(); + function AppendOverride(); + + property Defaults read ReadDefaults; + property Overrides read ReadOverrides; + function ReadDefaults(_index); + function ReadOverrides(_index); + +public + // Attributes + + // Children + +end; + +function Types.Create();overload; +begin + self.Create(nil, nil, "Types"); +end; + +function Types.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Types.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Types.Init();override; +begin + +end; + +function Types.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Types.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Types.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + "Default": obj := self.AppendDefault(); + "Override": obj := self.AppendOverride(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Types.Copy(_obj);override; +begin + +end; + +function Types.AddDefault(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "Default" then break; + end + obj := new Default(self, nil, "Default"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Types.AddOverride(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "Override" then break; + end + obj := new _Override(self, nil, "Override"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Types.AppendDefault(); +begin + obj := new Default(self, nil, "Default"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Types.AppendOverride(); +begin + obj := new _Override(self, nil, "Override"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Types.ReadDefaults(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "Default" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Types.ReadOverrides(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "Override" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; diff --git a/autoclass/pptx/Variant@PPTX.tsf b/autoclass/pptx/Variant@PPTX.tsf new file mode 100644 index 0000000..bf2b7e0 --- /dev/null +++ b/autoclass/pptx/Variant@PPTX.tsf @@ -0,0 +1,103 @@ +type Variant = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + Lpstr; + I4; + +end; + +function Variant.Create();overload; +begin + self.Create(nil, "vt", "variant"); +end; + +function Variant.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Variant.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Variant.Init();override; +begin + self.Lpstr := new OpenXmlPcdata(self, self.Prefix, "lpstr"); + self.I4 := new OpenXmlPcdata(self, self.Prefix, "i4"); +end; + +function Variant.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Variant.InitChildren();override; +begin + child_elements_ := array( + 0: self.Lpstr, + 1: self.I4, + ); + sorted_child_ := array( + "": -1, + self.Lpstr.ElementName: 0, + self.I4.ElementName: 1, + ); +end; + +function Variant.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Variant.Copy(_obj);override; +begin + self.Lpstr.Copy(_obj.Lpstr); + self.I4.Copy(_obj.I4); +end; diff --git a/autoclass/pptx/Vector@PPTX.tsf b/autoclass/pptx/Vector@PPTX.tsf new file mode 100644 index 0000000..d40429e --- /dev/null +++ b/autoclass/pptx/Vector@PPTX.tsf @@ -0,0 +1,213 @@ +type Vector = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + function AddVariant(); + function AddLpstr(); + function AppendVariant(); + function AppendLpstr(); + + property Variants read ReadVariants; + property Lpstrs read ReadLpstrs; + function ReadVariants(_index); + function ReadLpstrs(_index); + + property Size read ReadXmlAttrSize write WriteXmlAttrSize; + property BaseType read ReadXmlAttrBaseType write WriteXmlAttrBaseType; + function ReadXmlAttrSize(); + function WriteXmlAttrSize(_value); + function ReadXmlAttrBaseType(); + function WriteXmlAttrBaseType(_value); + +public + // Attributes + XmlAttrSize; + XmlAttrBaseType; + + // Children + +end; + +function Vector.Create();overload; +begin + self.Create(nil, "vt", "vt:vector"); +end; + +function Vector.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Vector.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Vector.Init();override; +begin + self.XmlAttrSize := new OpenXmlAttribute(nil, "size", nil); + self.XmlAttrBaseType := new OpenXmlAttribute(nil, "baseType", nil); +end; + +function Vector.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrSize, + self.XmlAttrBaseType, + ); +end; + +function Vector.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function Vector.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + pre + "variant": obj := self.AppendVariant(); + pre + "lpstr": obj := self.AppendLpstr(); + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Vector.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrSize.Value) then + self.XmlAttrSize.Value := _obj.XmlAttrSize.Value; + if not ifnil(_obj.XmlAttrBaseType.Value) then + self.XmlAttrBaseType.Value := _obj.XmlAttrBaseType.Value; +end; + +function Vector.AddVariant(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "variant" then break; + end + obj := new Variant(self, self.Prefix, "variant"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Vector.AddLpstr(); +begin + len := length(child_elements_); + if len = 0 then i := -1; + else begin + for i:=len-1 downto 0 do + if child_elements_[i].LocalName = "lpstr" then break; + end + obj := new OpenXmlPcdata(self, self.Prefix, "lpstr"); + self.InsertChild(obj, i+1); + return obj; +end; + +function Vector.AppendVariant(); +begin + obj := new Variant(self, self.Prefix, "variant"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Vector.AppendLpstr(); +begin + obj := new OpenXmlPcdata(self, self.Prefix, "lpstr"); + child_elements_[length(child_elements_)] := obj; + return obj; +end; + +function Vector.ReadVariants(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "variant" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Vector.ReadLpstrs(_index); +begin + ind := ifnil(_index) ? -2 : n; + arr := array(); + for k,v in child_elements_ do + begin + if v.LocalName = "lpstr" then + begin + arr[length(arr)] := v; + ind--; + end; + if ind = -1 then return v; + end; + return arr; +end; + +function Vector.ReadXmlAttrSize(); +begin + return self.XmlAttrSize.Value; +end; + +function Vector.WriteXmlAttrSize(_value); +begin + self.XmlAttrSize.Value := _value; +end; + +function Vector.ReadXmlAttrBaseType(); +begin + return self.XmlAttrBaseType.Value; +end; + +function Vector.WriteXmlAttrBaseType(_value); +begin + self.XmlAttrBaseType.Value := _value; +end; diff --git a/autoclass/pptx/ViewPr@PPTX.tsf b/autoclass/pptx/ViewPr@PPTX.tsf new file mode 100644 index 0000000..9b71692 --- /dev/null +++ b/autoclass/pptx/ViewPr@PPTX.tsf @@ -0,0 +1,168 @@ +type ViewPr = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property XmlnsA read ReadXmlAttrXmlnsA write WriteXmlAttrXmlnsA; + property XmlnsR read ReadXmlAttrXmlnsR write WriteXmlAttrXmlnsR; + property XmlnsP read ReadXmlAttrXmlnsP write WriteXmlAttrXmlnsP; + function ReadXmlAttrXmlnsA(); + function WriteXmlAttrXmlnsA(_value); + function ReadXmlAttrXmlnsR(); + function WriteXmlAttrXmlnsR(_value); + function ReadXmlAttrXmlnsP(); + function WriteXmlAttrXmlnsP(_value); + +public + // Attributes + XmlAttrXmlnsA; + XmlAttrXmlnsR; + XmlAttrXmlnsP; + + // Children + NormalViewPr; + SlideViewPr; + NotesTextViewPr; + GridSpacing; + +end; + +function ViewPr.Create();overload; +begin + self.Create(nil, "p", "viewPr"); +end; + +function ViewPr.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function ViewPr.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function ViewPr.Init();override; +begin + self.XmlAttrXmlnsA := new OpenXmlAttribute("xmlns", "a", "http://schemas.openxmlformats.org/drawingml/2006/main"); + self.XmlAttrXmlnsR := new OpenXmlAttribute("xmlns", "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships"); + self.XmlAttrXmlnsP := new OpenXmlAttribute("xmlns", "p", "http://schemas.openxmlformats.org/presentationml/2006/main"); + self.NormalViewPr := new NormalViewPr(self, self.Prefix, "normalViewPr"); + self.SlideViewPr := new SlideViewPr(self, self.Prefix, "slideViewPr"); + self.NotesTextViewPr := new NotesTextViewPr(self, self.Prefix, "notesTextViewPr"); + self.GridSpacing := new CXY(self, self.Prefix, "gridSpacing"); +end; + +function ViewPr.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrXmlnsA, + self.XmlAttrXmlnsR, + self.XmlAttrXmlnsP, + ); +end; + +function ViewPr.InitChildren();override; +begin + child_elements_ := array( + 0: self.NormalViewPr, + 1: self.SlideViewPr, + 2: self.NotesTextViewPr, + 3: self.GridSpacing, + ); + sorted_child_ := array( + "": -1, + self.NormalViewPr.ElementName: 0, + self.SlideViewPr.ElementName: 1, + self.NotesTextViewPr.ElementName: 2, + self.GridSpacing.ElementName: 3, + ); +end; + +function ViewPr.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function ViewPr.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrXmlnsA.Value) then + self.XmlAttrXmlnsA.Value := _obj.XmlAttrXmlnsA.Value; + if not ifnil(_obj.XmlAttrXmlnsR.Value) then + self.XmlAttrXmlnsR.Value := _obj.XmlAttrXmlnsR.Value; + if not ifnil(_obj.XmlAttrXmlnsP.Value) then + self.XmlAttrXmlnsP.Value := _obj.XmlAttrXmlnsP.Value; + self.NormalViewPr.Copy(_obj.NormalViewPr); + self.SlideViewPr.Copy(_obj.SlideViewPr); + self.NotesTextViewPr.Copy(_obj.NotesTextViewPr); + self.GridSpacing.Copy(_obj.GridSpacing); +end; + +function ViewPr.ReadXmlAttrXmlnsA(); +begin + return self.XmlAttrXmlnsA.Value; +end; + +function ViewPr.WriteXmlAttrXmlnsA(_value); +begin + self.XmlAttrXmlnsA.Value := _value; +end; + +function ViewPr.ReadXmlAttrXmlnsR(); +begin + return self.XmlAttrXmlnsR.Value; +end; + +function ViewPr.WriteXmlAttrXmlnsR(_value); +begin + self.XmlAttrXmlnsR.Value := _value; +end; + +function ViewPr.ReadXmlAttrXmlnsP(); +begin + return self.XmlAttrXmlnsP.Value; +end; + +function ViewPr.WriteXmlAttrXmlnsP(_value); +begin + self.XmlAttrXmlnsP.Value := _value; +end; diff --git a/autoclass/pptx/XY@PPTX.tsf b/autoclass/pptx/XY@PPTX.tsf new file mode 100644 index 0000000..c7c2a49 --- /dev/null +++ b/autoclass/pptx/XY@PPTX.tsf @@ -0,0 +1,99 @@ +type XY = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property X read ReadXmlAttrX write WriteXmlAttrX; + property Y read ReadXmlAttrY write WriteXmlAttrY; + function ReadXmlAttrX(); + function WriteXmlAttrX(_value); + function ReadXmlAttrY(); + function WriteXmlAttrY(_value); + +public + // Attributes + XmlAttrX; + XmlAttrY; + + // Children + +end; + +function XY.Create();overload; +begin + self.Create(nil, nil, "off"); +end; + +function XY.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function XY.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function XY.Init();override; +begin + self.XmlAttrX := new OpenXmlAttribute(nil, "x", nil); + self.XmlAttrY := new OpenXmlAttribute(nil, "y", nil); +end; + +function XY.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrX, + self.XmlAttrY, + ); +end; + +function XY.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function XY.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function XY.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrX.Value) then + self.XmlAttrX.Value := _obj.XmlAttrX.Value; + if not ifnil(_obj.XmlAttrY.Value) then + self.XmlAttrY.Value := _obj.XmlAttrY.Value; +end; + +function XY.ReadXmlAttrX(); +begin + return self.XmlAttrX.Value; +end; + +function XY.WriteXmlAttrX(_value); +begin + self.XmlAttrX.Value := _value; +end; + +function XY.ReadXmlAttrY(); +begin + return self.XmlAttrY.Value; +end; + +function XY.WriteXmlAttrY(_value); +begin + self.XmlAttrY.Value := _value; +end; diff --git a/autoclass/pptx/Xfrm@PPTX.tsf b/autoclass/pptx/Xfrm@PPTX.tsf new file mode 100644 index 0000000..5952d19 --- /dev/null +++ b/autoclass/pptx/Xfrm@PPTX.tsf @@ -0,0 +1,113 @@ +type Xfrm = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + +public + // Attributes + + // Children + Off; + Ext; + ChOff; + ChExt; + +end; + +function Xfrm.Create();overload; +begin + self.Create(nil, "a", "xfrm"); +end; + +function Xfrm.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function Xfrm.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function Xfrm.Init();override; +begin + self.Off := new XY(self, self.Prefix, "off"); + self.Ext := new CXY(self, self.Prefix, "ext"); + self.ChOff := new XY(self, self.Prefix, "chOff"); + self.ChExt := new CXY(self, self.Prefix, "chExt"); +end; + +function Xfrm.InitAttributes();override; +begin + attributes_ := array( + ); +end; + +function Xfrm.InitChildren();override; +begin + child_elements_ := array( + 0: self.Off, + 1: self.Ext, + 2: self.ChOff, + 3: self.ChExt, + ); + sorted_child_ := array( + "": -1, + self.Off.ElementName: 0, + self.Ext.ElementName: 1, + self.ChOff.ElementName: 2, + self.ChExt.ElementName: 3, + ); +end; + +function Xfrm.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; + node := ifObj(_node) ? _node.FirstChild() : nil; + flag := false; + if ifnil(child_elements_[0]) and length(child_elements_) > 0 then + begin + flag := true; + arr := child_elements_; + child_elements_ := array(); + end + pre := ifString(self.Prefix) ? self.Prefix + ":" : ""; + while ifObj(node) do + begin + node_name := node.GetName(); + pos := sorted_child_[node_name]; + if ifnil(pos) or pos = -1 then + begin + obj := nil; + case node_name of + end; + if ifObj(obj) then obj.InitNode(node); + end + else if flag then + begin + obj := arr[pos]; + obj.InitNode(node); + child_elements_[length(child_elements_)] := obj; + end + else begin + child_elements_[pos].InitNode(node); + end + node := node.NextElement(); + end +end; + +function Xfrm.Copy(_obj);override; +begin + self.Off.Copy(_obj.Off); + self.Ext.Copy(_obj.Ext); + self.ChOff.Copy(_obj.ChOff); + self.ChExt.Copy(_obj.ChExt); +end; diff --git a/autoclass/pptx/_Override@PPTX.tsf b/autoclass/pptx/_Override@PPTX.tsf new file mode 100644 index 0000000..898290a --- /dev/null +++ b/autoclass/pptx/_Override@PPTX.tsf @@ -0,0 +1,99 @@ +type _Override = class(OpenXmlElement) +public + function Create();overload; + function Create(_node);overload; + function Create(_parent, _prefix, _local_name);overload; + function Init();override; + function InitAttributes();override; + function InitChildren();override; + function InitNode(_node);override; + function Copy(_obj);override; + + property PartName read ReadXmlAttrPartName write WriteXmlAttrPartName; + property ContentType read ReadXmlAttrContentType write WriteXmlAttrContentType; + function ReadXmlAttrPartName(); + function WriteXmlAttrPartName(_value); + function ReadXmlAttrContentType(); + function WriteXmlAttrContentType(_value); + +public + // Attributes + XmlAttrPartName; + XmlAttrContentType; + + // Children + +end; + +function _Override.Create();overload; +begin + self.Create(nil, nil, "Override"); +end; + +function _Override.Create(_node);overload; +begin + class(OpenXmlElement).Create(_node); +end; + +function _Override.Create(_parent, _prefix, _local_name);overload; +begin + class(OpenXmlElement).Create(_parent, _prefix, _local_name); +end; + +function _Override.Init();override; +begin + self.XmlAttrPartName := new OpenXmlAttribute(nil, "PartName", nil); + self.XmlAttrContentType := new OpenXmlAttribute(nil, "ContentType", nil); +end; + +function _Override.InitAttributes();override; +begin + attributes_ := array( + self.XmlAttrPartName, + self.XmlAttrContentType, + ); +end; + +function _Override.InitChildren();override; +begin + child_elements_ := array( + ); + sorted_child_ := array( + "": -1, + ); +end; + +function _Override.InitNode(_node);override; +begin + if ifObj(self.XmlNode) then + for k,v in child_elements_ do v.InitNode(nil); + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function _Override.Copy(_obj);override; +begin + if not ifnil(_obj.XmlAttrPartName.Value) then + self.XmlAttrPartName.Value := _obj.XmlAttrPartName.Value; + if not ifnil(_obj.XmlAttrContentType.Value) then + self.XmlAttrContentType.Value := _obj.XmlAttrContentType.Value; +end; + +function _Override.ReadXmlAttrPartName(); +begin + return self.XmlAttrPartName.Value; +end; + +function _Override.WriteXmlAttrPartName(_value); +begin + self.XmlAttrPartName.Value := _value; +end; + +function _Override.ReadXmlAttrContentType(); +begin + return self.XmlAttrContentType.Value; +end; + +function _Override.WriteXmlAttrContentType(_value); +begin + self.XmlAttrContentType.Value := _value; +end; diff --git a/cp.ps1 b/cp.ps1 new file mode 100644 index 0000000..0b2fa2b --- /dev/null +++ b/cp.ps1 @@ -0,0 +1,15 @@ +$sourcedir = "D:\code\tinysoft\Office-dev" +$destdir = "D:\code\tinysoft\Office" + +# 复制tsf脚本 +Remove-Item -Path ($destdir + "\autoclass\") -Recurse -Force +Remove-Item -Path ($destdir + "\openxml\") -Recurse -Force +Remove-Item -Path ($destdir + "\utils\") -Recurse -Force +Remove-Item -Path ($destdir + "\docx\") -Recurse -Force +Remove-Item -Path ($destdir + "\pptx\") -Recurse -Force + +Copy-Item -Path ($sourcedir + "\funcext\Office\autoclass\") ($destdir + "\autoclass\") -Recurse -Force +Copy-Item -Path ($sourcedir + "\funcext\Office\utils\") ($destdir + "\utils\") -Recurse -Force +Copy-Item -Path ($sourcedir + "\funcext\Office\openxml\") ($destdir + "\openxml\") -Recurse -Force +Copy-Item -Path ($sourcedir + "\funcext\Office\docx\") ($destdir + "\docx\") -Recurse -Force +Copy-Item -Path ($sourcedir + "\funcext\Office\pptx\") ($destdir + "\pptx\") -Recurse -Force diff --git a/docx/Components@DOCX.tsf b/docx/Components@DOCX.tsf new file mode 100644 index 0000000..0a9da34 --- /dev/null +++ b/docx/Components@DOCX.tsf @@ -0,0 +1,255 @@ +type Components = class(TSComponentsBase) +public + function Create(); + function Init();override; + + property Rels read ReadRels; + property App read ReadApp; + property Core read ReadCore; + property DocumentRels read ReadDocumentRels; + property Themes read ReadThemes; + property Document read ReadDocument; + property endnotes read Readendnotes; + property FontTable read ReadFontTable; + property Footnotes read ReadFootnotes; + property Settings read ReadSettings; + property Styles read ReadStyles; + property WebSettings read ReadWebSettings; + property ContentTypes read ReadContentTypes; + property ChartRels read ReadChartRels; + property Charts read ReadCharts; + property Comments read ReadComments; + property Footers read ReadFooters; + property Headers read ReadHeaders; + property Numbering read ReadNumbering; + function ReadRels(); + function ReadApp(); + function ReadCore(); + function ReadDocumentRels(); + function ReadThemes(_index); + function ReadDocument(); + function Readendnotes(); + function ReadFontTable(); + function ReadFootnotes(); + function ReadSettings(); + function ReadStyles(); + function ReadWebSettings(); + function ReadContentTypes(); + function ReadChartRels(_index: integer); + function ReadCharts(_index: integer); + function ReadComments(); + function ReadFooters(_index: integer); + function ReadHeaders(_index: integer); + function ReadNumbering(); + +protected + function NewObject(_name: string): tslobj;override; + +private + + // xml + rels_: Relationships; + app_: Properties; + core_: CoreProperties; + document_rels_: Relationships; + theme_array_: array of Theme; + document_: Document; + endnotes_: Endnotes; + font_table_: FontTable; + footnotes_: Footnotes; + settings_: Settings; + styles_: Styles; + web_settings_: WebSettings; + content_types_: Types; + chart_rels_array_: array of Relationships; + chart_array_: array of ChartSpace; + comments_: Comments; + footer_array_: array of Ftr; + header_array_: array of Hdr; + numbering_: Numbering; + +end; + +function Components.Create(); +begin + Class(TSComponentsBase).Create(); +end; + +function Components.Init();override; +begin + conf_ := array + ( + "rels": array("_rels/.rels", "Relationships"), + "app": array("docProps/app.xml", "Properties"), + "core": array("docProps/core.xml", "cp:coreProperties"), + "document_rels": array("word/_rels/document.xml.rels", "Relationships"), + "theme": array("word/theme/theme%d.xml", "a:theme"), + "document": array("word/document.xml", "w:document"), + "endnotes": array("word/endnotes.xml", "w:endnotes"), + "font_table": array("word/fontTable.xml", "w:fonts"), + "footnotes": array("word/footnotes.xml", "w:footnotes"), + "settings": array("word/settings.xml", "w:settings"), + "styles": array("word/styles.xml", "w:styles"), + "web_settings": array("word/webSettings.xml", "w:webSettings"), + "content_types": array("[Content_Types].xml", "Types"), + "chart_rels": array("word/charts/_rels/chart%d.xml.rels", "Relationships"), + "chart": array("word/charts/chart%d.xml", "a:chartSpace"), + "comments": array("word/comments.xml", "w:comments"), + "footer": array("word/footer%d.xml", "w:ftr"), + "header": array("word/header%d.xml", "w:hdr"), + "numbering": array("word/numbering.xml", "w:numbering"), + ); + rels_ := nil; + app_ := nil; + core_ := nil; + document_rels_ := nil; + theme_array_ := array(); + document_ := nil; + endnotes_ := nil; + font_table_ := nil; + footnotes_ := nil; + settings_ := nil; + styles_ := nil; + web_settings_ := nil; + content_types_ := nil; + chart_rels_array_ := array(); + comments_ := nil; + footer_array_ := array(); + header_array_ := array(); + numbering_ := nil; +end; + +function Components.NewObject(_name: string): tslobj;override; +begin + case _name of + "rels", "document_rels", "chart_rels": + return new Relationships(); + "app": + return new Properties(); + "core": + return new CoreProperties(); + "document": + return new Document(); + "endnotes": + return new Endnotes(); + "font_table": + return new FontTable(); + "footnotes": + return new Footnotes(); + "settings": + return new Settings(); + "styles": + return new Styles(); + "web_settings": + return new WebSettings(); + "theme": + return new Theme(); + "content_types": + return new Types(); + "chart": + return new ChartSpace(); + "comments": + return new Comments(); + "footer": + return new Ftr(); + "header": + return new Hdr(); + "numbering": + return new Numbering(); + end; +end; + +function Components.ReadRels(); +begin + return self.GetProp(rels_, "rels"); +end; + +function Components.ReadApp(); +begin + return self.GetProp(app_, "app"); +end; + +function Components.ReadCore(); +begin + return self.GetProp(core_, "core"); +end; + +function Components.ReadDocumentRels(); +begin + return self.GetProp(document_rels_, "document_rels"); +end; + +function Components.ReadDocument(); +begin + return self.GetProp(document_, "document"); +end; + +function Components.Readendnotes(); +begin + return self.GetProp(endnotes_, "endnotes"); +end; + +function Components.ReadFontTable(); +begin + return self.GetProp(font_table_, "font_table"); +end; + +function Components.ReadFootnotes(); +begin + return self.GetProp(footnotes_, "footnotes"); +end; + +function Components.ReadSettings(); +begin + return self.GetProp(settings_, "settings"); +end; + +function Components.ReadStyles(); +begin + return self.GetProp(styles_, "styles"); +end; + +function Components.ReadWebSettings(); +begin + return self.GetProp(web_settings_, "web_settings"); +end; + +function Components.ReadThemes(_index); +begin + return self.GetPropArr(theme_array_, "theme", _index); +end; + +function Components.ReadContentTypes(); +begin + return self.GetProp(content_types_, "content_types"); +end; + +function Components.ReadChartRels(_index: integer); +begin + return self.GetPropArr(chart_rels_array_, "chart_rels", _index); +end; + +function Components.ReadCharts(_index: integer); +begin + return self.GetPropArr(chart_array_, "chart", _index); +end; + +function Components.ReadComments(); +begin + return self.GetProp(comments_, "comments"); +end; + +function Components.ReadHeaders(_index: integer); +begin + return self.GetPropArr(header_array_, "header", _index); +end; + +function Components.ReadFooters(_index: integer); +begin + return self.GetPropArr(footer_array_, "footer", _index); +end; + +function Components.ReadNumbering(); +begin + return self.GetProp(numbering_, "numbering"); +end; diff --git a/openxml/OpenXmlAttribute.tsf b/openxml/OpenXmlAttribute.tsf new file mode 100644 index 0000000..7366af5 --- /dev/null +++ b/openxml/OpenXmlAttribute.tsf @@ -0,0 +1,25 @@ +type OpenXmlAttribute = class +public + function Create(_prefix: string; _local_name: string);overload; + function Create(_prefix: string; _local_name: string; _value: any);overload; + +public + LocalName: string; + Prefix: tslobj; + ElementName: string; + Value: any; +end; + +function OpenXmlAttribute.Create(_prefix: string; _local_name: string);overload; +begin + self.Create(_prefix, _local_name, nil); +end; + +function OpenXmlAttribute.Create(_prefix: string; _local_name: string; _value: any);overload; +begin + self.Prefix := _prefix; + self.LocalName := _local_name; + self.Value := _value; + self.ElementName := ifString(self.Prefix) and self.Prefix <> "" ? format("%s:%s", self.Prefix, self.LocalName) : self.LocalName; +end; + diff --git a/openxml/OpenXmlElement.tsf b/openxml/OpenXmlElement.tsf new file mode 100644 index 0000000..0877681 --- /dev/null +++ b/openxml/OpenXmlElement.tsf @@ -0,0 +1,236 @@ +type OpenXmlElement = class +public + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();virtual; + function InitAttributes();virtual; + function InitChildren();virtual; + function InitNode(_node: XmlNode);virtual; + function Copy(_obj: tslobj);virtual; + + function Deserialize(); + function Serialize(); + function Marshal(): tableArray; + function GetOrCreateNode(_obj: tslobj); + function GetNode(): XmlNode; + + // 增删改查接口 + function Append(_obj: tslobj): boolean; // OpenXmlElement or OpenXmlPcdata + function InsertAfter(_pos_obj: tslobj; _obj: tslobj): boolean; + function InsertBefore(_pos_obj: tslobj; _obj: tslobj): boolean; + function Prepend(var _obj: tslobj): boolean; + function Remove(_obj: tslobj): boolean; + function AddAttribute(_obj: OpenXmlAttribute): boolean; + function Elements(): array of tslobj; + +protected + function IsValidChild(_obj: tslobj); + function FindChild(_obj: tslobj); + function InsertChild(_obj: tslobj; _pos: integer); + +public + LocalName: string; // 本地名称 + [weakref]Parent: tslobj; // 父类 + Prefix: tslobj; // 前缀 + XmlNode: XmlNode; // XMLNode节点 + ElementName: string; + +protected + attributes_: tableArray; // 属性 + child_elements_: array of tslobj; // 子节点元素 + sorted_child_: tableArray; +end; + +function OpenXmlElement.Create(_node: XmlNode);overload; +begin + node_name := _node.GetName(); + pos := Pos(":", node_name); + if pos then self.Create(nil, node_name[:pos-1], node_name[pos+1:]); + else self.Create(nil, nil, node_name); + self.InitNode(_node); +end; + +function OpenXmlElement.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + self.Parent := _parent; + self.Prefix := _prefix; + self.LocalName := _local_name; + self.XmlNode := nil; + self.ElementName := ifString(self.Prefix) and self.Prefix <> "" ? format("%s:%s", self.Prefix, self.LocalName) : self.LocalName; + self.Init(); + self.InitAttributes(); + self.InitChildren(); +end; + +function OpenXmlElement.GetOrCreateNode(_obj: tslobj); +begin + if not ifObj(self.XmlNode) then self.XmlNode := Self.Parent.GetOrCreateNode(self); + nearest_node := nil; + for k, v in child_elements_ do + begin + if ifObj(v.XmlNode) then nearest_node := v.XmlNode; + if v = _obj then + begin + if ifObj(v.XmlNode) then return v.XmlNode; + if ifnil(nearest_node) then return self.XmlNode.InsertFirstChild("element", _obj.ElementName); + else return self.XmlNode.InsertAfterChild(nearest_node, "element", _obj.ElementName); + end + end + raise "No child."; +end; + +function OpenXmlElement.GetNode(): XmlNode; +begin + if not ifObj(self.XmlNode) then self.XmlNode := self.Parent.GetOrCreateNode(self); + return self.XmlNode; +end; + +function OpenXmlElement.Deserialize(); +begin + if not ifObj(self.XmlNode) then return nil; + for k, v in attributes_ do + begin + attr := self.XmlNode.GetAttribute(v.ElementName); + v.Value := attr = "" ? nil : attr; + end + for k, v in child_elements_ do + v.Deserialize(); +end; + +function OpenXmlElement.Serialize(); +begin + // Attributes + for k, v in attributes_ do + if not ifnil(v.Value) then self.GetNode().SetAttribute(v.ElementName, v.Value); + // Children + for k, v in child_elements_ do + if ifObj(v) then v.Serialize(); +end; + +function OpenXmlElement.Marshal(): tableArray; +begin + child_arr := array(); + for k, v in child_elements_ do + begin + if ifnil(v) then continue; + arr := array("type": "element", "name": v.ElementName, "attributes": array()); + if v is Class(OpenXmlPcdata) or v is Class(OpenXmlElement) then + begin + marshal := v.Marshal(); + if length(marshal["children"]) = 0 and length(marshal["attributes"]) = 0 then continue; + arr["children"] := marshal["children"]; + arr["attributes"] union= marshal["attributes"]; + child_arr[length(child_arr)] := arr; + end + else if v is Class(OpenXmlEmpty) then + begin + marshal := v.Marshal(); + if length(marshal) > 0 then child_arr[length(child_arr)] := arr; + end + else begin + echo "error = marshal,\n"; + end + end + + tmp_arr := array("type": "element", "name": self.ElementName, "children": child_arr, "attributes": array()); + for k,v in attributes_ do + begin + if not ifnil(v.Value) then tmp_arr["attributes"][v.ElementName] := v.Value; + end + return tmp_arr; +end; + +function OpenXmlElement.Append(_obj: tslobj): boolean; // OpenXmlElement or OpenXmlPcdata +begin + if not self.IsValidChild(_obj) then return false; + _obj.Parent := self; + child_elements_[length(child_elements_)] := _obj; + // _obj := nil; + return true; +end; + +function OpenXmlElement.InsertAfter(_pos_obj: tslobj; _obj: tslobj): boolean; +begin + if not self.IsValidChild(_pos_obj) or not self.IsValidChild(_obj) then return false; + find_pos := self.FindChild(_pos_obj); + if find_pos = -1 then return false; + self.InsertChild(_obj, find_pos); + return true; +end; + +function OpenXmlElement.InsertBefore(_pos_obj: tslobj; _obj: tslobj): boolean; +begin + if not self.IsValidChild(_pos_obj) or not self.IsValidChild(_obj) then return false; + find_pos := self.FindChild(_pos_obj); + if find_pos = -1 then return false; + self.InsertChild(_obj, find_pos-1); + return true; +end; + +function OpenXmlElement.Prepend(_obj: tslobj): boolean; +begin + if not self.IsValidChild(_pos_obj) or not self.IsValidChild(_obj) then return false; + self.InsertChild(_obj, 0); + return true; +end; + +function OpenXmlElement.Remove(_obj: tslobj): boolean; +begin + if ifnil(_obj)then // 删除所有 + begin + if not ifObj(self.XmlNode) or not ifObj(self.Parent) or not ifObj(self.PartName.XmlNode) then return false; + self.Parent.XmlNode.DeleteChild(self.XmlNode); + return true; + end + else if self.IsValidChild(_obj) then + begin + if not ifObj(_obj.XmlNode) or not ifObj(self.XmlNode) then return false; + self.XmlNode.DeleteChild(_obj.XmlNode); + return true; + end + else if _obj is Class(OpenXmlAttribute) then + begin + if not ifObj(self.XmlNode) then return false; + self.XmlNode.DeleteAttribute(_obj.ElementName); + return false; + end +end; + +function OpenXmlElement.AddAttribute(_obj: OpenXmlAttribute): boolean; +begin + if not _obj is Class(OpenXmlAttribute) then return false; + attributes_[length(attributes_)] := _obj; + return true; +end; + +function OpenXmlElement.InsertChild(_obj: tslobj; _pos: integer); +begin + for i:=length(child_elements_)-1 downto _pos do + child_elements_[i+1] := child_elements_[i]; + _obj.Parent := self; + child_elements_[_pos] := _obj; +end; + +function OpenXmlElement.IsValidChild(_obj: tslobj): boolean; +begin + return _obj is Class(OpenXmlPcdata) or _obj is Class(OpenXmlElement) ? true : false; +end; + +function OpenXmlElement.FindChild(_obj: tslobj); +begin + not_found := true; + for k,v in child_elements_ do + begin + if v = _obj then + begin + not_found := false; + break; + end + end + return not_found ? -1 : k; +end; + +function OpenXmlElement.Elements(): array of tslobj; +begin + return child_elements_; +end; diff --git a/openxml/OpenXmlEmpty.tsf b/openxml/OpenXmlEmpty.tsf new file mode 100644 index 0000000..5dc57b7 --- /dev/null +++ b/openxml/OpenXmlEmpty.tsf @@ -0,0 +1,107 @@ +type OpenXmlEmpty = class +public + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init(); + function InitNode(_node: XmlNode); + + function Copy(_obj: tslobj);virtual; + function GetNode(): XmlNode; + function Marshal(): tableArray; + function Deserialize(); + function Serialize(); + +public + LocalName: string; // 本地名称 + Parent: tslobj; // 父类 + [weakref]Prefix: tslobj; // 前缀 + XmlNode: XmlNode; // XMLNode节点 + ElementName: string; + Value: any; + +public + XmlAttrVal; + property Val read ReadXmlAttrVal write WriteXmlAttrVal; + function ReadXmlAttrVal(); + function WriteXmlAttrVal(_value: any); +end; + +function OpenXmlEmpty.Create(_node: XmlNode);overload; +begin + node_name := _node.GetName(); + pos := Pos(":", node_name); + if pos then self.Create(nil, node_name[:pos-1], node_name[pos+1:]); + else self.Create(nil, nil, node_name); + self.InitNode(_node); +end; + +function OpenXmlEmpty.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + self.Parent := _parent; + self.Prefix := _prefix; + self.LocalName := _local_name; + self.XmlNode := nil; + self.ElementName := ifString(self.Prefix) and self.Prefix <> "" ? format("%s:%s", self.Prefix, self.LocalName) : self.LocalName; + self.Init(); +end; + +function OpenXmlEmpty.Init(); +begin + self.XmlAttrVal := new OpenXmlAttribute(self.Prefix, "val", nil); +end + +function OpenXmlEmpty.InitNode(_node: XmlNode); +begin + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function OpenXmlEmpty.Copy(_obj: tslobj); +begin + if not ifnil(_obj.Value) then self.Value := _obj.Value; + if not ifnil(_obj.XmlAttrVal.Value) then self.XmlAttrVal.Value := _obj.XmlAttrVal.Value; +end; + +function OpenXmlEmpty.Marshal(): tableArray; +begin + if not self.Value then return array(); + attr := array(); + if not inil(self.XmlAttrVal.Value) then attr[self.XmlAttrVal.ElementName] := self.XmlAttrVal.Value; + arr := array("type": "element", "name": name_, "attributes": attr, "children": array()); + return arr; +end; + +function OpenXmlEmpty.Deserialize(); +begin + if ifObj(self.XmlNode) then + begin + v := self.XmlNode.GetAttribute(self.XmlAttrVal.ElementName); + self.Value := v = "0" ? false : true; + self.XmlAttrVal.Value := v = "" ? nil : v; + end + else begin + self.Value := nil; + end +end; + +function OpenXmlEmpty.GetNode(): XmlNode; +begin + if not ifObj(self.XmlNode) then self.XmlNode := self.Parent.GetOrCreateNode(self); + return self.XmlNode; +end; + +function OpenXmlEmpty.Serialize(); +begin + if not ifObj(self.XmlNode) and not self.Value then return; + if ifObj(self.XmlNode) and not self.Value and ifObj(self.Parent) and ifObj(self.Parent.XmlNode) then self.Parent.XmlNode.DeleteChild(self.XmlNode); + if not ifObj(self.XmlNode) and self.Value then self.GetNode(); +end; + +function OpenXmlEmpty.ReadXmlAttrVal(); +begin + return self.XmlAttrVal.Value; +end; + +function OpenXmlEmpty.WriteXmlAttrVal(_value: any); +begin + self.XmlAttrVal.Value := _value; +end; diff --git a/openxml/OpenXmlPcdata.tsf b/openxml/OpenXmlPcdata.tsf new file mode 100644 index 0000000..8c7f7bd --- /dev/null +++ b/openxml/OpenXmlPcdata.tsf @@ -0,0 +1,82 @@ +type OpenXmlPcdata = class +public + function Create(_node: XmlNode);overload; + function Create(_parent: tslobj; _prefix: string; _local_name: string);overload; + function Init();virtual; + function InitAttributes();virtual; + function InitNode(_node: XmlNode);virtual; + + function Copy(_obj: tslobj);virtual; + function GetNode(): XmlNode; + function Marshal(): tableArray; + function Deserialize(); + function Serialize(); + +public + LocalName: string; // 本地名称 + [weakref]Parent: tslobj; // 父类 + Prefix: tslobj; // 前缀 + XmlNode: XmlNode; // XMLNode节点 + ElementName: string; + Text: string; // 元素的文本内容,有的话就是pcdata,没有就是普通的节点 + +protected + attributes_: tableArray; // 不提供访问 + +end; + +function OpenXmlPcdata.Create(_node: XmlNode);overload; +begin + node_name := _node.GetName(); + pos := Pos(":", node_name); + if pos then self.Create(nil, node_name[:pos-1], node_name[pos+1:]); + else self.Create(nil, nil, node_name); + self.InitNode(_node); +end; + +function OpenXmlPcdata.Create(_parent: tslobj; _prefix: string; _local_name: string);overload; +begin + self.Parent := _parent; + self.Prefix := _prefix; + self.LocalName := _local_name; + self.XmlNode := nil; + self.Text := nil; + self.ElementName := ifString(self.Prefix) and self.Prefix <> "" ? format("%s:%s", self.Prefix, self.LocalName) : self.LocalName; + self.Init(); + self.InitAttributes(); +end; + +function OpenXmlPcdata.InitNode(_node: XmlNode);virtual; +begin + self.XmlNode := ifObj(_node) ? _node : nil; +end; + +function OpenXmlPcdata.Marshal(): tableArray; +begin + arr := array("type": "element", "name": name_, "attributes": array(), "children": array()); + for k,v in attributes_ do + if not ifnil(v.Value) then arr["attributes"][v.ElementName] := v.Value; + if not ifnil(self.Text) then arr["children"] := array(("type": "pcdata", "value": self.Text)); + return arr; +end; + +function OpenXmlPcdata.Deserialize(); +begin + self.Text := ifObj(self.XmlNode) ? self.XmlNode.GetText() : nil; + for k,v in attributes_ do + v.Value := ifObj(self.XmlNode) ? self.XmlNode.GetAttribute(v.ElementName) : nil; +end; + +function OpenXmlPcdata.GetNode(): XmlNode; +begin + if not ifObj(self.XmlNode) then self.XmlNode := self.Parent.GetOrCreateNode(self); + return self.XmlNode; +end; + +function OpenXmlPcdata.Serialize(); +begin + if not ifnil(self.Text) then self.GetNode().SetValue(self.Text); + for k,v in attributes_ do + if not ifnil(v.Value) then self.GetNode().SetAttribute(v.ElementName, v.Value); +end; + diff --git a/pptx/Components@PPTX.tsf b/pptx/Components@PPTX.tsf new file mode 100644 index 0000000..47c67bc --- /dev/null +++ b/pptx/Components@PPTX.tsf @@ -0,0 +1,216 @@ +type Components = class(TSComponentsBase) +public + function Create(); + function Init();override; + + property Rels read ReadRels; + property App read ReadApp; + property Core read ReadCore; + property PresentationRels read ReadPresentationRels; + property SlideLayouts read ReadSlideLayouts; + property SlideLayoutRels read ReadSlideLayoutRels; + property SlideMasters read ReadSlideMasters; + property SlideMasterRels read ReadSlideMasterRels; + property Slides read ReadSlides; + property SlideRels read ReadSlideRels; + property Themes read ReadThemes; + property Presentation read ReadPresentation; + property PresProps read ReadPresProps; + property TableStyles read ReadTableStyles; + property ViewProps read ReadViewProps; + property ContentTypes read ReadContentTypes; + function ReadRels(); + function ReadApp(); + function ReadCore(); + function ReadPresentationRels(); + function ReadSlideLayouts(_index: integer); + function ReadSlideLayoutRels(_index: integer); + function ReadSlideMasters(_index: integer); + function ReadSlideMasterRels(_index: integer); + function ReadSlides(_index: integer); + function ReadSlideRels(_index: integer); + function ReadThemes(_index: integer); + function ReadPresentation(); + function ReadPresProps(); + function ReadTableStyles(); + function ReadViewProps(); + function ReadContentTypes(); + +protected + function NewObject(_name: string): tslobj;override; + +private + + // xml + rels_: Relationships; + app_: Properties; + core_: CoreProperties; + presentation_rels_: Relationships; + slide_layout_array_: array of SldLayout; + slide_layout_rels_array_ array of Relationships; + slide_master_array_: array of SldMaster; + slide_master_rels_array_: array of Relationships; + slide_array_: array of Sld; + slide_rels_array_: array of Relationships; + theme_array_: array of Theme; + presentation_: Presentation; + pres_props_: PresnetationPr; + table_styles_: TblStyleLst; + view_props_: ViewPr; + content_types_: Types; + +end; + +function Components.Create(); +begin + Class(TSComponentsBase).Create(); +end; + +function Components.Init();override; +begin + conf_ := array + ( + "rels": array("_rels/.rels", "Relationships"), + "app": array("docProps/app.xml", "Properties"), + "core": array("docProps/core.xml", "cp:coreProperties"), + "presentation_rels": array("ppt/_rels/presentation.xml.rels", "Relationships"), + "slide_layout": array("ppt/slideLayouts/slideLayout%d.xml", "p:sldLayout"), + "slide_layout_rels": array("ppt/slideLayouts/_rels/slideLayout%d.xml.rels", "Relationships"), + "slide_master": array("ppt/slideMasters/slideMaster%d.xml", "p:sldMaster"), + "slide_master_rels": array("ppt/slideMasters/_rels/slideMaster%d.xml.rels", "Relationships"), + "slide": array("ppt/slides/slide%d.xml", "p:sld"), + "slide_rels": array("ppt/slides/_rels/slide%d.xml.rels", "Relationships"), + "theme": array("ppt/theme/theme%d.xml", "a:theme"), + "presentation": array("ppt/presentation.xml", "p:presentation"), + "pres_props": array("ppt/presProps.xml", "p:presentationPr"), + "table_styles": array("ppt/tableStyles.xml", "a:tblStyleLst"), + "view_props": array("ppt/viewProps.xml", "p:viewPr"), + "content_types": array("[Content_Types].xml", "Types"), + ); + rels_ := nil; + app_ := nil; + core_ := nil; + presentation_rels_ := nil; + slide_layout_array_ := array(); + slide_layout_rels_array_ := array(); + slide_master_array_ := array(); + slide_master_rels_array_ := array(); + slide_array_ := array(); + slide_rels_array_ := array(); + theme_array_ := array(); + presentation_ := nil; + pres_props_ := nil; + table_styles_ := nil; + view_props_ := nil; + content_types_ := nil; +end; + +function Components.NewObject(_name: string): tslobj;override; +begin + case _name of + "rels", "presentation_rels", "slide_layout_rels", "slide_master_rels", "slide_rels": + return new Relationships(); + "app": + return new Properties(); + "core": + return new CoreProperties(); + "theme": + return new Theme(); + "content_types": + return new Types(); + "slide": + return new Sld(); + "slide_layout": + return new SldLayout(); + "slide_master": + return new SldMaster(); + "presentation": + return new Presentation(); + "pres_props": + return new PresnetationPr(); + "table_styles": + return new TblStyleLst(); + "view_props": + return new ViewPr(); + end; +end; + +function Components.ReadRels(); +begin + return self.SetProp(rels_, "rels"); +end; + +function Components.ReadApp(); +begin + return self.SetProp(app_, "app"); +end; + +function Components.ReadCore(); +begin + return self.SetProp(core_, "core"); +end; + +function Components.ReadPresentationRels(); +begin + return self.SetProp(presentation_rels_, "presentation_rels"); +end; + +function Components.ReadSlideLayouts(_index: integer); +begin + return self.SetPropArr(slide_layout_array_, "slide_layout", _index); +end; + +function Components.ReadSlideLayoutRels(_index: integer); +begin + return self.SetPropArr(slide_layout_rels_array_, "slide_layout_rels", _index); +end; + +function Components.ReadSlideMasters(_index: integer); +begin + return self.SetPropArr(slide_master_array_, "slide_master", _index); +end; + +function Components.ReadSlideMasterRels(_index: integer); +begin + return self.SetPropArr(slide_master_rels_array_, "slide_master_rels", _index); +end; + +function Components.ReadSlides(_index: integer); +begin + return self.SetPropArr(slide_array_, "slide", _index); +end; + +function Components.ReadSlideRels(_index: integer); +begin + return self.SetPropArr(slide_rels_array_, "slide_rels", _index); +end; + +function Components.ReadThemes(_index: integer); +begin + return self.SetPropArr(theme_array_, "theme", _index); +end; + +function Components.ReadPresentation(); +begin + return self.SetProp(presentation_, "presentation"); +end; + +function Components.ReadPresProps(); +begin + return self.SetProp(pres_props_, "pres_props"); +end; + +function Components.ReadTableStyles(); +begin + return self.SetProp(table_styles_, "table_styles"); +end; + +function Components.ReadViewProps(); +begin + return self.SetProp(view_props_, "view_props"); +end; + +function Components.ReadContentTypes(); +begin + return self.SetProp(content_types_, "content_types"); +end; diff --git a/utils/TSComponentsBase.tsf b/utils/TSComponentsBase.tsf new file mode 100644 index 0000000..e1d6270 --- /dev/null +++ b/utils/TSComponentsBase.tsf @@ -0,0 +1,78 @@ +type TSComponentsBase = class +public + function Create(); + function Init();virtual; + function OpenFile(alias: string; file: string; password: string): tableArray; + function Zip(): ZipFile; + +protected + function GetProp(_variable: tslobj; _name: string): tslobj; + function GetPropArr(_variable: tslobj; _name: string; _index: integer): tslobj; + function NewObject(_name: string): tslobj;virtual; + +protected + zipfile_: ZipFile; + conf_: tableArray; + +end; + +function TSComponentsBase.Create(); +begin +end; + +function TSComponentsBase.OpenFile(alias: string; file: string; password: string): tableArray; +begin + self.Init(); + zipfile_ := new ZipFile(); + return zipfile_.Open(alias, file, password); +end; + +function TSComponentsBase.Zip(): ZipFile; +begin + return zipfile_; +end + +function TSComponentsBase.GetProp(_variable: tslobj; _name: string): tslobj; +begin + if ifnil(_variable) then + begin + name := conf_[_name][0]; + xml := zipfile_.Get(name); + if ifObj(xml) then + begin + node := xml.FirstChild(conf_[_name][1]); + if not ifObj(node) then raise (name $ " error."); + _variable := self.NewObject(_name); + _variable.InitNode(node); + end + end + return _variable; +end; + +function TSComponentsBase.GetPropArr(_variable: tslobj; _name: string; _index: integer): tslobj; +begin + if not ifNumber(_index) then + begin + ind := 1; + name := Format(conf_[_name][0], ind); + xml := zipfile_.Get(name); + while ifObj(xml) do + begin + node := xml.FirstChild(conf_[_name][1]); + obj := self.NewObject(_name); + obj.InitNode(node); + _variable[length(_variable)] := obj; + name := Format(conf_[_name][0], ++ind); + xml := zipfile_.Get(name); + end + return _variable; + end + if ifnil(_variable[_index]) then + begin + obj := nil; + self.SetProp(obj, _name, _index + 1); + _variable[_index] := obj; + end + return _variable[_index]; +end; + diff --git a/utils/TSSafeUnitConverter.tsf b/utils/TSSafeUnitConverter.tsf new file mode 100644 index 0000000..0ac7215 --- /dev/null +++ b/utils/TSSafeUnitConverter.tsf @@ -0,0 +1,41 @@ +unit TSSafeUnitConverter; +interface + function TwipsToPoints(value): real; + function EmusToPoints(value): real; + function HalfPointToPoints(value): real; + function PercentToNumber(value): real; + +implementation + +uses TSUnitConverter; + + function TwipsToPoints(value): real; + begin + if ifNil(value) then return 0; + new_value := ifString(value) ? strToFloat(value) : value; + return TSUnitConverter.TwipsToPoints(new_value); + end; + + function HalfPointToPoints(value): real; + begin + if ifNil(value) then return 0; + new_value := ifString(value) ? strToFloat(value) : value; + return TSUnitConverter.HalfPointToPoints(new_value); + end; + + function EmusToPoints(value): real; + begin + if ifNil(value) then return 0; + new_value := ifString(value) ? strToFloat(value) : value; + return TSUnitConverter.EmusToPoints(new_value); + end; + + function PercentToNumber(value): real; + begin + if ifNil(value) then return 0; + new_value := ifString(value) ? strToFloat(value) : value; + return TSUnitConverter.PercentToNumber(new_value); + end; + +end. + diff --git a/utils/TSUnitConverter.tsf b/utils/TSUnitConverter.tsf new file mode 100644 index 0000000..bee8eae --- /dev/null +++ b/utils/TSUnitConverter.tsf @@ -0,0 +1,31 @@ +unit TSUnitConverter; +interface + function TwipsToPoints(value: real): real; + function EmusToPoints(value: real): real; + function HalfPointToPoints(value: real): real; + function PercentToNumber(value: real): real; + +implementation + + function TwipsToPoints(value: real): real; + begin + return value / 20; + end; + + function EmusToPoints(value: real): real; + begin + return value / 12700; + end; + + function HalfPointToPoints(value: real): real; + begin + return value / 2; + end; + + function PercentToNumber(value: real): real; + begin + return value / 100; + end + +end. +