tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

HTMLEditorController.cpp (5742B)


      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/HTMLEditorController.h"
      7 
      8 #include "mozilla/EditorCommands.h"    // for StyleUpdatingCommand, etc
      9 #include "mozilla/mozalloc.h"          // for operator new
     10 #include "nsControllerCommandTable.h"  // for nsControllerCommandTable
     11 #include "nsError.h"                   // for NS_OK
     12 
     13 namespace mozilla {
     14 
     15 #define NS_REGISTER_COMMAND(_cmdClass, _cmdName) \
     16  aCommandTable->RegisterCommand(_cmdName ""_ns, _cmdClass::GetInstance());
     17 
     18 // static
     19 void HTMLEditorController::RegisterEditorDocStateCommands(
     20    nsControllerCommandTable* aCommandTable) {
     21  // observer commands for document state
     22  NS_REGISTER_COMMAND(DocumentStateCommand, "obs_documentCreated")
     23  NS_REGISTER_COMMAND(DocumentStateCommand, "obs_documentWillBeDestroyed")
     24  NS_REGISTER_COMMAND(DocumentStateCommand, "obs_documentLocationChanged")
     25 
     26  // commands that may get or change state
     27  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_setDocumentModified")
     28  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_setDocumentUseCSS")
     29  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_setDocumentReadOnly")
     30  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_insertBrOnReturn")
     31  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_defaultParagraphSeparator")
     32  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_enableObjectResizing")
     33  NS_REGISTER_COMMAND(SetDocumentStateCommand, "cmd_enableInlineTableEditing")
     34  NS_REGISTER_COMMAND(SetDocumentStateCommand,
     35                      "cmd_enableAbsolutePositionEditing")
     36  NS_REGISTER_COMMAND(SetDocumentStateCommand,
     37                      "cmd_enableCompatibleJoinSplitNodeDirection")
     38 }
     39 
     40 // static
     41 void HTMLEditorController::RegisterHTMLEditorCommands(
     42    nsControllerCommandTable* aCommandTable) {
     43  // Edit menu
     44  NS_REGISTER_COMMAND(PasteNoFormattingCommand, "cmd_pasteNoFormatting");
     45 
     46  // indent/outdent
     47  NS_REGISTER_COMMAND(IndentCommand, "cmd_indent");
     48  NS_REGISTER_COMMAND(OutdentCommand, "cmd_outdent");
     49 
     50  // Styles
     51  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_bold");
     52  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_italic");
     53  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_underline");
     54  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_tt");
     55 
     56  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_strikethrough");
     57  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_superscript");
     58  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_subscript");
     59  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_nobreak");
     60 
     61  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_em");
     62  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_strong");
     63  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_cite");
     64  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_abbr");
     65  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_acronym");
     66  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_code");
     67  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_samp");
     68  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_var");
     69  NS_REGISTER_COMMAND(StyleUpdatingCommand, "cmd_removeLinks");
     70 
     71  // lists
     72  NS_REGISTER_COMMAND(ListCommand, "cmd_ol");
     73  NS_REGISTER_COMMAND(ListCommand, "cmd_ul");
     74  NS_REGISTER_COMMAND(ListItemCommand, "cmd_dt");
     75  NS_REGISTER_COMMAND(ListItemCommand, "cmd_dd");
     76  NS_REGISTER_COMMAND(RemoveListCommand, "cmd_removeList");
     77 
     78  // format stuff
     79  NS_REGISTER_COMMAND(FormatBlockStateCommand, "cmd_formatBlock");
     80  NS_REGISTER_COMMAND(ParagraphStateCommand, "cmd_paragraphState");
     81  NS_REGISTER_COMMAND(FontFaceStateCommand, "cmd_fontFace");
     82  NS_REGISTER_COMMAND(FontSizeStateCommand, "cmd_fontSize");
     83  NS_REGISTER_COMMAND(FontColorStateCommand, "cmd_fontColor");
     84  NS_REGISTER_COMMAND(BackgroundColorStateCommand, "cmd_backgroundColor");
     85  NS_REGISTER_COMMAND(HighlightColorStateCommand, "cmd_highlight");
     86 
     87  NS_REGISTER_COMMAND(AlignCommand, "cmd_align");
     88  NS_REGISTER_COMMAND(RemoveStylesCommand, "cmd_removeStyles");
     89 
     90  NS_REGISTER_COMMAND(IncreaseFontSizeCommand, "cmd_increaseFont");
     91  NS_REGISTER_COMMAND(DecreaseFontSizeCommand, "cmd_decreaseFont");
     92 
     93  // Insert content
     94  NS_REGISTER_COMMAND(InsertHTMLCommand, "cmd_insertHTML");
     95  NS_REGISTER_COMMAND(InsertTagCommand, "cmd_insertLinkNoUI");
     96  NS_REGISTER_COMMAND(InsertTagCommand, "cmd_insertImageNoUI");
     97  NS_REGISTER_COMMAND(InsertTagCommand, "cmd_insertHR");
     98 
     99  NS_REGISTER_COMMAND(AbsolutePositioningCommand, "cmd_absPos");
    100  NS_REGISTER_COMMAND(DecreaseZIndexCommand, "cmd_decreaseZIndex");
    101  NS_REGISTER_COMMAND(IncreaseZIndexCommand, "cmd_increaseZIndex");
    102 }
    103 
    104 // static
    105 void HTMLEditorController::Shutdown() {
    106  // EditorDocStateCommands
    107  DocumentStateCommand::Shutdown();
    108  SetDocumentStateCommand::Shutdown();
    109 
    110  // HTMLEditorCommands
    111  PasteNoFormattingCommand::Shutdown();
    112  IndentCommand::Shutdown();
    113  OutdentCommand::Shutdown();
    114  StyleUpdatingCommand::Shutdown();
    115  ListCommand::Shutdown();
    116  ListItemCommand::Shutdown();
    117  RemoveListCommand::Shutdown();
    118  FormatBlockStateCommand::Shutdown();
    119  ParagraphStateCommand::Shutdown();
    120  FontFaceStateCommand::Shutdown();
    121  FontSizeStateCommand::Shutdown();
    122  FontColorStateCommand::Shutdown();
    123  BackgroundColorStateCommand::Shutdown();
    124  HighlightColorStateCommand::Shutdown();
    125  AlignCommand::Shutdown();
    126  RemoveStylesCommand::Shutdown();
    127  IncreaseFontSizeCommand::Shutdown();
    128  DecreaseFontSizeCommand::Shutdown();
    129  InsertHTMLCommand::Shutdown();
    130  InsertTagCommand::Shutdown();
    131  AbsolutePositioningCommand::Shutdown();
    132  DecreaseZIndexCommand::Shutdown();
    133  IncreaseZIndexCommand::Shutdown();
    134 }
    135 
    136 }  // namespace mozilla