Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(405)

Unified Diff: ios/chrome/browser/ui/stack_view/stack_view_controller_private.h

Issue 2587023002: Upstream Chrome on iOS source code [8/11]. (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ios/chrome/browser/ui/stack_view/stack_view_controller_private.h
diff --git a/ios/chrome/browser/ui/stack_view/stack_view_controller_private.h b/ios/chrome/browser/ui/stack_view/stack_view_controller_private.h
new file mode 100644
index 0000000000000000000000000000000000000000..0bdbdf1c7e82d0d42b9d130b9d676faff4cbc309
--- /dev/null
+++ b/ios/chrome/browser/ui/stack_view/stack_view_controller_private.h
@@ -0,0 +1,109 @@
+// 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_STACK_VIEW_STACK_VIEW_CONTROLLER_PRIVATE_H_
+#define IOS_CHROME_BROWSER_UI_STACK_VIEW_STACK_VIEW_CONTROLLER_PRIVATE_H_
+
+#import "ios/chrome/browser/ui/stack_view/card_set.h"
+#import "ios/chrome/browser/ui/stack_view/stack_view_controller.h"
+
+@class ToolbarController;
+
+namespace {
+// Styles used to specify the transition animation type for presenting and
+// dismissing the stack view.
+typedef enum {
+ STACK_TRANSITION_STYLE_NONE = 0,
+ STACK_TRANSITION_STYLE_PRESENTING,
+ STACK_TRANSITION_STYLE_DISMISSING
+} StackTransitionStyle;
+} // namespace
+
+@interface StackViewController ()<CardSetObserver,
+ UIGestureRecognizerDelegate,
+ UIScrollViewDelegate>
+
+// Separated out to allow tests to mock CardSet directly.
+- (instancetype)initWithMainCardSet:(CardSet*)mainCardSet
+ otrCardSet:(CardSet*)otrCardSet
+ activeCardSet:(CardSet*)activeCardSet
+ NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)initWithNibName:(NSString*)nibNameOrNil
+ bundle:(NSBundle*)nibBundleOrNil NS_UNAVAILABLE;
+
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
+
+// Sets up the display views of the card sets, including initialization,
+// initial size configuration, adding as subviews of the scroll view, and
+// attaching to the card sets.
+- (void)setUpDisplayViews;
+
+// Registers listeners for the appropriate notifications.
+- (void)registerForNotifications;
+
+// Used during |-dealloc| and |-didReceiveMemoryWaring| to clear any references
+// to the cards and removes |self| as an observer to any notifications.
+- (void)cleanUpViewsAndNotifications;
+
+// Recenters the scroll view if it gets too close to one of its boundaries.
+// Updates the positions of the card stacks' display views to remain visually
+// centered.
+- (void)recenterScrollViewIfNecessary;
+
+// Returns YES if the currently active card set is the incognito set.
+- (BOOL)isCurrentSetIncognito;
+
+// Returns the card set that is not currently active.
+- (CardSet*)inactiveCardSet;
+
+// Makes |cardSet| the active set, updating the UI accordingly.
+- (void)setActiveCardSet:(CardSet*)cardSet;
+
+// Returns YES if both decks should be visible.
+- (BOOL)bothDecksShouldBeDisplayed;
+
+// Returns the region, in scroll view coordinates, of the inactive deck.
+- (CGRect)inactiveDeckRegion;
+
+// The currently active card set.
+@property(nonatomic, readonly) CardSet* activeCardSet;
+
+// The current transition style.
+@property(nonatomic, assign) StackTransitionStyle transitionStyle;
+
+// Will be set to YES when a transition animation is cancelled before it can
+// finish.
+@property(nonatomic, assign) BOOL transitionWasCancelled;
+
+// The owner of |transitionToolbarController|.
+@property(nonatomic, retain) id<ToolbarOwner> transitionToolbarOwner;
+
+// The toolbar controller used in transition animations.
+@property(nonatomic, retain) ToolbarController* transitionToolbarController;
+
+// The dummy view used in the transition animation.
+@property(nonatomic, retain) UIView* dummyToolbarBackgroundView;
+
+// The cached frame of the transition toolbar's frame.
+@property(nonatomic, assign) CGRect transitionToolbarFrame;
+
+// Records which card was tapped mid-presentation animation, if any.
+// TODO(crbug.com/546209): Implement reversed animations for dismissing with a
+// new selected card mid-presentation.
+@property(nonatomic, retain) StackCard* transitionTappedCard;
+
+// |YES| if there is card set animation being processed.
+@property(nonatomic, readonly) BOOL inActiveDeckChangeAnimation;
+
+@end
+
+@interface StackViewController (Testing)
+
+// The driver of scroll events.
+@property(nonatomic, readonly) UIScrollView* scrollView;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_STACK_VIEW_CONTROLLER_PRIVATE_H_

Powered by Google App Engine
This is Rietveld 408576698