editor/composer/src/nsComposerController.cpp

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

michael@0 1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
michael@0 2 /* This Source Code Form is subject to the terms of the Mozilla Public
michael@0 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
michael@0 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
michael@0 5
michael@0 6 #include "mozilla/mozalloc.h" // for operator new
michael@0 7 #include "nsComposerCommands.h" // for nsStyleUpdatingCommand, etc
michael@0 8 #include "nsComposerController.h"
michael@0 9 #include "nsError.h" // for NS_OK
michael@0 10 #include "nsGkAtoms.h" // for nsGkAtoms, nsGkAtoms::a, etc
michael@0 11 #include "nsIControllerCommandTable.h" // for nsIControllerCommandTable
michael@0 12
michael@0 13 class nsIControllerCommand;
michael@0 14
michael@0 15 #define NS_REGISTER_ONE_COMMAND(_cmdClass, _cmdName) \
michael@0 16 { \
michael@0 17 _cmdClass* theCmd = new _cmdClass(); \
michael@0 18 inCommandTable->RegisterCommand(_cmdName, \
michael@0 19 static_cast<nsIControllerCommand *>(theCmd)); \
michael@0 20 }
michael@0 21
michael@0 22 #define NS_REGISTER_FIRST_COMMAND(_cmdClass, _cmdName) \
michael@0 23 { \
michael@0 24 _cmdClass* theCmd = new _cmdClass(); \
michael@0 25 inCommandTable->RegisterCommand(_cmdName, \
michael@0 26 static_cast<nsIControllerCommand *>(theCmd));
michael@0 27
michael@0 28 #define NS_REGISTER_NEXT_COMMAND(_cmdClass, _cmdName) \
michael@0 29 inCommandTable->RegisterCommand(_cmdName, \
michael@0 30 static_cast<nsIControllerCommand *>(theCmd));
michael@0 31
michael@0 32 #define NS_REGISTER_LAST_COMMAND(_cmdClass, _cmdName) \
michael@0 33 inCommandTable->RegisterCommand(_cmdName, \
michael@0 34 static_cast<nsIControllerCommand *>(theCmd)); \
michael@0 35 }
michael@0 36
michael@0 37 #define NS_REGISTER_STYLE_COMMAND(_cmdClass, _cmdName, _styleTag) \
michael@0 38 { \
michael@0 39 _cmdClass* theCmd = new _cmdClass(_styleTag); \
michael@0 40 inCommandTable->RegisterCommand(_cmdName, \
michael@0 41 static_cast<nsIControllerCommand *>(theCmd)); \
michael@0 42 }
michael@0 43
michael@0 44 #define NS_REGISTER_TAG_COMMAND(_cmdClass, _cmdName, _tagName) \
michael@0 45 { \
michael@0 46 _cmdClass* theCmd = new _cmdClass(_tagName); \
michael@0 47 inCommandTable->RegisterCommand(_cmdName, \
michael@0 48 static_cast<nsIControllerCommand *>(theCmd)); \
michael@0 49 }
michael@0 50
michael@0 51
michael@0 52 // static
michael@0 53 nsresult
michael@0 54 nsComposerController::RegisterEditorDocStateCommands(
michael@0 55 nsIControllerCommandTable *inCommandTable)
michael@0 56 {
michael@0 57 // observer commands for document state
michael@0 58 NS_REGISTER_FIRST_COMMAND(nsDocumentStateCommand, "obs_documentCreated")
michael@0 59 NS_REGISTER_NEXT_COMMAND(nsDocumentStateCommand, "obs_documentWillBeDestroyed")
michael@0 60 NS_REGISTER_LAST_COMMAND(nsDocumentStateCommand, "obs_documentLocationChanged")
michael@0 61
michael@0 62 // commands that may get or change state
michael@0 63 NS_REGISTER_FIRST_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentModified")
michael@0 64 NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentUseCSS")
michael@0 65 NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_setDocumentReadOnly")
michael@0 66 NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_insertBrOnReturn")
michael@0 67 NS_REGISTER_NEXT_COMMAND(nsSetDocumentStateCommand, "cmd_enableObjectResizing")
michael@0 68 NS_REGISTER_LAST_COMMAND(nsSetDocumentStateCommand, "cmd_enableInlineTableEditing")
michael@0 69
michael@0 70 NS_REGISTER_ONE_COMMAND(nsSetDocumentOptionsCommand, "cmd_setDocumentOptions")
michael@0 71
michael@0 72 return NS_OK;
michael@0 73 }
michael@0 74
michael@0 75 // static
michael@0 76 nsresult
michael@0 77 nsComposerController::RegisterHTMLEditorCommands(
michael@0 78 nsIControllerCommandTable *inCommandTable)
michael@0 79 {
michael@0 80 // Edit menu
michael@0 81 NS_REGISTER_ONE_COMMAND(nsPasteNoFormattingCommand, "cmd_pasteNoFormatting");
michael@0 82
michael@0 83 // indent/outdent
michael@0 84 NS_REGISTER_ONE_COMMAND(nsIndentCommand, "cmd_indent");
michael@0 85 NS_REGISTER_ONE_COMMAND(nsOutdentCommand, "cmd_outdent");
michael@0 86
michael@0 87 // Styles
michael@0 88 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_bold", nsGkAtoms::b);
michael@0 89 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_italic", nsGkAtoms::i);
michael@0 90 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_underline", nsGkAtoms::u);
michael@0 91 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_tt", nsGkAtoms::tt);
michael@0 92
michael@0 93 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_strikethrough", nsGkAtoms::strike);
michael@0 94 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_superscript", nsGkAtoms::sup);
michael@0 95 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_subscript", nsGkAtoms::sub);
michael@0 96 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_nobreak", nsGkAtoms::nobr);
michael@0 97
michael@0 98 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_em", nsGkAtoms::em);
michael@0 99 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_strong", nsGkAtoms::strong);
michael@0 100 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_cite", nsGkAtoms::cite);
michael@0 101 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_abbr", nsGkAtoms::abbr);
michael@0 102 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_acronym", nsGkAtoms::acronym);
michael@0 103 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_code", nsGkAtoms::code);
michael@0 104 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_samp", nsGkAtoms::samp);
michael@0 105 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_var", nsGkAtoms::var);
michael@0 106 NS_REGISTER_STYLE_COMMAND(nsStyleUpdatingCommand, "cmd_removeLinks", nsGkAtoms::href);
michael@0 107
michael@0 108 // lists
michael@0 109 NS_REGISTER_STYLE_COMMAND(nsListCommand, "cmd_ol", nsGkAtoms::ol);
michael@0 110 NS_REGISTER_STYLE_COMMAND(nsListCommand, "cmd_ul", nsGkAtoms::ul);
michael@0 111 NS_REGISTER_STYLE_COMMAND(nsListItemCommand, "cmd_dt", nsGkAtoms::dt);
michael@0 112 NS_REGISTER_STYLE_COMMAND(nsListItemCommand, "cmd_dd", nsGkAtoms::dd);
michael@0 113 NS_REGISTER_ONE_COMMAND(nsRemoveListCommand, "cmd_removeList");
michael@0 114
michael@0 115 // format stuff
michael@0 116 NS_REGISTER_ONE_COMMAND(nsParagraphStateCommand, "cmd_paragraphState");
michael@0 117 NS_REGISTER_ONE_COMMAND(nsFontFaceStateCommand, "cmd_fontFace");
michael@0 118 NS_REGISTER_ONE_COMMAND(nsFontSizeStateCommand, "cmd_fontSize");
michael@0 119 NS_REGISTER_ONE_COMMAND(nsFontColorStateCommand, "cmd_fontColor");
michael@0 120 NS_REGISTER_ONE_COMMAND(nsBackgroundColorStateCommand, "cmd_backgroundColor");
michael@0 121 NS_REGISTER_ONE_COMMAND(nsHighlightColorStateCommand, "cmd_highlight");
michael@0 122
michael@0 123 NS_REGISTER_ONE_COMMAND(nsAlignCommand, "cmd_align");
michael@0 124 NS_REGISTER_ONE_COMMAND(nsRemoveStylesCommand, "cmd_removeStyles");
michael@0 125
michael@0 126 NS_REGISTER_ONE_COMMAND(nsIncreaseFontSizeCommand, "cmd_increaseFont");
michael@0 127 NS_REGISTER_ONE_COMMAND(nsDecreaseFontSizeCommand, "cmd_decreaseFont");
michael@0 128
michael@0 129 // Insert content
michael@0 130 NS_REGISTER_ONE_COMMAND(nsInsertHTMLCommand, "cmd_insertHTML");
michael@0 131 NS_REGISTER_TAG_COMMAND(nsInsertTagCommand, "cmd_insertLinkNoUI", nsGkAtoms::a);
michael@0 132 NS_REGISTER_TAG_COMMAND(nsInsertTagCommand, "cmd_insertImageNoUI", nsGkAtoms::img);
michael@0 133 NS_REGISTER_TAG_COMMAND(nsInsertTagCommand, "cmd_insertHR", nsGkAtoms::hr);
michael@0 134
michael@0 135 NS_REGISTER_ONE_COMMAND(nsAbsolutePositioningCommand, "cmd_absPos");
michael@0 136 NS_REGISTER_ONE_COMMAND(nsDecreaseZIndexCommand, "cmd_decreaseZIndex");
michael@0 137 NS_REGISTER_ONE_COMMAND(nsIncreaseZIndexCommand, "cmd_increaseZIndex");
michael@0 138
michael@0 139 return NS_OK;
michael@0 140 }

mercurial