From d9bac5e50d50c7b9ce31497935e8f031a5b19eb3 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 21:45:27 +0200 Subject: [PATCH] Removed ItemsPanelTemplate Use ITemplate instead. --- .../Presenters/DeckPresenterTests.cs | 3 ++- .../Presenters/ItemsPresenterTests.cs | 3 ++- src/Perspex.Controls/Deck.cs | 5 +++-- src/Perspex.Controls/ItemsControl.cs | 10 ++++----- src/Perspex.Controls/ItemsPanelTemplate.cs | 22 ------------------- src/Perspex.Controls/Menu.cs | 5 +++-- src/Perspex.Controls/MenuItem.cs | 4 ++-- src/Perspex.Controls/Perspex.Controls.csproj | 1 - .../Presenters/DeckPresenter.cs | 4 ++-- .../Presenters/ItemsPresenter.cs | 4 ++-- src/Perspex.Controls/TreeViewItem.cs | 5 +++-- 11 files changed, 24 insertions(+), 42 deletions(-) delete mode 100644 src/Perspex.Controls/ItemsPanelTemplate.cs diff --git a/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs b/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs index abff01ccc6..f9b909a3cb 100644 --- a/Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs +++ b/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(() => new Panel()), }; target.ApplyTemplate(); diff --git a/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs b/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs index 1d34464973..ac6a7421e3 100644 --- a/Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs +++ b/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), }; target.ApplyTemplate(); diff --git a/src/Perspex.Controls/Deck.cs b/src/Perspex.Controls/Deck.cs index db29b89909..4898bcfa28 100644 --- a/src/Perspex.Controls/Deck.cs +++ b/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 /// /// The default value of for . /// - private static readonly ItemsPanelTemplate PanelTemplate = - new ItemsPanelTemplate(() => new Panel()); + private static readonly ITemplate PanelTemplate = + new FuncTemplate(() => new Panel()); /// /// Initializes static members of the class. diff --git a/src/Perspex.Controls/ItemsControl.cs b/src/Perspex.Controls/ItemsControl.cs index 9c1d99681e..f07b60114f 100644 --- a/src/Perspex.Controls/ItemsControl.cs +++ b/src/Perspex.Controls/ItemsControl.cs @@ -29,8 +29,8 @@ namespace Perspex.Controls /// The default value for the property. /// [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 DefaultPanel = + new FuncTemplate(() => new StackPanel()); /// /// Defines the property. @@ -41,8 +41,8 @@ namespace Perspex.Controls /// /// Defines the property. /// - public static readonly PerspexProperty ItemsPanelProperty = - PerspexProperty.Register("ItemsPanel", defaultValue: DefaultPanel); + public static readonly PerspexProperty> ItemsPanelProperty = + PerspexProperty.Register>("ItemsPanel", defaultValue: DefaultPanel); private IItemContainerGenerator itemContainerGenerator; @@ -91,7 +91,7 @@ namespace Perspex.Controls /// /// Gets or sets the panel used to display the items. /// - public ItemsPanelTemplate ItemsPanel + public ITemplate ItemsPanel { get { return this.GetValue(ItemsPanelProperty); } set { this.SetValue(ItemsPanelProperty, value); } diff --git a/src/Perspex.Controls/ItemsPanelTemplate.cs b/src/Perspex.Controls/ItemsPanelTemplate.cs deleted file mode 100644 index 491b7e0fe1..0000000000 --- a/src/Perspex.Controls/ItemsPanelTemplate.cs +++ /dev/null @@ -1,22 +0,0 @@ -// ----------------------------------------------------------------------- -// -// Copyright 2013 MIT Licence. See licence.md for more information. -// -// ----------------------------------------------------------------------- - -namespace Perspex.Controls -{ - using System; - - public class ItemsPanelTemplate - { - public ItemsPanelTemplate(Func build) - { - Contract.Requires(build != null); - - this.Build = build; - } - - public Func Build { get; private set; } - } -} diff --git a/src/Perspex.Controls/Menu.cs b/src/Perspex.Controls/Menu.cs index f0b571a18c..e452e25d0e 100644 --- a/src/Perspex.Controls/Menu.cs +++ b/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 /// /// Defines the default items panel used by a . /// - private static readonly ItemsPanelTemplate DefaultPanel = - new ItemsPanelTemplate(() => new StackPanel { Orientation = Orientation.Horizontal }); + private static readonly ITemplate DefaultPanel = + new FuncTemplate(() => new StackPanel { Orientation = Orientation.Horizontal }); /// /// Defines the property. diff --git a/src/Perspex.Controls/MenuItem.cs b/src/Perspex.Controls/MenuItem.cs index 2643bca0c9..644fa22a42 100644 --- a/src/Perspex.Controls/MenuItem.cs +++ b/src/Perspex.Controls/MenuItem.cs @@ -77,8 +77,8 @@ namespace Perspex.Controls /// /// The default value for the property. /// - private static readonly ItemsPanelTemplate DefaultPanel = - new ItemsPanelTemplate(() => new StackPanel + private static readonly ITemplate DefaultPanel = + new FuncTemplate(() => new StackPanel { [KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Cycle, }); diff --git a/src/Perspex.Controls/Perspex.Controls.csproj b/src/Perspex.Controls/Perspex.Controls.csproj index 786327e458..5c3e2888b9 100644 --- a/src/Perspex.Controls/Perspex.Controls.csproj +++ b/src/Perspex.Controls/Perspex.Controls.csproj @@ -46,7 +46,6 @@ - diff --git a/src/Perspex.Controls/Presenters/DeckPresenter.cs b/src/Perspex.Controls/Presenters/DeckPresenter.cs index 0f64fb1ae9..674d7d020e 100644 --- a/src/Perspex.Controls/Presenters/DeckPresenter.cs +++ b/src/Perspex.Controls/Presenters/DeckPresenter.cs @@ -31,7 +31,7 @@ namespace Perspex.Controls.Presenters /// /// Defines the property. /// - public static readonly PerspexProperty ItemsPanelProperty = + public static readonly PerspexProperty> ItemsPanelProperty = ItemsControl.ItemsPanelProperty.AddOwner(); /// @@ -98,7 +98,7 @@ namespace Perspex.Controls.Presenters /// /// Gets or sets the panel used to display the pages. /// - public ItemsPanelTemplate ItemsPanel + public ITemplate ItemsPanel { get { return this.GetValue(ItemsPanelProperty); } set { this.SetValue(ItemsPanelProperty, value); } diff --git a/src/Perspex.Controls/Presenters/ItemsPresenter.cs b/src/Perspex.Controls/Presenters/ItemsPresenter.cs index cd14812e21..12c8ec4133 100644 --- a/src/Perspex.Controls/Presenters/ItemsPresenter.cs +++ b/src/Perspex.Controls/Presenters/ItemsPresenter.cs @@ -28,7 +28,7 @@ namespace Perspex.Controls.Presenters /// /// Defines the property. /// - public static readonly PerspexProperty ItemsPanelProperty = + public static readonly PerspexProperty> ItemsPanelProperty = ItemsControl.ItemsPanelProperty.AddOwner(); private bool createdPanel; @@ -93,7 +93,7 @@ namespace Perspex.Controls.Presenters /// /// Gets or sets a template which creates the used to display the items. /// - public ItemsPanelTemplate ItemsPanel + public ITemplate ItemsPanel { get { return this.GetValue(ItemsPanelProperty); } set { this.SetValue(ItemsPanelProperty, value); } diff --git a/src/Perspex.Controls/TreeViewItem.cs b/src/Perspex.Controls/TreeViewItem.cs index f2edb63849..65b2c7f16b 100644 --- a/src/Perspex.Controls/TreeViewItem.cs +++ b/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 IsSelectedProperty = ListBoxItem.IsSelectedProperty.AddOwner(); - private static readonly ItemsPanelTemplate DefaultPanel = - new ItemsPanelTemplate(() => new StackPanel + private static readonly ITemplate DefaultPanel = + new FuncTemplate(() => new StackPanel { [KeyboardNavigation.DirectionalNavigationProperty] = KeyboardNavigationMode.Continue, });