author Ryan VanderMeulen <ryanvm@gmail.com>
Fri, 01 Sep 2017 15:37:08 -0400
changeset 430269 1d02aa80f2f8c283428f0a8a6310e7d1fec3936c
parent 425477 cddc1b05b8760e76c0621c402047adaa553be468
child 459625 690c1b3c488085627fd49d7d77ea27aa90e7f324
permissions -rw-r--r--
Backed out 9 changesets (bug 1383880) for decision task bustage. Backed out changeset 53f5d47a7cb0 (bug 1383880) Backed out changeset a0abda41172a (bug 1383880) Backed out changeset 729a7e2091e8 (bug 1383880) Backed out changeset a33f5a14a471 (bug 1383880) Backed out changeset 5b10d321cfee (bug 1383880) Backed out changeset 8056488d8aed (bug 1383880) Backed out changeset e62c90e3c1e8 (bug 1383880) Backed out changeset 91f116ce6c2a (bug 1383880) Backed out changeset 045498bc36c4 (bug 1383880)

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

[scriptable, builtinclass, uuid(b74fb158-1265-4102-91eb-edd0136b49f8)]
interface nsIPlaintextEditor : nsISupports

  // XXX Why aren't these in nsIEditor?
  // only plain text entry is allowed via events
  const long eEditorPlaintextMask       = 0x0001;
  // enter key and CR-LF handled specially
  const long eEditorSingleLineMask      = 0x0002;
  // text is not entered into content, only a representative character
  const long eEditorPasswordMask        = 0x0004;
  // editing events are disabled.  Editor may still accept focus.
  const long eEditorReadonlyMask        = 0x0008;
  // all events are disabled (like scrolling).  Editor will not accept focus.
  const long eEditorDisabledMask        = 0x0010;
  // text input is limited to certain character types, use mFilter
  const long eEditorFilterInputMask     = 0x0020;
  // use mail-compose editing rules
  const long eEditorMailMask            = 0x0040;
  // allow the editor to set font: monospace on the root node
  const long eEditorEnableWrapHackMask  = 0x0080;
  // bit for widgets (form elements)
  const long eEditorWidgetMask          = 0x0100;
  // this HTML editor should not create css styles
  const long eEditorNoCSSMask           = 0x0200;
  // whether HTML document specific actions are executed or not.
  // e.g., if this flag is set, the editor doesn't handle Tab key.
  // besides, anchors of HTML are not clickable.
  const long eEditorAllowInteraction    = 0x0400;
  // when this is set, the characters in password editor are always masked.
  // see bug 530367 for the detail.
  const long eEditorDontEchoPassword    = 0x0800;
  // when this flag is set, the internal direction of the editor is RTL.
  // if neither of the direction flags are set, the direction is determined
  // from the text control's content node.
  const long eEditorRightToLeft         = 0x1000;
  // when this flag is set, the internal direction of the editor is LTR.
  const long eEditorLeftToRight         = 0x2000;
  // when this flag is set, the editor's text content is not spell checked.
  const long eEditorSkipSpellCheck      = 0x4000;

   * The valid values for newlines handling.
   * Can't change the values unless we remove
   * use of the pref.
  const long eNewlinesPasteIntact                = 0;
  const long eNewlinesPasteToFirst               = 1;
  const long eNewlinesReplaceWithSpaces          = 2;
  const long eNewlinesStrip                      = 3;
  const long eNewlinesReplaceWithCommas          = 4;
  const long eNewlinesStripSurroundingWhitespace = 5;

    * The length of the contents in characters.
    * XXX change this type to 'unsigned long'
  readonly attribute long textLength;

    * The maximum number of characters allowed.
    *   default: -1 (unlimited).
  attribute long maxTextLength;

  /** Get and set the body wrap width.
    * Special values:
    *    0 = wrap to window width
    *   -1 = no wrap at all
  attribute long wrapWidth;

   * Similar to the setter for wrapWidth, but just sets the editor
   * internal state without actually changing the content being edited
   * to wrap at that column.  This should only be used by callers who
   * are sure that their content is already set up correctly.
  void setWrapColumn(in long aWrapColumn);

  /** Get and set newline handling.
   *  Values are the constants defined above.
  attribute long newlineHandling;

   * Inserts a string at the current location,
   * given by the selection.
   * 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 insertText(in DOMString aStringToInsert);

   * Replace existed string with a string.
   * This is fast path to replace all string when using single line control.
   * @ param aString   the string to be set
  [noscript] void setText(in DOMString aString);

   * Insert a line break into the content model.
   * The interpretation of a break is up to the implementation:
   * it may enter a character, split a node in the tree, etc.
   * This may be more efficient than calling InsertText with a newline.
  void insertLineBreak();