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