Stylecop fixes.
Also added solution-wide stylecop settings.
This commit is contained in:
@@ -76,6 +76,13 @@ namespace Perspex
|
||||
private set;
|
||||
}
|
||||
|
||||
public void Run(ICloseable closable)
|
||||
{
|
||||
var source = new CancellationTokenSource();
|
||||
closable.Closed += (s, e) => source.Cancel();
|
||||
Dispatcher.UIThread.MainLoop(source.Token);
|
||||
}
|
||||
|
||||
protected virtual void RegisterServices()
|
||||
{
|
||||
Locator.CurrentMutable.Register(() => this, typeof(IGlobalDataTemplates));
|
||||
@@ -84,12 +91,5 @@ namespace Perspex
|
||||
Locator.CurrentMutable.Register(() => this.InputManager, typeof(IInputManager));
|
||||
Locator.CurrentMutable.Register(() => this.styler, typeof(IStyler));
|
||||
}
|
||||
|
||||
public void Run(ICloseable closable)
|
||||
{
|
||||
var source = new CancellationTokenSource();
|
||||
closable.Closed += (s, e) => source.Cancel();
|
||||
Dispatcher.UIThread.MainLoop(source.Token);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
using System.Resources;
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="AssemblyInfo.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Resources;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<StyleCopSettings Version="105" />
|
||||
@@ -15,8 +15,8 @@ namespace Perspex.Controls
|
||||
{
|
||||
static Border()
|
||||
{
|
||||
AffectsRender(BackgroundProperty);
|
||||
AffectsRender(BorderBrushProperty);
|
||||
Control.AffectsRender(Border.BackgroundProperty);
|
||||
Control.AffectsRender(Border.BorderBrushProperty);
|
||||
}
|
||||
|
||||
public override void Render(IDrawingContext context)
|
||||
|
||||
@@ -43,9 +43,9 @@ namespace Perspex.Controls
|
||||
|
||||
static Control()
|
||||
{
|
||||
AffectsMeasure(IsVisibleProperty);
|
||||
PseudoClass(IsPointerOverProperty, ":pointerover");
|
||||
PseudoClass(IsFocusedProperty, ":focus");
|
||||
Control.AffectsMeasure(Control.IsVisibleProperty);
|
||||
PseudoClass(Control.IsPointerOverProperty, ":pointerover");
|
||||
PseudoClass(Control.IsFocusedProperty, ":focus");
|
||||
}
|
||||
|
||||
public Brush Background
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Perspex.Controls
|
||||
{
|
||||
using System.Collections.Generic;
|
||||
|
||||
public class Controls : PerspexList<Control>
|
||||
{
|
||||
public Controls()
|
||||
|
||||
@@ -33,25 +33,25 @@ namespace Perspex.Controls
|
||||
this.Build = build;
|
||||
}
|
||||
|
||||
public Func<object, bool> Match { get; private set; }
|
||||
|
||||
public Func<object, Control> Build { get; private set; }
|
||||
|
||||
public static bool IsInstance(object o, Type t)
|
||||
{
|
||||
return t.GetTypeInfo().IsAssignableFrom(o.GetType().GetTypeInfo());
|
||||
}
|
||||
|
||||
public Func<object, bool> Match { get; private set; }
|
||||
|
||||
public Func<object, Control> Build { get; private set; }
|
||||
}
|
||||
|
||||
public class DataTemplate<T> : DataTemplate
|
||||
{
|
||||
public DataTemplate(Func<T, Control> build)
|
||||
: base(typeof(T), Cast(build))
|
||||
: base(typeof(T), DataTemplate<T>.Cast(build))
|
||||
{
|
||||
}
|
||||
|
||||
public DataTemplate(Func<T, bool> match, Func<T, Control> build)
|
||||
: base(CastMatch(match), Cast(build))
|
||||
: base(CastMatch(match), DataTemplate<T>.Cast(build))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -605,10 +605,10 @@ namespace Perspex.Controls
|
||||
// we need to count the number of stars instead.
|
||||
for (int i = start; i <= end; i++)
|
||||
{
|
||||
double segmentSize = desiredSize ? (matrix[i, i].DesiredSize) : matrix[i, i].OfferedSize;
|
||||
double segmentSize = desiredSize ? (matrix[i, i].DesiredSize) : matrix[i, i].OfferedSize;
|
||||
if (segmentSize < matrix[i, i].Max)
|
||||
{
|
||||
count += type == GridUnitType.Star ? (matrix[i, i].Stars) : 1;
|
||||
count += type == GridUnitType.Star ? (matrix[i, i].Stars) : 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -620,7 +620,7 @@ namespace Perspex.Controls
|
||||
|
||||
for (int i = start; i <= end; i++)
|
||||
{
|
||||
double segmentSize = desiredSize ? (matrix[i, i].DesiredSize) : matrix[i, i].OfferedSize;
|
||||
double segmentSize = desiredSize ? (matrix[i, i].DesiredSize) : matrix[i, i].OfferedSize;
|
||||
|
||||
if (!(matrix[i, i].Type == type && segmentSize < matrix[i, i].Max))
|
||||
{
|
||||
@@ -628,7 +628,7 @@ namespace Perspex.Controls
|
||||
}
|
||||
|
||||
double newsize = segmentSize;
|
||||
newsize += contribution * (type == GridUnitType.Star ? (matrix[i, i].Stars) : 1);
|
||||
newsize += contribution * (type == GridUnitType.Star ? (matrix[i, i].Stars) : 1);
|
||||
newsize = Math.Min(newsize, matrix[i, i].Max);
|
||||
assigned |= newsize > segmentSize;
|
||||
size -= newsize - segmentSize;
|
||||
|
||||
@@ -18,10 +18,10 @@ namespace Perspex.Controls
|
||||
{
|
||||
int col = this.GetValue(Grid.ColumnProperty);
|
||||
|
||||
if (grid != null && col > 0)
|
||||
if (this.grid != null && col > 0)
|
||||
{
|
||||
grid.ColumnDefinitions[col - 1].Width = new GridLength(
|
||||
grid.ColumnDefinitions[col - 1].ActualWidth + e.Vector.X,
|
||||
this.grid.ColumnDefinitions[col - 1].Width = new GridLength(
|
||||
this.grid.ColumnDefinitions[col - 1].ActualWidth + e.Vector.X,
|
||||
GridUnitType.Pixel);
|
||||
}
|
||||
}
|
||||
|
||||
+24
-24
@@ -56,30 +56,6 @@ namespace Perspex.Controls
|
||||
}
|
||||
}
|
||||
|
||||
private static Vector CalculateScaling(Size availableSize, Size imageSize, Stretch stretch)
|
||||
{
|
||||
double scaleX = 1;
|
||||
double scaleY = 1;
|
||||
|
||||
if (stretch != Stretch.None)
|
||||
{
|
||||
scaleX = availableSize.Width / imageSize.Width;
|
||||
scaleY = availableSize.Height / imageSize.Height;
|
||||
|
||||
switch (stretch)
|
||||
{
|
||||
case Stretch.Uniform:
|
||||
scaleX = scaleY = Math.Min(scaleX, scaleY);
|
||||
break;
|
||||
case Stretch.UniformToFill:
|
||||
scaleX = scaleY = Math.Max(scaleX, scaleY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return new Vector(scaleX, scaleY);
|
||||
}
|
||||
|
||||
protected override Size MeasureOverride(Size availableSize)
|
||||
{
|
||||
double width = 0;
|
||||
@@ -111,5 +87,29 @@ namespace Perspex.Controls
|
||||
{
|
||||
return finalSize;
|
||||
}
|
||||
|
||||
private static Vector CalculateScaling(Size availableSize, Size imageSize, Stretch stretch)
|
||||
{
|
||||
double scaleX = 1;
|
||||
double scaleY = 1;
|
||||
|
||||
if (stretch != Stretch.None)
|
||||
{
|
||||
scaleX = availableSize.Width / imageSize.Width;
|
||||
scaleY = availableSize.Height / imageSize.Height;
|
||||
|
||||
switch (stretch)
|
||||
{
|
||||
case Stretch.Uniform:
|
||||
scaleX = scaleY = Math.Min(scaleX, scaleY);
|
||||
break;
|
||||
case Stretch.UniformToFill:
|
||||
scaleX = scaleY = Math.Max(scaleX, scaleY);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return new Vector(scaleX, scaleY);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,15 +15,15 @@ namespace Perspex.Controls
|
||||
|
||||
public class ItemsControl : TemplatedControl
|
||||
{
|
||||
private static readonly ItemsPanelTemplate DefaultPanel =
|
||||
new ItemsPanelTemplate(() => new StackPanel { Orientation = Orientation.Vertical });
|
||||
|
||||
public static readonly PerspexProperty<IEnumerable> ItemsProperty =
|
||||
PerspexProperty.Register<ItemsControl, IEnumerable>("Items");
|
||||
|
||||
public static readonly PerspexProperty<ItemsPanelTemplate> ItemsPanelProperty =
|
||||
PerspexProperty.Register<ItemsControl, ItemsPanelTemplate>("ItemsPanel", defaultValue: DefaultPanel);
|
||||
|
||||
private static readonly ItemsPanelTemplate DefaultPanel =
|
||||
new ItemsPanelTemplate(() => new StackPanel { Orientation = Orientation.Vertical });
|
||||
|
||||
private ItemContainerGenerator itemContainerGenerator;
|
||||
|
||||
public ItemsControl()
|
||||
@@ -44,11 +44,6 @@ namespace Perspex.Controls
|
||||
}
|
||||
}
|
||||
|
||||
protected virtual ItemContainerGenerator CreateItemContainerGenerator()
|
||||
{
|
||||
return new ItemContainerGenerator(this);
|
||||
}
|
||||
|
||||
public IEnumerable Items
|
||||
{
|
||||
get { return this.GetValue(ItemsProperty); }
|
||||
@@ -61,13 +56,18 @@ namespace Perspex.Controls
|
||||
set { this.SetValue(ItemsPanelProperty, value); }
|
||||
}
|
||||
|
||||
protected virtual ItemContainerGenerator CreateItemContainerGenerator()
|
||||
{
|
||||
return new ItemContainerGenerator(this);
|
||||
}
|
||||
|
||||
private void ItemsChanged(Tuple<IEnumerable, IEnumerable> value)
|
||||
{
|
||||
INotifyPropertyChanged inpc = value.Item1 as INotifyPropertyChanged;
|
||||
|
||||
if (inpc != null)
|
||||
{
|
||||
inpc.PropertyChanged -= ItemsPropertyChanged;
|
||||
inpc.PropertyChanged -= this.ItemsPropertyChanged;
|
||||
}
|
||||
|
||||
if (value.Item2 == null || !value.Item2.OfType<object>().Any())
|
||||
@@ -83,7 +83,7 @@ namespace Perspex.Controls
|
||||
|
||||
if (inpc != null)
|
||||
{
|
||||
inpc.PropertyChanged += ItemsPropertyChanged;
|
||||
inpc.PropertyChanged += this.ItemsPropertyChanged;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
// -----------------------------------------------------------------------
|
||||
// <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)
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace Perspex.Controls
|
||||
|
||||
static ListBoxItem()
|
||||
{
|
||||
PseudoClass(IsSelectedProperty, ":selected");
|
||||
Control.PseudoClass(IsSelectedProperty, ":selected");
|
||||
}
|
||||
|
||||
public bool IsSelected
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace Perspex.Controls
|
||||
if (this.children == null)
|
||||
{
|
||||
this.children = new Controls();
|
||||
this.children.CollectionChanged += ChildrenChanged;
|
||||
this.children.CollectionChanged += this.ChildrenChanged;
|
||||
}
|
||||
|
||||
return this.children;
|
||||
@@ -38,7 +38,7 @@ namespace Perspex.Controls
|
||||
{
|
||||
if (this.children != null)
|
||||
{
|
||||
this.children.CollectionChanged -= ChildrenChanged;
|
||||
this.children.CollectionChanged -= this.ChildrenChanged;
|
||||
}
|
||||
|
||||
this.children = value;
|
||||
@@ -46,7 +46,7 @@ namespace Perspex.Controls
|
||||
|
||||
if (this.children != null)
|
||||
{
|
||||
this.children.CollectionChanged += ChildrenChanged;
|
||||
this.children.CollectionChanged += this.ChildrenChanged;
|
||||
this.AddVisualChildren(value);
|
||||
this.InvalidateMeasure();
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="ItemsControl.cs" company="Steven Kirk">
|
||||
// <copyright file="ItemsPresenter.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
@@ -51,8 +51,8 @@ namespace Perspex.Controls.Presenters
|
||||
|
||||
protected override Size MeasureOverride(Size availableSize)
|
||||
{
|
||||
panel.Measure(availableSize);
|
||||
return panel.DesiredSize.Value;
|
||||
this.panel.Measure(availableSize);
|
||||
return this.panel.DesiredSize.Value;
|
||||
}
|
||||
|
||||
protected override Size ArrangeOverride(Size finalSize)
|
||||
|
||||
@@ -9,20 +9,20 @@ namespace Perspex.Controls.Presenters
|
||||
using System.Linq;
|
||||
using Perspex.Layout;
|
||||
|
||||
public class ScrollContentPresenter : ContentPresenter
|
||||
public class ScrollContentPresenter : ContentPresenter
|
||||
{
|
||||
public static PerspexProperty<Size> ExtentProperty =
|
||||
public static readonly PerspexProperty<Size> ExtentProperty =
|
||||
ScrollViewer.ExtentProperty.AddOwner<ScrollContentPresenter>();
|
||||
|
||||
public static PerspexProperty<Vector> OffsetProperty =
|
||||
public static readonly PerspexProperty<Vector> OffsetProperty =
|
||||
ScrollViewer.OffsetProperty.AddOwner<ScrollContentPresenter>();
|
||||
|
||||
public static PerspexProperty<Size> ViewportProperty =
|
||||
public static readonly PerspexProperty<Size> ViewportProperty =
|
||||
ScrollViewer.ViewportProperty.AddOwner<ScrollContentPresenter>();
|
||||
|
||||
public ScrollContentPresenter()
|
||||
{
|
||||
AffectsRender(OffsetProperty);
|
||||
Control.AffectsRender(OffsetProperty);
|
||||
}
|
||||
|
||||
public Size Extent
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="ContentControl.cs" company="Steven Kirk">
|
||||
// <copyright file="HeaderedContentControl.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
@@ -28,8 +28,8 @@ namespace Perspex.Controls.Primitives
|
||||
|
||||
static ScrollBar()
|
||||
{
|
||||
PseudoClass(OrientationProperty, x => x == Orientation.Horizontal, ":horizontal");
|
||||
PseudoClass(OrientationProperty, x => x == Orientation.Vertical, ":vertical");
|
||||
Control.PseudoClass(OrientationProperty, x => x == Orientation.Horizontal, ":horizontal");
|
||||
Control.PseudoClass(OrientationProperty, x => x == Orientation.Vertical, ":vertical");
|
||||
}
|
||||
|
||||
public double Minimum
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Perspex.Controls.Primitives
|
||||
result = new TypedItemContainerGenerator<TabItem>(this);
|
||||
}
|
||||
|
||||
result.StateChanged += ItemsContainerGeneratorStateChanged;
|
||||
result.StateChanged += this.ItemsContainerGeneratorStateChanged;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace Perspex.Controls.Primitives
|
||||
public static readonly RoutedEvent<VectorEventArgs> DragCompletedEvent =
|
||||
RoutedEvent.Register<Thumb, VectorEventArgs>("DragCompleted", RoutingStrategy.Bubble);
|
||||
|
||||
Point? lastPoint;
|
||||
private Point? lastPoint;
|
||||
|
||||
public Thumb()
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Perspex.Controls.Primitives
|
||||
|
||||
static ToggleButton()
|
||||
{
|
||||
PseudoClass(IsCheckedProperty, ":checked");
|
||||
Control.PseudoClass(IsCheckedProperty, ":checked");
|
||||
}
|
||||
|
||||
public ToggleButton()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="Thumb.cs" company="Steven Kirk">
|
||||
// <copyright file="Track.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
@@ -30,6 +30,14 @@ namespace Perspex.Controls.Primitives
|
||||
public static readonly PerspexProperty<Thumb> ThumbProperty =
|
||||
PerspexProperty.Register<Track, Thumb>("Thumb");
|
||||
|
||||
static Track()
|
||||
{
|
||||
Control.AffectsArrange(MinimumProperty);
|
||||
Control.AffectsArrange(MaximumProperty);
|
||||
Control.AffectsArrange(ValueProperty);
|
||||
Control.AffectsMeasure(OrientationProperty);
|
||||
}
|
||||
|
||||
public Track()
|
||||
{
|
||||
this.GetObservableWithHistory(ThumbProperty).Subscribe(val =>
|
||||
@@ -47,11 +55,6 @@ namespace Perspex.Controls.Primitives
|
||||
this.AddVisualChild(val.Item2);
|
||||
}
|
||||
});
|
||||
|
||||
AffectsArrange(MinimumProperty);
|
||||
AffectsArrange(MaximumProperty);
|
||||
AffectsArrange(ValueProperty);
|
||||
AffectsMeasure(OrientationProperty);
|
||||
}
|
||||
|
||||
public double Minimum
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
using System.Resources;
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="AssemblyInfo.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Resources;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="DefinitionBase.cs" company="Steven Kirk">
|
||||
// <copyright file="ScrollViewer.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
using System.Reactive.Linq;
|
||||
using Perspex.Controls.Presenters;
|
||||
using Perspex.Controls.Primitives;
|
||||
|
||||
namespace Perspex.Controls
|
||||
{
|
||||
using System.Reactive.Linq;
|
||||
using Perspex.Controls.Presenters;
|
||||
using Perspex.Controls.Primitives;
|
||||
|
||||
public class ScrollViewer : ContentControl
|
||||
{
|
||||
public static PerspexProperty<Size> ExtentProperty =
|
||||
public static readonly PerspexProperty<Size> ExtentProperty =
|
||||
PerspexProperty.Register<ScrollViewer, Size>("Extent");
|
||||
|
||||
public static PerspexProperty<Vector> OffsetProperty =
|
||||
public static readonly PerspexProperty<Vector> OffsetProperty =
|
||||
PerspexProperty.Register<ScrollViewer, Vector>("Offset");
|
||||
|
||||
public static PerspexProperty<Size> ViewportProperty =
|
||||
public static readonly PerspexProperty<Size> ViewportProperty =
|
||||
PerspexProperty.Register<ScrollViewer, Size>("Viewport");
|
||||
|
||||
private ScrollContentPresenter presenter;
|
||||
@@ -61,7 +61,7 @@ namespace Perspex.Controls
|
||||
.Select(x => new { Extent = x[0], Viewport = x[1] });
|
||||
|
||||
this.horizontalScrollBar.Bind(
|
||||
IsVisibleProperty,
|
||||
Visual.IsVisibleProperty,
|
||||
extentAndViewport.Select(x => x.Extent.Width > x.Viewport.Width));
|
||||
|
||||
this.horizontalScrollBar.Bind(
|
||||
@@ -73,7 +73,7 @@ namespace Perspex.Controls
|
||||
extentAndViewport.Select(x => (x.Viewport.Width / x.Extent.Width) * (x.Extent.Width - x.Viewport.Width)));
|
||||
|
||||
this.verticalScrollBar.Bind(
|
||||
IsVisibleProperty,
|
||||
Visual.IsVisibleProperty,
|
||||
extentAndViewport.Select(x => x.Extent.Height > x.Viewport.Height));
|
||||
|
||||
this.verticalScrollBar.Bind(
|
||||
|
||||
@@ -58,6 +58,14 @@ namespace Perspex.Controls.Shapes
|
||||
set { this.SetValue(StrokeThicknessProperty, value); }
|
||||
}
|
||||
|
||||
public override void Render(IDrawingContext context)
|
||||
{
|
||||
if (this.RenderedGeometry != null)
|
||||
{
|
||||
context.DrawGeometry(this.Fill, new Pen(this.Stroke, this.StrokeThickness), this.RenderedGeometry);
|
||||
}
|
||||
}
|
||||
|
||||
protected override Size MeasureOverride(Size availableSize)
|
||||
{
|
||||
Rect shapeBounds = this.RenderedGeometry.GetRenderBounds(this.StrokeThickness);
|
||||
@@ -127,13 +135,5 @@ namespace Perspex.Controls.Shapes
|
||||
double finalY = (height > 0) ? height : shapeBounds.Bottom * sy;
|
||||
return new Size(finalX, finalY);
|
||||
}
|
||||
|
||||
public override void Render(IDrawingContext context)
|
||||
{
|
||||
if (this.RenderedGeometry != null)
|
||||
{
|
||||
context.DrawGeometry(this.Fill, new Pen(this.Stroke, this.StrokeThickness), this.RenderedGeometry);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,7 +37,7 @@ namespace Perspex.Controls
|
||||
protected override void OnTemplateApplied()
|
||||
{
|
||||
this.tabStrip = this.GetTemplateControls().OfType<TabStrip>().FirstOrDefault();
|
||||
this.BindTwoWay(SelectedItemProperty, this.tabStrip, SelectedItemProperty);
|
||||
this.BindTwoWay(TabControl.SelectedItemProperty, this.tabStrip, TabControl.SelectedItemProperty);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,8 @@ namespace Perspex.Controls
|
||||
|
||||
static TabItem()
|
||||
{
|
||||
AffectsRender(IsSelectedProperty);
|
||||
PseudoClass(IsSelectedProperty, ":selected");
|
||||
Control.AffectsRender(IsSelectedProperty);
|
||||
Control.PseudoClass(IsSelectedProperty, ":selected");
|
||||
}
|
||||
|
||||
public bool IsSelected
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace Perspex.Controls
|
||||
|
||||
static TextBlock()
|
||||
{
|
||||
AffectsMeasure(TextProperty);
|
||||
Control.AffectsMeasure(TextProperty);
|
||||
}
|
||||
|
||||
public string Text
|
||||
|
||||
@@ -61,14 +61,6 @@ namespace Perspex.Controls
|
||||
this.InvalidateMeasure();
|
||||
}
|
||||
|
||||
internal void CaretMoved()
|
||||
{
|
||||
this.caretBlink = true;
|
||||
this.caretTimer.Stop();
|
||||
this.caretTimer.Start();
|
||||
this.InvalidateVisual();
|
||||
}
|
||||
|
||||
public override void Render(IDrawingContext context)
|
||||
{
|
||||
Rect rect = new Rect(this.ActualSize);
|
||||
@@ -95,6 +87,14 @@ namespace Perspex.Controls
|
||||
}
|
||||
}
|
||||
|
||||
internal void CaretMoved()
|
||||
{
|
||||
this.caretBlink = true;
|
||||
this.caretTimer.Stop();
|
||||
this.caretTimer.Start();
|
||||
this.InvalidateVisual();
|
||||
}
|
||||
|
||||
protected override Size MeasureOverride(Size constraint)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(this.parent.Text))
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace Perspex.Controls
|
||||
Type type,
|
||||
Func<object, Control> build,
|
||||
Func<object, IEnumerable> itemsSelector)
|
||||
: this(o => IsInstance(o, type), build, itemsSelector)
|
||||
: this(o => DataTemplate.IsInstance(o, type), build, itemsSelector)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace Perspex.Controls
|
||||
Func<object, Control> build,
|
||||
Func<object, IEnumerable> itemsSelector,
|
||||
Func<object, bool> isExpanded)
|
||||
: this(o => IsInstance(o, type), build, itemsSelector, isExpanded)
|
||||
: this(o => DataTemplate.IsInstance(o, type), build, itemsSelector, isExpanded)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -65,7 +65,10 @@ namespace Perspex.Controls
|
||||
public TreeDataTemplate(
|
||||
Func<T, Control> build,
|
||||
Func<T, IEnumerable> itemsSelector)
|
||||
: base(typeof(T), Cast(build), Cast(itemsSelector))
|
||||
: base(
|
||||
typeof(T),
|
||||
TreeDataTemplate<T>.Cast(build),
|
||||
TreeDataTemplate<T>.Cast(itemsSelector))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -73,7 +76,11 @@ namespace Perspex.Controls
|
||||
Func<T, Control> build,
|
||||
Func<T, IEnumerable> itemsSelector,
|
||||
Func<T, bool> isExpanded)
|
||||
: base(typeof(T), Cast(build), Cast(itemsSelector), Cast(isExpanded))
|
||||
: base(
|
||||
typeof(T),
|
||||
TreeDataTemplate<T>.Cast(build),
|
||||
TreeDataTemplate<T>.Cast(itemsSelector),
|
||||
TreeDataTemplate<T>.Cast(isExpanded))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -81,7 +88,10 @@ namespace Perspex.Controls
|
||||
Func<T, bool> match,
|
||||
Func<T, Control> build,
|
||||
Func<T, IEnumerable> itemsSelector)
|
||||
: base(CastMatch(match), Cast(build), Cast(itemsSelector))
|
||||
: base(
|
||||
TreeDataTemplate<T>.CastMatch(match),
|
||||
TreeDataTemplate<T>.Cast(build),
|
||||
TreeDataTemplate<T>.Cast(itemsSelector))
|
||||
{
|
||||
}
|
||||
|
||||
@@ -90,7 +100,11 @@ namespace Perspex.Controls
|
||||
Func<T, Control> build,
|
||||
Func<T, IEnumerable> itemsSelector,
|
||||
Func<T, bool> isExpanded)
|
||||
: base(CastMatch(match), Cast(build), Cast(itemsSelector), Cast(isExpanded))
|
||||
: base(
|
||||
TreeDataTemplate<T>.CastMatch(match),
|
||||
TreeDataTemplate<T>.Cast(build),
|
||||
TreeDataTemplate<T>.Cast(itemsSelector),
|
||||
TreeDataTemplate<T>.Cast(isExpanded))
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
@@ -36,6 +36,7 @@ namespace Perspex.Controls
|
||||
{
|
||||
this.SelectedItem = list[index - 1];
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -48,6 +49,7 @@ namespace Perspex.Controls
|
||||
{
|
||||
this.SelectedItem = list[index + 1];
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -68,14 +70,14 @@ namespace Perspex.Controls
|
||||
}
|
||||
}
|
||||
|
||||
List<object> Flatten()
|
||||
private List<object> Flatten()
|
||||
{
|
||||
var result = new List<object>();
|
||||
this.Flatten(this.Items, result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void Flatten(IEnumerable items, List<object> result)
|
||||
private void Flatten(IEnumerable items, List<object> result)
|
||||
{
|
||||
if (items != null)
|
||||
{
|
||||
|
||||
@@ -19,16 +19,16 @@ namespace Perspex.Controls
|
||||
public static readonly PerspexProperty<bool> IsSelectedProperty =
|
||||
ListBoxItem.IsSelectedProperty.AddOwner<TreeViewItem>();
|
||||
|
||||
TreeView treeView;
|
||||
private TreeView treeView;
|
||||
|
||||
static TreeViewItem()
|
||||
{
|
||||
PseudoClass(IsSelectedProperty, ":selected");
|
||||
Control.PseudoClass(IsSelectedProperty, ":selected");
|
||||
}
|
||||
|
||||
public TreeViewItem()
|
||||
{
|
||||
AffectsRender(IsSelectedProperty);
|
||||
Control.AffectsRender(IsSelectedProperty);
|
||||
}
|
||||
|
||||
public bool IsExpanded
|
||||
|
||||
@@ -34,10 +34,6 @@ namespace Perspex.Controls
|
||||
|
||||
private IInputManager inputManager;
|
||||
|
||||
public event EventHandler Activated;
|
||||
|
||||
public event EventHandler Closed;
|
||||
|
||||
static Window()
|
||||
{
|
||||
BackgroundProperty.OverrideDefaultValue(typeof(Window), Brushes.White);
|
||||
@@ -85,6 +81,10 @@ namespace Perspex.Controls
|
||||
styler.ApplyStyles(this);
|
||||
}
|
||||
|
||||
public event EventHandler Activated;
|
||||
|
||||
public event EventHandler Closed;
|
||||
|
||||
public Size ClientSize
|
||||
{
|
||||
get { return this.GetValue(ClientSizeProperty); }
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
using System.Resources;
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="AssemblyInfo.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Resources;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
|
||||
@@ -0,0 +1,184 @@
|
||||
<StyleCopSettings Version="105">
|
||||
<Analyzers>
|
||||
<Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
|
||||
<Rules>
|
||||
<Rule Name="ElementsMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PartialElementsMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="EnumerationItemsMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationMustContainValidXml">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustHaveSummary">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PartialElementDocumentationMustHaveSummary">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustHaveSummaryText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PartialElementDocumentationMustHaveSummaryText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustNotHaveDefaultSummary">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParametersMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParameterDocumentationMustMatchElementParameters">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParameterDocumentationMustDeclareParameterName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementParameterDocumentationMustHaveText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementReturnValueMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementReturnValueDocumentationMustHaveText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="VoidReturnValueMustNotBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParametersMustBeDocumented">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParametersMustBeDocumentedPartialClass">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParameterDocumentationMustMatchTypeParameters">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParameterDocumentationMustDeclareParameterName">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="GenericTypeParameterDocumentationMustHaveText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PropertySummaryDocumentationMustMatchAccessors">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="PropertySummaryDocumentationMustOmitSetAccessorWithRestrictedAccess">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustNotBeCopiedAndPasted">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="SingleLineCommentsMustNotUseDocumentationStyleSlashes">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationTextMustNotBeEmpty">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationTextMustContainWhitespace">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationMustMeetCharacterPercentage">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ConstructorSummaryDocumentationMustBeginWithStandardText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DestructorSummaryDocumentationMustBeginWithStandardText">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="DocumentationHeadersMustNotContainBlankLines">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="IncludedDocumentationXPathDoesNotExist">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="IncludeNodeDoesNotContainValidFileAndPath">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="InheritDocMustBeUsedWithInheritingClass">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
<Rule Name="ElementDocumentationMustBeSpelledCorrectly">
|
||||
<RuleSettings>
|
||||
<BooleanProperty Name="Enabled">False</BooleanProperty>
|
||||
</RuleSettings>
|
||||
</Rule>
|
||||
</Rules>
|
||||
<AnalyzerSettings />
|
||||
</Analyzer>
|
||||
</Analyzers>
|
||||
</StyleCopSettings>
|
||||
@@ -1,5 +1,5 @@
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="MouseDevice.cs" company="Steven Kirk">
|
||||
// <copyright file="WindowsMouseDevice.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
@@ -39,5 +39,4 @@ namespace Perspex.Win32.Input
|
||||
return new Point(p.X, p.Y);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -42,18 +42,6 @@ namespace Perspex.Win32.Interop
|
||||
IDC_HELP = 32651
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct PAINTSTRUCT
|
||||
{
|
||||
public IntPtr hdc;
|
||||
public bool fErase;
|
||||
public RECT rcPaint;
|
||||
public bool fRestore;
|
||||
public bool fIncUpdate;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||
public byte[] rgbReserved;
|
||||
}
|
||||
|
||||
[Flags]
|
||||
public enum SetWindowPosFlags : uint
|
||||
{
|
||||
@@ -469,7 +457,7 @@ namespace Perspex.Win32.Interop
|
||||
IntPtr lpParam);
|
||||
|
||||
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
|
||||
public static extern bool SetWindowText(IntPtr hwnd, String lpString);
|
||||
public static extern bool SetWindowText(IntPtr hwnd, string lpString);
|
||||
|
||||
public struct MSG
|
||||
{
|
||||
@@ -481,6 +469,18 @@ namespace Perspex.Win32.Interop
|
||||
public POINT pt;
|
||||
}
|
||||
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
public struct PAINTSTRUCT
|
||||
{
|
||||
public IntPtr hdc;
|
||||
public bool fErase;
|
||||
public RECT rcPaint;
|
||||
public bool fRestore;
|
||||
public bool fIncUpdate;
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
|
||||
public byte[] rgbReserved;
|
||||
}
|
||||
|
||||
public struct POINT
|
||||
{
|
||||
public int X;
|
||||
|
||||
@@ -1,4 +1,10 @@
|
||||
using System.Reflection;
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="AssemblyInfo.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// -----------------------------------------------------------------------
|
||||
// <copyright file="WindowsPlatform.cs" company="Steven Kirk">
|
||||
// <copyright file="Win32Platform.cs" company="Steven Kirk">
|
||||
// Copyright 2014 MIT Licence. See licence.md for more information.
|
||||
// </copyright>
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
@@ -202,6 +202,7 @@ namespace Perspex.Win32
|
||||
{
|
||||
this.Resized(new Size((int)lParam & 0xffff, (int)lParam >> 16));
|
||||
}
|
||||
|
||||
return IntPtr.Zero;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user