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

Side by Side Diff: ios/chrome/browser/ui/stack_view/card_set.h

Issue 2944443003: [ObjC ARC] Converts ios/chrome/browser/ui/stack_view:stack_view to ARC. (Closed)
Patch Set: Add and use explicit disconnect in CardSet. Created 3 years, 6 months 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 unified diff | Download patch
« no previous file with comments | « ios/chrome/browser/ui/stack_view/BUILD.gn ('k') | ios/chrome/browser/ui/stack_view/card_set.mm » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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_SET_H_ 5 #ifndef IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_SET_H_
6 #define IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_SET_H_ 6 #define IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_SET_H_
7 7
8 #import <UIKit/UIKit.h> 8 #import <UIKit/UIKit.h>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 // Manager for constructing a set of StackCards and displaying them in a view. 46 // Manager for constructing a set of StackCards and displaying them in a view.
47 @interface CardSet : NSObject 47 @interface CardSet : NSObject
48 // The layout manager for the set. 48 // The layout manager for the set.
49 // TODO(stuartmorgan): See if this can reasonably be internalized. 49 // TODO(stuartmorgan): See if this can reasonably be internalized.
50 @property(nonatomic, readonly) CardStackLayoutManager* stackModel; 50 @property(nonatomic, readonly) CardStackLayoutManager* stackModel;
51 // An array of StackCards in the same order as the tabs in the tab model. 51 // An array of StackCards in the same order as the tabs in the tab model.
52 @property(nonatomic, readonly) NSArray* cards; 52 @property(nonatomic, readonly) NSArray* cards;
53 // The card corresponding to the currently selected tab in the tab model. 53 // The card corresponding to the currently selected tab in the tab model.
54 // Setting this property will change the selection in the tab model. 54 // Setting this property will change the selection in the tab model.
55 @property(nonatomic, assign, readwrite) StackCard* currentCard; 55 @property(nonatomic) StackCard* currentCard;
56 // Set to the card that is currently animating closed, if any. 56 // Set to the card that is currently animating closed, if any.
57 @property(nonatomic, assign, readwrite) StackCard* closingCard; 57 @property(nonatomic) StackCard* closingCard;
58 // The view that cards should be displayed in. Changing the display view will 58 // The view that cards should be displayed in. Changing the display view will
59 // remove cards from the previous view, but they will not be re-displayed in the 59 // remove cards from the previous view, but they will not be re-displayed in the
60 // new view without a call to updateCardVisibilities. 60 // new view without a call to updateCardVisibilities.
61 @property(nonatomic, retain, readwrite) UIView* displayView; 61 @property(nonatomic, strong, readwrite) UIView* displayView;
62 // The side on which the close button should be displayed. 62 // The side on which the close button should be displayed.
63 @property(nonatomic, readonly) CardCloseButtonSide closeButtonSide; 63 @property(nonatomic, readonly) CardCloseButtonSide closeButtonSide;
64 // The object to be notified about addition and removal of cards. 64 // The object to be notified about addition and removal of cards.
65 @property(nonatomic, assign, readwrite) id<CardSetObserver> observer; 65 @property(nonatomic, weak, readwrite) id<CardSetObserver> observer;
66 // While YES, changes to the tab model will not affect the card stack. When 66 // While YES, changes to the tab model will not affect the card stack. When
67 // this is changed back to NO, the card stack will be completely rebuilt, so 67 // this is changed back to NO, the card stack will be completely rebuilt, so
68 // this should be used very carefully. 68 // this should be used very carefully.
69 @property(nonatomic, assign, readwrite) BOOL ignoresTabModelChanges; 69 @property(nonatomic, assign, readwrite) BOOL ignoresTabModelChanges;
70 // While set to YES, |updateCardVisibilities| will elide setting the views 70 // While set to YES, |updateCardVisibilities| will elide setting the views
71 // of covered cards to hidden. Setting to NO will trigger a call to 71 // of covered cards to hidden. Setting to NO will trigger a call to
72 // |updateCardVisibilities| to hide any covered views. Can be set to YES 72 // |updateCardVisibilities| to hide any covered views. Can be set to YES
73 // during animations to ensure that cards being animated to not-visible 73 // during animations to ensure that cards being animated to not-visible
74 // positions remain visible throughout the animation; should be set back to 74 // positions remain visible throughout the animation; should be set back to
75 // NO on the completion of such animations. Default value is NO. 75 // NO on the completion of such animations. Default value is NO.
76 @property(nonatomic, assign, readwrite) BOOL defersCardHiding; 76 @property(nonatomic, assign, readwrite) BOOL defersCardHiding;
77 // The maximum amount that the first card is allowed to overextend toward the 77 // The maximum amount that the first card is allowed to overextend toward the
78 // start or the end. 78 // start or the end.
79 @property(nonatomic, assign) CGFloat maximumOverextensionAmount; 79 @property(nonatomic, assign) CGFloat maximumOverextensionAmount;
80 // If set to YES, a card view is released once the corresponding card becomes 80 // If set to YES, a card view is released once the corresponding card becomes
81 // covered (it will be transparently reloaded if the card is uncovered), saving 81 // covered (it will be transparently reloaded if the card is uncovered), saving
82 // memory at the cost of potentially introducing jankiness. Default value is 82 // memory at the cost of potentially introducing jankiness. Default value is
83 // NO. Setting this property to YES causes views of covered cards to be 83 // NO. Setting this property to YES causes views of covered cards to be
84 // immediately released. 84 // immediately released.
85 @property(nonatomic, assign) BOOL keepOnlyVisibleCardViewsAlive; 85 @property(nonatomic, assign) BOOL keepOnlyVisibleCardViewsAlive;
86 86
87 // Initializes a card set backed by |model|. |model| is not retained, and must 87 // Initializes a card set backed by |model|. |model| is not retained, and must
88 // outlive the card set. 88 // outlive the card set.
89 - (id)initWithModel:(TabModel*)model; 89 - (id)initWithModel:(TabModel*)model;
90 90
91 // Tears down any observation or other state. After this method is called, the
92 // receiver should be set to nil or otherwise marked for deallocation.
93 - (void)disconnect;
94
91 // The tab model backing the card set. 95 // The tab model backing the card set.
92 // TODO(stuartmorgan): See if this can reasonably be internalized. 96 // TODO(stuartmorgan): See if this can reasonably be internalized.
93 - (TabModel*)tabModel; 97 - (TabModel*)tabModel;
94 98
95 // Sets the tab model backing the card set. This should only be called when the 99 // Sets the tab model backing the card set. This should only be called when the
96 // TabModel will be deleted and replaced by a new one. When called both the 100 // TabModel will be deleted and replaced by a new one. When called both the
97 // current tab model and the new tab model must be either nil, or contain no 101 // current tab model and the new tab model must be either nil, or contain no
98 // tabs. 102 // tabs.
99 - (void)setTabModel:(TabModel*)tabModel; 103 - (void)setTabModel:(TabModel*)tabModel;
100 104
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 - (void)updateShadowLayout; 226 - (void)updateShadowLayout;
223 227
224 @end 228 @end
225 229
226 @interface CardSet (Testing) 230 @interface CardSet (Testing)
227 - (StackCard*)cardForTab:(Tab*)tab; 231 - (StackCard*)cardForTab:(Tab*)tab;
228 - (void)setStackModelForTesting:(CardStackLayoutManager*)stackModel; 232 - (void)setStackModelForTesting:(CardStackLayoutManager*)stackModel;
229 @end 233 @end
230 234
231 #endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_SET_H_ 235 #endif // IOS_CHROME_BROWSER_UI_STACK_VIEW_CARD_SET_H_
OLDNEW
« no previous file with comments | « ios/chrome/browser/ui/stack_view/BUILD.gn ('k') | ios/chrome/browser/ui/stack_view/card_set.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698