diff options
author | Lluis Sanchez <llsan@microsoft.com> | 2019-05-28 13:39:22 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-28 13:39:22 +0300 |
commit | eb4f62cf4df627575d789f3c9399740be63f56dc (patch) | |
tree | ef70b33c8255974c17d14efe22d146108c93a6fe /main/src/addins | |
parent | 1639171ef392a1fc1c1e01637ca3c961592efb83 (diff) | |
parent | 58c3b7471ee461b173931e259396011b511c0913 (diff) |
Merge pull request #7653 from mono/enable-new-propertypad
[DesignerSupport] Finish migration to the new property editing hash
Diffstat (limited to 'main/src/addins')
4 files changed, 105 insertions, 2 deletions
diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Styles.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Styles.cs index 14fa27fa49..3cdff448bc 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Styles.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.Toolbox/Styles.cs @@ -20,6 +20,18 @@ namespace MonoDevelop.DesignerSupport public static NSColor HeaderBorderBackgroundColor { get; private set; }
public static NSColor ToolbarBackgroundColor { get; private set; }
+
+ public static PropertyPadStyle PropertyPad { get; private set; }
+
+ // Used for the property panel in Xamarin.PropertyEditing
+ public class PropertyPadStyle + { + public NSColor Checkerboard0 { get; internal set; } + public NSColor Checkerboard1 { get; internal set; } + public NSColor ValueBlockBackgroundColor { get; internal set; } + public NSColor TabBorderColor { get; internal set; } + public NSColor PanelTabBackground { get; internal set; } + }
static Styles ()
{
@@ -35,14 +47,30 @@ namespace MonoDevelop.DesignerSupport LabelSelectedForegroundColor = NSColor.Highlight;
ToolbarBackgroundColor = NSColor.White;
CellBackgroundSelectedColor = NSColor.FromRgb (0.36f, 0.54f, 0.90f);
+
+ PropertyPad = new PropertyPadStyle { + Checkerboard0 = NSColor.FromRgb (255, 255, 255), + Checkerboard1 = NSColor.FromRgb (217, 217, 217), + PanelTabBackground = NSColor.FromRgb (248, 247, 248), + TabBorderColor = NSColor.FromRgba (0, 0, 0, 25), + ValueBlockBackgroundColor = NSColor.FromRgba (0, 0, 0, 20) + }; } else {
CellBackgroundSelectedColor = NSColor.FromRgb (0.38f, 0.55f, 0.91f);
HeaderBackgroundColor = NSColor.FromRgb (0.29f, 0.29f, 0.29f);
HeaderBorderBackgroundColor = NSColor.FromRgb (0.29f, 0.29f, 0.29f);
LabelSelectedForegroundColor = NSColor.SelectedText;
ToolbarBackgroundColor = NSColor.FromRgb (0.25f, 0.25f, 0.25f); + + PropertyPad = new PropertyPadStyle { + Checkerboard0 = NSColor.FromRgb (38, 38, 38), + Checkerboard1 = NSColor.FromRgb (0, 0, 0), + PanelTabBackground = NSColor.FromRgb (85, 85, 85), + TabBorderColor = NSColor.FromRgba (255, 255, 255, 0), + ValueBlockBackgroundColor = NSColor.FromRgba (255, 255, 255, 25) + }; } }
} } -#endif
\ No newline at end of file +#endif diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj index bcace16332..49a2f0ca08 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport.csproj @@ -144,6 +144,7 @@ <Compile Include="MonoDevelop.DesignerSupport\IPropertyPad.cs" /> <Compile Include="MonoDevelop.DesignerSupport\NativePropertyEditors\PropertyInfo\FlagDescriptorPropertyInfo.cs" /> <Compile Include="MonoDevelop.DesignerSupport\NativePropertyEditors\PropertyPadItem.cs" /> + <Compile Include="MonoDevelop.DesignerSupport\MonoDevelopHostResourceProvider.cs" /> </ItemGroup> <ItemGroup> <EmbeddedResource Include="MonoDevelop.DesignerSupport.addin.xml" /> diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MacPropertyGrid.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MacPropertyGrid.cs index d3838d0b55..3232c62145 100644 --- a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MacPropertyGrid.cs +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MacPropertyGrid.cs @@ -67,7 +67,7 @@ namespace MonoDevelop.DesignerSupport Spacing = 10; Distribution = NSStackViewDistribution.Fill; - propertyEditorPanel = new MacPropertyEditorPanel (); + propertyEditorPanel = new MacPropertyEditorPanel (new MonoDevelopHostResourceProvider ()); scrollView = new NSScrollView () { HasVerticalScroller = true, @@ -153,6 +153,12 @@ namespace MonoDevelop.DesignerSupport { public EventHandler Focused; + public MacPropertyEditorPanel (MonoDevelopHostResourceProvider hostResources) + : base (hostResources) + { + + } + public override bool BecomeFirstResponder () { Focused?.Invoke (this, EventArgs.Empty); diff --git a/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MonoDevelopHostResourceProvider.cs b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MonoDevelopHostResourceProvider.cs new file mode 100644 index 0000000000..e730dacf41 --- /dev/null +++ b/main/src/addins/MonoDevelop.DesignerSupport/MonoDevelop.DesignerSupport/MonoDevelopHostResourceProvider.cs @@ -0,0 +1,68 @@ + +/* + * MonoDevelopHostResourceProvider.cs: The pad that holds the MD property grid. Can also + * hold custom grid widgets. + * + * Copyright (C) 2019 Microsoft, Corp + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +#if MAC +using AppKit; +using MonoDevelop.Components; +using MonoDevelop.Ide; +using Xamarin.PropertyEditing.Mac; +using static Xamarin.PropertyEditing.Mac.NamedResources; + +namespace MonoDevelop.DesignerSupport +{ + internal class MonoDevelopHostResourceProvider : HostResourceProvider + { + public MonoDevelopHostResourceProvider () + { + CurrentAppearance = NSAppearance.GetAppearance (IdeApp.Preferences.UserInterfaceTheme == Theme.Dark ? NSAppearance.NameDarkAqua : NSAppearance.NameAqua); + } + + public override NSColor GetNamedColor (string name) + { + switch (name) { + case Checkerboard0Color: + return Styles.PropertyPad.Checkerboard0; + case Checkerboard1Color: + return Styles.PropertyPad.Checkerboard1; + case DescriptionLabelColor: + return NSColor.SecondaryLabelColor; + case ForegroundColor: + return (HslColor)Ide.Gui.Styles.BaseForegroundColor; + case PadBackgroundColor: + return (HslColor)Ide.Gui.Styles.PadBackground; + case PanelTabBackground: + return Styles.PropertyPad.PanelTabBackground; + case TabBorderColor: + return Styles.PropertyPad.TabBorderColor; + case ValueBlockBackgroundColor: + return Styles.PropertyPad.ValueBlockBackgroundColor; + } + return base.GetNamedColor (name); + } + } +} +#endif
\ No newline at end of file |