зеркало из https://github.com/mozilla/gecko-dev.git
143 строки
5.8 KiB
C++
143 строки
5.8 KiB
C++
/* -*- 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 "mozilla/HTMLEditorController.h"
|
|
|
|
#include "mozilla/EditorCommands.h" // for StyleUpdatingCommand, etc
|
|
#include "mozilla/mozalloc.h" // for operator new
|
|
#include "nsControllerCommandTable.h" // for nsControllerCommandTable
|
|
#include "nsError.h" // for NS_OK
|
|
|
|
namespace mozilla {
|
|
|
|
#define NS_REGISTER_COMMAND(_cmdClass, _cmdName) \
|
|
{ \
|
|
aCommandTable->RegisterCommand( \
|
|
_cmdName, \
|
|
static_cast<nsIControllerCommand*>(_cmdClass::GetInstance())); \
|
|
}
|
|
|
|
// static
|
|
nsresult HTMLEditorController::RegisterEditorDocStateCommands(
|
|
nsControllerCommandTable* aCommandTable) {
|
|
// observer commands for document state
|
|
NS_REGISTER_COMMAND(DocumentStateCommand, "obs_documentCreated")
|
|
NS_REGISTER_COMMAND(DocumentStateCommand, "obs_documentWillBeDestroyed")
|
|
NS_REGISTER_COMMAND(DocumentStateCommand, "obs_documentLocationChanged")
|
|
|
|
// commands that may get or change state
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_setDocumentModified")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_setDocumentUseCSS")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_setDocumentReadOnly")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_insertBrOnReturn")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_defaultParagraphSeparator")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_enableObjectResizing")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_enableInlineTableEditing")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand,
|
|
"cmd_enableAbsolutePositionEditing")
|
|
NS_REGISTER_COMMAND(SetDocumentStateCommand,
|
|
"cmd_enableCompatibleJoinSplitNodeDirection")
|
|
|
|
return NS_OK;
|
|
}
|
|
|
|
// static
|
|
nsresult HTMLEditorController::RegisterHTMLEditorCommands(
|
|
nsControllerCommandTable* aCommandTable) {
|
|
// Edit menu
|
|
NS_REGISTER_COMMAND(PasteNoFormattingCommand, "cmd_pasteNoFormatting");
|
|
|
|
// indent/outdent
|
|
NS_REGISTER_COMMAND(IndentCommand, "cmd_indent");
|
|
NS_REGISTER_COMMAND(OutdentCommand, "cmd_outdent");
|
|
|
|
// Styles
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_bold");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_italic");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_underline");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_tt");
|
|
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_strikethrough");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_superscript");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_subscript");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_nobreak");
|
|
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_em");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_strong");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_cite");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_abbr");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_acronym");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_code");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_samp");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_var");
|
|
NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_removeLinks");
|
|
|
|
// lists
|
|
NS_REGISTER_COMMAND(ListCommand, "cmd_ol");
|
|
NS_REGISTER_COMMAND(ListCommand, "cmd_ul");
|
|
NS_REGISTER_COMMAND(ListItemCommand, "cmd_dt");
|
|
NS_REGISTER_COMMAND(ListItemCommand, "cmd_dd");
|
|
NS_REGISTER_COMMAND(RemoveListCommand, "cmd_removeList");
|
|
|
|
// format stuff
|
|
NS_REGISTER_COMMAND(ParagraphStateCommand, "cmd_paragraphState");
|
|
NS_REGISTER_COMMAND(FontFaceStateCommand, "cmd_fontFace");
|
|
NS_REGISTER_COMMAND(FontSizeStateCommand, "cmd_fontSize");
|
|
NS_REGISTER_COMMAND(FontColorStateCommand, "cmd_fontColor");
|
|
NS_REGISTER_COMMAND(BackgroundColorStateCommand, "cmd_backgroundColor");
|
|
NS_REGISTER_COMMAND(HighlightColorStateCommand, "cmd_highlight");
|
|
|
|
NS_REGISTER_COMMAND(AlignCommand, "cmd_align");
|
|
NS_REGISTER_COMMAND(RemoveStylesCommand, "cmd_removeStyles");
|
|
|
|
NS_REGISTER_COMMAND(IncreaseFontSizeCommand, "cmd_increaseFont");
|
|
NS_REGISTER_COMMAND(DecreaseFontSizeCommand, "cmd_decreaseFont");
|
|
|
|
// Insert content
|
|
NS_REGISTER_COMMAND(InsertHTMLCommand, "cmd_insertHTML");
|
|
NS_REGISTER_COMMAND(InsertTagCommand, "cmd_insertLinkNoUI");
|
|
NS_REGISTER_COMMAND(InsertTagCommand, "cmd_insertImageNoUI");
|
|
NS_REGISTER_COMMAND(InsertTagCommand, "cmd_insertHR");
|
|
|
|
NS_REGISTER_COMMAND(AbsolutePositioningCommand, "cmd_absPos");
|
|
NS_REGISTER_COMMAND(DecreaseZIndexCommand, "cmd_decreaseZIndex");
|
|
NS_REGISTER_COMMAND(IncreaseZIndexCommand, "cmd_increaseZIndex");
|
|
|
|
return NS_OK;
|
|
}
|
|
|
|
// static
|
|
void HTMLEditorController::Shutdown() {
|
|
// EditorDocStateCommands
|
|
DocumentStateCommand::Shutdown();
|
|
SetDocumentStateCommand::Shutdown();
|
|
|
|
// HTMLEditorCommands
|
|
PasteNoFormattingCommand::Shutdown();
|
|
IndentCommand::Shutdown();
|
|
OutdentCommand::Shutdown();
|
|
StyleUpdatingCommand::Shutdown();
|
|
ListCommand::Shutdown();
|
|
ListItemCommand::Shutdown();
|
|
RemoveListCommand::Shutdown();
|
|
ParagraphStateCommand::Shutdown();
|
|
FontFaceStateCommand::Shutdown();
|
|
FontSizeStateCommand::Shutdown();
|
|
FontColorStateCommand::Shutdown();
|
|
BackgroundColorStateCommand::Shutdown();
|
|
HighlightColorStateCommand::Shutdown();
|
|
AlignCommand::Shutdown();
|
|
RemoveStylesCommand::Shutdown();
|
|
IncreaseFontSizeCommand::Shutdown();
|
|
DecreaseFontSizeCommand::Shutdown();
|
|
InsertHTMLCommand::Shutdown();
|
|
InsertTagCommand::Shutdown();
|
|
AbsolutePositioningCommand::Shutdown();
|
|
DecreaseZIndexCommand::Shutdown();
|
|
IncreaseZIndexCommand::Shutdown();
|
|
}
|
|
|
|
} // namespace mozilla
|