Ejemplo n.º 1
0
        public static BoardThemeConfig FromJson(JsonValue json)
        {
            var config = new BoardThemeConfig();

            config.Indicators = BoardThemeIndicatorsConfig.FromJson(json["indicators"]);

            if (json.ContainsKey("rim"))
            {
                config.Rim = BoardThemeRimConfig.FromJson(json["rim"]);
            }

            return(config);
        }
Ejemplo n.º 2
0
        public static BoardThemeIndicatorsConfig FromJson(JsonValue json)
        {
            var config = new BoardThemeIndicatorsConfig();

            FontStyle fontStyle = FontStyle.Regular;

            if (json["bold"])
            {
                fontStyle |= FontStyle.Bold;
            }
            if (json["italic"])
            {
                fontStyle |= FontStyle.Italic;
            }

            config.FontScale = JsonValueReader.ReadPercentToFloat01(json["font_scale"]);
            config.Font      = new Font(json["font"], 10, fontStyle);

            config.LightSquareBrush = new SolidBrush(ColorTranslator.FromHtml(json["color_on_light_squares"]));
            config.DarkSquareBrush  = new SolidBrush(ColorTranslator.FromHtml(json["color_on_dark_squares"]));

            if (json.ContainsKey("file_indicators"))
            {
                config.FileIndicators = json["file_indicators"];
            }
            else
            {
                config.FileIndicators = "abcdefgh";
            }

            if (json.ContainsKey("rank_indicators"))
            {
                config.RankIndicators = json["rank_indicators"];
            }
            else
            {
                config.RankIndicators = "12345678";
            }

            {
                string fileIndicatorSide = json["file_indicator_side"];
                if (fileIndicatorSide == "bottom")
                {
                    config.RelativeRank = 7;
                }
                else
                {
                    config.RelativeRank = 0;
                }
            }

            {
                string rankIndicatorSide = json["rank_indicator_side"];
                if (rankIndicatorSide == "left")
                {
                    config.RelativeFile = 0;
                }
                else
                {
                    config.RelativeFile = 7;
                }
            }

            {
                config.RankIndicatorFormat = new StringFormat
                {
                    Alignment     = ParseAlignment(json["rank_indicator_horizontal_align"]),
                    LineAlignment = ParseAlignment(json["rank_indicator_vertical_align"])
                };

                config.FileIndicatorFormat = new StringFormat
                {
                    Alignment     = ParseAlignment(json["file_indicator_horizontal_align"]),
                    LineAlignment = ParseAlignment(json["file_indicator_vertical_align"])
                };
            }

            return(config);
        }