9 changed files with 237 additions and 6 deletions
@ -0,0 +1,23 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="Button.cs" company="Steven Kirk">
|
|||
// Copyright 2013 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Controls |
|||
{ |
|||
public class Button : ContentControl |
|||
{ |
|||
protected override Visual DefaultTemplate() |
|||
{ |
|||
Border border = new Border(); |
|||
border.Background = new Perspex.Media.SolidColorBrush(0xff808080); |
|||
border.BorderBrush = new Perspex.Media.SolidColorBrush(0xff000000); |
|||
border.BorderThickness = 2; |
|||
ContentPresenter contentPresenter = new ContentPresenter(); |
|||
contentPresenter.Bind(ContentPresenter.ContentProperty, this.GetObservable(ContentProperty)); |
|||
border.Content = contentPresenter; |
|||
return border; |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,131 @@ |
|||
// -----------------------------------------------------------------------
|
|||
// <copyright file="Matrix.cs" company="Steven Kirk">
|
|||
// Copyright 2013 MIT Licence. See licence.md for more information.
|
|||
// </copyright>
|
|||
// -----------------------------------------------------------------------
|
|||
|
|||
namespace Perspex.Media |
|||
{ |
|||
using System; |
|||
|
|||
public struct Matrix |
|||
{ |
|||
private double m11; |
|||
private double m12; |
|||
private double m21; |
|||
private double m22; |
|||
private double offsetX; |
|||
private double offsetY; |
|||
|
|||
public Matrix( |
|||
double m11, |
|||
double m12, |
|||
double m21, |
|||
double m22, |
|||
double offsetX, |
|||
double offsetY) |
|||
{ |
|||
this.m11 = m11; |
|||
this.m12 = m12; |
|||
this.m21 = m21; |
|||
this.m22 = m22; |
|||
this.offsetX = offsetX; |
|||
this.offsetY = offsetY; |
|||
} |
|||
|
|||
public static Matrix Identity |
|||
{ |
|||
get { return new Matrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0); } |
|||
} |
|||
|
|||
public double Determinant |
|||
{ |
|||
get { return (this.m11 * this.m22) - (this.m12 * this.m21); } |
|||
} |
|||
|
|||
public bool HasInverse |
|||
{ |
|||
get { return this.Determinant != 0; } |
|||
} |
|||
|
|||
public bool IsIdentity |
|||
{ |
|||
get { return this.Equals(Matrix.Identity); } |
|||
} |
|||
|
|||
public double M11 |
|||
{ |
|||
get { return this.m11; } |
|||
} |
|||
|
|||
public double M12 |
|||
{ |
|||
get { return this.m12; } |
|||
} |
|||
|
|||
public double M21 |
|||
{ |
|||
get { return this.m21; } |
|||
} |
|||
|
|||
public double M22 |
|||
{ |
|||
get { return this.m22; } |
|||
} |
|||
|
|||
public double OffsetX |
|||
{ |
|||
get { return this.offsetX; } |
|||
} |
|||
|
|||
public double OffsetY |
|||
{ |
|||
get { return this.offsetY; } |
|||
} |
|||
|
|||
public static bool Equals(Matrix matrix1, Matrix matrix2) |
|||
{ |
|||
return matrix1.Equals(matrix2); |
|||
} |
|||
|
|||
public static Matrix Translation(double x, double y) |
|||
{ |
|||
return new Matrix(1.0, 0.0, 0.0, 1.0, x, y); |
|||
} |
|||
|
|||
public static bool operator ==(Matrix matrix1, Matrix matrix2) |
|||
{ |
|||
return matrix1.Equals(matrix2); |
|||
} |
|||
|
|||
public static bool operator !=(Matrix matrix1, Matrix matrix2) |
|||
{ |
|||
return !matrix1.Equals(matrix2); |
|||
} |
|||
|
|||
public bool Equals(Matrix value) |
|||
{ |
|||
return this.m11 == value.M11 && |
|||
this.m12 == value.M12 && |
|||
this.m21 == value.M21 && |
|||
this.m22 == value.M22 && |
|||
this.offsetX == value.OffsetX && |
|||
this.offsetY == value.OffsetY; |
|||
} |
|||
|
|||
public override bool Equals(object o) |
|||
{ |
|||
if (!(o is Matrix)) |
|||
{ |
|||
return false; |
|||
} |
|||
|
|||
return this.Equals((Matrix)o); |
|||
} |
|||
|
|||
public override int GetHashCode() |
|||
{ |
|||
throw new NotImplementedException(); |
|||
} |
|||
} |
|||
} |
|||
Loading…
Reference in new issue