| Flutter macOS Embedder |

FlutterAppLifecycleDelegate.h
Go to the documentation of this file.
1 // Copyright 2013 The Flutter Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_HEADERS_FLUTTERAPPLIFECYCLEDELEGATE_H_
6 #define FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_HEADERS_FLUTTERAPPLIFECYCLEDELEGATE_H_
7
8 #import <Cocoa/Cocoa.h>
9 #include <Foundation/Foundation.h>
10
11 #import "FlutterMacros.h"
12
13 NS_ASSUME_NONNULL_BEGIN
14
15 #pragma mark -
16 /**
17 * Protocol for listener of lifecycle events from the NSApplication, typically a
18 * FlutterPlugin.
19 */
20 FLUTTER_DARWIN_EXPORT
21 @protocol FlutterAppLifecycleDelegate <NSObject>
22
23 @optional
24 /**
25 * Called when the |FlutterAppDelegate| gets the applicationWillFinishLaunching
26 * notification.
27 */
28 - (void)handleWillFinishLaunching:(NSNotification*)notification;
29
30 /**
31 * Called when the |FlutterAppDelegate| gets the applicationDidFinishLaunching
32 * notification.
33 */
34 - (void)handleDidFinishLaunching:(NSNotification*)notification;
35
36 /**
37 * Called when the |FlutterAppDelegate| gets the applicationWillBecomeActive
38 * notification.
39 */
40 - (void)handleWillBecomeActive:(NSNotification*)notification;
41
42 /**
43 * Called when the |FlutterAppDelegate| gets the applicationDidBecomeActive
44 * notification.
45 */
46 - (void)handleDidBecomeActive:(NSNotification*)notification;
47
48 /**
49 * Called when the |FlutterAppDelegate| gets the applicationWillResignActive
50 * notification.
51 */
52 - (void)handleWillResignActive:(NSNotification*)notification;
53
54 /**
55 * Called when the |FlutterAppDelegate| gets the applicationWillResignActive
56 * notification.
57 */
58 - (void)handleDidResignActive:(NSNotification*)notification;
59
60 /**
61 * Called when the |FlutterAppDelegate| gets the applicationWillHide
62 * notification.
63 */
64 - (void)handleWillHide:(NSNotification*)notification;
65
66 /**
67 * Called when the |FlutterAppDelegate| gets the applicationDidHide
68 * notification.
69 */
70 - (void)handleDidHide:(NSNotification*)notification;
71
72 /**
73 * Called when the |FlutterAppDelegate| gets the applicationWillUnhide
74 * notification.
75 */
76 - (void)handleWillUnhide:(NSNotification*)notification;
77
78 /**
79 * Called when the |FlutterAppDelegate| gets the applicationDidUnhide
80 * notification.
81 */
82 - (void)handleDidUnhide:(NSNotification*)notification;
83
84 /**
85 * Called when the |FlutterAppDelegate| gets the applicationDidUnhide
86 * notification.
87 */
88 - (void)handleDidChangeScreenParameters:(NSNotification*)notification;
89
90 /**
91 * Called when the |FlutterAppDelegate| gets the applicationDidUnhide
92 * notification.
93 */
94 - (void)handleDidChangeOcclusionState:(NSNotification*)notification;
95
96 /**
97 * Called when the |FlutterAppDelegate| gets the application:openURLs:
98 * callback.
99 *
100 * Implementers should return YES if they handle the URLs, otherwise NO.
101 * Delegates will be called in order of registration, and once a delegate
102 * returns YES, no further delegates will reiceve this callback.
103 */
104 - (BOOL)handleOpenURLs:(NSArray<NSURL*>*)urls;
105
106 /**
107 * Called when the |FlutterAppDelegate| gets the applicationWillTerminate
108 * notification.
109 *
110 * Applications should not rely on always receiving all possible notifications.
111 *
112 * For example, if the application is killed with a task manager, a kill signal,
113 * the user pulls the power from the device, or there is a rapid unscheduled
114 * disassembly of the device, no notification will be sent before the
115 * application is suddenly terminated, and this notification may be skipped.
116 */
117 - (void)handleWillTerminate:(NSNotification*)notification;
118 @end
119
120 #pragma mark -
121
122 /**
123 * Propagates `NSAppDelegate` callbacks to registered delegates.
124 */
125 FLUTTER_DARWIN_EXPORT
126 @interface FlutterAppLifecycleRegistrar : NSObject <FlutterAppLifecycleDelegate>
127
128 /**
129 * Registers `delegate` to receive lifecycle callbacks via this
130 * FlutterAppLifecycleDelegate as long as it is alive.
131 *
132 * `delegate` will only be referenced weakly.
133 */
134 - (void)addDelegate:(NSObject<FlutterAppLifecycleDelegate>*)delegate;
135
136 /**
137 * Unregisters `delegate` so that it will no longer receive life cycle callbacks
138 * via this FlutterAppLifecycleDelegate.
139 *
140 * `delegate` will only be referenced weakly.
141 */
142 - (void)removeDelegate:(NSObject<FlutterAppLifecycleDelegate>*)delegate;
143 @end
144
145 NS_ASSUME_NONNULL_END
146
147 #endif // FLUTTER_SHELL_PLATFORM_DARWIN_MACOS_FRAMEWORK_HEADERS_FLUTTERAPPLIFECYCLEDELEGATE_H_
FlutterAppLifecycleRegistrar
Definition: FlutterAppLifecycleDelegate.h:126
NS_ASSUME_NONNULL_END
#define NS_ASSUME_NONNULL_END
Definition: FlutterMacros.h:20
NS_ASSUME_NONNULL_BEGIN
#define NS_ASSUME_NONNULL_BEGIN
Definition: FlutterMacros.h:19
FlutterMacros.h
FlutterAppLifecycleDelegate-p
Definition: FlutterAppLifecycleDelegate.h:21
FLUTTER_DARWIN_EXPORT
#define FLUTTER_DARWIN_EXPORT
Definition: FlutterMacros.h:14