This file is indexed.

/usr/share/idl/thunderbird/nsIPlaintextEditor.idl is in thunderbird-dev 1:52.8.0-1~deb8u1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
/* -*- 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();
};