コード例 #1
0
        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);
        }
コード例 #2
0
        public TileTextureCollection CreateDeepCopy()
        {
            var retval = new TileTextureCollection(FormattingMetaData.CreateCopy());

            foreach (var g in Grids)
            {
                retval.Grids.Add(g.CreateDeepCopy());
            }

            return(retval);
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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);
        }