diff options
Diffstat (limited to 'Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs')
-rw-r--r-- | Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs b/Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs deleted file mode 100644 index 4899698e..00000000 --- a/Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.ComponentModel; -using AppKit; - -namespace Xamarin.Forms.Platform.MacOS -{ - public abstract class FormsApplicationDelegate : NSApplicationDelegate - { - Application _application; - bool _isSuspended; - - public abstract NSWindow MainWindow { get; } - - protected override void Dispose(bool disposing) - { - if (disposing && _application != null) - _application.PropertyChanged -= ApplicationOnPropertyChanged; - - base.Dispose(disposing); - } - - protected void LoadApplication(Application application) - { - if (application == null) - throw new ArgumentNullException(nameof(application)); - - Application.Current = application; - _application = application; - - application.PropertyChanged += ApplicationOnPropertyChanged; - } - - public override void DidFinishLaunching(Foundation.NSNotification notification) - { - if (MainWindow == null) - throw new InvalidOperationException("Please provide a main window in your app"); - - MainWindow.Display(); - MainWindow.MakeKeyAndOrderFront(NSApplication.SharedApplication); - if (_application == null) - throw new InvalidOperationException("You MUST invoke LoadApplication () before calling base.FinishedLaunching ()"); - - SetMainPage(); - _application.SendStart(); - } - - public override void DidBecomeActive(Foundation.NSNotification notification) - { - // applicationDidBecomeActive - // execute any OpenGL ES drawing calls - if (_application == null || !_isSuspended) return; - _isSuspended = false; - _application.SendResume(); - } - - public override async void DidResignActive(Foundation.NSNotification notification) - { - // applicationWillResignActive - if (_application == null) return; - _isSuspended = true; - await _application.SendSleepAsync(); - } - - void ApplicationOnPropertyChanged(object sender, PropertyChangedEventArgs e) - { - if (e.PropertyName == nameof(Application.MainPage)) - UpdateMainPage(); - } - - void SetMainPage() - { - UpdateMainPage(); - } - - void UpdateMainPage() - { - if (_application.MainPage == null) - return; - - var platformRenderer = (PlatformRenderer)MainWindow.ContentViewController; - MainWindow.ContentViewController = _application.MainPage.CreateViewController(); - (platformRenderer?.Platform as IDisposable)?.Dispose(); - } - } -}
\ No newline at end of file |