From c8dc3ff29b08a5d37a8f1f3c5c9b0ccdb54a1c2c Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Fri, 26 Feb 2016 15:26:56 +0100 Subject: [PATCH] Default theme now uses style resources. --- .../Presenters/TextPresenter.cs | 11 ++-- src/Perspex.Styling/Styling/Setter.cs | 36 +++++++------ .../Accents/BaseLight.paml | 51 ++++++++----------- src/Perspex.Themes.Default/Button.paml | 16 +++--- src/Perspex.Themes.Default/CheckBox.paml | 11 ++-- src/Perspex.Themes.Default/DropDown.paml | 18 +++---- src/Perspex.Themes.Default/GridSplitter.paml | 8 +-- src/Perspex.Themes.Default/ListBox.paml | 6 ++- src/Perspex.Themes.Default/MenuItem.paml | 26 +++++----- src/Perspex.Themes.Default/PopupRoot.paml | 1 + src/Perspex.Themes.Default/ProgressBar.paml | 4 +- src/Perspex.Themes.Default/RadioButton.paml | 12 +++-- src/Perspex.Themes.Default/ScrollBar.paml | 3 +- src/Perspex.Themes.Default/Separator.paml | 8 +-- src/Perspex.Themes.Default/TabStripItem.paml | 6 +-- src/Perspex.Themes.Default/TextBox.paml | 20 ++++---- src/Perspex.Themes.Default/ToggleButton.paml | 18 +++---- src/Perspex.Themes.Default/ToolTip.paml | 5 +- src/Perspex.Themes.Default/TreeView.paml | 9 ++-- src/Perspex.Themes.Default/TreeViewItem.paml | 2 +- src/Perspex.Themes.Default/Window.paml | 3 +- 21 files changed, 145 insertions(+), 129 deletions(-) diff --git a/src/Perspex.Controls/Presenters/TextPresenter.cs b/src/Perspex.Controls/Presenters/TextPresenter.cs index 625d58d9dd..284684ab6e 100644 --- a/src/Perspex.Controls/Presenters/TextPresenter.cs +++ b/src/Perspex.Controls/Presenters/TextPresenter.cs @@ -5,6 +5,7 @@ using System; using System.Linq; using System.Reactive.Linq; using Perspex.Media; +using Perspex.Styling; using Perspex.Threading; using Perspex.VisualTree; @@ -22,10 +23,9 @@ namespace Perspex.Controls.Presenters TextBox.SelectionEndProperty.AddOwner(); private readonly DispatcherTimer _caretTimer; - private bool _caretBlink; - private IObservable _canScrollHorizontally; + private Brush _highlightBrush; static TextPresenter() { @@ -85,11 +85,14 @@ namespace Perspex.Controls.Presenters var length = Math.Max(selectionStart, selectionEnd) - start; var rects = FormattedText.HitTestTextRange(start, length); - var brush = new SolidColorBrush(0xff086f9e); + if (_highlightBrush == null) + { + _highlightBrush = (Brush)this.FindStyleResource("HighlightBrush"); + } foreach (var rect in rects) { - context.FillRectangle(brush, rect); + context.FillRectangle(_highlightBrush, rect); } } diff --git a/src/Perspex.Styling/Styling/Setter.cs b/src/Perspex.Styling/Styling/Setter.cs index d31f7a3d66..c37b156f07 100644 --- a/src/Perspex.Styling/Styling/Setter.cs +++ b/src/Perspex.Styling/Styling/Setter.cs @@ -101,25 +101,29 @@ namespace Perspex.Styling else { var sourceInstance = binding.Initiate(control, Property); - InstancedBinding activatedInstance; - if (sourceInstance.Subject != null) + if (sourceInstance != null) { - var activated = new ActivatedSubject(activator, sourceInstance.Subject, description); - activatedInstance = new InstancedBinding(activated, sourceInstance.Mode, sourceInstance.Priority); - } - else if (sourceInstance.Observable != null) - { - var activated = new ActivatedObservable(activator, sourceInstance.Observable, description); - activatedInstance = new InstancedBinding(activated, sourceInstance.Mode, sourceInstance.Priority); - } - else - { - var activated = new ActivatedValue(activator, sourceInstance.Value, description); - activatedInstance = new InstancedBinding(activated, sourceInstance.Mode, sourceInstance.Priority); - } + InstancedBinding activatedInstance; + + if (sourceInstance.Subject != null) + { + var activated = new ActivatedSubject(activator, sourceInstance.Subject, description); + activatedInstance = new InstancedBinding(activated, sourceInstance.Mode, sourceInstance.Priority); + } + else if (sourceInstance.Observable != null) + { + var activated = new ActivatedObservable(activator, sourceInstance.Observable, description); + activatedInstance = new InstancedBinding(activated, sourceInstance.Mode, sourceInstance.Priority); + } + else + { + var activated = new ActivatedValue(activator, sourceInstance.Value, description); + activatedInstance = new InstancedBinding(activated, BindingMode.OneWay, sourceInstance.Priority); + } - BindingOperations.Apply(control, Property, activatedInstance, null); + BindingOperations.Apply(control, Property, activatedInstance, null); + } } } } diff --git a/src/Perspex.Themes.Default/Accents/BaseLight.paml b/src/Perspex.Themes.Default/Accents/BaseLight.paml index 0769dbbe0f..a9360b4297 100644 --- a/src/Perspex.Themes.Default/Accents/BaseLight.paml +++ b/src/Perspex.Themes.Default/Accents/BaseLight.paml @@ -1,36 +1,29 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/Button.paml b/src/Perspex.Themes.Default/Button.paml index 7cfd1e7f35..baf85381bc 100644 --- a/src/Perspex.Themes.Default/Button.paml +++ b/src/Perspex.Themes.Default/Button.paml @@ -1,15 +1,15 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/CheckBox.paml b/src/Perspex.Themes.Default/CheckBox.paml index cea4b2d114..d05e8b5cf6 100644 --- a/src/Perspex.Themes.Default/CheckBox.paml +++ b/src/Perspex.Themes.Default/CheckBox.paml @@ -1,7 +1,7 @@  + @@ -36,6 +39,6 @@ \ No newline at end of file diff --git a/src/Perspex.Themes.Default/DropDown.paml b/src/Perspex.Themes.Default/DropDown.paml index d1646ac21c..37dd47d49a 100644 --- a/src/Perspex.Themes.Default/DropDown.paml +++ b/src/Perspex.Themes.Default/DropDown.paml @@ -1,11 +1,12 @@  - - \ No newline at end of file diff --git a/src/Perspex.Themes.Default/GridSplitter.paml b/src/Perspex.Themes.Default/GridSplitter.paml index 6c5f936ec2..f6137af74c 100644 --- a/src/Perspex.Themes.Default/GridSplitter.paml +++ b/src/Perspex.Themes.Default/GridSplitter.paml @@ -1,7 +1,7 @@  @@ -25,7 +25,7 @@ diff --git a/src/Perspex.Themes.Default/ListBox.paml b/src/Perspex.Themes.Default/ListBox.paml index 2a151889a0..951a2ef575 100644 --- a/src/Perspex.Themes.Default/ListBox.paml +++ b/src/Perspex.Themes.Default/ListBox.paml @@ -1,6 +1,7 @@  + diff --git a/src/Perspex.Themes.Default/ScrollBar.paml b/src/Perspex.Themes.Default/ScrollBar.paml index de0aa2fd4c..9d2a15854a 100644 --- a/src/Perspex.Themes.Default/ScrollBar.paml +++ b/src/Perspex.Themes.Default/ScrollBar.paml @@ -2,7 +2,7 @@ diff --git a/src/Perspex.Themes.Default/TabStripItem.paml b/src/Perspex.Themes.Default/TabStripItem.paml index 38ad8d139d..3af1f98f82 100644 --- a/src/Perspex.Themes.Default/TabStripItem.paml +++ b/src/Perspex.Themes.Default/TabStripItem.paml @@ -1,7 +1,7 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/TextBox.paml b/src/Perspex.Themes.Default/TextBox.paml index db477a6313..dcb4230e7b 100644 --- a/src/Perspex.Themes.Default/TextBox.paml +++ b/src/Perspex.Themes.Default/TextBox.paml @@ -1,23 +1,22 @@  + \ No newline at end of file diff --git a/src/Perspex.Themes.Default/ToggleButton.paml b/src/Perspex.Themes.Default/ToggleButton.paml index 0311294db9..90b80129c6 100644 --- a/src/Perspex.Themes.Default/ToggleButton.paml +++ b/src/Perspex.Themes.Default/ToggleButton.paml @@ -1,9 +1,9 @@  \ No newline at end of file diff --git a/src/Perspex.Themes.Default/ToolTip.paml b/src/Perspex.Themes.Default/ToolTip.paml index ed59c08a70..a6fe7bdf1f 100644 --- a/src/Perspex.Themes.Default/ToolTip.paml +++ b/src/Perspex.Themes.Default/ToolTip.paml @@ -1,6 +1,7 @@