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

interface nsIDOMNode;

[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 nsIDOMNode aNode);
};