1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UNDO_UNDO_OPERATION_H_
6#define CHROME_BROWSER_UNDO_UNDO_OPERATION_H_
7
8// Base class for all undo operations.
9class UndoOperation {
10 public:
11  virtual ~UndoOperation() {}
12
13  virtual void Undo() = 0;
14
15  // Returns the resource string id describing the undo/redo of this operation
16  // for use as labels in the UI.
17  // Note: The labels describe the original user action, this may result in
18  // the meaning of the redo label being reversed. For example, an
19  // UndoOperation representing a deletion would have been created in order to
20  // redo an addition by the user. In this case, the redo label string for the
21  // UndoOperation of delete would be "Redo add".
22  virtual int GetUndoLabelId() const = 0;
23  virtual int GetRedoLabelId() const = 0;
24};
25
26#endif  // CHROME_BROWSER_UNDO_UNDO_OPERATION_H_
27