Пример #1
0
        public ResourceEntry AddIcon(string resourceId, string iconPath)
        {
            ResourceIcon iconEntry = new ResourceIcon(resourceId, iconPath, lines.Count);

            Icons.Add(iconEntry);
            lines.Add(iconEntry);
            return(iconEntry);
        }
Пример #2
0
        public void SetIcon(string resourceId, string newPath)
        {
            ResourceIcon iconEntry = (ResourceIcon)Icons.SingleOrDefault(icon => icon.ResourceID == resourceId);

            if (iconEntry != null)
            {
                iconEntry.Data = newPath;
            }
            else
            {
                AddIcon(resourceId, newPath);
            }
        }
Пример #3
0
        /// <summary>
        /// Very simplified resource script parsing. Only the icon data is needed, and other lines should be preserved.
        /// We expect no comments in the line that contains the icon definition (perhaps this should be changed).
        /// </summary>
        public void Load(Stream inStream)
        {
            Regex iconMatch = new Regex("\\s*(\\w+)\\s+ICON\\s+\"([^\"]+)\"", RegexOptions.IgnoreCase);

            lines.Clear();
            using (StreamReader sr = new StreamReader(inStream)) {
                string        line;
                ResourceEntry lineEntry;
                while ((line = sr.ReadLine()) != null)
                {
                    Match m;
                    if ((m = iconMatch.Match(line)).Success)
                    {
                        lineEntry = new ResourceIcon(m.Groups[1].Value, m.Groups[2].Value, lines.Count);
                        icons.Add(lineEntry);
                    }
                    else
                    {
                        lineEntry = new ResourceEntry(null, null, line, lines.Count);
                    }
                    lines.Add(lineEntry);
                }
            }
        }