public TextureGrid CreateDeepCopy() { var retval = new TextureGrid(FormattingMetaData.CreateCopy(), TextureTileFormattingMetaData.CreateCopy()) { X = X, Y = Y, Width = Width, Height = Height, AnchorX = AnchorX, AnchorY = AnchorY, CellWidth = CellWidth, CellHeight = CellHeight, CellSpacing = CellSpacing, MatcherType = MatcherType, Pattern = Pattern, Name = Name, }; foreach (var tile in Tiles) { retval.Tiles.Add(tile.CreateDeepCopy()); } foreach (var m in CellMappings) { retval.CellMappings.Add(m.CreateCopy()); } return(retval); }
public TileTextureCollection CreateDeepCopy() { var retval = new TileTextureCollection(FormattingMetaData.CreateCopy()); foreach (var g in Grids) { retval.Grids.Add(g.CreateDeepCopy()); } return(retval); }
static void ParseFormattingInfo(XElement e, FormattingMetaData target) { var metaData = e.ElementLocal("metadata"); if (metaData == null) { return; } target.Title = (string?)metaData.AttributeLocal("title") ?? target.Title; target.TextColor = metaData.AttributeLocal("text-color").AsColor() ?? target.TextColor; target.BorderColor = metaData.AttributeLocal("border-color").AsColor() ?? target.BorderColor; target.BackgroundColor = metaData.AttributeLocal("background-color").AsColor() ?? target.BackgroundColor; target.Margin = (int?)metaData.AttributeLocal("margin") ?? target.Margin; target.Padding = (int?)metaData.AttributeLocal("padding") ?? target.Padding; target.Border = (int?)metaData.AttributeLocal("border") ?? target.Border; }
public static XElement GenerateFormattingMetaData(FormattingMetaData m) { var me = new XElement(Namespace + "metadata"); if (!string.IsNullOrEmpty(m.Title)) { me.Add(new XAttribute("title", m.Title)); } m.BackgroundColor.AsText().ForNotEmpty(c => me.Add(new XAttribute("background-color", c))); m.TextColor.AsText().ForNotEmpty(c => me.Add(new XAttribute("text-color", c))); m.BorderColor.AsText().ForNotEmpty(c => me.Add(new XAttribute("border-color", c))); m.Border.ForNonNull(b => me.Add(new XAttribute("border", b))); m.Padding.ForNonNull(b => me.Add(new XAttribute("padding", b))); m.Margin.ForNonNull(b => me.Add(new XAttribute("margin", b))); return(me); }