| Index: ios/chrome/browser/ui/settings/settings_root_collection_view_controller.h
|
| diff --git a/ios/chrome/browser/ui/settings/settings_root_collection_view_controller.h b/ios/chrome/browser/ui/settings/settings_root_collection_view_controller.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..228fb4eac282ed30c556a92908e174322c352be5
|
| --- /dev/null
|
| +++ b/ios/chrome/browser/ui/settings/settings_root_collection_view_controller.h
|
| @@ -0,0 +1,75 @@
|
| +// Copyright 2016 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_SETTINGS_SETTINGS_ROOT_COLLECTION_VIEW_CONTROLLER_H_
|
| +#define IOS_CHROME_BROWSER_UI_SETTINGS_SETTINGS_ROOT_COLLECTION_VIEW_CONTROLLER_H_
|
| +
|
| +#import "ios/chrome/browser/ui/collection_view/cells/collection_view_footer_item.h"
|
| +#import "ios/chrome/browser/ui/collection_view/collection_view_controller.h"
|
| +
|
| +// Root class for collection view controllers in settings.
|
| +@interface SettingsRootCollectionViewController
|
| + : CollectionViewController<CollectionViewFooterLinkDelegate>
|
| +
|
| +// Creates an autoreleased Edit button for the collection view. Calls
|
| +// |editButtonEnabled| to determine if the button should be enabled.
|
| +- (UIBarButtonItem*)createEditButton;
|
| +
|
| +// Creates an autoreleased Done button for the collection view's edit state.
|
| +- (UIBarButtonItem*)createEditDoneButton;
|
| +
|
| +// Updates the edit or done button to reflect editing state. If the
|
| +// collectionView is not in edit mode (and thus showing the 'Done' button), it
|
| +// calls the above two functions to determine the existence and state of an edit
|
| +// button.
|
| +- (void)updateEditButton;
|
| +
|
| +// Reloads the collection view model with |loadModel| and then reloads the
|
| +// collection view data. This class calls this method in |viewWillAppear:|.
|
| +- (void)reloadData;
|
| +
|
| +// Whether this collection view controller should hide the "Done" button (the
|
| +// right navigation bar button). Default is NO.
|
| +@property(nonatomic, assign) BOOL shouldHideDoneButton;
|
| +
|
| +// The collection view accessibility identifier to be set on |viewDidLoad|.
|
| +@property(nonatomic, copy) NSString* collectionViewAccessibilityIdentifier;
|
| +
|
| +@end
|
| +
|
| +// Subclasses of SettingsRootCollectionViewController should implement the
|
| +// following methods to customize the behavior.
|
| +@interface SettingsRootCollectionViewController (Subclassing)
|
| +
|
| +// Returns NO. Subclasses should overload this if an edit button is required.
|
| +- (BOOL)shouldShowEditButton;
|
| +
|
| +// Returns NO. Subclasses should overload this if the edit button should be
|
| +// enabled.
|
| +- (BOOL)editButtonEnabled;
|
| +
|
| +// Notifies the view controller that the edit button has been tapped. If you
|
| +// override this method, you must call -[super editButtonPressed] at some point
|
| +// in your implementation.
|
| +//
|
| +// Note that this method calls -[self setEditing:] in order to change the
|
| +// editing mode of this controller.
|
| +- (void)editButtonPressed;
|
| +
|
| +// Prevents user interaction until |-allowUserInteraction| is called by doing
|
| +// the following:
|
| +// * Disables user interaction with the navigation bar.
|
| +// * Replaces the done button with an activity indicator.
|
| +// * Covers the collection view with a transparent veil.
|
| +- (void)preventUserInteraction;
|
| +
|
| +// Allows user interaction:
|
| +// * Enables user interaction with the navigation bar.
|
| +// * Restores the done button.
|
| +// * Removes the transparent veil.
|
| +- (void)allowUserInteraction;
|
| +
|
| +@end
|
| +
|
| +#endif // IOS_CHROME_BROWSER_UI_SETTINGS_SETTINGS_ROOT_COLLECTION_VIEW_CONTROLLER_H_
|
|
|