Browse Source

Started converting PPs to direct PPs.

pull/223/head
Steven Kirk 11 years ago
parent
commit
5c4d2b84a3
  1. 14
      src/Perspex.Controls/Control.cs
  2. 20
      src/Perspex.Controls/ItemsControl.cs
  3. 8
      src/Perspex.Controls/Presenters/DeckPresenter.cs
  4. 8
      src/Perspex.Controls/Presenters/ItemsPresenter.cs
  5. 15
      src/Perspex.Input/InputElement.cs
  6. 2
      src/Perspex.Interactivity/Interactive.cs
  7. 11
      src/Perspex.SceneGraph/Visual.cs

14
src/Perspex.Controls/Control.cs

@ -2,14 +2,12 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using System.Linq;
using System.Reactive.Linq;
using Perspex.Collections;
using Perspex.Controls.Primitives;
using Perspex.Controls.Templates;
using Perspex.Input;
using Perspex.Interactivity;
using Perspex.LogicalTree;
using Perspex.Rendering;
using Perspex.Styling;
@ -46,7 +44,7 @@ namespace Perspex.Controls
/// Defines the <see cref="Parent"/> property.
/// </summary>
public static readonly PerspexProperty<IControl> ParentProperty =
PerspexProperty.Register<Control, IControl>(nameof(Parent));
PerspexProperty.RegisterDirect<Control, IControl>(nameof(Parent), o => o.Parent);
/// <summary>
/// Defines the <see cref="Tag"/> property.
@ -66,16 +64,12 @@ namespace Perspex.Controls
public static readonly RoutedEvent<RequestBringIntoViewEventArgs> RequestBringIntoViewEvent =
RoutedEvent.Register<Control, RequestBringIntoViewEventArgs>("RequestBringIntoView", RoutingStrategies.Bubble);
private IControl _parent;
private readonly Classes _classes = new Classes();
private DataTemplates _dataTemplates;
private IControl _focusAdorner;
private string _id;
private IPerspexList<ILogical> _logicalChildren;
private Styles _styles;
/// <summary>
@ -227,7 +221,7 @@ namespace Perspex.Controls
/// <summary>
/// Gets the control's logical parent.
/// </summary>
public IControl Parent => GetValue(ParentProperty);
public IControl Parent => _parent;
/// <summary>
/// Gets or sets a user-defined object attached to the control.
@ -297,7 +291,7 @@ namespace Perspex.Controls
throw new InvalidOperationException("The Control already has a parent.");
}
SetValue(ParentProperty, parent);
SetAndRaise(ParentProperty, ref _parent, (IControl)parent);
}
/// <summary>

20
src/Perspex.Controls/ItemsControl.cs

