From 4675ec41d66da2446653961e2fc211181a25384e Mon Sep 17 00:00:00 2001 From: grokys Date: Sat, 1 Feb 2014 23:10:04 +0100 Subject: [PATCH] Add :mouseover pseudoclass. --- Perspex.Windows/Window.cs | 7 ++++++- Perspex/Controls/Control.cs | 26 +++++++++++++++++++++++--- Perspex/Perspex.csproj | 1 + Perspex/PerspexList.cs | 30 ++++++++++++++++++++++++++++++ Perspex/Selectors.cs | 24 ++++++++++++++++++++++++ Perspex/Visual.cs | 9 --------- TestApplication/Program.cs | 4 ++-- 7 files changed, 86 insertions(+), 15 deletions(-) create mode 100644 Perspex/PerspexList.cs diff --git a/Perspex.Windows/Window.cs b/Perspex.Windows/Window.cs index 0c831a20b0..813fd69087 100644 --- a/Perspex.Windows/Window.cs +++ b/Perspex.Windows/Window.cs @@ -134,7 +134,12 @@ namespace Perspex.Windows private void MouseMove(Visual visual, Point p) { - visual.IsMouseOver = visual.Bounds.Contains(p); + Control control = visual as Control; + + if (control != null) + { + control.IsMouseOver = visual.Bounds.Contains(p); + } foreach (Visual child in visual.VisualChildren) { diff --git a/Perspex/Controls/Control.cs b/Perspex/Controls/Control.cs index ffa21dd003..2d63583c97 100644 --- a/Perspex/Controls/Control.cs +++ b/Perspex/Controls/Control.cs @@ -44,6 +44,9 @@ namespace Perspex.Controls public static readonly PerspexProperty BorderThicknessProperty = PerspexProperty.Register("BorderThickness"); + public static readonly PerspexProperty IsMouseOverProperty = + PerspexProperty.Register("IsMouseOver"); + public static readonly PerspexProperty HorizontalAlignmentProperty = PerspexProperty.Register("HorizontalAlignment"); @@ -58,10 +61,21 @@ namespace Perspex.Controls public Control() { - this.Classes = new ObservableCollection(); - this.Styles = new ObservableCollection