[mapguide-commits] r6704 - in trunk/Tools/Maestro/Thirdparty/SharpDevelop: . ICSharpCode.Core ICSharpCode.Core/Src ICSharpCode.Core/Src/AddInTree/AddIn ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/MenuItem ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem ICSharpCode.Core/Src/Services/FileUtility ICSharpCode.Core.WinForms ICSharpCode.Core.WinForms/Menu ICSharpCode.Core.WinForms/ToolBar

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Tue May 29 02:44:50 PDT 2012


Author: jng
Date: 2012-05-29 02:44:49 -0700 (Tue, 29 May 2012)
New Revision: 6704

Added:
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/ExtensionMethods.cs
Modified:
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/GlobalAssemblyInfo.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/Menu.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCheckBox.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCommand.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuSeparator.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuService.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCheckBox.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarComboBox.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCommand.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarDropDownButton.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarLabel.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSeparator.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarService.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarTextBox.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/WinFormsResourceService.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/ICSharpCode.Core.csproj
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/AddInReference.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/Codon.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/MenuItemDoozer.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/ToolBarItemDoozer.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileName.cs
   trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileUtility.cs
Log:
Update SharpDevelop Core to 4.2 final

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/GlobalAssemblyInfo.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/GlobalAssemblyInfo.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/GlobalAssemblyInfo.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -30,9 +30,9 @@
 internal static class RevisionClass
 {
 	public const string Major = "4";
-	public const string Minor = "1";
+	public const string Minor = "2";
 	public const string Build = "0";
-	public const string Revision = "8000";
+	public const string Revision = "8783";
 	
 	public const string MainVersion = Major + "." + Minor;
 	public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision;

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/ICSharpCode.Core.csproj
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/ICSharpCode.Core.csproj	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/ICSharpCode.Core.csproj	2012-05-29 09:44:49 UTC (rev 6704)
@@ -27,21 +27,22 @@
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
     <DebugSymbols>true</DebugSymbols>
     <Optimize>False</Optimize>
-    <DebugType>Full</DebugType>
-    <DocumentationFile>
-    </DocumentationFile>
-    <NoWarn>1591</NoWarn>
-    <DefineConstants>DEBUG</DefineConstants>
     <CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
     <OutputPath>bin\Debug\</OutputPath>
     <WarningLevel>4</WarningLevel>
+    <DebugType>Full</DebugType>
+    <DocumentationFile>bin\Debug\ICSharpCode.Core.xml</DocumentationFile>
+    <DefineConstants>DEBUG</DefineConstants>
+    <NoWarn>1591</NoWarn>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugSymbols>False</DebugSymbols>
+    <DebugSymbols>false</DebugSymbols>
     <Optimize>True</Optimize>
     <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
     <OutputPath>bin\Release\</OutputPath>
     <WarningLevel>4</WarningLevel>
+    <DebugType>None</DebugType>
+    <DocumentationFile>bin\Release\ICSharpCode.Core.xml</DocumentationFile>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
     <RegisterForComInterop>False</RegisterForComInterop>
@@ -49,6 +50,9 @@
     <PlatformTarget>AnyCPU</PlatformTarget>
     <FileAlignment>4096</FileAlignment>
   </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
+    <StartAction>Program</StartAction>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="System" />
     <Reference Include="System.Core">
@@ -57,9 +61,6 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
-    <Compile Include="..\GlobalAssemblyInfo.cs">
-      <Link>Configuration\GlobalAssemblyInfo.cs</Link>
-    </Compile>
     <Compile Include="Configuration\AssemblyInfo.cs" />
     <Compile Include="Src\AddInTree\AddIn\AddIn.cs" />
     <Compile Include="Src\AddInTree\AddIn\AddInLoadException.cs" />
@@ -94,6 +95,7 @@
     <Compile Include="Src\AddInTree\TopologicalSort.cs" />
     <Compile Include="Src\AddInTree\TreePathNotFoundException.cs" />
     <Compile Include="Src\CoreException.cs" />
+    <Compile Include="Src\ExtensionMethods.cs" />
     <Compile Include="Src\Services\AnalyticsMonitor\AnalyticsMonitorService.cs" />
     <Compile Include="Src\Services\AnalyticsMonitor\IAnalyticsMonitor.cs" />
     <Compile Include="Src\Services\ApplicationStateInfoService.cs" />
@@ -129,10 +131,17 @@
     <Compile Include="Src\AddInTree\CoreStartup.cs" />
     <Compile Include="Src\AddInTree\AddInManager.cs" />
     <Compile Include="Src\AddInTree\AddIn\DefaultDoozers\StringDoozer.cs" />
+    <Compile Include="..\GlobalAssemblyInfo.cs">
+      <Link>Configuration\GlobalAssemblyInfo.cs</Link>
+    </Compile>
     <Compile Include="Src\AddInTree\AddIn\DefaultDoozers\ToolBarItem\AbstractTextBoxCommand.cs" />
     <Compile Include="Src\AddInTree\AddIn\DefaultDoozers\ToolBarItem\ITextBoxCommand.cs" />
   </ItemGroup>
   <ItemGroup>
+    <Folder Include="Src\Services\LoggingService" />
+    <Folder Include="Src\Services\AnalyticsMonitor" />
+    <Folder Include="Src\Services\RegistryService" />
+    <Folder Include="Src\Services\ResourceService" />
     <Content Include="..\..\..\..\data\schemas\AddIn.xsd">
       <Link>Src\AddInTree\AddIn\AddIn.xsd</Link>
     </Content>

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/AddInReference.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/AddInReference.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/AddInReference.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -94,6 +94,15 @@
 				} else {
 					reference.maximumVersion = reference.minimumVersion = ParseVersion(version, hintPath);
 				}
