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:
Diffstat (limited to 'Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs')
-rw-r--r--Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs49
1 files changed, 1 insertions, 48 deletions
diff --git a/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs b/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs
index ab9749b..9e71316 100644
--- a/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs
+++ b/Xamarin.PropertyEditing.Mac/Controls/ObjectEditorControl.cs
@@ -110,38 +110,7 @@ namespace Xamarin.PropertyEditing.Mac
private void OnTypeRequested (object sender, TypeRequestedEventArgs e)
{
- var tcs = new TaskCompletionSource<ITypeInfo> ();
- e.SelectedType = tcs.Task;
-
- var vm = new TypeSelectorViewModel (ViewModel.AssignableTypes);
- var selector = new TypeSelectorControl {
- ViewModel = vm,
- Appearance = EffectiveAppearance
- };
-
- vm.PropertyChanged += (vms, ve) => {
- if (ve.PropertyName == nameof (TypeSelectorViewModel.SelectedType)) {
- tcs.TrySetResult (vm.SelectedType);
- }
- };
-
- var popover = new NSPopover {
- Behavior = NSPopoverBehavior.Transient,
- Delegate = new PopoverDelegate<ITypeInfo> (tcs),
- ContentViewController = new NSViewController {
- View = selector,
- PreferredContentSize = new CoreGraphics.CGSize (360, 335)
- },
- };
-
- popover.SetAppearance (HostResources.GetVibrantAppearance (EffectiveAppearance));
-
- tcs.Task.ContinueWith (t => {
- popover.PerformClose (popover);
- popover.Dispose ();
- }, TaskScheduler.FromCurrentSynchronizationContext());
-
- popover.Show (this.createObject.Frame, this, NSRectEdge.MinYEdge);
+ e.SelectedType = e.RequestAt (HostResources, this.createObject, ViewModel.AssignableTypes);
}
private void UpdateTypeLabel ()
@@ -164,21 +133,5 @@ namespace Xamarin.PropertyEditing.Mac
{
ViewModel.CreateInstanceCommand.Execute (null);
}
-
- private class PopoverDelegate<T>
- : NSPopoverDelegate
- {
- public PopoverDelegate (TaskCompletionSource<T> tcs)
- {
- this.tcs = tcs;
- }
-
- public override void WillClose (NSNotification notification)
- {
- this.tcs.TrySetCanceled ();
- }
-
- private readonly TaskCompletionSource<T> tcs;
- }
}
}