editor/nsIPlaintextEditor.idl
author Ted Mielczarek <ted@mielczarek.org>
Wed, 12 Apr 2017 15:06:22 -0400
changeset 353399 b5552791f6c8da640cfcb248ba4681d4d31594a5
parent 246062 f2a922fd623e11743f1f2d5379799dab857e4893
child 360776 bbe1b297cc891e07d1c5962bbcd74f967ee09239
permissions -rw-r--r--
bug 1355961 - add some sccache stats to build_metrics. r=gps This commit makes sccache dump JSON stats at the end of the build, and then reads them in `BuildScript.generate_build_stats` and adds them to the build_metrics we submit to Perfherder. The stats dumping is done in Makefile.in where we currently dump verbose sccache stats because sccache doesn't persist stats to disk right now and it will also shut down its server process after 5 minutes, so when the post-build automation steps take more than 5 minutes the server shuts down and the stats are lost. Currently it's collecting: * Cache hit rate * Cache write errors * Non-cacheable requests (compiler invocations that sccache can't cache) We can always grow this list later. MozReview-Commit-ID: J9CwU7XB05I

/* -*- 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, 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);

  /**
   * 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();
};