private static CombinedColor GetCombinedColorFromNode(XmlNode xmlNode, CombinedColor defaultColor) { bool useColor = true; if (xmlNode != null) { XmlNode useColorNode = xmlNode["UseColor"]; if (useColorNode != null) { useColor = GetValueFromAttribute <bool>(useColorNode.Attributes["Value"]); } if (useColor) { XmlNode backgroundColorNode = xmlNode["BackgroundColor"]; XmlNode foregroundColorNode = xmlNode["ForegroundColor"]; return(new CombinedColor() { UseColor = useColor, BackgroundColor = GetColorFromNode(backgroundColorNode), ForegroundColor = GetColorFromNode(foregroundColorNode) }); } else { return(new CombinedColor() { UseColor = useColor, BackgroundColor = SystemColors.Window, ForegroundColor = SystemColors.WindowText }); } } return(defaultColor); }
public void CorrectlySetsTheInitialValue() { var color = new CombinedColor(EgaColor.LtBlue, EgaColor.Cyan); Assert.AreEqual(EgaColor.Cyan, color.Foreground); Assert.AreEqual(EgaColor.LtBlue, color.Background); }
public void CorrectlySetsTheForegroundColor() { var color = new CombinedColor(EgaColor.LtBlue, EgaColor.Cyan); color.Foreground = EgaColor.Yellow; Assert.AreEqual(EgaColor.Yellow, color.Foreground); Assert.AreEqual(EgaColor.LtBlue, color.Background); }
private static CombinedColor[] GetElementColorsFromNode(XmlNode xmlNode, CombinedColor[] defaultElementColors) { if (xmlNode == null) { return(defaultElementColors); } CombinedColor[] resultElementColors = new CombinedColor[defaultElementColors.Length]; XmlNodeList innerNodes = xmlNode.ChildNodes; int innerNodeCount = innerNodes.Count; for (int index = 0; index < defaultElementColors.Length; index++) { XmlNode innerNode = (index < innerNodeCount) ? xmlNode.ChildNodes[index] : null; resultElementColors[index] = GetCombinedColorFromNode(innerNode, defaultElementColors[index]); } return(resultElementColors); }
private static CombinedColor[][] GetTeamColorsFromNode(XmlNode xmlNode, CombinedColor[][] defaultTeamColors) { if (xmlNode == null) { return(defaultTeamColors); } XmlAttribute attrUse = xmlNode.Attributes["Use"]; if (attrUse != null) { bool isUsing = true; if (bool.TryParse(attrUse.InnerText, out isUsing)) { if (!isUsing) { CombinedColor[][] unusedTeamColors = new CombinedColor[4][]; for (int teamIndex = 0; teamIndex < 4; teamIndex++) { unusedTeamColors[teamIndex] = new CombinedColor[3]; for (int colorIndex = 0; colorIndex < 3; colorIndex++) { unusedTeamColors[teamIndex][colorIndex] = new CombinedColor { UseColor = false, ForegroundColor = defaultTeamColors[teamIndex][colorIndex].ForegroundColor, BackgroundColor = defaultTeamColors[teamIndex][colorIndex].BackgroundColor } } ; } return(unusedTeamColors); } } } CombinedColor[][] resultTeamColors = new CombinedColor[4][]; for (int teamIndex = 0; teamIndex < 4; teamIndex++) { resultTeamColors[teamIndex] = new CombinedColor[3]; for (int colorIndex = 0; colorIndex < 3; colorIndex++) { resultTeamColors[teamIndex][colorIndex] = defaultTeamColors[teamIndex][colorIndex]; } } XmlNodeList teamNodes = xmlNode.ChildNodes; int teamNodeCount = Math.Min(teamNodes.Count, 4); for (int teamNodeIndex = 0; teamNodeIndex < teamNodeCount; teamNodeIndex++) { XmlNode teamNode = teamNodes[teamNodeIndex]; XmlNodeList colorNodes = teamNode.ChildNodes; int colorNodeCount = Math.Min(colorNodes.Count, 3); for (int colorNodeIndex = 0; colorNodeIndex < colorNodeCount; colorNodeIndex++) { XmlNode colorNode = colorNodes[colorNodeIndex]; resultTeamColors[teamNodeIndex][colorNodeIndex] = GetCombinedColorFromNode(colorNode, defaultTeamColors[teamNodeIndex][colorNodeIndex]); } } return(resultTeamColors); }