EditorController.cpp (5953B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #include "mozilla/EditorController.h" 7 8 #include "EditorCommands.h" 9 #include "mozilla/mozalloc.h" 10 #include "nsControllerCommandTable.h" 11 #include "nsDebug.h" 12 #include "nsError.h" 13 14 namespace mozilla { 15 16 #define NS_REGISTER_COMMAND(_cmdClass, _cmdName) \ 17 aCommandTable->RegisterCommand(_cmdName ""_ns, _cmdClass::GetInstance()); 18 19 // static 20 void EditorController::RegisterEditingCommands( 21 nsControllerCommandTable* aCommandTable) { 22 // now register all our commands 23 // These are commands that will be used in text widgets, and in composer 24 25 NS_REGISTER_COMMAND(UndoCommand, "cmd_undo"); 26 NS_REGISTER_COMMAND(RedoCommand, "cmd_redo"); 27 28 NS_REGISTER_COMMAND(CutCommand, "cmd_cut"); 29 NS_REGISTER_COMMAND(CutOrDeleteCommand, "cmd_cutOrDelete"); 30 NS_REGISTER_COMMAND(CopyCommand, "cmd_copy"); 31 NS_REGISTER_COMMAND(CopyOrDeleteCommand, "cmd_copyOrDelete"); 32 NS_REGISTER_COMMAND(SelectAllCommand, "cmd_selectAll"); 33 34 NS_REGISTER_COMMAND(PasteCommand, "cmd_paste"); 35 NS_REGISTER_COMMAND(PasteTransferableCommand, "cmd_pasteTransferable"); 36 37 NS_REGISTER_COMMAND(SwitchTextDirectionCommand, "cmd_switchTextDirection"); 38 39 NS_REGISTER_COMMAND(DeleteCommand, "cmd_delete"); 40 NS_REGISTER_COMMAND(DeleteCommand, "cmd_deleteCharBackward"); 41 NS_REGISTER_COMMAND(DeleteCommand, "cmd_deleteCharForward"); 42 NS_REGISTER_COMMAND(DeleteCommand, "cmd_deleteWordBackward"); 43 NS_REGISTER_COMMAND(DeleteCommand, "cmd_deleteWordForward"); 44 NS_REGISTER_COMMAND(DeleteCommand, "cmd_deleteToBeginningOfLine"); 45 NS_REGISTER_COMMAND(DeleteCommand, "cmd_deleteToEndOfLine"); 46 47 // Insert content 48 NS_REGISTER_COMMAND(InsertPlaintextCommand, "cmd_insertText"); 49 NS_REGISTER_COMMAND(InsertParagraphCommand, "cmd_insertParagraph"); 50 NS_REGISTER_COMMAND(InsertLineBreakCommand, "cmd_insertLineBreak"); 51 NS_REGISTER_COMMAND(PasteQuotationCommand, "cmd_pasteQuote"); 52 } 53 54 // static 55 void EditorController::RegisterEditorCommands( 56 nsControllerCommandTable* aCommandTable) { 57 // These are commands that will be used in text widgets only. 58 59 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_scrollTop"); 60 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_scrollBottom"); 61 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveTop"); 62 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveBottom"); 63 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectTop"); 64 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectBottom"); 65 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_lineNext"); 66 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_linePrevious"); 67 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectLineNext"); 68 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectLinePrevious"); 69 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_charPrevious"); 70 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_charNext"); 71 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectCharPrevious"); 72 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectCharNext"); 73 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_beginLine"); 74 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_endLine"); 75 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectBeginLine"); 76 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectEndLine"); 77 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_wordPrevious"); 78 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_wordNext"); 79 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectWordPrevious"); 80 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectWordNext"); 81 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_scrollPageUp"); 82 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_scrollPageDown"); 83 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_scrollLineUp"); 84 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_scrollLineDown"); 85 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_movePageUp"); 86 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_movePageDown"); 87 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectPageUp"); 88 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectPageDown"); 89 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveLeft"); 90 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveRight"); 91 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveUp"); 92 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveDown"); 93 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveLeft2"); 94 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveRight2"); 95 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveUp2"); 96 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_moveDown2"); 97 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectLeft"); 98 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectRight"); 99 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectUp"); 100 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectDown"); 101 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectLeft2"); 102 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectRight2"); 103 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectUp2"); 104 NS_REGISTER_COMMAND(SelectionMoveCommands, "cmd_selectDown2"); 105 } 106 107 // static 108 void EditorController::Shutdown() { 109 // EditingCommands 110 UndoCommand::Shutdown(); 111 RedoCommand::Shutdown(); 112 CutCommand::Shutdown(); 113 CutOrDeleteCommand::Shutdown(); 114 CopyCommand::Shutdown(); 115 CopyOrDeleteCommand::Shutdown(); 116 PasteCommand::Shutdown(); 117 PasteTransferableCommand::Shutdown(); 118 SwitchTextDirectionCommand::Shutdown(); 119 DeleteCommand::Shutdown(); 120 SelectAllCommand::Shutdown(); 121 InsertPlaintextCommand::Shutdown(); 122 InsertParagraphCommand::Shutdown(); 123 InsertLineBreakCommand::Shutdown(); 124 PasteQuotationCommand::Shutdown(); 125 126 // EditorCommands 127 SelectionMoveCommands::Shutdown(); 128 } 129 130 } // namespace mozilla