<?xml version="1.0"?>
<Template originator   = "Mike Krueger"
          created      = "02/01/2003"
          lastModified = "16/09/2006">
	
	<!-- Template Header -->
	<TemplateConfiguration>
		<Name>Complex EXAMPLE</Name>
		<Category>C#</Category>
		<!-- Optional subcategory -->
		<Subcategory>Windows Applications</Subcategory>
		<Icon>C#.Project.DOSProject</Icon>
		<Description>Example template that tries to use every feature once</Description>
	</TemplateConfiguration>
	
	<!-- Actions -->
	<Actions>
		<Open filename = "Main.cs"/>
		<!-- Runs a command from the AddIn Tree. ICommand.Owner will be the ProjectCreateInformation -->
		<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/PostCreationAction"/>
	</Actions>
	
	<!-- Template Content -->
	<Solution name = "${ProjectName}" directory = ".">
		
		<!-- the startup project can be specified like this: -->
		<Options>
			<StartupProject>${ProjectName}</StartupProject>
		</Options>
		
		<!-- you can nest solution folders inside the Solution node -->
		<SolutionFolder name = "Empty Sub Folder"/>
		
		<SolutionFolder name = "VB.NET Sub Folder">
			<!-- Solution folders can contain: nested solution folders and projects -->
			<SolutionFolder name = "Nested Sub Folder"/>
			
			<Project name = "VBNetProject" directory = "VBNetSubProject" language="VB" defaultPlatform="x86">
				<!-- Actions that get executed before the project is created. ICommand.Owner will be the ProjectCreateInformation. -->
				<PreCreateActions>
					<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/CheckPortableLibraryInstalled"/>
				</PreCreateActions>
				
				<!-- Actions that get executed after the project was created. ICommand.Owner will be the IProject. -->
				<CreateActions>
					<RunCommand path = "/SharpDevelop/BackendBindings/TemplateCommands/PostCreationAction"/>
				</CreateActions>
			
				<!-- add a PropertyGroup to the project to set MSBuild properties -->
				<PropertyGroup>
					<OutputType>WinExe</OutputType>
				</PropertyGroup>
				
				<!-- you can use the "configuration" and/or "platform" attributes to make all properties in the group configuration/platform-specific -->
				<PropertyGroup configuration="Debug">
					<RemoveIntegerChecks>False</RemoveIntegerChecks>
				</PropertyGroup>
				
				<PropertyGroup configuration="Release">
					<RemoveIntegerChecks>True</RemoveIntegerChecks>
				</PropertyGroup>
				
				<!-- use PropertyItems to include MSBuild items -->
				<ProjectItems>
					<!-- create GAC references like this: -->
					<Reference Include="System" />
					<Reference Include="System.Data" />
					<Reference Include="System.Drawing" />
					<Reference Include="System.Deployment" />
					<Reference Include="System.Windows.Forms" />
					<Reference Include="System.Xml" />
					
					<!-- Visual Basic Default Imports work like this: -->
					<Import Include="Microsoft.VisualBasic" />
					<Import Include="System" />
					<Import Include="System.Collections" />
					<Import Include="System.Collections.Generic" />
					<Import Include="System.Data" />
					<Import Include="System.Drawing" />
					<Import Include="System.Diagnostics" />
					<Import Include="System.Windows.Forms" />
				</ProjectItems>
				
				<!-- Set the clear attribute to true if you want any imports that are added by default removed. -->
				<Imports clear="False">
					<!-- you can import additional MSBuild targets in the Imports-section of the project node -->
					<Import Project="$(MSBuildBinPath)\Microsoft.WinFX.targets" />
				</Imports>
				
				<Files>
					<!-- Here come the files of the project -->
					<!-- Put the file content in a CDATA section. You can use all StringParser expressions. -->
					<File name="Main.vb">
				<![CDATA[${StandardHeader.VBNET}
Public Partial Class MainForm
	Inherits System.Windows.Forms.Form
	
	Public Sub New()
		'
		' The Me.InitializeComponent call is required for Windows Forms designer support.
		'
		Me.InitializeComponent
		'
		' TODO : Add constructor code after InitializeComponents
		'
	End Sub
End Class
	]]></File>
					<!--
					   The file element supports these attributes:
					   name : the name used for the created file, relative to the project root (required)
					   buildAction : item type of the MSBuild item to create
					   src: instead of using the content of the <File>-element as code, read it from a file (relative to the directory containing the .xpt)
					   binary: use binary="true" to deactivate interpolation of StringParser-expressions and automatic conversion to the user's encoding.
					           Only valid in combination with src=".."
					-->
					<File name="Main.Designer.vb" buildAction="Compile" DependentUpon="Main.vb" SubType="Code"><![CDATA[
Partial Class MainForm
	' This file is required for Windows Forms designer support.
	' Do not change the contents inside the source code editor. The Forms designer might
	' not be able to load this method if it was changed manually.
	Private Sub InitializeComponent()
		'
		'Form1
		'
		Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
		Me.ClientSize = New System.Drawing.Size(292, 266)
		Me.Name = "MainForm"
		Me.Text = "MainForm"
	End Sub
End Class
]]>
					</File>
				</Files>
			</Project>
		</SolutionFolder>
		
		<Project name = "${ProjectName}" directory = "." language = "C#" defaultPlatform="AnyCPU">
			<ProjectItems>
				<Reference Include="System" />
				<Reference Include="System.Data" />
				<Reference Include="System.Xml" />
			</ProjectItems>
			<Files>
			<File name="Elements\Readme.txt"><![CDATA[// project ${ProjectName} and file ${FileName} created on ${Date}
at ${Time}]]></File>
<File name="Tables\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
<File name="Forms\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
<File name="Forms\Dialogs\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
<File name="Forms\Controls\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
<File name="Menu\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
<File name="Reports\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
<File name="Batches\Readme.txt"><![CDATA[// project created on ${Date} at ${Time}]]></File>
				<File name="Main.cs"><![CDATA[// project created on ${Date} at ${Time}
using System;

class MainClass
{
	public static void Main(string[] args)
	{
		Console.WriteLine("Hello World!");
	}
}]]></File>
				<File name="AssemblyInfo.cs" src="CSharp/DefaultAssemblyInfo.cs"/>
			</Files>
		</Project>
	</Solution>
</Template>
