Browse Source

Removed ItemsPanelTemplate

Use ITemplate<Panel> instead.
pull/83/head
Steven Kirk 11 years ago
parent
commit
d9bac5e50d
  1. 3
      Tests/Perspex.Controls.UnitTests/Presenters/DeckPresenterTests.cs
  2. 3
      Tests/Perspex.Controls.UnitTests/Presenters/ItemsPresenterTests.cs
  3. 5
      src/Perspex.Controls/Deck.cs
  4. 10
      src/Perspex.Controls/ItemsControl.cs
  5. 22
      src/Perspex.Controls/ItemsPanelTemplate.cs
  6. 5
      src/Perspex.Controls/Menu.cs
  7. 4
      src/Perspex.Controls/MenuItem.cs
  8. 1
      src/Perspex.Controls/Perspex.Controls.csproj
  9. 4
      src/Perspex.Controls/Presenters/DeckPresenter.cs
  10. 4
      src/Perspex.Controls/Presenters/ItemsPresenter.cs
  11. 5
      src/Perspex.Controls/TreeViewItem.cs

3
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();

3
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();

5
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.

10
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); }

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; }
}
}

5
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.

4
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,
});

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" />

4
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); }

4
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); }

5
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,
});

Loading…
Cancel
Save