editor/nsIEditorMailSupport.idl
author Randell Jesup <rjesup@jesup.org>
Tue, 13 Jun 2017 01:54:13 -0400
changeset 593149 cbb06ea384e95b8e33886c0825bee14867a8851b
parent 414156 8c5a17252bb320c82ef5665b1640c43e7a6c8653
child 641162 e1688e890138d18858a60e3d1719bced356628fd
permissions -rw-r--r--
Bug 1341285: rollup of changes for webrtc after applying webrtc.org v57 update r=ng,jesup,pehrsons,drno,dminor,cpearce,jya,glandium,dmajor Includes re-importing gyp files removed from upstream in v56, and then updating them to match the BUILD.gn file changes.

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

interface nsIArray;
interface nsIDOMNode;

[scriptable, uuid(fdf23301-4a94-11d3-9ce4-9960496c41bc)]

interface nsIEditorMailSupport : nsISupports
{
  /** Paste the text in the OS clipboard at the cursor position,
    * as a quotation (whose representation is dependant on the editor type),
    * replacing the selected text (if any).
    * @param aSelectionType Text or html?
    */
  void pasteAsQuotation(in long aSelectionType);

  /** Insert a string as quoted text
    * (whose representation is dependant on the editor type),
    * replacing the selected text (if any).
    * @param aQuotedText  The actual text to be quoted
    * @return             The node which was inserted
    */
  nsIDOMNode insertAsQuotation(in AString aQuotedText);

  /**
   * Inserts a plaintext string at the current location,
   * with special processing for lines beginning with ">",
   * which will be treated as mail quotes and inserted
   * as plaintext quoted blocks.
   * If the selection is not collapsed, the selection is deleted
   * and the insertion takes place at the resulting collapsed selection.
   *
   * @param aString   the string to be inserted
   */
   void insertTextWithQuotations(in DOMString aStringToInsert);

  /** Paste a string as quoted text,
    * whose representation is dependant on the editor type,
    * replacing the selected text (if any)
    * @param aCitation    The "mid" URL of the source message
    * @param aSelectionType Text or html?
    */
  void pasteAsCitedQuotation(in AString aCitation,
                             in long aSelectionType);

  /** Insert a string as quoted text
    * (whose representation is dependant on the editor type),
    * replacing the selected text (if any),
    * including, if possible, a "cite" attribute.
    * @param aQuotedText  The actual text to be quoted
    * @param aCitation    The "mid" URL of the source message
    * @param aInsertHTML  Insert as html?  (vs plaintext)
    * @return             The node which was inserted
    */
  nsIDOMNode insertAsCitedQuotation(in AString aQuotedText,
                                    in AString aCitation,
                                    in boolean aInsertHTML);

  /**
   * Rewrap the selected part of the document, re-quoting if necessary.
   * @param aRespectNewlines  Try to maintain newlines in the original?
   */
  void rewrap(in boolean aRespectNewlines);

  /**
   * Strip any citations in the selected part of the document.
   */
  void stripCites();


  /**
   * Get a list of IMG and OBJECT tags in the current document.
   */
  nsIArray getEmbeddedObjects();
};