protected override void FormatPlaceElement(PlaceObject2Tag tag, XElement elem) { if (tag.HasName) { elem.Add(new XAttribute(NAME_ATTRIB, tag.Name)); } if (tag.HasClipActions) { var flags1 = XClipEventFlags.GetFlags1(tag.ClipActions.Flags); var flags2 = XClipEventFlags.GetFlags2(tag.ClipActions.Flags); elem.Add(new XAttribute("allflags1", flags1)); elem.Add(new XAttribute("allflags2", flags2)); } if (tag.HasColorTransform) { elem.Add(new XElement(COLOR_TRANSFORM_ELEM, XColorTransformRGBA.ToXml(tag.ColorTransform))); } if (tag.HasClipDepth) { elem.Add(new XAttribute(CLIP_DEPTH, tag.ClipDepth)); } if (tag.HasClipActions) { elem.Add(XClipActionsList.ToXml(tag.ClipActions)); } if (tag.HasRatio) { elem.Add(new XAttribute(MORPH_ATTRIB, tag.Ratio)); } elem.Add(new XAttribute(REPLACE_ATTRIB, CommonFormatter.Format(tag.Move))); }
protected override bool AcceptPlaceTagElement(PlaceObject3Tag tag, XElement element) { switch (element.Name.LocalName) { case "filters": foreach (var xFilter in element.Elements()) { tag.Filters.Add(XFilter.FromXml(xFilter)); } break; case "events": tag.HasClipActions = true; XClipActionsList.FromXml(element, tag.ClipActions); break; case "colorTransform": tag.ColorTransform = XColorTransformRGBA.FromXml(element.Element("ColorTransform2")); break; default: return(false); } return(true); }
protected override void FormatPlaceElement(PlaceObject3Tag tag, XElement elem) { if (tag.Name != null) { elem.Add(new XAttribute("name", tag.Name)); } if (tag.ClassName != null) { elem.Add(new XAttribute("className", tag.ClassName)); } if (tag.HasClipActions) { var flags1 = XClipEventFlags.GetFlags1(tag.ClipActions.Flags); var flags2 = XClipEventFlags.GetFlags2(tag.ClipActions.Flags); elem.Add(new XAttribute("allflags1", flags1)); elem.Add(new XAttribute("allflags2", flags2)); } if (tag.Ratio.HasValue) { elem.Add(new XAttribute("morph", tag.Ratio.Value)); } elem.Add(new XAttribute("replace", CommonFormatter.Format(tag.Move))); elem.Add(new XAttribute("hasImage", CommonFormatter.Format(tag.HasImage))); if (tag.BitmapCache.HasValue) { elem.Add(new XAttribute(BITMAP_CACHING_ATTRIB, tag.BitmapCache.Value)); } if (tag.ColorTransform.HasValue) { elem.Add(new XElement("colorTransform", XColorTransformRGBA.ToXml(tag.ColorTransform.Value))); } if (tag.Filters.Count > 0) { var xFilters = new XElement("filters"); foreach (var filter in tag.Filters) { xFilters.Add(XFilter.ToXml(filter)); } elem.Add(xFilters); } if (tag.HasClipActions) { elem.Add(XClipActionsList.ToXml(tag.ClipActions)); } }
protected override bool AcceptPlaceTagElement(PlaceObject2Tag tag, XElement element) { switch (element.Name.LocalName) { case COLOR_TRANSFORM_ELEM: tag.ColorTransform = XColorTransformRGBA.FromXml(element.Element("ColorTransform2")); tag.HasColorTransform = true; break; case "events": tag.HasClipActions = true; XClipActionsList.FromXml(element, tag.ClipActions); break; default: return(false); } return(true); }
public static ButtonRecordEx FromXml(XElement xRecord) { var res = new ButtonRecordEx(); var xReserved = xRecord.Attribute("reserved"); var xBlendMode = xRecord.Attribute("blendMode"); res.StateHitTest = xRecord.RequiredBoolAttribute("hitTest"); res.StateDown = xRecord.RequiredBoolAttribute("down"); res.StateOver = xRecord.RequiredBoolAttribute("over"); res.StateUp = xRecord.RequiredBoolAttribute("up"); if (xReserved != null) { res.Reserved = byte.Parse(xReserved.Value); } if (xBlendMode != null) { res.BlendMode = (BlendMode)byte.Parse(xBlendMode.Value); } if (!res.IsEndButton) { res.CharacterID = xRecord.RequiredUShortAttribute("objectID"); res.PlaceDepth = xRecord.RequiredUShortAttribute("depth"); var xMatrix = xRecord.RequiredElement("transform").Element(XMatrix.TAG_NAME); res.PlaceMatrix = XMatrix.FromXml(xMatrix); var xColorTransform = xRecord.RequiredElement("colorTransform").Element("ColorTransform2"); res.ColorTransform = XColorTransformRGBA.FromXml(xColorTransform); var xFilters = xRecord.Element("filters"); if (xFilters != null) { foreach (var xFilter in xFilters.Elements()) { res.Filters.Add(XFilter.FromXml(xFilter)); } } } return(res); }
public static XElement ToXml(ButtonRecordEx record) { var res = new XElement("Button", new XAttribute("hitTest", CommonFormatter.Format(record.StateHitTest)), new XAttribute("down", CommonFormatter.Format(record.StateDown)), new XAttribute("over", CommonFormatter.Format(record.StateOver)), new XAttribute("up", CommonFormatter.Format(record.StateUp)) ); if (record.Reserved != 0) { res.Add(new XAttribute("reserved", record.Reserved)); } if (record.BlendMode.HasValue) { res.Add(new XAttribute("blendMode", (byte)record.BlendMode)); } if (!record.IsEndButton) { res.Add(new XAttribute("objectID", record.CharacterID)); res.Add(new XAttribute("depth", record.PlaceDepth)); res.Add(new XElement("transform", XMatrix.ToXml(record.PlaceMatrix))); res.Add(new XElement("colorTransform", XColorTransformRGBA.ToXml(record.ColorTransform))); if (record.Filters.Count > 0) { var xFilters = new XElement("filters"); foreach (var filter in record.Filters) { xFilters.Add(XFilter.ToXml(filter)); } res.Add(xFilters); } } return(res); }