diff options
author | Eric Maupin <ermaup@microsoft.com> | 2019-01-18 20:30:10 +0300 |
---|---|---|
committer | Eric Maupin <ermaup@microsoft.com> | 2019-01-18 20:30:10 +0300 |
commit | bbc4132eb17bf3fdbb27ba6a19d012c41b03cb29 (patch) | |
tree | 0f4fdd7077743b58cacc2a6cc0b2afbd4e88e6a4 /Xamarin.PropertyEditing.Mac | |
parent | ec3693722ea01347f8ad6c3ace9afbedde10b413 (diff) |
[mac] Inherit appearance for brush popup
Diffstat (limited to 'Xamarin.PropertyEditing.Mac')
-rw-r--r-- | Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs | 10 | ||||
-rw-r--r-- | Xamarin.PropertyEditing.Mac/HostResourceProvider.cs | 11 | ||||
-rw-r--r-- | Xamarin.PropertyEditing.Mac/IHostResourceProvider.cs | 2 |
3 files changed, 23 insertions, 0 deletions
diff --git a/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs index 6007fdc..67f8e6a 100644 --- a/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs +++ b/Xamarin.PropertyEditing.Mac/Controls/BrushEditorControl.cs @@ -80,6 +80,16 @@ namespace Xamarin.PropertyEditing.Mac NSLayoutConstraint.Create (this.popUpButton, NSLayoutAttribute.Width, NSLayoutRelation.Equal, this, NSLayoutAttribute.Width, 1f, -33f), NSLayoutConstraint.Create (this.popUpButton, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1f, DefaultControlHeight - 3), }); + + ViewDidChangeEffectiveAppearance (); + } + + public override void ViewDidChangeEffectiveAppearance () + { + base.ViewDidChangeEffectiveAppearance (); + + this.popover.SetAppearance (HostResources.GetVibrantAppearance (EffectiveAppearance)); + this.popover.ContentViewController.View.Appearance = EffectiveAppearance; } readonly ColorPopUpButton popUpButton; diff --git a/Xamarin.PropertyEditing.Mac/HostResourceProvider.cs b/Xamarin.PropertyEditing.Mac/HostResourceProvider.cs index 57e1236..591c46d 100644 --- a/Xamarin.PropertyEditing.Mac/HostResourceProvider.cs +++ b/Xamarin.PropertyEditing.Mac/HostResourceProvider.cs @@ -7,6 +7,17 @@ namespace Xamarin.PropertyEditing.Mac public class HostResourceProvider : IHostResourceProvider { + public virtual NSAppearance GetVibrantAppearance (NSAppearance appearance) + { + if (appearance == null) + throw new ArgumentNullException (nameof (appearance)); + + if (appearance.Name == NSAppearance.NameDarkAqua || appearance.Name == NSAppearance.NameVibrantDark) + return NSAppearance.GetAppearance (NSAppearance.NameVibrantDark); + + return NSAppearance.GetAppearance (NSAppearance.NameVibrantLight); + } + public virtual NSColor GetNamedColor (string name) { return NSColor.FromName (name); diff --git a/Xamarin.PropertyEditing.Mac/IHostResourceProvider.cs b/Xamarin.PropertyEditing.Mac/IHostResourceProvider.cs index 46e7040..3fb3619 100644 --- a/Xamarin.PropertyEditing.Mac/IHostResourceProvider.cs +++ b/Xamarin.PropertyEditing.Mac/IHostResourceProvider.cs @@ -5,6 +5,8 @@ namespace Xamarin.PropertyEditing.Mac { public interface IHostResourceProvider { + NSAppearance GetVibrantAppearance (NSAppearance appearance); + NSColor GetNamedColor (string name); NSImage GetNamedImage (string name); NSFont GetNamedFont (string name, nfloat fontSize); |