/* -*- Mode: IDL; tab-width: 4; 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"

webidl Node;

[scriptable, uuid(35BE2D7E-F29B-48EC-BF7E-80A30A724DE3)]
interface nsIContentViewerEdit : nsISupports
{
  void clearSelection();
  void selectAll();

  void copySelection();
  readonly attribute boolean copyable;

  void copyLinkLocation();
  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);
  readonly attribute boolean inImage;

  AString getContents(in string aMimeType, in boolean aSelectionOnly);
  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);
};