From 56d48e657cf6fbfc3a2413729cc70ebd8747c7b5 Mon Sep 17 00:00:00 2001 From: kudzu_cp <6d05c8c8ef5431987001abfdb2eadc9593ac9498> Date: Fri, 22 May 2009 15:41:53 +0000 Subject: [PATCH] --- .../Cosmos.MSBuild.Tasks/BuildOSImage.cs | 14 ++-- .../Cosmos.VS.Package.csproj | 1 + .../Cosmos.VS.Package/CustomPropertyPage.cs | 71 +++++-------------- .../VSIP/Cosmos.VS.Package/PropPageTest.cs | 37 ++++++++++ .../CosmosProject/CosmosProject.Cosmos | 19 +++++ source2/VSIP/Cosmos.VS.Package/VSPackage.cs | 3 +- .../VSIP/Cosmos.VS.Package/VSProjectNode.cs | 1 + 7 files changed, 85 insertions(+), 61 deletions(-) create mode 100644 source2/VSIP/Cosmos.VS.Package/PropPageTest.cs diff --git a/source2/Builder/Cosmos.MSBuild.Tasks/BuildOSImage.cs b/source2/Builder/Cosmos.MSBuild.Tasks/BuildOSImage.cs index 95b1d3bca..381e90860 100644 --- a/source2/Builder/Cosmos.MSBuild.Tasks/BuildOSImage.cs +++ b/source2/Builder/Cosmos.MSBuild.Tasks/BuildOSImage.cs @@ -5,14 +5,16 @@ using Microsoft.Build.Framework; using Microsoft.Build.Utilities; //using Cosmos.Compiler.Builder; -namespace Cosmos.MSBuild.Tasks -{ - public class BuildOSImage : Task - { +namespace Cosmos.MSBuild.Tasks { + + public class BuildOSImage : Task { + private Boolean buildFailed; - public override bool Execute() - { + + public override bool Execute() { buildFailed = false; + Log.LogMessage(MessageImportance.High, "Building Cosmos System Image"); + return true; this.KernelAssemblyFile = (new System.IO.FileInfo(this.KernelAssemblyFile)).FullName; diff --git a/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj b/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj index 6cdd07f1a..ddc3fe380 100644 --- a/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj +++ b/source2/VSIP/Cosmos.VS.Package/Cosmos.VS.Package.csproj @@ -78,6 +78,7 @@ PropPageEnvironment.cs + True True diff --git a/source2/VSIP/Cosmos.VS.Package/CustomPropertyPage.cs b/source2/VSIP/Cosmos.VS.Package/CustomPropertyPage.cs index ff4f6c5e5..04c03f099 100644 --- a/source2/VSIP/Cosmos.VS.Package/CustomPropertyPage.cs +++ b/source2/VSIP/Cosmos.VS.Package/CustomPropertyPage.cs @@ -13,9 +13,7 @@ using Help = Microsoft.VisualStudio.VSHelp.Help; using IServiceProvider = System.IServiceProvider; namespace Cosmos.VS.Package { - [ComVisible(true)] - public partial class CustomPropertyPage : UserControl, IPropertyPage - { + public partial class CustomPropertyPage : UserControl, IPropertyPage { private ProjectNode _projectMgr; private ProjectConfig[] _projectConfigs; private IPropertyPageSite _site; @@ -23,10 +21,7 @@ namespace Cosmos.VS.Package { private string _title; private string _helpKeyword; - #region Constructors - - public CustomPropertyPage() - { + public CustomPropertyPage() { _projectMgr = null; _projectConfigs = null; _site = null; @@ -35,11 +30,6 @@ namespace Cosmos.VS.Package { _helpKeyword = string.Empty; } - #endregion - - - #region Properties - public virtual string Title { get @@ -107,11 +97,7 @@ namespace Cosmos.VS.Package { } } - #endregion - - - #region Methods - + protected virtual void FillProperties() {} @@ -161,12 +147,6 @@ namespace Cosmos.VS.Package { return defaultValue; } - - #endregion - - - #region IPropertyPage Members - void IPropertyPage.SetPageSite(IPropertyPageSite pPageSite) { _site = pPageSite; @@ -198,32 +178,22 @@ namespace Cosmos.VS.Package { pPageInfo[0] = info; } - void IPropertyPage.SetObjects(uint count, object[] punk) - { - if (count > 0) - { - if (punk[0] is ProjectConfig) - { + void IPropertyPage.SetObjects(uint count, object[] punk) { + if (count > 0) { + if (punk[0] is ProjectConfig) { ArrayList configs = new ArrayList(); - - for(int i = 0; i < count; i++) - { + for(int i = 0; i < count; i++) { ProjectConfig config = (ProjectConfig)punk[i]; - - if (_projectMgr == null) - { + if (_projectMgr == null) { _projectMgr = config.ProjectMgr; } - configs.Add(config); } - _projectConfigs = (ProjectConfig[])configs.ToArray(typeof(ProjectConfig)); - } - else if (punk[0] is NodeProperties) - { - if (_projectMgr == null) - { + + // For ProjectNodes we will get one of these + } else if (punk[0] is NodeProperties) { + if (_projectMgr == null) { _projectMgr = (punk[0] as NodeProperties).Node.ProjectMgr; } @@ -242,28 +212,22 @@ namespace Cosmos.VS.Package { uint[] actual = new uint[1]; provider.GetCfgs(expected[0], configs, actual, null); - foreach(ProjectConfig config in configs) - { - if (!configsMap.ContainsKey(config.ConfigName)) - { + foreach(ProjectConfig config in configs) { + if (!configsMap.ContainsKey(config.ConfigName)) { configsMap.Add(config.ConfigName, config); } } } } - if (configsMap.Count > 0) - { - if (_projectConfigs == null) - { + if (configsMap.Count > 0) { + if (_projectConfigs == null) { _projectConfigs = new ProjectConfig[configsMap.Keys.Count]; } configsMap.Values.CopyTo(_projectConfigs, 0); } } - } - else - { + } else { _projectMgr = null; } @@ -343,7 +307,6 @@ namespace Cosmos.VS.Package { return (NativeMethods.IsDialogMessageA(Handle, ref msg)) ? 0 : 1; } - #endregion } } diff --git a/source2/VSIP/Cosmos.VS.Package/PropPageTest.cs b/source2/VSIP/Cosmos.VS.Package/PropPageTest.cs new file mode 100644 index 000000000..8b23824f0 --- /dev/null +++ b/source2/VSIP/Cosmos.VS.Package/PropPageTest.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using Microsoft.VisualStudio.Project; +using Microsoft.VisualStudio; +using System.ComponentModel; +using System.Runtime.InteropServices; + +namespace Cosmos.VS.Package { + [Guid("FA935644-BA67-465d-BB88-12997EFA4C21")] + public class PropPageTest : SettingsPage { + public PropPageTest() { + Name = "Test"; + } + + protected string mTest; + [SRCategoryAttribute("Category")] + [DisplayName("Property Name")] + [SRDescriptionAttribute("Description")] + public string Test { + get { return mTest; } + set { + mTest = value; + this.IsDirty = true; + } + } + + protected override void BindProperties() { + } + + protected override int ApplyChanges() { + SetConfigProperty("Test", "Hello"); + return VSConstants.S_OK; + } + } +} diff --git a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject/CosmosProject.Cosmos b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject/CosmosProject.Cosmos index cd36f8002..77489167d 100644 --- a/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject/CosmosProject.Cosmos +++ b/source2/VSIP/Cosmos.VS.Package/Templates/Projects/CosmosProject/CosmosProject.Cosmos @@ -34,4 +34,23 @@ + + + + + + + $(Registry:HKEY_CURRENT_USER\Environment@Cosmos) + + + + + + + \ No newline at end of file diff --git a/source2/VSIP/Cosmos.VS.Package/VSPackage.cs b/source2/VSIP/Cosmos.VS.Package/VSPackage.cs index 17542ca84..17dc8350c 100644 --- a/source2/VSIP/Cosmos.VS.Package/VSPackage.cs +++ b/source2/VSIP/Cosmos.VS.Package/VSPackage.cs @@ -48,6 +48,7 @@ namespace Cosmos.VS.Package { // Property Pages [ProvideObject(typeof(PropPageEnvironment), RegisterUsing = RegistrationMethod.CodeBase)] + [ProvideObject(typeof(PropPageTest), RegisterUsing = RegistrationMethod.CodeBase)] [Guid(Guids.guidProjectPkgString)] public sealed class VSProject : ProjectPackage { @@ -64,7 +65,7 @@ namespace Cosmos.VS.Package { // This is used in the MSBuild files to locate Cosmos tasks // Will likely be used by other things in the future as well - protected void SetCosmosVar() { + private void SetCosmosVar() { string xPath = System.Reflection.Assembly.GetExecutingAssembly().Location; int xPos = xPath.LastIndexOf(@"\source2\", StringComparison.InvariantCultureIgnoreCase); xPath = xPath.Substring(0, xPos); diff --git a/source2/VSIP/Cosmos.VS.Package/VSProjectNode.cs b/source2/VSIP/Cosmos.VS.Package/VSProjectNode.cs index 1aaad09f2..21a99b4b2 100644 --- a/source2/VSIP/Cosmos.VS.Package/VSProjectNode.cs +++ b/source2/VSIP/Cosmos.VS.Package/VSProjectNode.cs @@ -38,6 +38,7 @@ namespace Cosmos.VS.Package { //1E78F8DB-6C07-4D61-A18F-7514010ABD56 - Build Events return new Guid[] { typeof(PropPageEnvironment).GUID, + typeof(PropPageTest).GUID, }; }