Konstantin Koch 8287c54432 Included the Visual Studio extension and made the necessary changes to make it run.
Replaced the old VS templates with ones that offer more flexiblity.
Started replacing the Content Project for the samples with our custom project type.
Inlcuded a basic not yet working AssimpImporter.
2015-04-08 14:50:03 +02:00

142 lines
5.8 KiB
C#

/* ****************************************************************************
*
* Copyright (c) Microsoft Corporation.
*
* This source code is subject to terms and conditions of the Apache License, Version 2.0. A
* copy of the license can be found in the License.html file at the root of this distribution. If
* you cannot locate the Apache License, Version 2.0, please send an email to
* vspython@microsoft.com. By using this source code in any fashion, you are agreeing to be bound
* by the terms of the Apache License, Version 2.0.
*
* You must not remove this notice, or any other, from this software.
*
* ***************************************************************************/
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Globalization;
using System.Resources;
using System.Threading;
namespace Microsoft.VisualStudio.Project {
/// <summary>
/// Specifies the localizable display name for a property, event, or public void method which takes no arguments.
/// First looks up the name in local string resources than falls back to MPFProj resources.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field, Inherited = false, AllowMultiple = false)]
public class LocalizableDisplayNameAttribute : DisplayNameAttribute {
private string _name;
public LocalizableDisplayNameAttribute(string name) {
_name = name;
}
public override string DisplayName {
get {
string result = DynamicProjectSR.GetString(_name);
if (result == null) {
result = SR.GetString(_name);
if (result == null) {
Debug.Assert(false, "String resource '" + _name + "' is missing");
result = _name;
}
}
return result;
}
}
}
public class DynamicProjectSR {
public const string InterpreterPath = "InterpreterPath";
public const string InterpreterPathDescription = "InterpreterPathDescription";
public const string ProjectReferenceError = "ProjectReferenceError";
public const string ProjectReferenceError2 = "ProjectReferenceError2";
public const string Application = "Application";
public const string GeneralCaption = "GeneralCaption";
public const string Project = "Project";
public const string ProjectFile = "ProjectFile";
public const string ProjectFileDescription = "ProjectFileDescription";
public const string ProjectFileExtensionFilter = "ProjectFileExtensionFilter";
public const string ProjectFolder = "ProjectFolder";
public const string ProjectFolderDescription = "ProjectFolderDescription";
public const string StartupFile = "StartupFile";
public const string StartupFileDescription = "StartupFileDescription";
public const string SelectFolderForSearchPath = "SelectFolderForSearchPath";
public const string SelectZipFileForSearchPath = "SelectZipFileForSearchPath";
public const string WorkingDirectory = "WorkingDirectory";
public const string WorkingDirectoryDescription = "WorkingDirectoryDescription";
public const string CommandLineArguments = "CommandLineArguments";
public const string CommandLineArgumentsDescription = "CommandLineArgumentsDescription";
public const string IsWindowsApplication = "IsWindowsApplication";
public const string IsWindowsApplicationDescription = "IsWindowsApplicationDescription";
private static DynamicProjectSR _loader = null;
private ResourceManager _resources;
private static Object _publicSyncObject;
private static Object publicSyncObject {
get {
if (_publicSyncObject == null) {
Object o = new Object();
Interlocked.CompareExchange(ref _publicSyncObject, o, null);
}
return _publicSyncObject;
}
}
public DynamicProjectSR() {
_resources = new ResourceManager("Microsoft.VisualStudio.Project.LocalizableDisplayNameAttribute", this.GetType().Assembly);
}
private static DynamicProjectSR GetLoader() {
if (_loader == null) {
lock (publicSyncObject) {
if (_loader == null) {
_loader = new DynamicProjectSR();
}
}
}
return _loader;
}
private static CultureInfo Culture {
get { return null/*use ResourceManager default, CultureInfo.CurrentUICulture*/; }
}
public static ResourceManager Resources {
get {
return GetLoader()._resources;
}
}
public static string GetString(string name, params object[] args) {
DynamicProjectSR sys = GetLoader();
if (sys == null)
return null;
string res = sys._resources.GetString(name, DynamicProjectSR.Culture);
if (args != null && args.Length > 0) {
return String.Format(CultureInfo.CurrentCulture, res, args);
} else {
return res;
}
}
public static string GetString(string name) {
DynamicProjectSR sys = GetLoader();
if (sys == null)
return null;
return sys._resources.GetString(name, DynamicProjectSR.Culture);
}
public static object GetObject(string name) {
DynamicProjectSR sys = GetLoader();
if (sys == null)
return null;
return sys._resources.GetObject(name, DynamicProjectSR.Culture);
}
}
}