//TODO написать парсер, чтобы читать из файла //ColorScheme должен будет передавать строку из файла для распарсивания public static ItemColorSchemeEntry Parse(string line) { ItemColorSchemeEntry ret = ItemColorSchemeEntry.SystemDefault; // //[category][space][color1][space][color2][space]...[color8][space][mask1][;][mask2][;]... // try { string[] items1 = line.Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries); ret.Category = (ItemCategory)int.Parse(items1[0]); ItemColorState i_state = new ItemColorState(); string hex_prefix = "0x"; i_state.DefaultState = ItemColors.Create(Color.FromArgb(int.Parse(items1[1].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber)), Color.FromArgb(int.Parse(items1[2].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber))); i_state.FocusedState = ItemColors.Create(Color.FromArgb(int.Parse(items1[3].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber)), Color.FromArgb(int.Parse(items1[4].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber))); i_state.SelectedState = ItemColors.Create(Color.FromArgb(int.Parse(items1[5].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber)), Color.FromArgb(int.Parse(items1[6].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber))); i_state.SelectedFocusedState = ItemColors.Create(Color.FromArgb(int.Parse(items1[7].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber)), Color.FromArgb(int.Parse(items1[8].Replace(hex_prefix, string.Empty), System.Globalization.NumberStyles.HexNumber))); string[] masks = items1[9].Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); ret.ItemColorState = i_state; ret.Masks = masks; } catch (Exception) { } return(ret); }
public static ItemColors Create(Color background, Color foreground) { ItemColors ret = new ItemColors(); ret.BackgroundColor = background; ret.ForegroundColor = foreground; return(ret); }