//
//
//
//
// $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);
}
}
}