示例#1
0
        //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);
        }
示例#2
0
        public static ColorScheme Parse(string file_name)
        {
            StreamReader reader = null;
            ColorScheme  ret    = new ColorScheme();

            try
            {
                reader = new StreamReader(file_name, Encoding.UTF8);
                string line = string.Empty;
                while ((line = reader.ReadLine()) != null)
                {
                    line = line.Trim();
                    if (line == string.Empty)
                    {
                        continue;
                    }
                    if (line.StartsWith("#"))
                    {
                        continue;
                    }
                    ItemColorSchemeEntry new_entry = ItemColorSchemeEntry.Parse(line);
                    ret.internal_list.Add(new_entry);
                    //line = reader.ReadLine();
                }
            }
            catch (Exception)
            {
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                }
            }

            if (ret.internal_list.Count == 0)
            {
                ret.internal_list.Add(ItemColorSchemeEntry.SystemDefault);
            }
            return(ret);
        }