Selaa lähdekoodia

Removed ItemsPanelTemplate

Use ITemplate<Panel> instead.
Steven Kirk 10 vuotta sitten
vanhempi
sitoutus
d9bac5e50d

+ 2 - 1
Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs

@@ -8,6 +8,7 @@ namespace Perspex.Controls.UnitTests.Presenters
 {
     using Perspex.Controls.Generators;
     using Perspex.Controls.Presenters;
+    using Perspex.Controls.Templates;
     using Xunit;
 
     public class DeckPresenterTests
@@ -17,7 +18,7 @@ namespace Perspex.Controls.UnitTests.Presenters
         {
             var target = new DeckPresenter
             {
-                ItemsPanel = new ItemsPanelTemplate(() => new Panel()),
+                ItemsPanel = new FuncTemplate<Panel>(() => new Panel()),
             };
 
             target.ApplyTemplate();

+ 2 - 1
Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs

@@ -10,6 +10,7 @@ namespace Perspex.Controls.UnitTests.Presenters
     using Perspex.Collections;
     using Perspex.Controls.Generators;
     using Perspex.Controls.Presenters;
+    using Perspex.Controls.Templates;
     using Perspex.Input;
     using Perspex.LogicalTree;
     using Perspex.VisualTree;
@@ -136,7 +137,7 @@ namespace Perspex.Controls.UnitTests.Presenters
             var panel = new Panel();
             var target = new ItemsPresenter
             {
-                ItemsPanel = new ItemsPanelTemplate(() => panel),
+                ItemsPanel = new FuncTemplate<Panel>(() => panel),
             };
 
             target.ApplyTemplate();

+ 3 - 2
src/Perspex.Controls/Deck.cs

@@ -8,6 +8,7 @@ namespace Perspex.Controls
 {
     using Perspex.Animation;
     using Perspex.Controls.Primitives;
+    using Perspex.Controls.Templates;
     using Perspex.Controls.Utils;
     using Perspex.Input;
 
@@ -25,8 +26,8 @@ namespace Perspex.Controls
         /// <summary>
         /// The default value of <see cref="IReparentingControl"/> for <see cref="Deck"/>.
         /// </summary>
-        private static readonly ItemsPanelTemplate PanelTemplate =
-            new ItemsPanelTemplate(() => new Panel());
+        private static readonly ITemplate<Panel> PanelTemplate =
+            new FuncTemplate<Panel>(() => new Panel());
 
         /// <summary>
         /// Initializes static members of the <see cref="Deck"/> class.

+ 5 - 5
src/Perspex.Controls/ItemsControl.cs

@@ -29,8 +29,8 @@ namespace Perspex.Controls
         /// The default value for the <see cref="ItemsPanel"/> property.
         /// </summary>
         [SuppressMessage("Microsoft.StyleCop.CSharp.NamingRules", "SA1202:ElementsMustBeOrderedByAccess", Justification = "Needs to be before or a NullReferenceException is thrown.")]
-        private static readonly ItemsPanelTemplate DefaultPanel =
-            new ItemsPanelTemplate(() => new StackPanel());
+        private static readonly FuncTemplate<Panel> DefaultPanel =
+            new FuncTemplate<Panel>(() => new StackPanel());
 
         /// <summary>
         /// Defines the <see cref="Items"/> property.
@@ -41,8 +41,8 @@ namespace Perspex.Controls
         /// <summary>
         /// Defines the <see cref="ItemsPanel"/> property.
         /// </summary>
-        public static readonly PerspexProperty<ItemsPanelTemplate> ItemsPanelProperty =
-            PerspexProperty.Register<ItemsControl, ItemsPanelTemplate>("ItemsPanel", defaultValue: DefaultPanel);
+        public static readonly PerspexProperty<ITemplate<Panel>> ItemsPanelProperty =
+            PerspexProperty.Register<ItemsControl, ITemplate<Panel>>("ItemsPanel", defaultValue: DefaultPanel);
 
         private IItemContainerGenerator itemContainerGenerator;
 
@@ -91,7 +91,7 @@ namespace Perspex.Controls
         /// <summary>
         /// Gets or sets the panel used to display the items.
         /// </summary>
-        public ItemsPanelTemplate ItemsPanel
+        public ITemplate<Panel> ItemsPanel
         {
             get { return this.GetValue(ItemsPanelProperty); }
             set { this.SetValue(ItemsPanelProperty, value); }

+ 0 - 22
src/Perspex.Controls/ItemsPanelTemplate.cs

@@ -1,22 +0,0 @@
-// -----------------------------------------------------------------------
-// <copyright file="ItemsPanelTemplate.cs" company="Steven Kirk">
-// Copyright 2013 MIT Licence. See licence.md for more information.
-// </copyright>
-// -----------------------------------------------------------------------
-
-namespace Perspex.Controls
-{
-    using System;
-
-    public class ItemsPanelTemplate
-    {
-        public ItemsPanelTemplate(Func<Panel> build)
-        {
-            Contract.Requires<ArgumentNullException>(build != null);
-
-            this.Build = build;
-        }
-
-        public Func<Panel> Build { get; private set; }
-    }
-}

+ 3 - 2
src/Perspex.Controls/Menu.cs

@@ -10,6 +10,7 @@ namespace Perspex.Controls
     using System.Linq;
     using System.Reactive.Disposables;
     using Perspex.Controls.Primitives;
+    using Perspex.Controls.Templates;
     using Perspex.Input;
     using Perspex.Interactivity;
     using Perspex.LogicalTree;
@@ -23,8 +24,8 @@ namespace Perspex.Controls
         /// <summary>
         /// Defines the default items panel used by a <see cref="Menu"/>.
         /// </summary>
-        private static readonly ItemsPanelTemplate DefaultPanel =
-            new ItemsPanelTemplate(() => new StackPanel { Orientation = Orientation.Horizontal });
+        private static readonly ITemplate<Panel> DefaultPanel =
+            new FuncTemplate<Panel>(() => new StackPanel { Orientation = Orientation.Horizontal });
 
         /// <summary>
         /// Defines the <see cref="IsOpen"/> property.

+ 2 - 2
src/Perspex.Controls/MenuItem.cs

@@ -77,8 +77,8 @@ namespace Perspex.Controls
         /// <summary>
         /// The default value for the <see cref="ItemsControl.ItemsPanel"/> property.
         /// </summary>
-        private static readonly ItemsPanelTemplate DefaultPanel =
-            new ItemsPanelTemplate(() => new StackPanel
+        private static readonly ITemplate<Panel> DefaultPanel =
+            new FuncTemplate<Panel>(() => new StackPanel
             {
                 [KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Cycle,
             });

+ 0 - 1
src/Perspex.Controls/Perspex.Controls.csproj

@@ -46,7 +46,6 @@
     <Compile Include="IControl.cs" />
     <Compile Include="IReparentingHost.cs" />
     <Compile Include="ISetLogicalParent.cs" />
-    <Compile Include="ItemsPanelTemplate.cs" />
     <Compile Include="MenuItemAccessKeyHandler.cs" />
     <Compile Include="Mixins\SelectableMixin.cs" />
     <Compile Include="Parsers\GridLengthsParser.cs" />

+ 2 - 2
src/Perspex.Controls/Presenters/DeckPresenter.cs

@@ -31,7 +31,7 @@ namespace Perspex.Controls.Presenters
         /// <summary>
         /// Defines the <see cref="ItemsPanel"/> property.
         /// </summary>
-        public static readonly PerspexProperty<ItemsPanelTemplate> ItemsPanelProperty =
+        public static readonly PerspexProperty<ITemplate<Panel>> ItemsPanelProperty =
             ItemsControl.ItemsPanelProperty.AddOwner<DeckPresenter>();
 
         /// <summary>
@@ -98,7 +98,7 @@ namespace Perspex.Controls.Presenters
         /// <summary>
         /// Gets or sets the panel used to display the pages.
         /// </summary>
-        public ItemsPanelTemplate ItemsPanel
+        public ITemplate<Panel> ItemsPanel
         {
             get { return this.GetValue(ItemsPanelProperty); }
             set { this.SetValue(ItemsPanelProperty, value); }

+ 2 - 2
src/Perspex.Controls/Presenters/ItemsPresenter.cs

@@ -28,7 +28,7 @@ namespace Perspex.Controls.Presenters
         /// <summary>
         /// Defines the <see cref="ItemsPanel"/> property.
         /// </summary>
-        public static readonly PerspexProperty<ItemsPanelTemplate> ItemsPanelProperty =
+        public static readonly PerspexProperty<ITemplate<Panel>> ItemsPanelProperty =
             ItemsControl.ItemsPanelProperty.AddOwner<ItemsPresenter>();
 
         private bool createdPanel;
@@ -93,7 +93,7 @@ namespace Perspex.Controls.Presenters
         /// <summary>
         /// Gets or sets a template which creates the <see cref="Panel"/> used to display the items.
         /// </summary>
-        public ItemsPanelTemplate ItemsPanel
+        public ITemplate<Panel> ItemsPanel
         {
             get { return this.GetValue(ItemsPanelProperty); }
             set { this.SetValue(ItemsPanelProperty, value); }

+ 3 - 2
src/Perspex.Controls/TreeViewItem.cs

@@ -11,6 +11,7 @@ namespace Perspex.Controls
     using Mixins;
     using Perspex.Controls.Generators;
     using Perspex.Controls.Primitives;
+    using Perspex.Controls.Templates;
     using Perspex.Input;
     using Perspex.Rendering;
     using Perspex.VisualTree;
@@ -32,8 +33,8 @@ namespace Perspex.Controls
         public static readonly PerspexProperty<bool> IsSelectedProperty =
             ListBoxItem.IsSelectedProperty.AddOwner<TreeViewItem>();
 
-        private static readonly ItemsPanelTemplate DefaultPanel =
-            new ItemsPanelTemplate(() => new StackPanel
+        private static readonly ITemplate<Panel> DefaultPanel =
+            new FuncTemplate<Panel>(() => new StackPanel
             {
                 [KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue,
             });