public ResourceEntry AddIcon(string resourceId, string iconPath) { ResourceIcon iconEntry = new ResourceIcon(resourceId, iconPath, lines.Count); Icons.Add(iconEntry); lines.Add(iconEntry); return(iconEntry); }
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); } }
/// <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); } } }