public static ConvolutionFilter FromXml(XElement xFilter) { var xMatrix = xFilter.RequiredElement("matrix"); var xReserved = xFilter.Attribute("reserved"); var filter = new ConvolutionFilter { Divisor = xFilter.RequiredDoubleAttribute("divisor"), Bias = xFilter.RequiredDoubleAttribute("bias") }; var xRows = xMatrix.Elements().ToList(); var height = xRows.Count; var width = xMatrix.Elements().First().Elements().Count(); filter.Matrix = new double[height, width]; for (var y = 0; y < filter.MatrixY; y++) { var xRow = xRows[y]; var xCols = xRow.Elements().ToList(); for (var x = 0; x < filter.MatrixX; x++) { var xCol = xCols[x]; filter.Matrix[y, x] = CommonFormatter.ParseDouble(xCol.Value); } } filter.DefaultColor = XColorRGBA.FromXml(xFilter.RequiredElement("color").Element("Color")); if (xReserved != null) { filter.Reserved = byte.Parse(xReserved.Value); } filter.Clamp = xFilter.RequiredBoolAttribute("clamp"); filter.PreserveAlpha = xFilter.RequiredBoolAttribute("preserveAlpha"); return filter; }
public static void FromXml(XElement xStyleList, IList<FillStyleRGBA> fillStyles, IList<LineStyleEx> lineStyles) { var xFillStyles = xStyleList.RequiredElement("fillStyles"); foreach (var xFillStyle in xFillStyles.Elements()) { var fillStyle = XFillStyle.FromXmlRGBA(xFillStyle); fillStyles.Add(fillStyle); } var xLineStyles = xStyleList.RequiredElement("lineStyles"); foreach (var xLineStyle in xLineStyles.Elements()) { var lineStyle = XLineStyleEx.FromXml(xLineStyle); lineStyles.Add(lineStyle); } }
public static void FromXml(XElement xShape, IList<IShapeRecordEx> records) { var xEdges = xShape.RequiredElement("edges"); foreach (var xShapeRecord in xEdges.Elements()) { records.Add(XShapeRecord.ExFromXml(xShapeRecord)); } }
public static SolidFillStyleRGBA FromXmlRGBA(XElement xFillStyle) { var xColor = xFillStyle.RequiredElement("color").Element("Color"); return new SolidFillStyleRGBA { Color = XColorRGBA.FromXml(xColor) }; }
public static Glyph FromXml(XElement xGlyph, Glyph glyph) { var xEdges = xGlyph.RequiredElement("edges"); foreach (var xShapeRecord in xEdges.Elements()) { glyph.Records.Add(XShapeRecord.RGBFromXml(xShapeRecord)); } return glyph; }
public static GradientRecordRGB FromXml(XElement xRecord) { var record = new GradientRecordRGB { Ratio = xRecord.RequiredByteAttribute("position"), Color = XColorRGB.FromXml(xRecord.RequiredElement("color").Element("Color")) }; return record; }
public static LineStyleRGBA FromXml(XElement xLineStyle) { var xColor = xLineStyle.RequiredElement("color").Element("Color"); return new LineStyleRGBA { Width = xLineStyle.RequiredUShortAttribute("width"), Color = XColorRGBA.FromXml(xColor) }; }
public static BevelFilter FromXml(XElement xFilter) { var xCompositeSource = xFilter.Attribute("compositeSource"); var xShadowColor = xFilter.RequiredElement("shadowColor").Element("Color"); var xHighlightColor = xFilter.RequiredElement("highlightColor").Element("Color"); return new BevelFilter { Angle = xFilter.RequiredDoubleAttribute("angle"), BlurX = xFilter.RequiredDoubleAttribute("blurX"), BlurY = xFilter.RequiredDoubleAttribute("blurY"), Distance = xFilter.RequiredDoubleAttribute("distance"), InnerShadow = xFilter.RequiredBoolAttribute("innerShadow"), Knockout = xFilter.RequiredBoolAttribute("knockout"), Passes = xFilter.RequiredUIntAttribute("passes"), Strength = xFilter.RequiredDoubleAttribute("strength"), CompositeSource = xCompositeSource == null || CommonFormatter.ParseBool(xCompositeSource.Value), OnTop = xFilter.RequiredBoolAttribute("onTop"), ShadowColor = XColorRGBA.FromXml(xShadowColor), HighlightColor = XColorRGBA.FromXml(xHighlightColor) }; }
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 GlowFilter FromXml(XElement xFilter) { var xCompositeSource = xFilter.Attribute("compositeSource"); var xColor = xFilter.RequiredElement("color").Element("Color"); return new GlowFilter { BlurX = xFilter.RequiredDoubleAttribute("blurX"), BlurY = xFilter.RequiredDoubleAttribute("blurY"), InnerGlow = xFilter.RequiredBoolAttribute("innerGlow"), Knockout = xFilter.RequiredBoolAttribute("knockout"), Passes = xFilter.RequiredUIntAttribute("passes"), Strength = xFilter.RequiredDoubleAttribute("strength"), CompositeSource = xCompositeSource == null || CommonFormatter.ParseBool(xCompositeSource.Value), Color = XColorRGBA.FromXml(xColor) }; }
public static ZoneRecord FromXml(XElement xZoneRecord) { var zoneArray = new ZoneRecord(); var xZoneX = xZoneRecord.Attribute("zoneX"); var xZoneY = xZoneRecord.Attribute("zoneY"); var xReserved = xZoneRecord.Attribute("reserved"); zoneArray.ZoneX = CommonFormatter.ParseBool(xZoneX.Value); zoneArray.ZoneY = CommonFormatter.ParseBool(xZoneY.Value); if (xReserved != null) { zoneArray.Reserved = byte.Parse(xReserved.Value); } foreach (var xZoneData in xZoneRecord.RequiredElement("zones").Elements()) { zoneArray.Data.Add(XZoneData.FromXml(xZoneData)); } return zoneArray; }
private static IMenuItem LoadMenuItem( IServiceProvider serviceProvider, XElement itemElement, Func<string, string> resourceStringGetter) { if (itemElement.Name == XName.Get("menu", _menuDescriptorSchemaUri)) return new Menu( (string)itemElement.Attribute(XName.Get("name")), itemElement .Elements() .Select(sub => LoadMenuGroup(serviceProvider, sub, resourceStringGetter)), resourceStringGetter((string)itemElement.Attribute(XName.Get("textResource"))), (string)itemElement.Attribute(XName.Get("image")), (string)itemElement.Attribute(XName.Get("description")), (MenuItemDisplayStyle)Enum.Parse( typeof(MenuItemDisplayStyle), (string)itemElement.Attribute(XName.Get("displayStyle"))), (int)itemElement.Attribute(XName.Get("orderIndex"))); if (itemElement.Name == XName.Get("menuCommand", _menuDescriptorSchemaUri)) { var commandName = (string)itemElement.Attribute(XName.Get("command")); string text; string description; GetMenuCommandTextAndDescription( serviceProvider, commandName, (string)itemElement.Attribute(XName.Get("textResource")), (string)itemElement.Attribute(XName.Get("description")), resourceStringGetter, out text, out description); return new MenuCommand( commandName, LoadCommandParameters(itemElement), text, (string)itemElement.Attribute(XName.Get("image")), description, (MenuItemDisplayStyle)Enum.Parse( typeof(MenuItemDisplayStyle), (string)itemElement.Attribute(XName.Get("displayStyle"))), (int)itemElement.Attribute(XName.Get("orderIndex"))); } if (itemElement.Name == XName.Get("splitButton", _menuDescriptorSchemaUri)) { var commandName = (string)itemElement.Attribute(XName.Get("command")); string text; string description; GetMenuCommandTextAndDescription( serviceProvider, commandName, (string)itemElement.Attribute(XName.Get("textResource")), (string)itemElement.Attribute(XName.Get("description")), resourceStringGetter, out text, out description); return new MenuSplitButton( (string)itemElement.Attribute(XName.Get("name")), itemElement .Elements(XName.Get("group", _menuDescriptorSchemaUri)) .Select(sub => LoadMenuGroup(serviceProvider, sub, resourceStringGetter)), commandName, LoadCommandParameters(itemElement), text, (string)itemElement.Attribute(XName.Get("image")), description, (MenuItemDisplayStyle)Enum.Parse( typeof(MenuItemDisplayStyle), (string)itemElement.Attribute(XName.Get("displayStyle"))), (int)itemElement.Attribute(XName.Get("orderIndex"))); } if (itemElement.Name == XName.Get("menuCheckCommand", _menuDescriptorSchemaUri)) { var checkCommandElement = itemElement.RequiredElement( XName.Get("checkCommand", _menuDescriptorSchemaUri)); var checkCommandName = (string)checkCommandElement.Attribute(XName.Get("name")); var checkCommandParameters = LoadCommandParameters(checkCommandElement); var uncheckCommandElement = itemElement.RequiredElement( XName.Get("uncheckCommand", _menuDescriptorSchemaUri)); var uncheckCommandName = (string)uncheckCommandElement.Attribute(XName.Get("name")); var uncheckCommandParameters = LoadCommandParameters(uncheckCommandElement); return new MenuCheckCommand( (string)itemElement.Attribute(XName.Get("checkStateName")), checkCommandName, checkCommandParameters, uncheckCommandName, uncheckCommandParameters, resourceStringGetter((string)itemElement.Attribute(XName.Get("textResource"))), (string)itemElement.Attribute(XName.Get("image")), (string)itemElement.Attribute(XName.Get("description")), (MenuItemDisplayStyle)Enum.Parse( typeof(MenuItemDisplayStyle), (string)itemElement.Attribute(XName.Get("displayStyle"))), (int)itemElement.Attribute(XName.Get("orderIndex"))); } throw new ApplicationException("Неизвестный элемент '{0}'.".FormatStr(itemElement)); }
private static SwfMatrix GetMatrix(XElement xFillStyle) { var xMatrix = xFillStyle.RequiredElement("matrix"); return XMatrix.FromXml(xMatrix.Element(XMatrix.TAG_NAME)); }