Index: ios/chrome/browser/ui/bookmarks/undo_manager_wrapper.h |
diff --git a/ios/chrome/browser/ui/bookmarks/undo_manager_wrapper.h b/ios/chrome/browser/ui/bookmarks/undo_manager_wrapper.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..58cfe420f20de35bc7065664dcf2668e2358a92a |
--- /dev/null |
+++ b/ios/chrome/browser/ui/bookmarks/undo_manager_wrapper.h |
@@ -0,0 +1,47 @@ |
+// Copyright 2014 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_BOOKMARKS_UNDO_MANAGER_WRAPPER_H_ |
+#define IOS_CHROME_BROWSER_UI_BOOKMARKS_UNDO_MANAGER_WRAPPER_H_ |
+ |
+#import <Foundation/Foundation.h> |
+ |
+namespace ios { |
+class ChromeBrowserState; |
+} // namespace ios |
+ |
+// This object is a convenience ObjC wrapper around UndoManager. |
+// On construction, it registers itself as an observer of the UndoManager. |
+// On destruction, it unregisters itself as an observer of the UndoManager. |
+// Provides a convenient interface to the UndoManager. |
+// The general usage of this class should be: |
+// - startGroupingActions |
+// - *make changes to BookmarkModel* |
+// - stopGroupingActions |
+// - resetUndoManagerChanged |
+// At a later point in time, an undo should only be attempted if |
+// hasUndoManagerChanged returns NO. |
+@interface UndoManagerWrapper : NSObject |
+ |
+// Designated initializer. |
+- (instancetype)initWithBrowserState:(ios::ChromeBrowserState*)browserState; |
+ |
+// Subsequent changes to the BookmarkModel are grouped together so that a single |
+// undo will revert all changes. |
+- (void)startGroupingActions; |
+// Stops grouping changes to the BookmarkModel. Calls to this method must mirror |
+// calls to startGroupingActions. |
+- (void)stopGroupingActions; |
+ |
+// Resets the internal state for whether the UndoManager has changed to NO. |
+- (void)resetUndoManagerChanged; |
+// Returns YES if the UndoManager has changed since the last call to |
+// resetUndoManagerChanged. |
+- (BOOL)hasUndoManagerChanged; |
+// Reverts the last change made to the BookmarkModel. |
+- (void)undo; |
+ |
+@end |
+ |
+#endif // IOS_CHROME_BROWSER_UI_BOOKMARKS_UNDO_MANAGER_WRAPPER_H_ |