#develop (short for SharpDevelop) is a free IDE for .NET programming languages.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

57 lines
1.5 KiB

// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
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
{
/// <summary>
/// Represents a {File} element in the .vcproj file.
/// </summary>
sealed class FileItem
{
public readonly ProjectItem ProjectItem;
public readonly XmlElement XmlElement;
/// <summary>
/// Loads a file item from XML.
/// </summary>
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);
}
/// <summary>
/// Creates a new file item.
/// </summary>
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);
}
}
}