/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

/*
Editor Observer interface to outside world
*/

[scriptable, uuid(f3ee57a6-890c-4ce0-a584-8a84bba0292e)]

/**
 * A generic editor observer interface.
 * <P>
 * nsIEditorObserver is the interface used by applications wishing to be notified
 * when the editor has completed a user action.
 *
 */
interface nsIEditorObserver : nsISupports {
  /**
   * Called after the editor completes a user action.
   */
  void EditAction();
  /**
   * Called when editor starts to handle a user action.  I.e., This must be
   * called before the first DOM change.
   */
  void BeforeEditAction();
  /**
   * Called after BeforeEditAction() is called but EditorAction() won't be
   * called.
   */
  void CancelEditAction();
};