| // Copyright 2013 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 CHROME_BROWSER_UNDO_UNDO_MANAGER_UTILS_H_ |
| #define CHROME_BROWSER_UNDO_UNDO_MANAGER_UTILS_H_ |
| |
| #include "base/basictypes.h" |
| |
| class UndoManager; |
| |
| // ScopedSuspendUndoTracking --------------------------------------------------- |
| |
| // Scopes the suspension of the undo tracking for non-user initiated changes |
| // such as those occuring during profile synchronization. |
| class ScopedSuspendUndoTracking { |
| public: |
| explicit ScopedSuspendUndoTracking(UndoManager* undo_manager); |
| ~ScopedSuspendUndoTracking(); |
| |
| private: |
| UndoManager* undo_manager_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ScopedSuspendUndoTracking); |
| }; |
| |
| // ScopedGroupingAction -------------------------------------------------------- |
| |
| // Scopes the grouping of a set of changes into one undoable action. |
| class ScopedGroupingAction { |
| public: |
| explicit ScopedGroupingAction(UndoManager* undo_manager); |
| ~ScopedGroupingAction(); |
| |
| private: |
| UndoManager* undo_manager_; |
| |
| DISALLOW_COPY_AND_ASSIGN(ScopedGroupingAction); |
| }; |
| |
| #endif // CHROME_BROWSER_UNDO_UNDO_MANAGER_UTILS_H_ |