Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/Xamarin.PropertyEditing.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLarry Ewing <lewing@xamarin.com>2018-05-19 00:55:22 +0300
committerLarry Ewing <lewing@microsoft.com>2018-07-16 22:05:49 +0300
commit64ac72c40263f936d7d63286fac2c035c6afbe1c (patch)
tree10c9524340f9ea2713ebb023c0e4ac6bfb346d22 /Xamarin.PropertyEditing.Mac/Controls
parent331ec7c82d92fb658d1db7a0ffd1db51522a34f1 (diff)
If the color has a cached hue value, use it
Diffstat (limited to 'Xamarin.PropertyEditing.Mac/Controls')
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs4
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/Custom/ChannelEditor.cs26
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentEditor.cs7
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentViewController.cs22
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/Custom/NotifyingViewAdaptor.cs3
5 files changed, 47 insertions, 15 deletions
diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs
index 73785e2..09623c0 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs
@@ -118,10 +118,6 @@ namespace Xamarin.PropertyEditing.Mac
inhibitSelection = true;
base.ViewDidLoad ();
inhibitSelection = false;
-
- old = View.Frame;
- //old.Height = 230;
- View.Frame = old;
}
}
}
diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/ChannelEditor.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/ChannelEditor.cs
index e8b6837..1991c90 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/Custom/ChannelEditor.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/ChannelEditor.cs
@@ -231,6 +231,19 @@ namespace Xamarin.PropertyEditing.Mac
=> color.UpdateHSB (brightness: Clamp (value));
}
+ class HsbAlphaChannelEditor : ChannelEditor
+ {
+ public HsbAlphaChannelEditor () : base ("A", 0d, 255d, 1d)
+ {
+ }
+
+ public override double ValueFromColor (CommonColor color)
+ => (double)color.A;
+
+ public override CommonColor UpdateColorFromValue (CommonColor color, double value)
+ => color.UpdateHSB (alpha: (byte)Clamp (value));
+ }
+
class HlsHueChannelEditor : ChannelEditor
{
public HlsHueChannelEditor () : base ("H", 0d, 360d, 1d)
@@ -269,4 +282,17 @@ namespace Xamarin.PropertyEditing.Mac
public override CommonColor UpdateColorFromValue (CommonColor color, double value)
=> color.UpdateHLS (saturation: Clamp (value));
}
+
+ class HlsAlphaChannelEditor : ChannelEditor
+ {
+ public HlsAlphaChannelEditor () : base ("A", 0d, 255d, 1d)
+ {
+ }
+
+ public override double ValueFromColor (CommonColor color)
+ => (double)color.A;
+
+ public override CommonColor UpdateColorFromValue (CommonColor color, double value)
+ => color.UpdateHLS (alpha: (byte)Clamp (value));
+ }
}
diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentEditor.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentEditor.cs
index 0a17a23..8ea4f1d 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentEditor.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentEditor.cs
@@ -79,14 +79,14 @@ namespace Xamarin.PropertyEditing.Mac
CreateEditor (new HsbHueChannelEditor ()),
CreateEditor (new HsbSaturationChannelEditor ()),
CreateEditor (new HsbBrightnessChannelEditor ()),
- CreateEditor (new AlphaChannelEditor ())
+ CreateEditor (new HsbAlphaChannelEditor ())
};
case ChannelEditorType.HLS:
return new [] {
CreateEditor (new HlsHueChannelEditor ()),
CreateEditor (new HlsLightnessChannelEditor ()),
CreateEditor (new HlsSaturationChannelEditor ()),
- CreateEditor (new AlphaChannelEditor ())
+ CreateEditor (new HlsAlphaChannelEditor ())
};
case ChannelEditorType.RGB:
return new [] {
@@ -148,6 +148,9 @@ namespace Xamarin.PropertyEditing.Mac
{
base.OnPropertyChanged (sender, e);
+ if (ViewModel == null)
+ return;
+
switch (e.PropertyName) {
case nameof (SolidBrushViewModel.Color):
foreach (var channelGroup in Editors) {
diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentViewController.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentViewController.cs
index c5173de..027c69a 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentViewController.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/ColorComponentViewController.cs
@@ -24,17 +24,21 @@ namespace Xamarin.PropertyEditing.Mac
editor.ViewModel = ViewModel;
}
- public override void OnPropertyChanged (object sender, PropertyChangedEventArgs args)
+ public override void ViewWillDisappear ()
{
- switch (args.PropertyName) {
- case nameof (SolidBrushViewModel.Color):
- break;
- }
+ base.ViewWillDisappear ();
+ editor.ViewModel = null;
}
- public override void LoadView ()
- {
+ public override void ViewWillAppear ()
+ {
+ base.ViewWillAppear ();
+ editor.ViewModel = ViewModel;
+ }
+
+ public override void LoadView ()
+ {
View = editor = new ColorComponentEditor (this.EditorType);
- }
- }
+ }
+ }
}
diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/NotifyingViewAdaptor.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/NotifyingViewAdaptor.cs
index 2a64af3..0cda4ff 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/Custom/NotifyingViewAdaptor.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/NotifyingViewAdaptor.cs
@@ -32,6 +32,9 @@ namespace Xamarin.PropertyEditing.Mac
viewModel = value;
OnViewModelChanged (oldModel);
+ if (viewModel == null)
+ return;
+
viewModel.PropertyChanged += OnPropertyChanged;
}
}