+				
+				if (reference.Name == "SharpDevelop") {
+					// HACK: SD 4.1 AddIns work with SharpDevelop 4.2
+					// Because some 4.1 AddIns restrict themselves to SD 4.1, we extend the
+					// supported SD range.
+					if (reference.maximumVersion == new Version("4.1")) {
+						reference.maximumVersion = new Version("4.2");
+					}
+				}
 			}
 			reference.requirePreload = string.Equals(properties["requirePreload"], "true", StringComparison.OrdinalIgnoreCase);
 			return reference;

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/Codon.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/Codon.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/Codon.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -74,6 +74,7 @@
 			this.conditions = conditions;
 		}
 		
+		[Obsolete("Use BuildItemArgs.Conditions instead")]
 		public ConditionFailedAction GetFailedAction(object caller)
 		{
 			return Condition.GetFailedAction(conditions, caller);

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/MenuItemDoozer.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/MenuItemDoozer.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/MenuItem/MenuItemDoozer.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -3,6 +3,8 @@
 
 using System;
 using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
 
 namespace ICSharpCode.Core
 {
@@ -63,7 +65,7 @@
 		
 		public object BuildItem(BuildItemArgs args)
 		{
-			return new MenuItemDescriptor(args.Caller, args.Codon, args.BuildSubItems<object>());
+			return new MenuItemDescriptor(args.Caller, args.Codon, args.BuildSubItems<object>(), args.Conditions);
 		}
 	}
 	
@@ -76,14 +78,16 @@
 		public readonly object Caller;
 		public readonly Codon Codon;
 		public readonly IList SubItems;
+		public readonly IEnumerable<ICondition> Conditions;
 		
-		public MenuItemDescriptor(object caller, Codon codon, IList subItems)
+		public MenuItemDescriptor(object caller, Codon codon, IList subItems, IEnumerable<ICondition> conditions)
 		{
 			if (codon == null)
 				throw new ArgumentNullException("codon");
 			this.Caller = caller;
 			this.Codon = codon;
 			this.SubItems = subItems;
+			this.Conditions = conditions;
 		}
 	}
 }

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/ToolBarItemDoozer.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/ToolBarItemDoozer.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/ToolBarItemDoozer.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -3,6 +3,7 @@
 
 using System;
 using System.Collections;
+using System.Collections.Generic;
 
 namespace ICSharpCode.Core
 {
@@ -53,7 +54,7 @@
 		
 		public object BuildItem(BuildItemArgs args)
 		{
-			return new ToolbarItemDescriptor(args.Caller, args.Codon, args.BuildSubItems<object>());
+			return new ToolbarItemDescriptor(args.Caller, args.Codon, args.BuildSubItems<object>(), args.Conditions);
 		}
 	}
 	
@@ -66,12 +67,14 @@
 		public readonly object Caller;
 		public readonly Codon Codon;
 		public readonly IList SubItems;
+		public readonly IEnumerable<ICondition> Conditions;
 		
-		public ToolbarItemDescriptor(object caller, Codon codon, IList subItems)
+		public ToolbarItemDescriptor(object caller, Codon codon, IList subItems, IEnumerable<ICondition> conditions)
 		{
 			this.Caller = caller;
 			this.Codon = codon;
 			this.SubItems = subItems;
+			this.Conditions = conditions;
 		}
 	}
 }

