[svn] r6539: vs-plugin/trunk/Nemerle.VsIntegration:
NemerleConstants.cs NemerleFileNode.cs Project/Nemerle...
NoiseEHC
svnadmin at nemerle.org
Wed Aug 16 18:57:25 CEST 2006
Log:
Image handling updated to work similar to the AUG IronPython sample.
(Unnecessarily duplicated images deleted)
Author: NoiseEHC
Date: Wed Aug 16 18:57:22 2006
New Revision: 6539
Modified:
vs-plugin/trunk/Nemerle.VsIntegration/NemerleConstants.cs
vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs
vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs
vs-plugin/trunk/Nemerle.VsIntegration/Resources/NemerleImageList.bmp
Modified: vs-plugin/trunk/Nemerle.VsIntegration/NemerleConstants.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/NemerleConstants.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/NemerleConstants.cs Wed Aug 16 18:57:22 2006
@@ -34,5 +34,13 @@
public const string GeneralPropertyPageGuidString = "EDCC3B88-0BAD-11DB-BC1A-00112FDE8B61";
public const string ProjectImageListName = "Resources.NemerleImageList.bmp";
+
+ /// <summary>
+ /// Indexes to the embedded NemerleImageList.bmp image list.
+ /// </summary>
+ public enum ImageListIndex : int {
+ NemerleSource = 0,
+ NemerleProject = 1,
+ }
}
}
Modified: vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs Wed Aug 16 18:57:22 2006
@@ -96,17 +96,6 @@
#region overridden properties
- public override int ImageIndex
- {
- get
- {
- if (Path.GetExtension(FileName).ToLower() == GlobalConstants.FileExtension)
- return 6; //FixMe: temporarily for compatibility with old VS SDK //(int)ProjectNode.ImageName.TextFile;
- else
- return base.ImageIndex;
- }
- }
-
internal override object Object { get { return VSProjectItem; } }
#endregion
@@ -130,6 +119,13 @@
new OANemerleFileItem(ProjectMgr.GetAutomationObject() as OAProject, this);
}
+ // Called since the FileNode.ImageIndex returns -1 by default.
+ public override object GetIconHandle(bool open) {
+ if(this.FileName.ToLower().EndsWith(GlobalConstants.FileExtension))
+ return PackageUtilities.GetIntPointerFromImage(NemerleProjectNode.NemerleImageList.Images[(int)GlobalConstants.ImageListIndex.NemerleSource]);
+ return base.GetIconHandle(open);
+ }
+
/// <summary>
/// Open a file depending on the SubType property associated with the file item in the project file
/// </summary>
Modified: vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs Wed Aug 16 18:57:22 2006
@@ -19,9 +19,15 @@
public class NemerleProjectNode : ProjectNode, IVsProjectSpecificEditorMap2
{
NemerlePackage _package;
+ static ImageList _nemerleImageList;
#region ctor
+ static NemerleProjectNode()
+ {
+ NemerleImageList = Utilities.GetImageList(typeof(NemerleProjectNode).Assembly.GetManifestResourceStream("Nemerle.VsIntegration.Resources.NemerleImageList.bmp"));
+ }
+
public NemerleProjectNode(NemerlePackage pkg)
{
FileTemplateProcessor = new TokenProcessorEx();
@@ -31,27 +37,17 @@
OleServiceProvider.AddService(typeof (VSProject), VSProject, false);
SupportsProjectDesigner = true;
- ImageList = LoadProjectImajeList();
-
InitializeCATIDs();
}
- private ImageList LoadProjectImajeList()
- {
- // Make the name of resource bitmap.
- // It's bitmap used in project ImageList.
- Type type = this.GetType();
- Assembly resourceAssembly = type.Assembly;
- // "Nemerle.VsIntegration.Resources.NemerleImageList.bmp"
- string resourceName = GetModuleName(type) + "."
- + GlobalConstants.ProjectImageListName;
-
- Stream imageStream = resourceAssembly.GetManifestResourceStream(
- resourceName);
-
- Trace.Assert(imageStream != null);
+ // Needed since ProjectNode.ImageIndex returns ProjectNode.ImageName.Application.
+ public override int ImageIndex {
+ get { return HierarchyNode.NoImage; }
+ }
- return Utilities.GetImageList(imageStream);
+ // We have to override ImageIndex to be called.
+ public override object GetIconHandle(bool open) {
+ return Microsoft.VisualStudio.Shell.PackageUtilities.GetIntPointerFromImage(NemerleProjectNode.NemerleImageList.Images[(int)GlobalConstants.ImageListIndex.NemerleProject]);
}
private static string GetModuleName(Type type)
@@ -168,6 +164,14 @@
set { _projectInfo = value; }
}
+ /// <summary>
+ /// Nemerle specific project images.
+ /// </summary>
+ public static ImageList NemerleImageList {
+ get { return _nemerleImageList; }
+ set { _nemerleImageList = value; }
+ }
+
#endregion
#region overridden properties
@@ -303,7 +307,7 @@
if (String.IsNullOrEmpty(strFileName))
return false;
return
- (String.Compare(Path.GetExtension(strFileName), ".n",
+ (String.Compare(Path.GetExtension(strFileName), GlobalConstants.FileExtension,
StringComparison.OrdinalIgnoreCase) == 0);
}
Modified: vs-plugin/trunk/Nemerle.VsIntegration/Resources/NemerleImageList.bmp
==============================================================================
Binary files. No diff available.
More information about the svn
mailing list