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/. */
6 #include "mozilla/EditorController.h"
8 #include "EditorCommands.h"
9 #include "mozilla/mozalloc.h"
10 #include "nsControllerCommandTable.h"
14 class nsIControllerCommand
;
18 #define NS_REGISTER_COMMAND(_cmdClass, _cmdName) \
20 aCommandTable->RegisterCommand( \
22 static_cast<nsIControllerCommand*>(_cmdClass::GetInstance())); \
26 nsresult
EditorController::RegisterEditingCommands(
27 nsControllerCommandTable
* aCommandTable
) {
28 // now register all our commands
29 // These are commands that will be used in text widgets, and in composer
31 NS_REGISTER_COMMAND(UndoCommand
, "cmd_undo");
32 NS_REGISTER_COMMAND(RedoCommand
, "cmd_redo");
34 NS_REGISTER_COMMAND(CutCommand
, "cmd_cut");
35 NS_REGISTER_COMMAND(CutOrDeleteCommand
, "cmd_cutOrDelete");
36 NS_REGISTER_COMMAND(CopyCommand
, "cmd_copy");
37 NS_REGISTER_COMMAND(CopyOrDeleteCommand
, "cmd_copyOrDelete");
38 NS_REGISTER_COMMAND(SelectAllCommand
, "cmd_selectAll");
40 NS_REGISTER_COMMAND(PasteCommand
, "cmd_paste");
41 NS_REGISTER_COMMAND(PasteTransferableCommand
, "cmd_pasteTransferable");
43 NS_REGISTER_COMMAND(SwitchTextDirectionCommand
, "cmd_switchTextDirection");
45 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_delete");
46 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_deleteCharBackward");
47 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_deleteCharForward");
48 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_deleteWordBackward");
49 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_deleteWordForward");
50 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_deleteToBeginningOfLine");
51 NS_REGISTER_COMMAND(DeleteCommand
, "cmd_deleteToEndOfLine");
54 NS_REGISTER_COMMAND(InsertPlaintextCommand
, "cmd_insertText");
55 NS_REGISTER_COMMAND(InsertParagraphCommand
, "cmd_insertParagraph");
56 NS_REGISTER_COMMAND(InsertLineBreakCommand
, "cmd_insertLineBreak");
57 NS_REGISTER_COMMAND(PasteQuotationCommand
, "cmd_pasteQuote");
63 nsresult
EditorController::RegisterEditorCommands(
64 nsControllerCommandTable
* aCommandTable
) {
65 // These are commands that will be used in text widgets only.
67 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_scrollTop");
68 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_scrollBottom");
69 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveTop");
70 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveBottom");
71 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectTop");
72 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectBottom");
73 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_lineNext");
74 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_linePrevious");
75 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectLineNext");
76 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectLinePrevious");
77 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_charPrevious");
78 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_charNext");
79 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectCharPrevious");
80 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectCharNext");
81 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_beginLine");
82 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_endLine");
83 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectBeginLine");
84 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectEndLine");
85 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_wordPrevious");
86 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_wordNext");
87 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectWordPrevious");
88 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectWordNext");
89 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_scrollPageUp");
90 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_scrollPageDown");
91 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_scrollLineUp");
92 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_scrollLineDown");
93 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_movePageUp");
94 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_movePageDown");
95 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectPageUp");
96 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectPageDown");
97 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveLeft");
98 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveRight");
99 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveUp");
100 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveDown");
101 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveLeft2");
102 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveRight2");
103 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveUp2");
104 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_moveDown2");
105 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectLeft");
106 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectRight");
107 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectUp");
108 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectDown");
109 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectLeft2");
110 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectRight2");
111 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectUp2");
112 NS_REGISTER_COMMAND(SelectionMoveCommands
, "cmd_selectDown2");
118 void EditorController::Shutdown() {
120 UndoCommand::Shutdown();
121 RedoCommand::Shutdown();
122 CutCommand::Shutdown();
123 CutOrDeleteCommand::Shutdown();
124 CopyCommand::Shutdown();
125 CopyOrDeleteCommand::Shutdown();
126 PasteCommand::Shutdown();
127 PasteTransferableCommand::Shutdown();
128 SwitchTextDirectionCommand::Shutdown();
129 DeleteCommand::Shutdown();
130 SelectAllCommand::Shutdown();
131 InsertPlaintextCommand::Shutdown();
132 InsertParagraphCommand::Shutdown();
133 InsertLineBreakCommand::Shutdown();
134 PasteQuotationCommand::Shutdown();
137 SelectionMoveCommands::Shutdown();
140 } // namespace mozilla