Index: ios/chrome/browser/ui/reader_mode/reader_mode_view.h |
diff --git a/ios/chrome/browser/ui/reader_mode/reader_mode_view.h b/ios/chrome/browser/ui/reader_mode/reader_mode_view.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..51ebe9743496f907d6f08b4604b35b1bb12d3b35 |
--- /dev/null |
+++ b/ios/chrome/browser/ui/reader_mode/reader_mode_view.h |
@@ -0,0 +1,56 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#ifndef IOS_CHROME_BROWSER_UI_READER_MODE_READER_MODE_VIEW_H_ |
+#define IOS_CHROME_BROWSER_UI_READER_MODE_READER_MODE_VIEW_H_ |
+ |
+#import <UIKit/UIKit.h> |
+ |
+#include <memory> |
+ |
+#include "base/ios/block_types.h" |
+ |
+namespace dom_distiller { |
+class DistillerViewer; |
+} |
+ |
+// Simple delegate to be notified on user action. |
+@protocol ReaderModeViewDelegate |
+// Called when the user decides to exit reader mode. |
+- (void)exitReaderMode; |
+@end |
+ |
+// A waiting view to show to the user while the distillation is taking place. |
+// This view also owns the dom_distiller::DistillerViewer for the content, this |
+// allows for the distillation to stop if the view is deallocated before the |
+// distillation finishes. |
+@interface ReaderModeView : UIView |
+ |
+- (instancetype)initWithFrame:(CGRect)frame |
+ delegate:(id<ReaderModeViewDelegate>)delegate |
+ NS_DESIGNATED_INITIALIZER; |
+ |
+- (instancetype)initWithFrame:(CGRect)frame NS_UNAVAILABLE; |
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE; |
+ |
+// The view's delegate. |
+@property(nonatomic, readonly) id<ReaderModeViewDelegate> delegate; |
+ |
+// Takes ownership of the viewer as it is the only handle to the distillation: |
+// When freed it cancels the distillation, if it is not finished yet. The |
+// ReaderModeView instance owns this object so that the distillation is |
+// cancelled if the view is deallocated. |
+- (void)assignDistillerViewer: |
+ (std::unique_ptr<dom_distiller::DistillerViewer>)viewer; |
+ |
+// Starts the waiting animation. |
+- (void)start; |
+ |
+// Call this method when this view is removed from the visible view hierarchy. |
+// |completion| will be called when this view is done animating out. |
+- (void)stopWaitingWithCompletion:(ProceduralBlock)completion; |
+ |
+@end |
+ |
+#endif // IOS_CHROME_BROWSER_UI_READER_MODE_READER_MODE_VIEW_H_ |