diff --git a/Tests/Perspex.Base.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Base.UnitTests/GlobalSuppressions.cs index 5b748a54d0..70df3acee7 100644 --- a/Tests/Perspex.Base.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Base.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.MaintainabilityRules", diff --git a/Tests/Perspex.Controls.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Controls.UnitTests/GlobalSuppressions.cs index 72d1f6b6a3..254dbfdb94 100644 --- a/Tests/Perspex.Controls.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Controls.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.MaintainabilityRules", diff --git a/Tests/Perspex.Direct2D1.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Direct2D1.UnitTests/GlobalSuppressions.cs index 72d1f6b6a3..254dbfdb94 100644 --- a/Tests/Perspex.Direct2D1.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Direct2D1.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.MaintainabilityRules", diff --git a/Tests/Perspex.Input.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Input.UnitTests/GlobalSuppressions.cs index 72d1f6b6a3..254dbfdb94 100644 --- a/Tests/Perspex.Input.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Input.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.MaintainabilityRules", diff --git a/Tests/Perspex.Interactivity.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Interactivity.UnitTests/GlobalSuppressions.cs index a6e0896543..2000614313 100644 --- a/Tests/Perspex.Interactivity.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Interactivity.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.DocumentationRules", diff --git a/Tests/Perspex.Layout.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Layout.UnitTests/GlobalSuppressions.cs index a6e0896543..2000614313 100644 --- a/Tests/Perspex.Layout.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Layout.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.DocumentationRules", diff --git a/Tests/Perspex.RenderTests/GlobalSuppressions.cs b/Tests/Perspex.RenderTests/GlobalSuppressions.cs index 72d1f6b6a3..254dbfdb94 100644 --- a/Tests/Perspex.RenderTests/GlobalSuppressions.cs +++ b/Tests/Perspex.RenderTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.MaintainabilityRules", diff --git a/Tests/Perspex.SceneGraph.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.SceneGraph.UnitTests/GlobalSuppressions.cs index a6e0896543..2000614313 100644 --- a/Tests/Perspex.SceneGraph.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.SceneGraph.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.DocumentationRules", diff --git a/Tests/Perspex.Styling.UnitTests/GlobalSuppressions.cs b/Tests/Perspex.Styling.UnitTests/GlobalSuppressions.cs index a6e0896543..2000614313 100644 --- a/Tests/Perspex.Styling.UnitTests/GlobalSuppressions.cs +++ b/Tests/Perspex.Styling.UnitTests/GlobalSuppressions.cs @@ -1,7 +1,8 @@ -// This file is used by Code Analysis to maintain SuppressMessage -// attributes that are applied to this project. -// Project-level suppressions either have no target or are given -// a specific target and scoped to a namespace, type, member, etc. +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- [assembly: System.Diagnostics.CodeAnalysis.SuppressMessage( "StyleCop.CSharp.DocumentationRules", diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs index 23e7eb3696..3409f27969 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexObjectAssembler.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.Context +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.Context { using System; using OmniXaml; @@ -15,21 +21,24 @@ mapping.Map(template => template.Content, new TemplateLoader()); var assembler = new ObjectAssembler(wiringContext, new TopDownMemberValueContext(), objectAssemblerSettings); - objectAssembler = new TemplateHostingObjectAssembler(assembler, mapping); + this.objectAssembler = new TemplateHostingObjectAssembler(assembler, mapping); } - public object Result => objectAssembler.Result; + public object Result => this.objectAssembler.Result; + public EventHandler XamlSetValueHandler { get; set; } - public IWiringContext WiringContext => objectAssembler.WiringContext; + + public IWiringContext WiringContext => this.objectAssembler.WiringContext; + public void Process(XamlInstruction node) { - objectAssembler.Process(node); + this.objectAssembler.Process(node); } public void OverrideInstance(object instance) { - objectAssembler.OverrideInstance(instance); + this.objectAssembler.OverrideInstance(instance); } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs index 0c065bb1bf..3312ab7487 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexParserFactory.cs @@ -1,10 +1,15 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Context { using OmniXaml; using OmniXaml.ObjectAssembler; using OmniXaml.Parsers.ProtoParser; using OmniXaml.Parsers.XamlNodes; - using Perspex.Markup.Xaml.Context; public class PerspexParserFactory : IXamlParserFactory { @@ -17,22 +22,22 @@ namespace Perspex.Markup.Xaml.Context public PerspexParserFactory(ITypeFactory typeFactory) { - wiringContext = new PerspexWiringContext(typeFactory); + this.wiringContext = new PerspexWiringContext(typeFactory); } public IXamlParser CreateForReadingFree() { - var objectAssemblerForUndefinedRoot = GetObjectAssemblerForUndefinedRoot(); + var objectAssemblerForUndefinedRoot = this.GetObjectAssemblerForUndefinedRoot(); - return CreateParser(objectAssemblerForUndefinedRoot); + return this.CreateParser(objectAssemblerForUndefinedRoot); } private IXamlParser CreateParser(IObjectAssembler objectAssemblerForUndefinedRoot) { - var xamlInstructionParser = new OrderAwareXamlInstructionParser(new XamlInstructionParser(wiringContext)); + var xamlInstructionParser = new OrderAwareXamlInstructionParser(new XamlInstructionParser(this.wiringContext)); var phaseParserKit = new PhaseParserKit( - new XamlProtoInstructionParser(wiringContext), + new XamlProtoInstructionParser(this.wiringContext), xamlInstructionParser, objectAssemblerForUndefinedRoot); @@ -41,19 +46,19 @@ namespace Perspex.Markup.Xaml.Context private IObjectAssembler GetObjectAssemblerForUndefinedRoot() { - return new ObjectAssembler(wiringContext, new TopDownMemberValueContext()); + return new ObjectAssembler(this.wiringContext, new TopDownMemberValueContext()); } public IXamlParser CreateForReadingSpecificInstance(object rootInstance) { - var objectAssemblerForUndefinedRoot = GetObjectAssemblerForSpecificRoot(rootInstance); + var objectAssemblerForUndefinedRoot = this.GetObjectAssemblerForSpecificRoot(rootInstance); - return CreateParser(objectAssemblerForUndefinedRoot); + return this.CreateParser(objectAssemblerForUndefinedRoot); } private IObjectAssembler GetObjectAssemblerForSpecificRoot(object rootInstance) { - return new PerspexObjectAssembler(wiringContext, new ObjectAssemblerSettings { RootInstance = rootInstance }); + return new PerspexObjectAssembler(this.wiringContext, new ObjectAssemblerSettings { RootInstance = rootInstance }); } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs index 21079e6cac..6d2f28a358 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexTypeRepository.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Context { using System; @@ -23,7 +29,7 @@ namespace Perspex.Markup.Xaml.Context public override XamlType GetXamlType(Type type) { Guard.ThrowIfNull(type, nameof(type)); - return new PerspexXamlType(type, this, typeFactory, FeatureProvider, propertyBinder); + return new PerspexXamlType(type, this, this.typeFactory, this.FeatureProvider, this.propertyBinder); } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs index d52fe9df92..f78418f20d 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexWiringContext.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Context { using System.Collections.Generic; @@ -29,7 +35,7 @@ namespace Perspex.Markup.Xaml.Context var perspexPropertyBinder = new PerspexPropertyBinder(featureProvider.ConverterProvider); var xamlTypeRepository = new PerspexTypeRepository(xamlNamespaceRegistry, typeFactory, featureProvider, perspexPropertyBinder); var typeContext = new TypeContext(xamlTypeRepository, xamlNamespaceRegistry, typeFactory); - context = new WiringContext(typeContext, featureProvider); + this.context = new WiringContext(typeContext, featureProvider); } private static XamlNamespaceRegistry CreateXamlNamespaceRegistry() @@ -106,7 +112,8 @@ namespace Perspex.Markup.Xaml.Context return contentPropertyProvider; } - public ITypeContext TypeContext => context.TypeContext; - public ITypeFeatureProvider FeatureProvider => context.FeatureProvider; + public ITypeContext TypeContext => this.context.TypeContext; + + public ITypeFeatureProvider FeatureProvider => this.context.FeatureProvider; } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs index d1c8575afc..92a073696a 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMember.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Context { using DataBinding; @@ -20,7 +26,7 @@ namespace Perspex.Markup.Xaml.Context protected override IXamlMemberValuePlugin LookupXamlMemberValueConnector() { - return new PerspexXamlMemberValuePlugin(this, propertyBinder); + return new PerspexXamlMemberValuePlugin(this, this.propertyBinder); } public override string ToString() diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs index 175706d5fa..e283ec63ff 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlMemberValuePlugin.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Context { using System; @@ -20,9 +26,9 @@ namespace Perspex.Markup.Xaml.Context public override void SetValue(object instance, object value) { - if (ValueRequiresSpecialHandling(value)) + if (this.ValueRequiresSpecialHandling(value)) { - HandleSpecialValue(instance, value); + this.HandleSpecialValue(instance, value); } else { @@ -35,11 +41,11 @@ namespace Perspex.Markup.Xaml.Context var definition = value as XamlBindingDefinition; if (definition != null) { - HandleXamlBindingDefinition(definition); + this.HandleXamlBindingDefinition(definition); } - else if (IsPerspexProperty) + else if (this.IsPerspexProperty) { - HandlePerspexProperty(instance, value); + this.HandlePerspexProperty(instance, value); } else { @@ -49,7 +55,7 @@ namespace Perspex.Markup.Xaml.Context private void HandlePerspexProperty(object instance, object value) { - var pp = PerspexProperty; + var pp = this.PerspexProperty; var po = (PerspexObject) instance; po.SetValue(pp, value); } @@ -57,10 +63,10 @@ namespace Perspex.Markup.Xaml.Context private void HandleXamlBindingDefinition(XamlBindingDefinition xamlBindingDefinition) { PerspexObject subjectObject = xamlBindingDefinition.Target; - propertyBinder.Create(xamlBindingDefinition); + this.propertyBinder.Create(xamlBindingDefinition); var observableForDataContext = subjectObject.GetObservable(Control.DataContextProperty); - observableForDataContext.Where(o => o != null).Subscribe(_ => BindToDataContextWhenItsSet(xamlBindingDefinition)); + observableForDataContext.Where(o => o != null).Subscribe(_ => this.BindToDataContextWhenItsSet(xamlBindingDefinition)); } private void BindToDataContextWhenItsSet(XamlBindingDefinition definition) @@ -68,7 +74,7 @@ namespace Perspex.Markup.Xaml.Context var target = definition.Target; var dataContext = target.DataContext; - var binding = propertyBinder.GetBinding(target, definition.TargetProperty); + var binding = this.propertyBinder.GetBinding(target, definition.TargetProperty); binding.Bind(dataContext); } @@ -77,8 +83,8 @@ namespace Perspex.Markup.Xaml.Context { get { - var underlyingType = xamlMember.DeclaringType.UnderlyingType; - var name = xamlMember.Name + "Property"; + var underlyingType = this.xamlMember.DeclaringType.UnderlyingType; + var name = this.xamlMember.Name + "Property"; var value = ReflectionExtensions.GetValueOfStaticField(underlyingType, name); return value as PerspexProperty; @@ -87,14 +93,14 @@ namespace Perspex.Markup.Xaml.Context private bool ValueRequiresSpecialHandling(object value) { - return value is XamlBindingDefinition || IsPerspexProperty; + return value is XamlBindingDefinition || this.IsPerspexProperty; } - private bool IsPerspexProperty => PerspexProperty != null; + private bool IsPerspexProperty => this.PerspexProperty != null; public override string ToString() { - return $"{{Perspex Value Connector for member {xamlMember}}}"; + return $"{{Perspex Value Connector for member {this.xamlMember}}}"; } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs index 687d70dae8..ce9ec08e50 100644 --- a/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs +++ b/src/Markup/Perspex.Markup.Xaml/Context/PerspexXamlType.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Context { using System; @@ -18,11 +24,11 @@ namespace Perspex.Markup.Xaml.Context this.propertyBinder = propertyBinder; } - protected IPerspexPropertyBinder PropertyBinder => propertyBinder; + protected IPerspexPropertyBinder PropertyBinder => this.propertyBinder; protected override XamlMember LookupMember(string name) { - return new PerspexXamlMember(name, this, TypeRepository, FeatureProvider, propertyBinder); + return new PerspexXamlMember(name, this, this.TypeRepository, this.FeatureProvider, this.propertyBinder); } public override string ToString() diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs index 3075e234c9..46acc4a68a 100644 --- a/src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/BitmapConverter.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Converters { using System; diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs index 5236df0df8..cd55031cf7 100644 --- a/src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/BrushConverter.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Converters { using System; diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs index 3f3b2d39f6..5609597369 100644 --- a/src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/GridLengthTypeConverter.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.Converters +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.Converters { using System; using System.Globalization; diff --git a/src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs b/src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs index e4768c1afe..061618f55f 100644 --- a/src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs +++ b/src/Markup/Perspex.Markup.Xaml/Converters/ThicknessConverter.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.Converters +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.Converters { using System; using System.Collections.Generic; diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs index b13b5d4bf9..d1bf21a8b4 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/ObservablePropertyBranch.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { using System; @@ -21,9 +27,9 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking this.root = root; this.propertyPath = propertyPath; - mountPoint = new PropertyMountPoint(root, propertyPath); - var subscriptions = GetInpcNodes(); - Changed = CreateObservableFromNodes(subscriptions); + this.mountPoint = new PropertyMountPoint(root, propertyPath); + var subscriptions = this.GetInpcNodes(); + this.Changed = this.CreateObservableFromNodes(subscriptions); } private IObservable CreateObservableFromNodes(IEnumerable subscriptions) @@ -32,14 +38,14 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking subscription => Observable.FromEventPattern( ev => subscription.Parent.PropertyChanged += ev, handler => subscription.Parent.PropertyChanged -= handler) - .Do(_ => mountPoint = new PropertyMountPoint(root, propertyPath)) - .Where(pattern => pattern.EventArgs.PropertyName == subscription.PropertyName)) + .Do(_ => this.mountPoint = new PropertyMountPoint(this.root, this.propertyPath)) + .Where(pattern => pattern.EventArgs.PropertyName == subscription.PropertyName)) .Merge(); } private IEnumerable GetInpcNodes() { - return GetSubscriptionsRecursive(root, propertyPath, 0); + return this.GetSubscriptionsRecursive(this.root, this.propertyPath, 0); } private IEnumerable GetSubscriptionsRecursive(object current, PropertyPath propertyPath, int i) @@ -60,7 +66,7 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking var currentObjectTypeInfo = current.GetType().GetTypeInfo(); var nextProperty = currentObjectTypeInfo.GetDeclaredProperty(nextPropertyName); var nextInstance = nextProperty.GetValue(current); - subscriptions.AddRange(GetSubscriptionsRecursive(nextInstance, propertyPath, i + 1)); + subscriptions.AddRange(this.GetSubscriptionsRecursive(nextInstance, propertyPath, i + 1)); } return subscriptions; @@ -72,25 +78,27 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { get { - return mountPoint.Value; + return this.mountPoint.Value; } + set { - mountPoint.Value = value; + this.mountPoint.Value = value; } } - public Type Type => mountPoint.ProperyType; + public Type Type => this.mountPoint.ProperyType; private class InpcNode { public InpcNode(INotifyPropertyChanged parent, string propertyName) { - Parent = parent; - PropertyName = propertyName; + this.Parent = parent; + this.PropertyName = propertyName; } public INotifyPropertyChanged Parent { get; } + public string PropertyName { get; } } } diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs index 6b5819302f..e8e9c67e45 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyMountPoint.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { using System; using System.Reflection; @@ -9,7 +15,7 @@ private readonly TargettedProperty referencedTargettedProperty; public PropertyMountPoint(object origin, PropertyPath propertyPath) - { + { Guard.ThrowIfNull(origin, nameof(origin)); Guard.ThrowIfNull(propertyPath, nameof(propertyPath)); @@ -35,14 +41,15 @@ { get { - return referencedTargettedProperty.Value; + return this.referencedTargettedProperty.Value; } + set { - referencedTargettedProperty.Value = value; + this.referencedTargettedProperty.Value = value; } } - public Type ProperyType => referencedTargettedProperty.PropertyType; + public Type ProperyType => this.referencedTargettedProperty.PropertyType; } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs index 9a08ee4354..73fe67f051 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/PropertyPath.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { public class PropertyPath @@ -10,14 +16,14 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking } public PropertyPath(string path) - { - chunks = path.Split('.'); + { + this.chunks = path.Split('.'); } public string[] Chunks { - get { return chunks; } - set { chunks = value; } + get { return this.chunks; } + set { this.chunks = value; } } public PropertyPath Clone() diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs index 518d9fca64..a82224c9cf 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/ChangeTracking/TargettedProperty.cs @@ -1,11 +1,16 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking { using System; using System.Reflection; - using Controls; using Glass; - class TargettedProperty + internal class TargettedProperty { private readonly object instance; private readonly PropertyInfo propertyInfo; @@ -21,14 +26,19 @@ namespace Perspex.Markup.Xaml.DataBinding.ChangeTracking public object Value { - get { return propertyInfo.GetValue(instance); } + get + { + return this.propertyInfo.GetValue(this.instance); + } + set { - propertyInfo.SetValue(instance, value); + this.propertyInfo.SetValue(this.instance, value); } } - public Type PropertyType => propertyInfo.PropertyType; - public string Name => propertyInfo.Name; + public Type PropertyType => this.propertyInfo.PropertyType; + + public string Name => this.propertyInfo.Name; } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs index d0ff23c8dc..a6ea52e1fe 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/DataContextChangeSynchronizer.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.DataBinding { using System; @@ -23,17 +29,17 @@ namespace Perspex.Markup.Xaml.DataBinding Guard.ThrowIfNull(source, nameof(source)); Guard.ThrowIfNull(typeConverterProvider, nameof(typeConverterProvider)); - bindingEndpoint = new TargetBindingEndpoint(target, targetProperty); - sourceEndpoint = new ObservablePropertyBranch(source, sourcePropertyPath); - targetPropertyTypeConverter = typeConverterProvider.GetTypeConverter(targetProperty.PropertyType); + this.bindingEndpoint = new TargetBindingEndpoint(target, targetProperty); + this.sourceEndpoint = new ObservablePropertyBranch(source, sourcePropertyPath); + this.targetPropertyTypeConverter = typeConverterProvider.GetTypeConverter(targetProperty.PropertyType); } private bool CanAssignWithoutConversion { get { - var sourceTypeInfo = sourceEndpoint.Type.GetTypeInfo(); - var targetTypeInfo = bindingEndpoint.Property.PropertyType.GetTypeInfo(); + var sourceTypeInfo = this.sourceEndpoint.Type.GetTypeInfo(); + var targetTypeInfo = this.bindingEndpoint.Property.PropertyType.GetTypeInfo(); var compatible = targetTypeInfo.IsAssignableFrom(sourceTypeInfo); return compatible; } @@ -41,19 +47,19 @@ namespace Perspex.Markup.Xaml.DataBinding public void SubscribeModelToUI() { - bindingEndpoint.Object.GetObservable(bindingEndpoint.Property).Subscribe(UpdateModelFromUI); - } + this.bindingEndpoint.Object.GetObservable(this.bindingEndpoint.Property).Subscribe(this.UpdateModelFromUI); + } public void SubscribeUIToModel() { - sourceEndpoint.Changed.Subscribe(_ => UpdateUIFromModel()); - UpdateUIFromModel(); + this.sourceEndpoint.Changed.Subscribe(_ => this.UpdateUIFromModel()); + this.UpdateUIFromModel(); } private void UpdateUIFromModel() { - object contextGetter = sourceEndpoint.Value; - SetCompatibleValue(contextGetter, bindingEndpoint.Property.PropertyType, o => bindingEndpoint.Object.SetValue(bindingEndpoint.Property, o)); + object contextGetter = this.sourceEndpoint.Value; + this.SetCompatibleValue(contextGetter, this.bindingEndpoint.Property.PropertyType, o => this.bindingEndpoint.Object.SetValue(this.bindingEndpoint.Property, o)); } private void SetCompatibleValue(object originalValue, Type targetType, Action setValueFunc) @@ -64,7 +70,7 @@ namespace Perspex.Markup.Xaml.DataBinding } else { - if (CanAssignWithoutConversion) + if (this.CanAssignWithoutConversion) { setValueFunc(originalValue); } @@ -72,11 +78,11 @@ namespace Perspex.Markup.Xaml.DataBinding { var synchronizationOk = false; - if (targetPropertyTypeConverter != null) + if (this.targetPropertyTypeConverter != null) { - if (targetPropertyTypeConverter.CanConvertTo(null, targetType)) + if (this.targetPropertyTypeConverter.CanConvertTo(null, targetType)) { - object convertedValue = targetPropertyTypeConverter.ConvertTo(null, CultureInfo.InvariantCulture, originalValue, + object convertedValue = this.targetPropertyTypeConverter.ConvertTo(null, CultureInfo.InvariantCulture, originalValue, targetType); if (convertedValue != null) @@ -89,7 +95,7 @@ namespace Perspex.Markup.Xaml.DataBinding if (!synchronizationOk) { - LogCannotConvertError(originalValue); + this.LogCannotConvertError(originalValue); } } } @@ -97,7 +103,7 @@ namespace Perspex.Markup.Xaml.DataBinding private void UpdateModelFromUI(object valueFromUI) { - SetCompatibleValue(valueFromUI, sourceEndpoint.Type, o => sourceEndpoint.Value = o); + this.SetCompatibleValue(valueFromUI, this.sourceEndpoint.Type, o => this.sourceEndpoint.Value = o); } private void LogCannotConvertError(object value) @@ -107,7 +113,7 @@ namespace Perspex.Markup.Xaml.DataBinding var loggableValue = value.ToString(); var valueToWrite = string.IsNullOrWhiteSpace(loggableValue) ? "'(empty/whitespace string)'" : loggableValue; - Debug.WriteLine("Cannot convert value {0} ({1}) to {2}", valueToWrite, value.GetType(), bindingEndpoint.Property.PropertyType); - } + Debug.WriteLine("Cannot convert value {0} ({1}) to {2}", valueToWrite, value.GetType(), this.bindingEndpoint.Property.PropertyType); + } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs index 968c64ecb5..8d7e99653f 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/IPerspexPropertyBinder.cs @@ -1,11 +1,19 @@ -namespace Perspex.Markup.Xaml.DataBinding +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.DataBinding { using System.Collections.Generic; public interface IPerspexPropertyBinder { XamlBinding GetBinding(PerspexObject po, PerspexProperty pp); + IEnumerable GetBindings(PerspexObject source); + XamlBinding Create(XamlBindingDefinition xamlBinding); } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs index 7aaab8377d..3cb8c3f67e 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/PerspexPropertyBinder.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.DataBinding +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.DataBinding { using System; using System.Collections.Generic; @@ -14,17 +20,17 @@ public PerspexPropertyBinder(ITypeConverterProvider typeConverterProvider) { this.typeConverterProvider = typeConverterProvider; - bindings = new HashSet(); + this.bindings = new HashSet(); } public XamlBinding GetBinding(PerspexObject po, PerspexProperty pp) { - return bindings.First(xamlBinding => xamlBinding.Target == po && xamlBinding.TargetProperty == pp); + return this.bindings.First(xamlBinding => xamlBinding.Target == po && xamlBinding.TargetProperty == pp); } public IEnumerable GetBindings(PerspexObject source) { - return from binding in bindings + return from binding in this.bindings where binding.Target == source select binding; } @@ -41,7 +47,7 @@ throw new InvalidOperationException(); } - var binding = new XamlBinding(typeConverterProvider) + var binding = new XamlBinding(this.typeConverterProvider) { BindingMode = xamlBinding.BindingMode, SourcePropertyPath = xamlBinding.SourcePropertyPath, @@ -49,7 +55,7 @@ TargetProperty = xamlBinding.TargetProperty }; - bindings.Add(binding); + this.bindings.Add(binding); return binding; } } diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs index 8669e38086..c8a2b1ed38 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/SourceBindingEndpoint.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.DataBinding { using System; @@ -6,8 +12,11 @@ namespace Perspex.Markup.Xaml.DataBinding public class SourceBindingEndpoint { public Type PropertyType { get; } + public INotifyPropertyChanged Source { get; } + public dynamic PropertyGetter { get; } + public Delegate PropertySetter { get; } public SourceBindingEndpoint(INotifyPropertyChanged source, Type propertyType, dynamic propertyGetter, Delegate propertySetter) @@ -15,7 +24,7 @@ namespace Perspex.Markup.Xaml.DataBinding this.Source = source; this.PropertyType = propertyType; this.PropertyGetter = propertyGetter; - this.PropertySetter = propertySetter; + this.PropertySetter = propertySetter; } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs index 2143c264c3..a87941d03c 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/TargetBindingEndpoint.cs @@ -1,14 +1,21 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.DataBinding { public class TargetBindingEndpoint { public PerspexObject Object { get; } + public PerspexProperty Property { get; } public TargetBindingEndpoint(PerspexObject obj, PerspexProperty property) { - Object = obj; - Property = property; + this.Object = obj; + this.Property = property; } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs index 7703fa4c23..1b58726b85 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBinding.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.DataBinding +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.DataBinding { using System; using System.Diagnostics; @@ -10,8 +16,11 @@ private readonly ITypeConverterProvider typeConverterProvider; public PerspexObject Target { get; set; } + public PerspexProperty TargetProperty { get; set; } + public PropertyPath SourcePropertyPath { get; set; } + public BindingMode BindingMode { get; set; } public XamlBinding(ITypeConverterProvider typeConverterProvider) @@ -28,34 +37,34 @@ try { - if (BindingMode == BindingMode.TwoWay) + if (this.BindingMode == BindingMode.TwoWay) { var changeSynchronizer = new DataContextChangeSynchronizer( - Target, - TargetProperty, - SourcePropertyPath, + this.Target, + this.TargetProperty, + this.SourcePropertyPath, dataContext, - typeConverterProvider); + this.typeConverterProvider); changeSynchronizer.SubscribeUIToModel(); changeSynchronizer.SubscribeModelToUI(); } - if (BindingMode == BindingMode.OneWay) + if (this.BindingMode == BindingMode.OneWay) { var subscriptionHandler = new DataContextChangeSynchronizer( - Target, - TargetProperty, - SourcePropertyPath, + this.Target, + this.TargetProperty, + this.SourcePropertyPath, dataContext, - typeConverterProvider); + this.typeConverterProvider); - subscriptionHandler.SubscribeUIToModel(); + subscriptionHandler.SubscribeUIToModel(); } - if (BindingMode == BindingMode.OneWayToSource) + if (this.BindingMode == BindingMode.OneWayToSource) { - var subscriptionHandler = new DataContextChangeSynchronizer(Target, TargetProperty, SourcePropertyPath, dataContext, typeConverterProvider); + var subscriptionHandler = new DataContextChangeSynchronizer(this.Target, this.TargetProperty, this.SourcePropertyPath, dataContext, this.typeConverterProvider); subscriptionHandler.SubscribeModelToUI(); } } diff --git a/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs index 1505330cee..0e57dca5f1 100644 --- a/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs +++ b/src/Markup/Perspex.Markup.Xaml/DataBinding/XamlBindingDefinition.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.DataBinding +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.DataBinding { using ChangeTracking; using Controls; @@ -18,12 +24,12 @@ this.bindingMode = bindingMode; } - public Control Target => target; + public Control Target => this.target; - public PerspexProperty TargetProperty => targetProperty; + public PerspexProperty TargetProperty => this.targetProperty; - public PropertyPath SourcePropertyPath => sourcePropertyPath; + public PropertyPath SourcePropertyPath => this.sourcePropertyPath; - public BindingMode BindingMode => bindingMode; + public BindingMode BindingMode => this.bindingMode; } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs index aacf80dfda..32c3e26c21 100644 --- a/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs +++ b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/BindingExtension.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.MarkupExtensions { using System.Linq; @@ -9,12 +15,12 @@ namespace Perspex.Markup.Xaml.MarkupExtensions public class BindingExtension : MarkupExtension { public BindingExtension() - { + { } public BindingExtension(string path) { - Path = path; + this.Path = path; } public override object ProvideValue(MarkupExtensionContext extensionContext) @@ -28,14 +34,14 @@ namespace Perspex.Markup.Xaml.MarkupExtensions ( target, perspexProperty, - new PropertyPath(Path), - Mode == BindingMode.Default ? BindingMode.OneWay : Mode + new PropertyPath(this.Path), + this.Mode == BindingMode.Default ? BindingMode.OneWay : this.Mode ); } - /// The source path (for CLR bindings). + /// The source path (for CLR bindings). public string Path { get; set; } - public BindingMode Mode { get; set; } + public BindingMode Mode { get; set; } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs index 8a8cff7b4c..2b05d247ff 100644 --- a/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs +++ b/src/Markup/Perspex.Markup.Xaml/MarkupExtensions/TypeExtension.cs @@ -1,4 +1,10 @@ -namespace Perspex.Markup.Xaml.MarkupExtensions +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Markup.Xaml.MarkupExtensions { using System; using Glass; @@ -12,12 +18,12 @@ public Type Type { get; set; } public TypeExtension() - { + { } public TypeExtension(Type type) { - Type = type; + this.Type = type; } public string TypeName { get; set; } @@ -34,12 +40,12 @@ public override object ProvideValue(MarkupExtensionContext markupExtensionContext) { - if (Type != null) + if (this.Type != null) { - return Type; + return this.Type; } - return ResolveFromString(TypeName, markupExtensionContext.TypeRepository); + return this.ResolveFromString(this.TypeName, markupExtensionContext.TypeRepository); } } } \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/Template.cs b/src/Markup/Perspex.Markup.Xaml/Templates/Template.cs index a617ecafb8..200213b43e 100644 --- a/src/Markup/Perspex.Markup.Xaml/Templates/Template.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/Template.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Templates { public class Template diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs index 640ade0074..299e2a82b6 100644 --- a/src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateContent.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Templates { using System.Collections.Generic; @@ -18,9 +24,9 @@ namespace Perspex.Markup.Xaml.Templates public Control Load() { - var assembler = new PerspexObjectAssembler(context); + var assembler = new PerspexObjectAssembler(this.context); - foreach (var xamlNode in nodes) + foreach (var xamlNode in this.nodes) { assembler.Process(xamlNode); } diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs index b46cd84c44..b8b3b69155 100644 --- a/src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/TemplateLoader.cs @@ -1,3 +1,9 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Templates { using System.Collections.Generic; diff --git a/src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs b/src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs index 44dfa42489..4f891579c4 100644 --- a/src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs +++ b/src/Markup/Perspex.Markup.Xaml/Templates/XamlDataTemplate.cs @@ -1,26 +1,32 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + namespace Perspex.Markup.Xaml.Templates { using System; using Controls.Templates; using OmniXaml.Attributes; - using Controls; + using Perspex.Controls; [ContentProperty("Content")] public class XamlDataTemplate : IDataTemplate { private bool MyMatch(object data) { - if (DataType == null) + if (this.DataType == null) { throw new InvalidOperationException("XAML DataTemplates must have a DataType"); } - return DataType == data.GetType(); + return this.DataType == data.GetType(); } private Control CreateVisualTreeForItem(object data) { - var visualTreeForItem = Content.Load(); + var visualTreeForItem = this.Content.Load(); visualTreeForItem.DataContext = data; return visualTreeForItem; } @@ -28,14 +34,15 @@ namespace Perspex.Markup.Xaml.Templates public Type DataType { get; set; } public TemplateContent Content { get; set; } + public IControl Build(object param) { - return CreateVisualTreeForItem(param); + return this.CreateVisualTreeForItem(param); } public bool Match(object data) { - return MyMatch(data); + return this.MyMatch(data); } } } \ No newline at end of file diff --git a/src/Perspex.Animation/Perspex.Animation.csproj b/src/Perspex.Animation/Perspex.Animation.csproj index 47f4072067..1ff6b3572b 100644 --- a/src/Perspex.Animation/Perspex.Animation.csproj +++ b/src/Perspex.Animation/Perspex.Animation.csproj @@ -33,6 +33,7 @@ TRACE prompt 4 + bin\Release\Perspex.Animation.XML diff --git a/src/Perspex.Application/Perspex.Application.csproj b/src/Perspex.Application/Perspex.Application.csproj index c378be1bee..f24e874768 100644 --- a/src/Perspex.Application/Perspex.Application.csproj +++ b/src/Perspex.Application/Perspex.Application.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Application.XML diff --git a/src/Perspex.Base/Perspex.Base.csproj b/src/Perspex.Base/Perspex.Base.csproj index fb34c0b4dc..b26cfaf677 100644 --- a/src/Perspex.Base/Perspex.Base.csproj +++ b/src/Perspex.Base/Perspex.Base.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Base.XML diff --git a/src/Perspex.Base/Threading/Dispatcher.cs b/src/Perspex.Base/Threading/Dispatcher.cs index 665a7c753e..af6f1d58af 100644 --- a/src/Perspex.Base/Threading/Dispatcher.cs +++ b/src/Perspex.Base/Threading/Dispatcher.cs @@ -1,4 +1,4 @@ -// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- // // Copyright 2014 MIT Licence. See licence.md for more information. // diff --git a/src/Perspex.Base/Threading/DispatcherTimer.cs b/src/Perspex.Base/Threading/DispatcherTimer.cs index 78a0e4083e..73335ea408 100644 --- a/src/Perspex.Base/Threading/DispatcherTimer.cs +++ b/src/Perspex.Base/Threading/DispatcherTimer.cs @@ -1,4 +1,4 @@ -// ----------------------------------------------------------------------- +// ----------------------------------------------------------------------- // // Copyright 2013 MIT Licence. See licence.md for more information. // diff --git a/src/Perspex.Controls/IContentControl.cs b/src/Perspex.Controls/IContentControl.cs index ec6489e7f1..d786f86f88 100644 --- a/src/Perspex.Controls/IContentControl.cs +++ b/src/Perspex.Controls/IContentControl.cs @@ -7,12 +7,25 @@ namespace Perspex.Controls { using Perspex.Layout; + /// + /// Defines a control that displays according to a + /// . + /// public interface IContentControl : IControl { + /// + /// Gets or sets the content to display. + /// object Content { get; set; } + /// + /// Gets or sets the horizontal alignment of the content within the control. + /// HorizontalAlignment HorizontalContentAlignment { get; set; } + /// + /// Gets or sets the vertical alignment of the content within the control. + /// VerticalAlignment VerticalContentAlignment { get; set; } } } \ No newline at end of file diff --git a/src/Perspex.Controls/IGlobalDataTemplates.cs b/src/Perspex.Controls/IGlobalDataTemplates.cs index a112bc019e..e08451ec31 100644 --- a/src/Perspex.Controls/IGlobalDataTemplates.cs +++ b/src/Perspex.Controls/IGlobalDataTemplates.cs @@ -6,11 +6,16 @@ namespace Perspex.Controls { - using System.Collections.Generic; using Perspex.Controls.Templates; + /// + /// Defines the application-global data templates. + /// public interface IGlobalDataTemplates { + /// + /// Gets the application-global data templates. + /// DataTemplates DataTemplates { get; } } } diff --git a/src/Perspex.Controls/IHeadered.cs b/src/Perspex.Controls/IHeadered.cs index b7ed08002a..06412168ba 100644 --- a/src/Perspex.Controls/IHeadered.cs +++ b/src/Perspex.Controls/IHeadered.cs @@ -6,8 +6,14 @@ namespace Perspex.Controls { + /// + /// Defines a headered object. + /// public interface IHeadered { + /// + /// Gets or set the header. + /// object Header { get; set; } } } diff --git a/src/Perspex.Controls/Perspex.Controls.csproj b/src/Perspex.Controls/Perspex.Controls.csproj index 6485f9a5e6..786327e458 100644 --- a/src/Perspex.Controls/Perspex.Controls.csproj +++ b/src/Perspex.Controls/Perspex.Controls.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Controls.XML @@ -45,6 +46,7 @@ + @@ -110,7 +112,6 @@ - diff --git a/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj b/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj index 8314534f20..775e5b0d96 100644 --- a/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj +++ b/src/Perspex.Diagnostics/Perspex.Diagnostics.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Diagnostics.XML diff --git a/src/Perspex.Input/Perspex.Input.csproj b/src/Perspex.Input/Perspex.Input.csproj index b5495ed798..f93f2a331e 100644 --- a/src/Perspex.Input/Perspex.Input.csproj +++ b/src/Perspex.Input/Perspex.Input.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Input.XML diff --git a/src/Perspex.Interactivity/Perspex.Interactivity.csproj b/src/Perspex.Interactivity/Perspex.Interactivity.csproj index 6356557395..601ae6eca9 100644 --- a/src/Perspex.Interactivity/Perspex.Interactivity.csproj +++ b/src/Perspex.Interactivity/Perspex.Interactivity.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Interactivity.XML diff --git a/src/Perspex.Layout/Perspex.Layout.csproj b/src/Perspex.Layout/Perspex.Layout.csproj index 5da696808d..9f4fd19eda 100644 --- a/src/Perspex.Layout/Perspex.Layout.csproj +++ b/src/Perspex.Layout/Perspex.Layout.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Layout.XML diff --git a/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj b/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj index d4915d8cda..3b5280b26a 100644 --- a/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj +++ b/src/Perspex.SceneGraph/Perspex.SceneGraph.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.SceneGraph.XML diff --git a/src/Perspex.Styling/Perspex.Styling.csproj b/src/Perspex.Styling/Perspex.Styling.csproj index 64d208d74c..8338d5a714 100644 --- a/src/Perspex.Styling/Perspex.Styling.csproj +++ b/src/Perspex.Styling/Perspex.Styling.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Styling.XML diff --git a/src/Perspex.Themes.Default/Perspex.Themes.Default.csproj b/src/Perspex.Themes.Default/Perspex.Themes.Default.csproj index 40eeb2c76d..a2db31db97 100644 --- a/src/Perspex.Themes.Default/Perspex.Themes.Default.csproj +++ b/src/Perspex.Themes.Default/Perspex.Themes.Default.csproj @@ -35,6 +35,7 @@ TRACE prompt 4 + bin\Release\Perspex.Themes.Default.XML diff --git a/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj b/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj index 061fd5cb1e..73ce0904a4 100644 --- a/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj +++ b/src/Windows/Perspex.Direct2D1/Perspex.Direct2D1.csproj @@ -31,6 +31,7 @@ TRACE prompt 4 + bin\Release\Perspex.Direct2D1.XML diff --git a/src/Windows/Perspex.Win32/Perspex.Win32.csproj b/src/Windows/Perspex.Win32/Perspex.Win32.csproj index 7f83e98d5c..0346d8c28a 100644 --- a/src/Windows/Perspex.Win32/Perspex.Win32.csproj +++ b/src/Windows/Perspex.Win32/Perspex.Win32.csproj @@ -31,6 +31,7 @@ TRACE prompt 4 + bin\Release\Perspex.Win32.XML