/*
 * 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"

webidl Node;

[builtinclass, scriptable, uuid(e39a0c2a-5b31-4d57-a971-66ba07fab614)]
interface nsIDocumentViewerEdit : nsISupports
{
  void clearSelection();
  void selectAll();

  void copySelection();
  [infallible] readonly attribute boolean copyable;

  void copyLinkLocation();
  [infallible] readonly attribute boolean inLink;

  const long COPY_IMAGE_TEXT = 0x0001;
  const long COPY_IMAGE_HTML = 0x0002;
  const long COPY_IMAGE_DATA = 0x0004;
  const long COPY_IMAGE_ALL = -1;
  void copyImage(in long aCopyFlags);
  [infallible] readonly attribute boolean inImage;

  AString getContents(in string aMimeType, in boolean aSelectionOnly);
  [infallible] readonly attribute boolean canGetContents;

  // Set the node that will be the subject of the editing commands above.
  // Usually this will be the node that was context-clicked.
  void setCommandNode(in Node aNode);
};
