/* -*- 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/. */ #ifndef mozilla_EditAction_h #define mozilla_EditAction_h namespace mozilla { // This is int32_t instead of int16_t because nsIInlineSpellChecker.idl's // spellCheckAfterEditorChange is defined to take it as a long. // TODO: Make each name eFoo and investigate whether the numeric values // still have some meaning. enum class EditSubAction : int32_t { // eNone indicates not edit sub-action is being handled. This is useful // of initial value of member variables. eNone, // eUndo and eRedo indicate entire actions of undo/redo operation. eUndo, eRedo, // eInsertNode indicates to insert a new node into the DOM tree. eInsertNode, // eCreateNode indicates to create a new node and insert it into the DOM tree. eCreateNode, // eDeleteNode indicates to remove a node from the DOM tree. eDeleteNode, // eSplitNode indicates to split a node to 2 nodes. eSplitNode, // eJoinNodes indicates to join 2 nodes. eJoinNodes, // eDeleteText indicates to delete some characters form a text node. eDeleteText, // eInsertText indicates to insert some characters. eInsertText, // eInsertTextComingFromIME indicates to insert or update composition string // with new text which is new composition string or commit string. eInsertTextComingFromIME, // eDeleteSelectedContent indicates to remove selected content. eDeleteSelectedContent, // eSetTextProperty indicates to set a style from text. eSetTextProperty, // eRemoveTextProperty indicates to remove a style from text. eRemoveTextProperty, // eRemoveAllTextProperties indicate to remove all styles from text. eRemoveAllTextProperties, // eComputeTextToOutput indicates to compute the editor value as plain text // or something requested format. eComputeTextToOutput, // eSetText indicates to set editor value to new value. eSetText, // eInsertParagraphSeparator indicates to insert paragraph separator,
or // \n at least to break current line. eInsertParagraphSeparator, // eCreateOrChangeList indicates to create new list or change existing list // type. eCreateOrChangeList, // eIndent and eOutdent indicates to indent or outdent the target with // using
,