OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2017 The Chromium 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 IOS_CLEAN_CHROME_BROWSER_UI_OVERLAYS_WEB_OVERLAY_COORDINATOR_H_ | |
6 #define IOS_CLEAN_CHROME_BROWSER_UI_OVERLAYS_WEB_OVERLAY_COORDINATOR_H_ | |
7 | |
8 #import <Foundation/Foundation.h> | |
9 | |
10 #import "ios/shared/chrome/browser/ui/coordinators/browser_coordinator.h" | |
11 | |
12 class OverlayQueue; | |
13 class OverlayService; | |
14 | |
15 // Interface exposing functionality to support being displayed via | |
16 // OverlayService. | |
17 @interface BrowserCoordinator (OverlaySupport) | |
18 | |
19 // Returns the OverlayService associated with the receiver's BrowserState. | |
20 @property(nonatomic, readonly) OverlayService* overlayService; | |
21 | |
22 // Whether this BrowserCoordinator supports overlaying. Defaults to NO. If NO, | |
23 // it cannot be presented via OverlayService. If YES, the coordinator is | |
24 // expected to: | |
25 // - call |-overlayWasStopped| from its |-stop| so that the OverlayService can | |
marq (ping after 24h)
2017/06/23 10:42:01
It seems like these things could be guaranteed in
| |
26 // show the next overlay, | |
27 // - implement the |overlayQueue| property. | |
28 @property(nonatomic, readonly) BOOL supportsOverlaying; | |
29 | |
30 // The queue used to present this overlay. | |
31 @property(nonatomic, assign) OverlayQueue* overlayQueue; | |
32 | |
33 // Starts overlaying this coordinator over |overlayParent|. The receiver will | |
34 // be added as a child of |overlayParent|. | |
35 - (void)startOverlayingCoordinator:(BrowserCoordinator*)overlayParent; | |
36 | |
37 // Called when the overlay is stopped so that the OverlayService can be | |
38 // notified. This function also removes the receiver as a child from its parent | |
39 // coordinator. | |
40 - (void)overlayWasStopped; | |
marq (ping after 24h)
2017/06/23 10:42:01
yeah, I'd rather have an OverlayCoordinator class
| |
41 | |
42 // Performs cleanup tasks for the overlay. This allows for deterministic | |
43 // cleanup to occur for coordinators whose UI has not been started. Rather than | |
44 // relying on |-dealloc| to perform cleanup, |-cancelOverlay| can be used to | |
45 // perform cleanup tasks deterministically. | |
46 - (void)cancelOverlay; | |
47 | |
48 @end | |
49 | |
50 #endif // IOS_CLEAN_CHROME_BROWSER_UI_OVERLAYS_WEB_OVERLAY_COORDINATOR_H_ | |
OLD | NEW |