diff --git a/ILSpy/Controls/ExtensionMethods.cs b/ILSpy/Controls/ExtensionMethods.cs new file mode 100644 index 000000000..b335f4449 --- /dev/null +++ b/ILSpy/Controls/ExtensionMethods.cs @@ -0,0 +1,82 @@ +// Copyright (c) 2011 AlphaSierraPapa for the SharpDevelop Team +// +// Permission is hereby granted, free of charge, to any person obtaining a copy of this +// software and associated documentation files (the "Software"), to deal in the Software +// without restriction, including without limitation the rights to use, copy, modify, merge, +// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons +// to whom the Software is furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in all copies or +// substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +// DEALINGS IN THE SOFTWARE. + +using System; +using System.Collections.Generic; +using System.Windows; +using System.Windows.Markup; +using Mono.Cecil; + +namespace ICSharpCode.ILSpy.Controls +{ + /// + /// ExtensionMethods used in ILSpy. + /// + public static class ExtensionMethods + { + /// + /// Sets the value of a dependency property on using a markup extension. + /// + /// This method does not support markup extensions like x:Static that depend on + /// having a XAML file as context. + public static void SetValueToExtension(this DependencyObject targetObject, DependencyProperty property, MarkupExtension markupExtension) + { + // This method was copied from ICSharpCode.Core.Presentation (with permission to switch license to X11) + + if (targetObject == null) + throw new ArgumentNullException("targetObject"); + if (property == null) + throw new ArgumentNullException("property"); + if (markupExtension == null) + throw new ArgumentNullException("markupExtension"); + + var serviceProvider = new SetValueToExtensionServiceProvider(targetObject, property); + targetObject.SetValue(property, markupExtension.ProvideValue(serviceProvider)); + } + + sealed class SetValueToExtensionServiceProvider : IServiceProvider, IProvideValueTarget + { + // This class was copied from ICSharpCode.Core.Presentation (with permission to switch license to X11) + + readonly DependencyObject targetObject; + readonly DependencyProperty targetProperty; + + public SetValueToExtensionServiceProvider(DependencyObject targetObject, DependencyProperty property) + { + this.targetObject = targetObject; + this.targetProperty = property; + } + + public object GetService(Type serviceType) + { + if (serviceType == typeof(IProvideValueTarget)) + return this; + else + return null; + } + + public object TargetObject { + get { return targetObject; } + } + + public object TargetProperty { + get { return targetProperty; } + } + } + } +} diff --git a/ILSpy/ExtensionMethods.cs b/ILSpy/ExtensionMethods.cs index 10008f615..29e0e8e69 100644 --- a/ILSpy/ExtensionMethods.cs +++ b/ILSpy/ExtensionMethods.cs @@ -35,55 +35,5 @@ namespace ICSharpCode.ILSpy if (!list.Contains(item)) list.Add(item); } - - /// - /// Sets the value of a dependency property on using a markup extension. - /// - /// This method does not support markup extensions like x:Static that depend on - /// having a XAML file as context. - public static void SetValueToExtension(this DependencyObject targetObject, DependencyProperty property, MarkupExtension markupExtension) - { - // This method was copied from ICSharpCode.Core.Presentation (with permission to switch license to X11) - - if (targetObject == null) - throw new ArgumentNullException("targetObject"); - if (property == null) - throw new ArgumentNullException("property"); - if (markupExtension == null) - throw new ArgumentNullException("markupExtension"); - - var serviceProvider = new SetValueToExtensionServiceProvider(targetObject, property); - targetObject.SetValue(property, markupExtension.ProvideValue(serviceProvider)); - } - - sealed class SetValueToExtensionServiceProvider : IServiceProvider, IProvideValueTarget - { - // This class was copied from ICSharpCode.Core.Presentation (with permission to switch license to X11) - - readonly DependencyObject targetObject; - readonly DependencyProperty targetProperty; - - public SetValueToExtensionServiceProvider(DependencyObject targetObject, DependencyProperty property) - { - this.targetObject = targetObject; - this.targetProperty = property; - } - - public object GetService(Type serviceType) - { - if (serviceType == typeof(IProvideValueTarget)) - return this; - else - return null; - } - - public object TargetObject { - get { return targetObject; } - } - - public object TargetProperty { - get { return targetProperty; } - } - } } } diff --git a/ILSpy/ILSpy.csproj b/ILSpy/ILSpy.csproj index f370b6fbf..53eeabb74 100644 --- a/ILSpy/ILSpy.csproj +++ b/ILSpy/ILSpy.csproj @@ -107,6 +107,7 @@ + @@ -375,18 +376,12 @@ ICSharpCode.TreeView - - - + - - - - - + \ No newline at end of file