From 6794fc7407fb13ed29fc7fa2eae443395e13f8bd Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 28 Aug 2015 21:10:13 +0200 Subject: [PATCH] Fix setting window title. Closes #82. --- .../Perspex.Controls.UnitTests/WindowTests.cs | 43 +++++++++++++++++++ src/Perspex.Controls/Window.cs | 6 +++ 2 files changed, 49 insertions(+) create mode 100644 Tests/Perspex.Controls.UnitTests/WindowTests.cs diff --git a/Tests/Perspex.Controls.UnitTests/WindowTests.cs b/Tests/Perspex.Controls.UnitTests/WindowTests.cs new file mode 100644 index 0000000000..35e996636d --- /dev/null +++ b/Tests/Perspex.Controls.UnitTests/WindowTests.cs @@ -0,0 +1,43 @@ +// ----------------------------------------------------------------------- +// +// Copyright 2015 MIT Licence. See licence.md for more information. +// +// ----------------------------------------------------------------------- + +namespace Perspex.Controls.UnitTests +{ + using System.Reactive; + using System.Reactive.Subjects; + using Moq; + using Perspex.Controls.Presenters; + using Perspex.Controls.Templates; + using Perspex.Input; + using Perspex.Input.Raw; + using Perspex.Layout; + using Perspex.Platform; + using Perspex.Rendering; + using Perspex.Styling; + using Ploeh.AutoFixture; + using Ploeh.AutoFixture.AutoMoq; + using Splat; + using Xunit; + + public class WindowTests + { + [Fact] + public void Setting_Title_Should_Set_Impl_Title() + { + using (Locator.CurrentMutable.WithResolver()) + { + var windowImpl = new Mock(); + Locator.CurrentMutable.RegisterConstant(windowImpl.Object, typeof(IWindowImpl)); + + var target = new Window(); + + target.Title = "Hello World"; + + windowImpl.Verify(x => x.SetTitle("Hello World")); + } + } + } +} diff --git a/src/Perspex.Controls/Window.cs b/src/Perspex.Controls/Window.cs index 4c8baec900..3f7fde81d1 100644 --- a/src/Perspex.Controls/Window.cs +++ b/src/Perspex.Controls/Window.cs @@ -66,6 +66,7 @@ namespace Perspex.Controls static Window() { BackgroundProperty.OverrideDefaultValue(typeof(Window), Brushes.White); + TitleProperty.Changed.AddClassHandler(x => x.TitleChanged); } /// @@ -234,5 +235,10 @@ namespace Perspex.Controls base.HandleResized(clientSize); } + + private void TitleChanged(PerspexPropertyChangedEventArgs e) + { + this.PlatformImpl.SetTitle((string)e.NewValue); + } } }