Added: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/ExtensionMethods.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/ExtensionMethods.cs	                        (rev 0)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/ExtensionMethods.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -0,0 +1,40 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
+// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
+
+using System;
+using System.Collections.Generic;
+
+namespace ICSharpCode.Core
+{
+	internal static class ExtensionMethods
+	{
+		/// <summary>
+		/// Converts a recursive data structure into a flat list.
+		/// </summary>
+		/// <param name="input">The root elements of the recursive data structure.</param>
+		/// <param name="recursion">The function that gets the children of an element.</param>
+		/// <returns>Iterator that enumerates the tree structure in preorder.</returns>
+		public static IEnumerable<T> Flatten<T>(this IEnumerable<T> input, Func<T, IEnumerable<T>> recursion)
+		{
+			Stack<IEnumerator<T>> stack = new Stack<IEnumerator<T>>();
+			try {
+				stack.Push(input.GetEnumerator());
+				while (stack.Count > 0) {
+					while (stack.Peek().MoveNext()) {
+						T element = stack.Peek().Current;
+						yield return element;
+						IEnumerable<T> children = recursion(element);
+						if (children != null) {
+							stack.Push(children.GetEnumerator());
+						}
+					}
+					stack.Pop().Dispose();
+				}
+			} finally {
+				while (stack.Count > 0) {
+					stack.Pop().Dispose();
+				}
+			}
+		}
+	}
+}

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileName.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileName.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileName.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,7 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.IO;
 
 namespace ICSharpCode.Core
 {

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileUtility.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileUtility.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core/Src/Services/FileUtility/FileUtility.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -4,9 +4,10 @@
 using System;
 using System.Collections.Generic;
 using System.IO;
+using System.Linq;
 using System.Text;
 using System.Text.RegularExpressions;
-
+using System.Threading;
 using ICSharpCode.Core.Services;
 using Microsoft.Win32;
 
@@ -322,9 +323,7 @@
 		
 		public static List<string> SearchDirectory(string directory, string filemask, bool searchSubdirectories, bool ignoreHidden)
 		{
-			List<string> collection = new List<string>();
-			SearchDirectory(directory, filemask, collection, searchSubdirectories, ignoreHidden);
-			return collection;
+			return SearchDirectoryInternal(directory, filemask, searchSubdirectories, ignoreHidden).Select(file => file.ToString()).ToList();
 		}
 		
 		public static List<string> SearchDirectory(string directory, string filemask, bool searchSubdirectories)
@@ -337,45 +336,59 @@
 			return SearchDirectory(directory, filemask, true, true);
 		}
 		
+		public static IEnumerable<FileName> LazySearchDirectory(string directory, string filemask, bool searchSubdirectories = true, bool ignoreHidden = true)
+		{
+			return SearchDirectoryInternal(directory, filemask, searchSubdirectories, ignoreHidden);
+		}
+		
 		/// <summary>
 		/// Finds all files which are valid to the mask <paramref name="filemask"/> in the path
 		/// <paramref name="directory"/> and all subdirectories
 		/// (if <paramref name="searchSubdirectories"/> is true).
-		/// The found files are added to the List<string>
-		/// <paramref name="collection"/>.
 		/// If <paramref name="ignoreHidden"/> is true, hidden files and folders are ignored.
 		/// </summary>
