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:
authorEric Maupin <ermaup@microsoft.com>2018-09-14 19:40:19 +0300
committerEric Maupin <ermaup@microsoft.com>2018-11-12 22:17:15 +0300
commitafd2f005a37ae33ba861e0e9f23b14f3cfe3a5de (patch)
tree2b6a1640d65da96ef9b003669ba086351604b93d /Xamarin.PropertyEditing.Mac/Controls
parentc905b9534dbe248dde3aa430cd536d20be8ff5e7 (diff)
[mac] Breakout common editor access
Since Cocoa is so readily dependent on sub-classing we need to switch to interfaces to commonize our access to things we need on the various controls. Not everything can sub-class from PropertyEditorControl.
Diffstat (limited to 'Xamarin.PropertyEditing.Mac/Controls')
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs10
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/IEditorView.cs17
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/PropertyEditorControl.cs11
3 files changed, 36 insertions, 2 deletions
diff --git a/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs b/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs
index a8d021f..fd6a4c2 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/Custom/BrushTabViewController.cs
@@ -10,7 +10,8 @@ using Xamarin.PropertyEditing.ViewModels;
namespace Xamarin.PropertyEditing.Mac
{
- internal class BrushTabViewController : UnderlinedTabViewController<BrushPropertyViewModel>
+ internal class BrushTabViewController
+ : UnderlinedTabViewController<BrushPropertyViewModel>, IEditorView
{
public BrushTabViewController ()
{
@@ -34,6 +35,13 @@ namespace Xamarin.PropertyEditing.Mac
TabStack.AddView (this.filterResource, NSStackViewGravity.Leading);
}
+ EditorViewModel IEditorView.ViewModel {
+ get { return this.ViewModel; }
+ set { ViewModel = (BrushPropertyViewModel)value; }
+ }
+
+ NSView IEditorView.NativeView => View;
+
public override void OnViewModelChanged (BrushPropertyViewModel oldModel)
{
this.inhibitSelection = true;
diff --git a/Xamarin.PropertyEditing.Mac/Controls/IEditorView.cs b/Xamarin.PropertyEditing.Mac/Controls/IEditorView.cs
new file mode 100644
index 0000000..6793622
--- /dev/null
+++ b/Xamarin.PropertyEditing.Mac/Controls/IEditorView.cs
@@ -0,0 +1,17 @@
+using AppKit;
+
+using Xamarin.PropertyEditing.ViewModels;
+
+namespace Xamarin.PropertyEditing.Mac
+{
+ internal interface IEditorView
+ {
+ /// <summary>
+ /// Gets the native view.
+ /// </summary>
+ /// <value>Generally just `this`.</value>
+ NSView NativeView { get; }
+
+ EditorViewModel ViewModel { get; set; }
+ }
+}
diff --git a/Xamarin.PropertyEditing.Mac/Controls/PropertyEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/PropertyEditorControl.cs
index 20b8736..440f974 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/PropertyEditorControl.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/PropertyEditorControl.cs
@@ -7,7 +7,8 @@ using Xamarin.PropertyEditing.ViewModels;
namespace Xamarin.PropertyEditing.Mac
{
- internal abstract class PropertyEditorControl : BaseEditorControl
+ internal abstract class PropertyEditorControl
+ : BaseEditorControl, IEditorView
{
public string Label { get; set; }
@@ -46,6 +47,14 @@ namespace Xamarin.PropertyEditing.Mac
}
}
+ EditorViewModel IEditorView.ViewModel
+ {
+ get { return this.ViewModel; }
+ set { ViewModel = (PropertyViewModel)value; }
+ }
+
+ NSView IEditorView.NativeView => this;
+
[Export ("_primitiveSetDefaultNextKeyView:")]
public void SetDefaultNextKeyView (NSView child)
{