summaryrefslogtreecommitdiff
path: root/editor/nsIPlaintextEditor.idl
diff options
context:
space:
mode:
Diffstat (limited to 'editor/nsIPlaintextEditor.idl')
-rw-r--r--editor/nsIPlaintextEditor.idl112
1 files changed, 112 insertions, 0 deletions
diff --git a/editor/nsIPlaintextEditor.idl b/editor/nsIPlaintextEditor.idl
new file mode 100644
index 0000000000..d823a46325
--- /dev/null
+++ b/editor/nsIPlaintextEditor.idl
@@ -0,0 +1,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();
+};