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

Unified Diff: ios/chrome/browser/ui/stack_view/card_view.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/card_view.h
diff --git a/ios/chrome/browser/ui/stack_view/card_view.h b/ios/chrome/browser/ui/stack_view/card_view.h
new file mode 100644
index 0000000000000000000000000000000000000000..298a995979b832fb701c6f18330665275ec82ae3
--- /dev/null
+++ b/ios/chrome/browser/ui/stack_view/card_view.h
@@ -0,0 +1,140 @@
+// Copyright 2012 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_CARD_VIEW_H_
+#define IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_VIEW_H_
+
+#import <UIKit/UIKit.h>
+
+struct LayoutRect;
+
+// The insets of the snapshot image within the card.
+extern const UIEdgeInsets kCardImageInsets;
+// Inset from the edge of the card view to the edge of the card frame image.
+extern const CGFloat kCardFrameInset;
+// Thickness of the shadow cast by a card view.
+extern const CGFloat kCardShadowThickness;
+// The corner radius of the card frame image.
+extern const CGFloat kCardFrameCornerRadius;
+// The inset from the top of the card to the beginning of its tab view.
+extern const CGFloat kCardTabTopInset;
+// The brightness values for the background colors of the card frame images.
+extern const CGFloat kCardFrameBackgroundBrightness;
+extern const CGFloat kCardFrameBackgroundBrightnessIncognito;
+// The amount by which the card frame image overlaps the content snapshot.
+extern const CGFloat kCardFrameImageSnapshotOverlap;
+// The name of the shadow image used for the card views.
+extern NSString* const kCardShadowImageName;
+// The outsets that will line the edge of a view with the shadow image.
+extern const UIEdgeInsets kCardShadowLayoutOutsets;
+
+// Enum class describing on which side to draw the close button.
+enum class CardCloseButtonSide : short { LEADING = 0, TRAILING };
+
+typedef enum {
+ CARD_TAB_ANIMATION_STYLE_NONE = 0,
+ CARD_TAB_ANIMATION_STYLE_FADE_IN,
+ CARD_TAB_ANIMATION_STYLE_FADE_OUT
+} CardTabAnimationStyle;
+
+@class CardSnapshotView;
+@class CardTabView;
+@class TitleLabel;
+
+// A view class for displaying a card in the tab-switching stack. Has a title
+// and an image. On its target, has actions for when the close box is clicked,
+// when the card is selected, when it's dragged, and when VoiceOver focuses on
+// its title label or close button.
+@interface CardView : UIView
+
+// |YES| if this card represents the current active tab.
+@property(nonatomic, assign) BOOL isActiveTab;
+
+// The snapshot displayed on the card.
+@property(nonatomic, retain) UIImage* image;
+
+// Whether the card view should render its shadow.
+@property(nonatomic, assign) BOOL shouldShowShadow;
+
+// Whether the card view should mask its shadow to only the overlapping portion.
+@property(nonatomic, assign) BOOL shouldMaskShadow;
+
+// The side on which to draw the close button.
+@property(nonatomic, assign) CardCloseButtonSide closeButtonSide;
+
+// Initializes CardView with |frame| and |isIncognito| state.
+- (instancetype)initWithFrame:(CGRect)frame
+ isIncognito:(BOOL)isIncognito NS_DESIGNATED_INITIALIZER;
+
+- (instancetype)initWithCoder:(NSCoder*)aDecoder NS_UNAVAILABLE;
+
+// Sets the page title. Can be nil.
+- (void)setTitle:(NSString*)title;
+
+// Returns TitleLabel element.
+- (TitleLabel*)titleLabel;
+
+// Sets the favicon. Can be nil, in which case the default favicon will be
+// displayed.
+- (void)setFavicon:(UIImage*)favicon;
+
+// Sets the opacity of the tab. Uses opacity instead of hidden so that it's
+// animatable.
+- (void)setTabOpacity:(CGFloat)opacity;
+
+// Sets target-action that is called when the close button is tapped. |target|
+// can be nil and is not retained.
+- (void)addCardCloseTarget:(id)target action:(SEL)action;
+
+// Returns the touch target area of the button used to close the card.
+- (CGRect)closeButtonFrame;
+
+// Sets target-action that is called when VoiceOver focuses on the card view.
+// |target| can be nil and is not retained.
+- (void)addAccessibilityTarget:(id)target action:(SEL)action;
+
+// Posts accessibility notification in VoiceOver to indicate when screen
+// has changed and move cursor to CardView's titleLabel.
+- (void)postAccessibilityNotification;
+
+// Animates from |beginFrame| to |endFrame|, animating the card's tab as
+// specified by |tabAnimationStyle|:
+// - CardTabAnimationStyleNone: Animate frames of tab subviews
+// - CardTabAnimationStyleFadeIn: Animate frames and fade in tab subviews
+// - CardTabAnimationStyleFadeOut: Aniamte frames and fade out tab subviews
+- (void)animateFromBeginFrame:(CGRect)beginFrame
+ toEndFrame:(CGRect)endFrame
+ tabAnimationStyle:(CardTabAnimationStyle)tabAnimationStyle;
+
+// Removes the top-level frame animation added by
+// |-animateFromBeginFrame:toEndFrame:tabAnimationStyle:|. This is necessary to
+// avoid animation glitches that occur when a card is closed mid-animation, as
+// ios_internal::page_animation_util::AnimateOutWithCompletion updates the
+// CardView's anchorPoint.
+- (void)removeFrameAnimation;
+
+// Adds the dummy toolbar background view to the back of the card tab view.
+- (void)installDummyToolbarBackgroundView:(UIView*)dummyToolbarBackgroundView;
+
+// Reverses animations added by
+// |-animateFromBeginFrame:toEndFrame:tabAnimationStyle:|.
+- (void)reverseAnimations;
+
+// Removes animations added by
+// |-animateFromBeginFrame:toEndFrame:tabAnimationStyle:|.
+- (void)cleanUpAnimations;
+
+@end
+
+@interface CardView (ExposedForTesting)
+
+// The LayoutRect for CardTabView.
+- (LayoutRect)tabLayout;
+
+// The a11y ID of the "close" button in the find-in-page bar.
+@property(nonatomic, readonly) NSString* closeButtonId;
+
+@end
+
+#endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_VIEW_H_
« no previous file with comments | « ios/chrome/browser/ui/stack_view/card_stack_pinch_gesture_recognizer.mm ('k') | ios/chrome/browser/ui/stack_view/card_view.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698