OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_STACK_LAYOUT_MANAGER_H_ | 5 #ifndef IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_STACK_LAYOUT_MANAGER_H_ |
6 #define IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_STACK_LAYOUT_MANAGER_H_ | 6 #define IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_STACK_LAYOUT_MANAGER_H_ |
7 | 7 |
8 #import <CoreGraphics/CoreGraphics.h> | 8 #import <CoreGraphics/CoreGraphics.h> |
9 #import <Foundation/Foundation.h> | 9 #import <Foundation/Foundation.h> |
10 | 10 |
11 #include "base/mac/scoped_nsobject.h" | 11 #include "base/mac/scoped_nsobject.h" |
12 | 12 |
13 @class StackCard; | 13 @class StackCard; |
14 | 14 |
15 // Encapsulates a stack of cards and their layout behavior, supporting | 15 // Encapsulates a stack of cards and their layout behavior, supporting |
16 // fanning the cards out along an axis and gathering them to fit in a given | 16 // fanning the cards out along an axis and gathering them to fit in a given |
17 // area. | 17 // area. |
18 @interface CardStackLayoutManager : NSObject { | 18 @interface CardStackLayoutManager : NSObject |
19 @private | |
20 base::scoped_nsobject<NSMutableArray> cards_; | |
21 // YES if the previous call to one of {|scrollCardAtIndex|, | |
22 // |handleMultitouchWithFirstDelta|} was to the former method; NO otherwise. | |
23 BOOL treatOverExtensionAsScroll_; | |
24 NSUInteger previousFirstPinchCardIndex_; | |
25 NSUInteger previousSecondPinchCardIndex_; | |
26 } | |
27 | 19 |
28 // The size of a card. Setting this property preserves card origins with the | 20 // The size of a card. Setting this property preserves card origins with the |
29 // exception that cards are moved as necessary to satisfy placement constraints | 21 // exception that cards are moved as necessary to satisfy placement constraints |
30 // (e.g., that a card is not placed too far away from its preceding neighbor). | 22 // (e.g., that a card is not placed too far away from its preceding neighbor). |
31 @property(nonatomic, assign) CGSize cardSize; | 23 @property(nonatomic, assign) CGSize cardSize; |
32 // The center of a card along the axis that is not the layout axis. | 24 // The center of a card along the axis that is not the layout axis. |
33 @property(nonatomic, assign) CGFloat layoutAxisPosition; | 25 @property(nonatomic, assign) CGFloat layoutAxisPosition; |
34 // The amount cards should be staggered at full expansion. | 26 // The amount cards should be staggered at full expansion. |
35 @property(nonatomic, assign) CGFloat maxStagger; | 27 @property(nonatomic, assign) CGFloat maxStagger; |
36 // The maximum amount that the first card is allowed to overextend toward the | 28 // The maximum amount that the first card is allowed to overextend toward the |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 | 155 |
164 // The amount that the first card is currently overextended. | 156 // The amount that the first card is currently overextended. |
165 - (CGFloat)overextensionAmount; | 157 - (CGFloat)overextensionAmount; |
166 | 158 |
167 // The number of cards visible when stack is fanned out. | 159 // The number of cards visible when stack is fanned out. |
168 - (NSUInteger)fannedStackCount; | 160 - (NSUInteger)fannedStackCount; |
169 | 161 |
170 @end | 162 @end |
171 | 163 |
172 #endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_STACK_LAYOUT_MANAGER_H_ | 164 #endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_STACK_LAYOUT_MANAGER_H_ |
OLD | NEW |