text: // 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 COMPONENTS_UNDO_UNDO_OPERATION_H_
  #define COMPONENTS_UNDO_UNDO_OPERATION_H_
  
  // Base class for all undo operations.
  class UndoOperation {
   public:
    virtual ~UndoOperation() {}
  
    virtual void Undo() = 0;
  
    // Returns the resource string id describing the undo/redo of this operation
    // for use as labels in the UI.
    // Note: The labels describe the original user action, this may result in
    // the meaning of the redo label being reversed. For example, an
    // UndoOperation representing a deletion would have been created in order to
    // redo an addition by the user. In this case, the redo label string for the
    // UndoOperation of delete would be "Redo add".
    virtual int GetUndoLabelId() const = 0;
    virtual int GetRedoLabelId() const = 0;
  };
  
  #endif  // COMPONENTS_UNDO_UNDO_OPERATION_H_
  