summaryrefslogtreecommitdiff
path: root/Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs')
-rw-r--r--Xamarin.Forms.Platform.MacOS/FormsApplicationDelegate.cs85
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