@ -33,7 +33,7 @@ namespace Perspex.Controls
/// Defines the <see cref="Items"/> property.
/// </summary>
public static readonly PerspexProperty<IEnumerable> ItemsProperty =
PerspexProperty.Register<ItemsControl, IEnumerable>(nameof(Items));
PerspexProperty.RegisterDirect<ItemsControl, IEnumerable>(nameof(Items), o => o.Items, (o, v) => o.Items = v);
/// <summary>
/// Defines the <see cref="ItemsPanel"/> property.
@ -47,6 +47,7 @@ namespace Perspex.Controls
public static readonly PerspexProperty<IMemberSelector> MemberSelectorProperty =
PerspexProperty.Register<ItemsControl, IMemberSelector>(nameof(MemberSelector));
private IEnumerable _items;
private IItemContainerGenerator _itemContainerGenerator;
/// <summary>
@ -63,7 +64,6 @@ namespace Perspex.Controls
public ItemsControl()
{
Classes.Add(":empty");
Items = new PerspexList<object>();
}
/// <summary>
@ -87,8 +87,20 @@ namespace Perspex.Controls
/// </summary>
public IEnumerable Items
{
get { return GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
get
{
if (_items == null)
{
_items = new PerspexList<object>();
}
return _items;
}
set
{
SetAndRaise(ItemsProperty, ref _items, value);
}
}
/// <summary>

8
src/Perspex.Controls/Presenters/DeckPresenter.cs

@ -23,7 +23,7 @@ namespace Perspex.Controls.Presenters
/// Defines the <see cref="Items"/> property.
/// </summary>
public static readonly PerspexProperty<IEnumerable> ItemsProperty =
ItemsControl.ItemsProperty.AddOwner<DeckPresenter>();
ItemsControl.ItemsProperty.AddOwner<DeckPresenter>(o => o.Items, (o, v) => o.Items = v);
/// <summary>
/// Defines the <see cref="ItemsPanel"/> property.
@ -49,8 +49,8 @@ namespace Perspex.Controls.Presenters
public static readonly PerspexProperty<IPageTransition> TransitionProperty =
Deck.TransitionProperty.AddOwner<DeckPresenter>();
private IEnumerable _items;
private bool _createdPanel;
private IItemContainerGenerator _generator;
/// <summary>
@ -94,8 +94,8 @@ namespace Perspex.Controls.Presenters
/// </summary>
public IEnumerable Items
{
get { return GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
get { return _items; }
set { SetAndRaise(ItemsProperty, ref _items, value); }
}
/// <summary>

8
src/Perspex.Controls/Presenters/ItemsPresenter.cs

@ -20,7 +20,7 @@ namespace Perspex.Controls.Presenters
/// Defines the <see cref="Items"/> property.
/// </summary>
public static readonly PerspexProperty<IEnumerable> ItemsProperty =
ItemsControl.ItemsProperty.AddOwner<ItemsPresenter>();
ItemsControl.ItemsProperty.AddOwner<ItemsPresenter>(o => o.Items, (o, v) => o.Items = v);
/// <summary>
/// Defines the <see cref="ItemsPanel"/> property.
@ -34,8 +34,8 @@ namespace Perspex.Controls.Presenters
public static readonly PerspexProperty<IMemberSelector> MemberSelectorProperty =
ItemsControl.MemberSelectorProperty.AddOwner<ItemsPresenter>();
private IEnumerable _items;
private bool _createdPanel;
private IItemContainerGenerator _generator;
/// <summary>
@ -89,8 +89,8 @@ namespace Perspex.Controls.Presenters
/// </summary>
public IEnumerable Items
{
get { return GetValue(ItemsProperty); }
set { SetValue(ItemsProperty, value); }
get { return _items; }
set { SetAndRaise(ItemsProperty, ref _items, value); }
}
/// <summary>

15
src/Perspex.Input/InputElement.cs

@ -42,7 +42,7 @@ namespace Perspex.Input
/// Defines the <see cref="IsFocused"/> property.
/// </summary>
public static readonly PerspexProperty<bool> IsFocusedProperty =
PerspexProperty.Register<InputElement, bool>("IsFocused");
PerspexProperty.RegisterDirect<InputElement, bool>("IsFocused", o => o.IsFocused);
/// <summary>
/// Defines the <see cref="IsHitTestVisible"/> property.
@ -54,7 +54,7 @@ namespace Perspex.Input
/// Defines the <see cref="IsPointerOver"/> property.
/// </summary>
public static readonly PerspexProperty<bool> IsPointerOverProperty =
PerspexProperty.Register<InputElement, bool>("IsPointerOver");
PerspexProperty.RegisterDirect<InputElement, bool>("IsPointerOver", o => o.IsPointerOver);
/// <summary>
/// Defines the <see cref="GotFocus"/> event.
@ -136,6 +136,9 @@ namespace Perspex.Input
"PointerWheelChanged",
RoutingStrategies.Tunnel | RoutingStrategies.Bubble);
private bool _isFocused;
private bool _isPointerOver;
/// <summary>
/// Initializes static members of the <see cref="InputElement"/> class.
/// </summary>
@ -287,8 +290,8 @@ namespace Perspex.Input
/// </summary>
public bool IsFocused
{
get { return GetValue(IsFocusedProperty); }
private set { SetValue(IsFocusedProperty, value); }
get { return _isFocused; }
private set { SetAndRaise(IsFocusedProperty, ref _isFocused, value); }
}
/// <summary>
@ -305,8 +308,8 @@ namespace Perspex.Input
/// </summary>
public bool IsPointerOver
{
get { return GetValue(IsPointerOverProperty); }
internal set { SetValue(IsPointerOverProperty, value); }
get { return _isPointerOver; }
internal set { SetAndRaise(IsPointerOverProperty, ref _isPointerOver, value); }
}
/// <summary>

2
src/Perspex.Interactivity/Interactive.cs

@ -4,11 +4,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reactive;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using Perspex.Layout;
using Perspex.VisualTree;
namespace Perspex.Interactivity
{

11
src/Perspex.SceneGraph/Visual.cs

@ -32,7 +32,7 @@ namespace Perspex
/// Defines the <see cref="Bounds"/> property.
/// </summary>
public static readonly PerspexProperty<Rect> BoundsProperty =
PerspexProperty.Register<Visual, Rect>(nameof(Bounds));
PerspexProperty.RegisterDirect<Visual, Rect>(nameof(Bounds), o => o.Bounds);
/// <summary>
/// Defines the <see cref="ClipToBounds"/> property.
@ -75,6 +75,11 @@ namespace Perspex
/// </summary>
private readonly PerspexList<IVisual> _visualChildren;
/// <summary>
/// The visual's bounds relative to its parent.
/// </summary>
private Rect _bounds;
/// <summary>
/// Holds the parent of the visual.
/// </summary>
@ -121,8 +126,8 @@ namespace Perspex
/// </summary>
public Rect Bounds
{
get { return GetValue(BoundsProperty); }
protected set { SetValue(BoundsProperty, value); }
get { return _bounds; }
protected set { SetAndRaise(BoundsProperty, ref _bounds, value); }
}
/// <summary>

Loading…
Cancel
Save