-		static void SearchDirectory(string directory, string filemask, List<string> collection, bool searchSubdirectories, bool ignoreHidden)
+		static IEnumerable<FileName> SearchDirectoryInternal(string directory, string filemask, bool searchSubdirectories, bool ignoreHidden)
 		{
 			// If Directory.GetFiles() searches the 8.3 name as well as the full name so if the filemask is
 			// "*.xpt" it will return "Template.xpt~"
-			try {
-				bool isExtMatch = Regex.IsMatch(filemask, @"^\*\..{3}$");
-				string ext = null;
-				string[] file = Directory.GetFiles(directory, filemask);
-				if (isExtMatch) ext = filemask.Remove(0,1);
-				
-				foreach (string f in file) {
-					if (ignoreHidden && (File.GetAttributes(f) & FileAttributes.Hidden) == FileAttributes.Hidden) {
-						continue;
-					}
-					if (isExtMatch && Path.GetExtension(f) != ext) continue;
-					
-					collection.Add(f);
-				}
-				
-				if (searchSubdirectories) {
-					string[] dir = Directory.GetDirectories(directory);
-					foreach (string d in dir) {
-						if (ignoreHidden && (File.GetAttributes(d) & FileAttributes.Hidden) == FileAttributes.Hidden) {
-							continue;
+			bool isExtMatch = Regex.IsMatch(filemask, @"^\*\..{3}$");
+			string ext = null;
+			if (isExtMatch) ext = filemask.Remove(0,1);
+			string[] empty = new string[0];
+			IEnumerable<string> dir = new[] { directory };
+			
+			if (searchSubdirectories)
+				dir = dir.Flatten(
+					d => {
+						try {
+							if (ignoreHidden)
+								return Directory.EnumerateDirectories(d).Where(child => IsNotHidden(child));
+							else
+								return Directory.EnumerateDirectories(d);
+						} catch (UnauthorizedAccessException) {
+							return empty;
 						}
-						SearchDirectory(d, filemask, collection, searchSubdirectories, ignoreHidden);
-					}
+					});
+			foreach (string d in dir) {
+				IEnumerable<string> files;
+				try {
+					files = Directory.EnumerateFiles(d, filemask);
+				} catch (UnauthorizedAccessException) {
+					continue;
 				}
+				foreach (string f in files) {
+					if (!ignoreHidden || IsNotHidden(f))
+						yield return new FileName(f);
+				}
+			}
+		}
+		
+		static bool IsNotHidden(string dir)
+		{
+			try {
+				return (File.GetAttributes(dir) & FileAttributes.Hidden) != FileAttributes.Hidden;
 			} catch (UnauthorizedAccessException) {
-				// Ignore exception when access to a directory is denied.
-				// Fixes SD2-893.
+				return false;
 			}
 		}
 		

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj	2012-05-29 09:44:49 UTC (rev 6704)
@@ -9,7 +9,7 @@
     <AssemblyName>ICSharpCode.Core.WinForms</AssemblyName>
     <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
     <AppDesignerFolder>Properties</AppDesignerFolder>
-    <OutputPath>..\..\..\bin\</OutputPath>
+    <OutputPath>bin\Release\</OutputPath>
     <AllowUnsafeBlocks>False</AllowUnsafeBlocks>
     <NoStdLib>False</NoStdLib>
     <WarningLevel>4</WarningLevel>
@@ -19,6 +19,7 @@
     <DelaySign>False</DelaySign>
     <AssemblyOriginatorKeyMode>File</AssemblyOriginatorKeyMode>
     <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+    <RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
     <DebugSymbols>true</DebugSymbols>
@@ -28,7 +29,7 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
-    <DebugSymbols>False</DebugSymbols>
+    <DebugSymbols>false</DebugSymbols>
     <DebugType>None</DebugType>
     <Optimize>True</Optimize>
     <CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
@@ -41,12 +42,6 @@
     <PlatformTarget>AnyCPU</PlatformTarget>
     <FileAlignment>4096</FileAlignment>
   </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
-    <OutputPath>bin\Debug\</OutputPath>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
-    <OutputPath>bin\Release\</OutputPath>
-  </PropertyGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
   <ItemGroup>
     <Reference Include="System" />
@@ -60,69 +55,42 @@
     </Compile>
     <Compile Include="Menu\IStatusUpdate.cs" />
     <Compile Include="Menu\ISubmenuBuilder.cs" />
-    <Compile Include="Menu\Menu.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="Menu\MenuCheckBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="Menu\MenuCommand.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="Menu\MenuSeparator.cs">
-      <SubType>Component</SubType>
-    </Compile>
+    <Compile Include="Menu\Menu.cs" />
+    <Compile Include="Menu\MenuCheckBox.cs" />
+    <Compile Include="Menu\MenuCommand.cs" />
+    <Compile Include="Menu\MenuSeparator.cs" />
     <Compile Include="Menu\MenuService.cs" />
-    <Compile Include="MessageService\CustomDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Include="MessageService\CustomDialog.cs" />
     <Compile Include="MessageService\IDialogMessageService.cs" />
-    <Compile Include="MessageService\InputBox.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="MessageService\SaveErrorChooseDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="MessageService\SaveErrorInformDialog.cs">
-      <SubType>Form</SubType>
-    </Compile>
+    <Compile Include="MessageService\InputBox.cs" />
+    <Compile Include="MessageService\SaveErrorChooseDialog.cs" />
+    <Compile Include="MessageService\SaveErrorInformDialog.cs" />
     <Compile Include="MessageService\WinFormsMessageService.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="ToolBar\ToolBarCheckBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ToolBar\ToolBarComboBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ToolBar\ToolBarCommand.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ToolBar\ToolBarDropDownButton.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ToolBar\ToolBarLabel.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ToolBar\ToolBarSeparator.cs">
-      <SubType>Component</SubType>
-    </Compile>
+    <Compile Include="ToolBar\ToolBarCheckBox.cs" />
+    <Compile Include="ToolBar\ToolBarComboBox.cs" />
+    <Compile Include="ToolBar\ToolBarCommand.cs" />
+    <Compile Include="ToolBar\ToolBarDropDownButton.cs" />
+    <Compile Include="ToolBar\ToolBarLabel.cs" />
+    <Compile Include="ToolBar\ToolBarSeparator.cs" />
     <Compile Include="ToolBar\ToolBarService.cs" />
-    <Compile Include="ToolBar\ToolBarSplitButton.cs">
-      <SubType>Component</SubType>
-    </Compile>
-    <Compile Include="ToolBar\ToolBarTextBox.cs">
-      <SubType>Component</SubType>
-    </Compile>
+    <Compile Include="ToolBar\ToolBarSplitButton.cs" />
+    <Compile Include="ToolBar\ToolBarTextBox.cs" />
     <Compile Include="Util\ClipboardWrapper.cs" />
     <Compile Include="Util\NativeMethods.cs" />
     <Compile Include="Util\RightToLeftConverter.cs" />
     <Compile Include="WinFormsResourceService.cs" />
   </ItemGroup>
   <ItemGroup>
+    <Folder Include="Menu" />
+    <Folder Include="MessageService" />
+    <Folder Include="ToolBar" />
+    <Folder Include="Util" />
+  </ItemGroup>
+  <ItemGroup>
     <ProjectReference Include="..\ICSharpCode.Core\ICSharpCode.Core.csproj">
       <Project>{35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}</Project>
       <Name>ICSharpCode.Core</Name>
-      <Private>False</Private>
     </ProjectReference>
   </ItemGroup>
 </Project>
\ No newline at end of file

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/Menu.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/Menu.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/Menu.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -3,6 +3,7 @@
 
 using System;
 using System.Collections;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -13,22 +14,25 @@
 		object caller;
 		IList subItems;
 		bool isInitialized;
+		IEnumerable<ICondition> conditions;
 		
-		public Menu(Codon codon, object caller, IList subItems)
+		public Menu(Codon codon, object caller, IList subItems, IEnumerable<ICondition> conditions)
 		{
 			if (subItems == null) subItems = new ArrayList(); // don't crash when item has no children
 			this.codon    = codon;
 			this.caller   = caller;
 			this.subItems = subItems;
 			this.RightToLeft = RightToLeft.Inherit;
+			this.conditions = conditions;
 			
 			UpdateText();
 		}
 		
-		public Menu(string text, params ToolStripItem[] subItems)
+		public Menu(string text, IEnumerable<ICondition> conditions, params ToolStripItem[] subItems)
 		{
 			this.Text = StringParser.Parse(text);
 			this.DropDownItems.AddRange(subItems);
+			this.conditions = conditions;
 		}
 		
 		void CreateDropDownItems()
@@ -60,15 +64,14 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
-				return failedAction != ConditionFailedAction.Disable;
+				return Condition.GetFailedAction(conditions, caller) != ConditionFailedAction.Disable;
 			}
 		}
 		
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				this.Visible = failedAction != ConditionFailedAction.Exclude;
 				if (!isInitialized && failedAction != ConditionFailedAction.Exclude) {
 					isInitialized = true;

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCheckBox.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCheckBox.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCheckBox.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,8 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
+using System.Linq;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -12,6 +14,7 @@
 		Codon  codon;
 		string description   = String.Empty;
 		ICheckableMenuCommand menuCommand = null;
+		IEnumerable<ICondition> conditions;
 		
 		void CreateMenuCommand()
 		{
@@ -43,12 +46,14 @@
 		{
 			this.RightToLeft = RightToLeft.Inherit;
 			Text = text;
+			this.conditions = Enumerable.Empty<ICondition>();
 		}
-		public MenuCheckBox(Codon codon, object caller)
+		public MenuCheckBox(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
 			this.caller = caller;
 			this.codon  = codon;
+			this.conditions = conditions;
 			UpdateText();
 		}
 		
@@ -67,7 +72,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				return failedAction != ConditionFailedAction.Disable;
 			}
 		}
@@ -75,7 +80,7 @@
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				this.Visible = failedAction != ConditionFailedAction.Exclude;
 				if (menuCommand == null && !string.IsNullOrEmpty(codon.Properties["checked"])) {
 					Checked = string.Equals(StringParser.Parse(codon.Properties["checked"]),

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCommand.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCommand.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuCommand.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,7 +2,9 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
 using System.Drawing;
+using System.Linq;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -13,6 +15,7 @@
 		Codon codon;
 		ICommand menuCommand = null;
 		string description = "";
+		IEnumerable<ICondition> conditions;
 		
 		public string Description {
 			get {
@@ -66,7 +69,8 @@
 			}
 		}
 		
-		public MenuCommand(Codon codon, object caller) : this(codon, caller, false)
+		public MenuCommand(Codon codon, object caller, IEnumerable<ICondition> conditions)
+			: this(codon, caller, false, conditions)
 		{
 			
 		}
@@ -87,11 +91,12 @@
 			return shortCut;
 		}
 		
-		public MenuCommand(Codon codon, object caller, bool createCommand)
+		public MenuCommand(Codon codon, object caller, bool createCommand, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
-			this.caller        = caller;
-			this.codon         = codon;
+			this.caller      = caller;
+			this.codon       = codon;
+			this.conditions  = conditions;
 			
 			if (createCommand) {
 				CreateCommand();
@@ -114,6 +119,7 @@
 			this.codon  = null;
 			this.caller = null;
 			Text = StringParser.Parse(label);
+			this.conditions = Enumerable.Empty<ICondition>();
 		}
 		
 		protected override void OnClick(System.EventArgs e)
@@ -142,7 +148,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
 				
 				if (menuCommand != null && menuCommand is IMenuCommand) {
@@ -157,7 +163,7 @@
 			if (codon == null)
 				return true;
 			else
-				return codon.GetFailedAction(caller) != ConditionFailedAction.Exclude;
+				return Condition.GetFailedAction(conditions, caller) != ConditionFailedAction.Exclude;
 		}
 		
 		public virtual void UpdateStatus()

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuSeparator.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuSeparator.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuSeparator.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,8 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
+using System.Linq;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -10,23 +12,26 @@
 	{
 		object caller;
 		Codon codon;
+		IEnumerable<ICondition> conditions;
 		
 		public MenuSeparator()
 		{
 			this.RightToLeft = RightToLeft.Inherit;
+			this.conditions = Enumerable.Empty<ICondition>();
 		}
 		
-		public MenuSeparator(Codon codon, object caller)
+		public MenuSeparator(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
-			this.caller              = caller;
-			this.codon = codon;
+			this.caller      = caller;
+			this.codon       = codon;
+			this.conditions  = conditions;
 		}
 		
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				this.Enabled = failedAction != ConditionFailedAction.Disable;
 				this.Visible = failedAction != ConditionFailedAction.Exclude;
 			}

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuService.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuService.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/Menu/MenuService.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -39,14 +39,14 @@
 			
 			switch (type) {
 				case "Separator":
-					return new MenuSeparator(codon, descriptor.Caller);
+					return new MenuSeparator(codon, descriptor.Caller, descriptor.Conditions);
 				case "CheckBox":
-					return new MenuCheckBox(codon, descriptor.Caller);
+					return new MenuCheckBox(codon, descriptor.Caller, descriptor.Conditions);
 				case "Item":
 				case "Command":
-					return new MenuCommand(codon, descriptor.Caller, createCommand);
+					return new MenuCommand(codon, descriptor.Caller, createCommand, descriptor.Conditions);
 				case "Menu":
-					return new Menu(codon, descriptor.Caller, ConvertSubItems(descriptor.SubItems));
+					return new Menu(codon, descriptor.Caller, ConvertSubItems(descriptor.SubItems), descriptor.Conditions);
 				case "Builder":
 					return codon.AddIn.CreateObject(codon.Properties["class"]);
 				default:

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCheckBox.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCheckBox.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCheckBox.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,7 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -12,6 +13,7 @@
 		Codon  codon;
 		string description   = String.Empty;
 		ICheckableMenuCommand menuCommand = null;
+		IEnumerable<ICondition> conditions;
 		
 		public ICheckableMenuCommand MenuCommand {
 			get {
@@ -40,11 +42,12 @@
 			Text = text;
 		}
 		
-		public ToolBarCheckBox(Codon codon, object caller)
+		public ToolBarCheckBox(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
 			this.caller = caller;
 			this.codon  = codon;
+			this.conditions = conditions;
 			try {
 				menuCommand = (ICheckableMenuCommand)codon.AddIn.CreateObject(codon.Properties["class"]);
 			} catch (Exception) {
@@ -78,7 +81,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				return failedAction != ConditionFailedAction.Disable;
 			}
 		}
@@ -86,7 +89,7 @@
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				bool isVisible = failedAction != ConditionFailedAction.Exclude;
 				if (isVisible != Visible)
 					Visible = isVisible;

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarComboBox.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarComboBox.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarComboBox.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,7 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -12,6 +13,7 @@
 		Codon  codon;
 		string description   = String.Empty;
 		IComboBoxCommand menuCommand = null;
+		IEnumerable<ICondition> conditions;
 		
 		public object Caller {
 			get {
@@ -34,7 +36,7 @@
 			}
 		}
 		
-		public ToolBarComboBox(Codon codon, object caller)
+		public ToolBarComboBox(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
 			ComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
@@ -43,6 +45,7 @@
 			
 			this.caller  = caller;
 			this.codon   = codon;
+			this.conditions = conditions;
 			
 			menuCommand = (IComboBoxCommand)codon.AddIn.CreateObject(codon.Properties["class"]);
 			menuCommand.ComboBox = this;
@@ -76,7 +79,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
 				
@@ -92,7 +95,7 @@
 		{
 			bool isVisible = base.Visible;
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				isVisible &= failedAction != ConditionFailedAction.Exclude;
 			}
 			if (base.Visible != isVisible) {

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCommand.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCommand.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarCommand.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,7 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -11,12 +12,14 @@
 		object caller;
 		Codon codon;
 		ICommand menuCommand = null;
+		IEnumerable<ICondition> conditions;
 		
-		public ToolBarCommand(Codon codon, object caller, bool createCommand)
+		public ToolBarCommand(Codon codon, object caller, bool createCommand, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
 			this.caller        = caller;
 			this.codon         = codon;
+			this.conditions  = conditions;
 			
 			if (createCommand) {
 				menuCommand = (ICommand)codon.AddIn.CreateObject(codon.Properties["class"]);
@@ -49,7 +52,7 @@
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				this.Visible = failedAction != ConditionFailedAction.Exclude;
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
 				if (isEnabled && menuCommand != null && menuCommand is IMenuCommand) {

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarDropDownButton.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarDropDownButton.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarDropDownButton.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -3,6 +3,7 @@
 
 using System;
 using System.Collections;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -13,13 +14,15 @@
 		Codon codon;
 		ICommand menuBuilder = null;
 		ArrayList subItems;
+		IEnumerable<ICondition> conditions;
 		
-		public ToolBarDropDownButton(Codon codon, object caller, ArrayList subItems)
+		public ToolBarDropDownButton(Codon codon, object caller, ArrayList subItems, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
-			this.caller        = caller;
-			this.codon         = codon;
-			this.subItems	   = subItems;
+			this.caller      = caller;
+			this.codon       = codon;
+			this.subItems	 = subItems;
+			this.conditions  = conditions;
 
 			if (codon.Properties.Contains("label")){
 				Text = StringParser.Parse(codon.Properties["label"]);
@@ -84,7 +87,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
 				
@@ -95,7 +98,7 @@
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				bool isVisible = failedAction != ConditionFailedAction.Exclude;
 				if (base.Visible != isVisible) {
 					base.Visible = isVisible;

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarLabel.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarLabel.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarLabel.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,8 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -11,6 +13,7 @@
 		object caller;
 		Codon  codon;
 		ICommand menuCommand = null;
+		IEnumerable<ICondition> conditions;
 		
 		public object Caller {
 			get {
@@ -18,11 +21,12 @@
 			}
 		}
 		
-		public ToolBarLabel(Codon codon, object caller)
+		public ToolBarLabel(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
-			this.RightToLeft = RightToLeft.Inherit;			
+			this.RightToLeft = RightToLeft.Inherit;
 			this.caller  = caller;
 			this.codon   = codon;
+			this.conditions = conditions;
 
 			if (codon.Properties.Contains("class"))
 			{
@@ -33,16 +37,16 @@
 			UpdateText();
 			UpdateStatus();
 		}
-				
+		
 		public override bool Enabled {
 			get {
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
-								
+				
 				return isEnabled;
 			}
 		}
@@ -51,7 +55,7 @@
 		{
 			if (codon != null)
 			{
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				this.Enabled = failedAction != ConditionFailedAction.Disable;
 				this.Visible = failedAction != ConditionFailedAction.Exclude;
 			}

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSeparator.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSeparator.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSeparator.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,8 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
+using System.Linq;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -10,23 +12,26 @@
 	{
 		object caller;
 		Codon codon;
+		IEnumerable<ICondition> conditions;
 		
 		public ToolBarSeparator()
 		{
 			this.RightToLeft = RightToLeft.Inherit;
+			this.conditions = Enumerable.Empty<ICondition>();
 		}
 		
-		public ToolBarSeparator(Codon codon, object caller)
+		public ToolBarSeparator(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
 			this.caller = caller;
 			this.codon  = codon;
+			this.conditions = conditions;
 		}
 		
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				this.Enabled = failedAction != ConditionFailedAction.Disable;
 				this.Visible = failedAction != ConditionFailedAction.Exclude;
 			}

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarService.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarService.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarService.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -42,21 +42,21 @@
 			
 			switch (type) {
 				case "Separator":
-					return new ToolBarSeparator(codon, caller);
+					return new ToolBarSeparator(codon, caller, descriptor.Conditions);
 				case "CheckBox":
-					return new ToolBarCheckBox(codon, caller);
+					return new ToolBarCheckBox(codon, caller, descriptor.Conditions);
 				case "Item":
-					return new ToolBarCommand(codon, caller, createCommand);
+					return new ToolBarCommand(codon, caller, createCommand, descriptor.Conditions);
 				case "ComboBox":
-					return new ToolBarComboBox(codon, caller);
+					return new ToolBarComboBox(codon, caller, descriptor.Conditions);
 				case "TextBox":
-					return new ToolBarTextBox(codon, caller);
+					return new ToolBarTextBox(codon, caller, descriptor.Conditions);
 				case "Label":
-					return new ToolBarLabel(codon, caller);
+					return new ToolBarLabel(codon, caller, descriptor.Conditions);
 				case "DropDownButton":
-					return new ToolBarDropDownButton(codon, caller, MenuService.ConvertSubItems(descriptor.SubItems));
+					return new ToolBarDropDownButton(codon, caller, MenuService.ConvertSubItems(descriptor.SubItems), descriptor.Conditions);
 				case "SplitButton":
-					return new ToolBarSplitButton(codon, caller, MenuService.ConvertSubItems(descriptor.SubItems));
+					return new ToolBarSplitButton(codon, caller, MenuService.ConvertSubItems(descriptor.SubItems), descriptor.Conditions);
 				case "Builder":
 					return codon.AddIn.CreateObject(codon.Properties["class"]);
 				default:

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarSplitButton.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -3,6 +3,7 @@
 
 using System;
 using System.Collections;
+using System.Collections.Generic;
 using System.Drawing;
 using System.Windows.Forms;
 
@@ -18,13 +19,15 @@
 		Image imgButtonDisabled = null;
 		bool buttonEnabled = true;
 		bool dropDownEnabled = true;
+		IEnumerable<ICondition> conditions;
 		
-		public ToolBarSplitButton(Codon codon, object caller, ArrayList subItems)
+		public ToolBarSplitButton(Codon codon, object caller, ArrayList subItems, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;
-			this.caller        = caller;
-			this.codon         = codon;
-			this.subItems	   = subItems;
+			this.caller      = caller;
+			this.codon       = codon;
+			this.subItems	 = subItems;
+			this.conditions  = conditions;
 
 			if (codon.Properties.Contains("label")){
 				Text = StringParser.Parse(codon.Properties["label"]);
@@ -96,7 +99,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
 				
@@ -138,7 +141,7 @@
 		public virtual void UpdateStatus()
 		{
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				bool isVisible = failedAction != ConditionFailedAction.Exclude;
 				if (base.Visible != isVisible) {
 					base.Visible = isVisible;

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarTextBox.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarTextBox.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/ToolBar/ToolBarTextBox.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -2,6 +2,7 @@
 // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
 
 using System;
+using System.Collections.Generic;
 using System.Windows.Forms;
 
 namespace ICSharpCode.Core.WinForms
@@ -12,6 +13,7 @@
 		Codon  codon;
 		string description   = String.Empty;
 		ITextBoxCommand menuCommand = null;
+		IEnumerable<ICondition> conditions;
 		
 		public object Caller {
 			get {
@@ -34,11 +36,12 @@
 			}
 		}
 
-		public ToolBarTextBox(Codon codon, object caller)
+		public ToolBarTextBox(Codon codon, object caller, IEnumerable<ICondition> conditions)
 		{
 			this.RightToLeft = RightToLeft.Inherit;			
 			this.caller  = caller;
 			this.codon   = codon;
+			this.conditions = conditions;
 
 			TextBox.KeyDown += new KeyEventHandler(TextBox_KeyDown);
 
@@ -64,7 +67,7 @@
 				if (codon == null) {
 					return base.Enabled;
 				}
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				
 				bool isEnabled = failedAction != ConditionFailedAction.Disable;
 				
@@ -80,7 +83,7 @@
 		{
 			bool isVisible = base.Visible;
 			if (codon != null) {
-				ConditionFailedAction failedAction = codon.GetFailedAction(caller);
+				ConditionFailedAction failedAction = Condition.GetFailedAction(conditions, caller);
 				isVisible &= failedAction != ConditionFailedAction.Exclude;
 			}
 			if (base.Visible != isVisible) {

Modified: trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/WinFormsResourceService.cs
===================================================================
--- trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/WinFormsResourceService.cs	2012-05-29 07:15:30 UTC (rev 6703)
+++ trunk/Tools/Maestro/Thirdparty/SharpDevelop/ICSharpCode.Core.WinForms/WinFormsResourceService.cs	2012-05-29 09:44:49 UTC (rev 6704)
@@ -175,18 +175,6 @@
 				return ico;
 			}
 		}
-
-        /// <summary>
-        /// A simple check to determine if we're running in windows
-        /// </summary>
-        private static bool IsWindows
-        {
-            get
-            {
-                var id = Environment.OSVersion.Platform;
-                return id != PlatformID.Unix && id != PlatformID.Unix;
-            }
-        }
 		
 		/// <summary>
 		/// Converts a bitmap into an icon.
@@ -206,8 +194,7 @@
 					return new Icon(tempIco, tempIco.Width, tempIco.Height);
 				} // dispose tempico, doesn't do much because the icon isn't owned
 			} finally {
-                if (IsWindows)
-				    NativeMethods.DestroyIcon(hIcon);
+				NativeMethods.DestroyIcon(hIcon);
 			}
 		}
 		



More information about the mapguide-commits mailing list