// // // // // $Revision$ // using ICSharpCode.Core; using System; using System.Linq; using System.Collections.Generic; using System.Collections.ObjectModel; using System.IO; using System.Text; using System.Xml; using ICSharpCode.SharpDevelop.Project; namespace CppBackendBinding { /// /// Represents a {File} element in the .vcproj file. /// sealed class FileItem { public readonly ProjectItem ProjectItem; public readonly XmlElement XmlElement; /// /// Loads a file item from XML. /// public FileItem(FileGroup group, XmlElement fileElement) { this.XmlElement = fileElement; string relativePath = fileElement.GetAttribute("RelativePath"); if (relativePath.StartsWith(".\\")) { // SharpDevelop doesn't like paths starting with ".\", so strip it away: relativePath = relativePath.Substring(2); } this.ProjectItem = new FileProjectItem(group.Project, group.ItemType, relativePath); } /// /// Creates a new file item. /// public FileItem(XmlDocument document, ProjectItem item) { this.ProjectItem = item; this.XmlElement = document.CreateElement("File"); SaveChanges(); } public void SaveChanges() { this.XmlElement.SetAttribute("RelativePath", this.ProjectItem.Include); } } }