void ParseDisplayRow(XmlNode parentNode, Drawer.Information info, Drawer.RowType rowType) { Gdk.Color fg, bg; XmlNodeList childNodes = parentNode.ChildNodes; foreach (XmlNode node in childNodes) { ParseDisplayType(node, out fg, out bg); if (node.Name == "evencolumn") { if (!bg.Equal(Gdk.Color.Zero)) { info.bgNormal[(int)rowType, (int)Drawer.ColumnType.Even] = bg; } if (!fg.Equal(Gdk.Color.Zero)) { info.fgNormal[(int)rowType, (int)Drawer.ColumnType.Even] = fg; } } else if (node.Name == "oddcolumn") { if (!bg.Equal(Gdk.Color.Zero)) { info.bgNormal[(int)rowType, (int)Drawer.ColumnType.Odd] = bg; } if (!fg.Equal(Gdk.Color.Zero)) { info.fgNormal[(int)rowType, (int)Drawer.ColumnType.Odd] = fg; } } else if (node.Name == "selectedcolumn") { if (!bg.Equal(Gdk.Color.Zero)) { info.bgHighlight[(int)rowType, (int)Drawer.HighlightType.Selection] = bg; } if (!fg.Equal(Gdk.Color.Zero)) { info.fgHighlight[(int)rowType, (int)Drawer.HighlightType.Selection] = fg; } } else if (node.Name == "patternmatchcolumn") { if (!bg.Equal(Gdk.Color.Zero)) { info.bgHighlight[(int)rowType, (int)Drawer.HighlightType.PatternMatch] = bg; } if (!fg.Equal(Gdk.Color.Zero)) { info.fgHighlight[(int)rowType, (int)Drawer.HighlightType.PatternMatch] = fg; } } } }
/// <summary> /// Create an area. /// </summary> /// <param name="areaGroup"> /// The <see cref="AreaGroup"/> this area will belong in. /// </param> public Area(AreaGroup areaGroup) { this.areaGroup = areaGroup; drawerInformation = new Drawer.Information(); canFocus = false; dpb = 0; fixedBpr = -1; isAreaRealized = false; }
///<summary>Parse the <display> tag in layout files</summary> void ParseDisplay(XmlNode parentNode, Drawer.Information info) { XmlNodeList childNodes = parentNode.ChildNodes; foreach (XmlNode node in childNodes) { if (node.Name == "evenrow") { ParseDisplayRow(node, info, Drawer.RowType.Even); } else if (node.Name == "oddrow") { ParseDisplayRow(node, info, Drawer.RowType.Odd); } else if (node.Name == "font") { info.FontName = node.InnerText; } } }