diff --git a/phirSOFT.FluentRegionAdapters/ComposedPositionContraint.cs b/phirSOFT.FluentRegionAdapters/ComposedPositionContraint.cs index 947eb02..43c8bef 100644 --- a/phirSOFT.FluentRegionAdapters/ComposedPositionContraint.cs +++ b/phirSOFT.FluentRegionAdapters/ComposedPositionContraint.cs @@ -1,14 +1,60 @@ +using System; using System.Collections; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; +using System.Windows; namespace phirSOFT.FluentRegionAdapters { - public abstract class ComposedPositionContraint : PositionConstraint, ICollection> + public class ComposedPositionContraint : PositionConstraint, IList, IList { - private ICollection> _collectionImplementation; + private readonly Collection _collectionImplementation = + new Collection(); - public IEnumerator> GetEnumerator() + public int Add(object value) + { + return ((IList) _collectionImplementation).Add(value); + } + + public bool Contains(object value) + { + return ((IList) _collectionImplementation).Contains(value); + } + + public int IndexOf(object value) + { + return ((IList) _collectionImplementation).IndexOf(value); + } + + public void Insert(int index, object value) + { + ((IList) _collectionImplementation).Insert(index, value); + } + + public void Remove(object value) + { + ((IList) _collectionImplementation).Remove(value); + } + + public void CopyTo(Array array, int index) + { + ((ICollection) _collectionImplementation).CopyTo(array, index); + } + + public object SyncRoot => ((ICollection) _collectionImplementation).SyncRoot; + + public bool IsSynchronized => ((ICollection) _collectionImplementation).IsSynchronized; + + public bool IsFixedSize => ((IList) _collectionImplementation).IsFixedSize; + + object IList.this[int index] + { + get => ((IList) _collectionImplementation)[index]; + set => ((IList) _collectionImplementation)[index] = value; + } + + public IEnumerator GetEnumerator() { return _collectionImplementation.GetEnumerator(); } @@ -18,7 +64,7 @@ IEnumerator IEnumerable.GetEnumerator() return ((IEnumerable) _collectionImplementation).GetEnumerator(); } - public void Add(PositionConstraint item) + public void Add(PositionConstraint item) { _collectionImplementation.Add(item); } @@ -28,40 +74,55 @@ public void Clear() _collectionImplementation.Clear(); } - public bool Contains(PositionConstraint item) + public bool Contains(PositionConstraint item) { return _collectionImplementation.Contains(item); } - public void CopyTo(PositionConstraint[] array, int arrayIndex) + public void CopyTo(PositionConstraint[] array, int arrayIndex) { _collectionImplementation.CopyTo(array, arrayIndex); } - public bool Remove(PositionConstraint item) + public bool Remove(PositionConstraint item) { return _collectionImplementation.Remove(item); } - public int Count + public int Count => _collectionImplementation.Count; + + public bool IsReadOnly => false; + + public int IndexOf(PositionConstraint item) { - get { return _collectionImplementation.Count; } + return _collectionImplementation.IndexOf(item); } - public bool IsReadOnly + public void Insert(int index, PositionConstraint item) { - get { return _collectionImplementation.IsReadOnly; } + _collectionImplementation.Insert(index, item); } - protected override bool CanCompare(T left, T right) + public void RemoveAt(int index) { - return this.Any(c => CanCompare(c, left, right)); + _collectionImplementation.RemoveAt(index); } - public override int Compare(T x, T y) + public PositionConstraint this[int index] { - return this.First(c => CanCompare(c, x, y)).Compare(x, y); + get => _collectionImplementation[index]; + set => _collectionImplementation[index] = value; } + public override bool CanCompare(DependencyObject left, DependencyObject right) + { + return this.Any(c => c.CanCompare(left, right)); + } + + public override int Compare(DependencyObject x, DependencyObject y) + { + var result = 0; + return _collectionImplementation.Any(comparer => comparer.CanCompare(x, y) && (result = comparer.Compare(x, y)) != 0) ? result : 0; + } } } \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/ContraintedRegionAdapter.cs b/phirSOFT.FluentRegionAdapters/ContraintedRegionAdapter.cs new file mode 100644 index 0000000..5789c9c --- /dev/null +++ b/phirSOFT.FluentRegionAdapters/ContraintedRegionAdapter.cs @@ -0,0 +1,93 @@ +using System.Collections; +using System.Collections.Specialized; +using System.Windows; +using phirSOFT.TopologicalComparison; +using Prism.Regions; + +namespace phirSOFT.FluentRegionAdapters +{ + public abstract class ContraintedRegionAdapter : RegionAdapterBase + where TContainer : DependencyObject + { + public static readonly DependencyProperty ConstraintComparerProperty = DependencyProperty.RegisterAttached( + "ConstraintComparer", typeof(ITopologicalComparer), typeof(ContraintedRegionAdapter), + new PropertyMetadata(new DefaultComparer())); + + protected ContraintedRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory) + { + } + + public static void SetConstraintComparer(DependencyObject element, ITopologicalComparer value) + { + element.SetValue(ConstraintComparerProperty, value); + } + + public static ITopologicalComparer GetConstraintComparer(DependencyObject element) + { + return (ITopologicalComparer) element.GetValue(ConstraintComparerProperty); + } + + + protected override void Adapt(IRegion region, TContainer regionTarget) + { + region.Views.CollectionChanged += (sender, args) => UpdateRegion(sender, args, regionTarget); + //region.ActiveViews.CollectionChanged += (sender, args) => ActivateView(sender, args); + } + + + protected virtual void UpdateRegion(object sender, NotifyCollectionChangedEventArgs args, + TContainer regionTarget) + { + switch (args.Action) + { + case NotifyCollectionChangedAction.Add: + foreach (DependencyObject item in args.NewItems) + { + var list = GetItemCollection(regionTarget, item); + list.Insert(item, GetConstraintComparer(regionTarget)); + } + + break; + case NotifyCollectionChangedAction.Remove: + foreach (DependencyObject item in args.NewItems) + { + var list = GetItemCollection(regionTarget, item); + list.Remove(item); + } + break; + case NotifyCollectionChangedAction.Replace: + break; + case NotifyCollectionChangedAction.Move: + break; + case NotifyCollectionChangedAction.Reset: + break; + } + } + + + protected abstract IList GetItemCollection(TContainer container); + + protected virtual IList GetItemCollection(TContainer container, DependencyObject item) + { + return GetItemCollection(container); + } + + protected override IRegion CreateRegion() + { + return new Region(); + } + + private class DefaultComparer : ITopologicalComparer + { + public int Compare(object x, object y) + { + return 0; + } + + public bool CanCompare(object x, object y) + { + return true; + } + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/GroupConstraint.cs b/phirSOFT.FluentRegionAdapters/GroupConstraint.cs new file mode 100644 index 0000000..72c94a5 --- /dev/null +++ b/phirSOFT.FluentRegionAdapters/GroupConstraint.cs @@ -0,0 +1,34 @@ +using System.Windows; +using Fluent; + +namespace phirSOFT.FluentRegionAdapters +{ + public class GroupConstraint : PositionConstraint + { + public static readonly DependencyProperty GroupProperty = DependencyProperty.RegisterAttached( + "Group", typeof(int), typeof(GroupConstraint), new PropertyMetadata(default(int))); + + public static void SetGroup(DependencyObject element, int value) + { + element.SetValue(GroupProperty, value); + } + + public static int GetGroup(DependencyObject element) + { + return (int) element.GetValue(GroupProperty); + } + + public override bool CanCompare(DependencyObject x, DependencyObject y) + { + return x is RibbonTabItem && y is RibbonTabItem; + } + + public override int Compare(DependencyObject x, DependencyObject y) + { + var left = GetGroup(x); + var right = GetGroup(y); + + return left - right; + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/PositionConstraint.cs b/phirSOFT.FluentRegionAdapters/PositionConstraint.cs index 31abafb..957bc3c 100644 --- a/phirSOFT.FluentRegionAdapters/PositionConstraint.cs +++ b/phirSOFT.FluentRegionAdapters/PositionConstraint.cs @@ -1,14 +1,22 @@ -using System.Collections.Generic; +using System.Windows; +using phirSOFT.TopologicalComparison; namespace phirSOFT.FluentRegionAdapters { - public abstract class PositionConstraint : Comparer + public abstract class PositionConstraint : ITopologicalComparer, ITopologicalComparer { - protected abstract bool CanCompare(T left, T right); + public int Compare(object x, object y) + { + return Compare(x as DependencyObject, y as DependencyObject); + } - protected static bool CanCompare(PositionConstraint comparer, T left, T rigt) + public bool CanCompare(object x, object y) { - return comparer.CanCompare(left, rigt); + return x is DependencyObject xx && y is DependencyObject yy && CanCompare(xx, yy); } + + public abstract bool CanCompare(DependencyObject x, DependencyObject y); + + public abstract int Compare(DependencyObject x, DependencyObject y); } } \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/Properties/AssemblyInfo.cs b/phirSOFT.FluentRegionAdapters/Properties/AssemblyInfo.cs index 7458184..d42d6fd 100644 --- a/phirSOFT.FluentRegionAdapters/Properties/AssemblyInfo.cs +++ b/phirSOFT.FluentRegionAdapters/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // General Information about an assembly is controlled through the following @@ -33,4 +32,4 @@ // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/RelativeContraint.cs b/phirSOFT.FluentRegionAdapters/RelativeContraint.cs index 16cfc1e..b75fdd3 100644 --- a/phirSOFT.FluentRegionAdapters/RelativeContraint.cs +++ b/phirSOFT.FluentRegionAdapters/RelativeContraint.cs @@ -1,18 +1,20 @@ -using System; +using System; using System.Collections.Generic; using System.Windows; namespace phirSOFT.FluentRegionAdapters { - public class RelativeContraint : PositionConstraint where T : DependencyObject + public class RelativeContraint : PositionConstraint { - public readonly DependencyProperty Before = - DependencyProperty.RegisterAttached("Before", typeof(IList), typeof(T)); + public static readonly DependencyProperty Before = + DependencyProperty.RegisterAttached("Before", typeof(IList), typeof(DependencyObject), + new PropertyMetadata(null)); - public readonly DependencyProperty After = - DependencyProperty.RegisterAttached("Before", typeof(IList), typeof(T)); + public static readonly DependencyProperty After = + DependencyProperty.RegisterAttached("After", typeof(IList), typeof(DependencyObject), + new PropertyMetadata(null)); - protected override bool CanCompare(T left, T right) + public override bool CanCompare(DependencyObject left, DependencyObject right) { try { @@ -21,18 +23,38 @@ protected override bool CanCompare(T left, T right) catch (Exception) { return false; - } - } - public override int Compare(T x, T y) + public static IList GetBefore(DependencyObject dependencyObject) { - var xBefore = (IList) x?.GetValue(Before); - var xAfter = (IList)x?.GetValue(After); - var yBefore = (IList) y?.GetValue(Before); - var yAfter = (IList)y?.GetValue(After); - + var list = (IList) dependencyObject.GetValue(Before); + if (list != null) return list; + + list = new List(); + dependencyObject.SetValue(Before, list); + return list; + } + + + public static IList GetAfter(DependencyObject dependencyObject) + { + var list = (IList) dependencyObject.GetValue(After); + if (list != null) return list; + + list = new List(); + dependencyObject.SetValue(After, list); + return list; + } + + + public override int Compare(DependencyObject x, DependencyObject y) + { + var xBefore = (IList) x?.GetValue(Before); + var xAfter = (IList) x?.GetValue(After); + var yBefore = (IList) y?.GetValue(Before); + var yAfter = (IList) y?.GetValue(After); + // x > y var xGy = xAfter?.Contains(y) ?? false; @@ -56,7 +78,6 @@ public override int Compare(T x, T y) if (xLy) return -1; return 0; - } } } \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/RibbonGroupBoxAdapter.cs b/phirSOFT.FluentRegionAdapters/RibbonGroupBoxAdapter.cs new file mode 100644 index 0000000..9226b88 --- /dev/null +++ b/phirSOFT.FluentRegionAdapters/RibbonGroupBoxAdapter.cs @@ -0,0 +1,18 @@ +using System.Collections; +using Fluent; +using Prism.Regions; + +namespace phirSOFT.FluentRegionAdapters +{ + public class RibbonGroupBoxAdapter : ContraintedRegionAdapter + { + public RibbonGroupBoxAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory) + { + } + + protected override IList GetItemCollection(RibbonTabItem container) + { + return container.Groups; + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/RibbonRegionAdapter.cs b/phirSOFT.FluentRegionAdapters/RibbonRegionAdapter.cs new file mode 100644 index 0000000..fff1a45 --- /dev/null +++ b/phirSOFT.FluentRegionAdapters/RibbonRegionAdapter.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections; +using System.Windows; +using Fluent; +using Prism.Regions; + +namespace phirSOFT.FluentRegionAdapters +{ + public class RibbonRegionAdapter : ContraintedRegionAdapter + { + public RibbonRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory) + { + } + + + protected override IList GetItemCollection(Ribbon container) + { + throw new NotImplementedException(); + } + + protected override IList GetItemCollection(Ribbon container, DependencyObject item) + { + switch (item) + { + case RibbonTabItem _: + return container.Tabs; + case QuickAccessMenuItem _: + return container.QuickAccessItems; + case RibbonContextualTabGroup _: + return container.ContextualGroups; + case UIElement _: + return container.ToolBarItems; + } + return null; + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/RibbonTabRegionAdatper.cs b/phirSOFT.FluentRegionAdapters/RibbonTabRegionAdatper.cs deleted file mode 100644 index 3cf5851..0000000 --- a/phirSOFT.FluentRegionAdapters/RibbonTabRegionAdatper.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.ObjectModel; -using System.Text; -using System.Threading.Tasks; -using Prism.Regions; -using Fluent; - - -namespace phirSOFT.FluentRegionAdapters -{ - public class RibbonTabRegionAdatper : RegionAdapterBase - { - public RibbonTabRegionAdatper(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory) - { - } - - protected override void Adapt(IRegion region, RibbonTabItem regionTarget) - { - throw new NotImplementedException(); - } - - protected override IRegion CreateRegion() - { - throw new NotImplementedException(); - } - } -} diff --git a/phirSOFT.FluentRegionAdapters/app.config b/phirSOFT.FluentRegionAdapters/app.config new file mode 100644 index 0000000..fe6659c --- /dev/null +++ b/phirSOFT.FluentRegionAdapters/app.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/packages.config b/phirSOFT.FluentRegionAdapters/packages.config index c0c6770..914063e 100644 --- a/phirSOFT.FluentRegionAdapters/packages.config +++ b/phirSOFT.FluentRegionAdapters/packages.config @@ -1,8 +1,56 @@  + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.csproj b/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.csproj index d9b7f27..f85e118 100644 --- a/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.csproj +++ b/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.csproj @@ -9,8 +9,11 @@ Properties phirSOFT.FluentRegionAdapters phirSOFT.FluentRegionAdapters - v4.6.1 + v4.6 512 + + + true @@ -30,44 +33,118 @@ 4 + + packages\CommonServiceLocator.2.0.1\lib\net45\CommonServiceLocator.dll + packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll packages\Fluent.Ribbon.6.0.0-dev0171\lib\net45\Fluent.dll - - packages\CommonServiceLocator.1.3\lib\portable-net4+sl5+netcore45+wpa81+wp8\Microsoft.Practices.ServiceLocation.dll + + packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + + + packages\phirSOFT.TopologicalComparison.0.0.13\lib\netstandard1.0\phirSOFT.TopologicalComparison.dll - - packages\Prism.Core.6.2.0\lib\net45\Prism.dll + + + + packages\Prism.Core.6.3.0\lib\net45\Prism.dll - - packages\Prism.Wpf.6.2.0\lib\net45\Prism.Wpf.dll + + packages\Prism.Wpf.6.3.0\lib\net45\Prism.Wpf.dll + + packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll + True + + + + packages\System.Console.4.3.0\lib\net46\System.Console.dll + - - packages\Prism.Wpf.6.2.0\lib\net45\System.Windows.Interactivity.dll + + packages\System.Diagnostics.DiagnosticSource.4.4.1\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + + + packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + + + + packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + + + packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + + + packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + + + packages\System.Net.Http.4.3.3\lib\net46\System.Net.Http.dll + + + packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + + + + packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + + + packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net46\System.Security.Cryptography.Algorithms.dll True + + packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + + + packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + + + packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net46\System.Security.Cryptography.X509Certificates.dll + True + + + packages\Prism.Wpf.6.3.0\lib\net45\System.Windows.Interactivity.dll + + - + + packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + - + + - + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.sln b/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.sln index f0e1615..77409f8 100644 --- a/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.sln +++ b/phirSOFT.FluentRegionAdapters/phirSOFT.FluentRegionAdapters.sln @@ -1,10 +1,14 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26730.16 +VisualStudioVersion = 15.0.27004.2009 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "phirSOFT.FluentRegionAdapters", "phirSOFT.FluentRegionAdapters.csproj", "{4FE982A5-F3CF-4E97-90B0-EC6EB15D2B9B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "phirSOFT.FluentRegionAdaptersTests", "..\phirSOFT.FluentRegionAdaptersTests\phirSOFT.FluentRegionAdaptersTests.csproj", "{50DB862F-2F66-49B9-AF9F-86099FCC97C9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio", "..\phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio\phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.csproj", "{9822FA7E-AE57-486F-8093-23A764A5E679}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -15,6 +19,14 @@ Global {4FE982A5-F3CF-4E97-90B0-EC6EB15D2B9B}.Debug|Any CPU.Build.0 = Debug|Any CPU {4FE982A5-F3CF-4E97-90B0-EC6EB15D2B9B}.Release|Any CPU.ActiveCfg = Release|Any CPU {4FE982A5-F3CF-4E97-90B0-EC6EB15D2B9B}.Release|Any CPU.Build.0 = Release|Any CPU + {50DB862F-2F66-49B9-AF9F-86099FCC97C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50DB862F-2F66-49B9-AF9F-86099FCC97C9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50DB862F-2F66-49B9-AF9F-86099FCC97C9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50DB862F-2F66-49B9-AF9F-86099FCC97C9}.Release|Any CPU.Build.0 = Release|Any CPU + {9822FA7E-AE57-486F-8093-23A764A5E679}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9822FA7E-AE57-486F-8093-23A764A5E679}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9822FA7E-AE57-486F-8093-23A764A5E679}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9822FA7E-AE57-486F-8093-23A764A5E679}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/phirSOFT.FluentRegionAdaptersTests/PositionConstraintTests.cs b/phirSOFT.FluentRegionAdaptersTests/PositionConstraintTests.cs new file mode 100644 index 0000000..cee6dc0 --- /dev/null +++ b/phirSOFT.FluentRegionAdaptersTests/PositionConstraintTests.cs @@ -0,0 +1,13 @@ +using NUnit.Framework; + +namespace phirSOFT.FluentRegionAdapters.Tests +{ + [TestFixture] + public class PositionConstraintTests + { + [Test] + public void CompareTest() + { + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdaptersTests/Properties/AssemblyInfo.cs b/phirSOFT.FluentRegionAdaptersTests/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d8828a6 --- /dev/null +++ b/phirSOFT.FluentRegionAdaptersTests/Properties/AssemblyInfo.cs @@ -0,0 +1,35 @@ +using System.Reflection; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("phirSOFT.FluentRegionAdaptersTests")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("phirSOFT.FluentRegionAdaptersTests")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("50db862f-2f66-49b9-af9f-86099fcc97c9")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdaptersTests/app.config b/phirSOFT.FluentRegionAdaptersTests/app.config new file mode 100644 index 0000000..911289e --- /dev/null +++ b/phirSOFT.FluentRegionAdaptersTests/app.config @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdaptersTests/packages.config b/phirSOFT.FluentRegionAdaptersTests/packages.config new file mode 100644 index 0000000..8627c9d --- /dev/null +++ b/phirSOFT.FluentRegionAdaptersTests/packages.config @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRegionAdaptersTests/phirSOFT.FluentRegionAdaptersTests.csproj b/phirSOFT.FluentRegionAdaptersTests/phirSOFT.FluentRegionAdaptersTests.csproj new file mode 100644 index 0000000..3b908d4 --- /dev/null +++ b/phirSOFT.FluentRegionAdaptersTests/phirSOFT.FluentRegionAdaptersTests.csproj @@ -0,0 +1,93 @@ + + + + Debug + AnyCPU + {50DB862F-2F66-49B9-AF9F-86099FCC97C9} + Library + Properties + phirSOFT.FluentRegionAdaptersTests + phirSOFT.FluentRegionAdaptersTests + v4.6.1 + 512 + {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 10.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages + False + UnitTest + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\phirSOFT.FluentRegionAdapters\packages\NUnit.3.8.1\lib\net45\nunit.framework.dll + + + + + + + + + + + + + + + + + + + + + + {4FE982A5-F3CF-4E97-90B0-EC6EB15D2B9B} + phirSOFT.FluentRegionAdapters + + + + + + + False + + + False + + + False + + + False + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.config b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.config new file mode 100644 index 0000000..6bfbc45 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.config @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.xaml b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.xaml new file mode 100644 index 0000000..160a3e3 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.xaml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.xaml.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.xaml.cs new file mode 100644 index 0000000..8ae1b71 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/App.xaml.cs @@ -0,0 +1,18 @@ +using System.Windows; + +namespace phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio +{ + /// + /// + /// Interaction logic for App.xaml + /// + public partial class App : Application + { + protected override void OnStartup(StartupEventArgs e) + { + base.OnStartup(e); + var bootstrapper = new Bootstrapper(); + bootstrapper.Run(); + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Bootstrapper.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Bootstrapper.cs new file mode 100644 index 0000000..409d5ad --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Bootstrapper.cs @@ -0,0 +1,41 @@ +using System.Windows; +using CommonServiceLocator; +using Fluent; +using phirSOFT.FluentRegionAdapters; +using Prism.Modularity; +using Prism.Regions; +using Prism.Unity; + +namespace phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio +{ + internal class Bootstrapper : UnityBootstrapper + { + protected override DependencyObject CreateShell() + { + return ServiceLocator.Current.GetInstance(); + } + + protected override void InitializeShell() + { + base.InitializeShell(); + + Application.Current.MainWindow = (Window) Shell; + Application.Current.MainWindow?.Show(); + } + + protected override void ConfigureModuleCatalog() + { + base.ConfigureModuleCatalog(); + + var moduleAuthType = typeof(ModuleA); + ModuleCatalog.AddModule(new ModuleInfo(moduleAuthType.Name, moduleAuthType.AssemblyQualifiedName)); + } + + protected override RegionAdapterMappings ConfigureRegionAdapterMappings() + { + var mappings = base.ConfigureRegionAdapterMappings(); + mappings.RegisterMapping(typeof(Ribbon), ServiceLocator.Current.GetInstance()); + return mappings; + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/MainWindow.xaml b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/MainWindow.xaml new file mode 100644 index 0000000..85517a1 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/MainWindow.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/MainWindow.xaml.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/MainWindow.xaml.cs new file mode 100644 index 0000000..2ac2f5c --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/MainWindow.xaml.cs @@ -0,0 +1,13 @@ +namespace phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio +{ + /// + /// Interaction logic for MainWindow.xaml + /// + public partial class MainWindow + { + public MainWindow() + { + InitializeComponent(); + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/ModuleA.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/ModuleA.cs new file mode 100644 index 0000000..e356e50 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/ModuleA.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Windows.Controls; +using CommonServiceLocator; +using Fluent; +using phirSOFT.FluentRegionAdapters; +using Prism.Modularity; +using Prism.Regions; + +namespace phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio +{ + internal class ModuleA : IModule + { + public void Initialize() + { + var manager = ServiceLocator.Current.GetInstance(); + var tab1 = new RibbonTabItem {Header = "1"}; + var tab2 = new RibbonTabItem {Header = "2"}; + var tab3 = new RibbonTabItem {Header = "3"}; + var tab4 = new RibbonTabItem {Header = "4"}; + + GroupConstraint.SetGroup(tab1, 1); + GroupConstraint.SetGroup(tab2, 2); + GroupConstraint.SetGroup(tab3, 3); + GroupConstraint.SetGroup(tab4, 4); + + var additionalTabs = new HashSet() + { + tab1, tab2, tab3, tab4 + }; + + for (var i = 1; i < 5; i++) + { + var list = new List(); + for (var j = 0; j < 5; j++) + { + var tab = new RibbonTabItem { Header = $"{i}.{j}" }; + GroupConstraint.SetGroup(tab, i); + + foreach (var ribbonTabItem in list) + { + RelativeContraint.GetAfter(tab).Add(ribbonTabItem); + } + + list.Add(tab); + additionalTabs.Add(tab); + + } + + + } + + + + + RelativeContraint.GetBefore(tab1).Add(tab2); + RelativeContraint.GetBefore(tab1).Add(tab4); + + RelativeContraint.GetBefore(tab2).Add(tab3); + RelativeContraint.GetAfter(tab2).Add(tab1); + + RelativeContraint.GetBefore(tab3).Add(tab4); + RelativeContraint.GetAfter(tab3).Add(tab1); + + RelativeContraint.GetAfter(tab4).Add(tab2); + RelativeContraint.GetAfter(tab4).Add(tab3); + + + var inex = 0; + foreach (var additionalTab in additionalTabs) + { + var box = new RibbonGroupBox(); + box.Items.Add(new Label {Content = inex}); + additionalTab.Groups.Add(box); + manager.AddToRegion("Ribbon", additionalTab); + ++inex; + } + } + } +} \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/AssemblyInfo.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..f0b5c95 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/AssemblyInfo.cs @@ -0,0 +1,53 @@ +using System.Reflection; +using System.Runtime.InteropServices; +using System.Windows; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Resources.Designer.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Resources.Designer.cs new file mode 100644 index 0000000..5e871cd --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Resources.resx b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Settings.Designer.cs b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Settings.Designer.cs new file mode 100644 index 0000000..65bf3a1 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Settings.settings b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Settings.settings new file mode 100644 index 0000000..d54ed20 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/Properties/Settings.settings @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/packages.config b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/packages.config new file mode 100644 index 0000000..28c1156 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/packages.config @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.csproj b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.csproj new file mode 100644 index 0000000..99d6e67 --- /dev/null +++ b/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio/phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio.csproj @@ -0,0 +1,209 @@ + + + + + Debug + AnyCPU + {9822FA7E-AE57-486F-8093-23A764A5E679} + WinExe + phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio + phirSOFT.FluentRibbonRegionAdapters.SampleApplicatio + v4.6 + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + ..\phirSOFT.FluentRegionAdapters\packages\CommonServiceLocator.2.0.1\lib\net45\CommonServiceLocator.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\ControlzEx.3.0.2.4\lib\net45\ControlzEx.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Fluent.Ribbon.6.0.0-dev0171\lib\net45\Fluent.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\phirSOFT.TopologicalComparison.0.0.13\lib\netstandard1.0\phirSOFT.TopologicalComparison.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Prism.Core.7.0.0.336-pre\lib\net45\Prism.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Prism.Unity.7.0.0.336-pre\lib\net45\Prism.Unity.Wpf.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Prism.Wpf.7.0.0.336-pre\lib\net45\Prism.Wpf.dll + + + + ..\phirSOFT.FluentRegionAdapters\packages\System.AppContext.4.3.0\lib\net46\System.AppContext.dll + True + + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Console.4.3.0\lib\net46\System.Console.dll + + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + + + + ..\phirSOFT.FluentRegionAdapters\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net46\System.Security.Cryptography.Algorithms.dll + True + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net46\System.Security.Cryptography.X509Certificates.dll + True + + + ..\phirSOFT.FluentRegionAdapters\packages\Prism.Wpf.7.0.0.336-pre\lib\net45\System.Windows.Interactivity.dll + + + + + + + + 4.0 + + + ..\phirSOFT.FluentRegionAdapters\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.Abstractions.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.Configuration.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.Container.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.Interception.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.Interception.Configuration.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.RegistrationByConvention.dll + + + ..\phirSOFT.FluentRegionAdapters\packages\Unity.5.4.0\lib\net45\Unity.ServiceLocation.dll + + + + + + + + MSBuild:Compile + Designer + + + MSBuild:Compile + Designer + + + App.xaml + Code + + + + MainWindow.xaml + Code + + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + + + {4fe982a5-f3cf-4e97-90b0-ec6eb15d2b9b} + phirSOFT.FluentRegionAdapters + + + + \ No newline at end of file