diff options
Diffstat (limited to 'editor/libeditor/EditorForwards.h')
-rw-r--r-- | editor/libeditor/EditorForwards.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/editor/libeditor/EditorForwards.h b/editor/libeditor/EditorForwards.h new file mode 100644 index 0000000000..2f54ba875c --- /dev/null +++ b/editor/libeditor/EditorForwards.h @@ -0,0 +1,166 @@ +/* -*- 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/. */ + +#ifndef mozilla_EditorHelperForwards_h +#define mozilla_EditorHelperForwards_h + +#include "mozilla/EnumSet.h" + +#include <cstdint> + +/****************************************************************************** + * Forward declarations of other modules' + ******************************************************************************/ +class nsIContent; +class nsINode; + +template <typename T> +class nsCOMPtr; + +template <typename T> +class RefPtr; + +namespace mozilla { + +template <typename V, typename E> +class Result; + +template <typename T> +class OwningNonNull; + +namespace dom { +class Element; +class Text; +} // namespace dom + +/****************************************************************************** + * enum classes + ******************************************************************************/ + +enum class CollectChildrenOption; // HTMLEditUtils.h +enum class EditAction; // mozilla/EditAction.h +enum class EditorCommandParamType : uint16_t; // mozilla/EditorCommands.h +enum class EditSubAction : int32_t; // mozilla/EditAction.h +enum class JoinNodesDirection; // JoinSplitNodeDirection.h +enum class ParagraphSeparator; // mozilla/HTMLEditor.h +enum class SpecifiedStyle : uint8_t; // mozilla/PendingStyles.h +enum class SplitNodeDirection; // JoinSplitNodeDirection.h +enum class SuggestCaret; // EditorUtils.h +enum class WithTransaction; // HTMLEditHelpers.h + +/****************************************************************************** + * enum sets + ******************************************************************************/ + +using CollectChildrenOptions = EnumSet<CollectChildrenOption>; +using SuggestCaretOptions = EnumSet<SuggestCaret>; + +/****************************************************************************** + * classes or structs which are required for template classes/structs + ******************************************************************************/ + +template <typename PT, typename CT> +class EditorDOMPointBase; // mozilla/EditorDOMPoint.h + +using EditorDOMPoint = + EditorDOMPointBase<nsCOMPtr<nsINode>, nsCOMPtr<nsIContent>>; +using EditorRawDOMPoint = EditorDOMPointBase<nsINode*, nsIContent*>; +using EditorDOMPointInText = EditorDOMPointBase<RefPtr<dom::Text>, nsIContent*>; +using EditorRawDOMPointInText = EditorDOMPointBase<dom::Text*, nsIContent*>; + +/****************************************************************************** + * classes + ******************************************************************************/ + +class AutoPendingStyleCacheArray; // mozilla/PendingStyles.h +class AutoSelectionRangeArray; // EditorUtils.h +class CaretPoint; // EditorUtils.h +class ChangeStyleTransaction; // ChangeStyleTransaction.h +class CSSEditUtils; // CSSEditUtils.h +class EditActionResult; // EditorUtils.h +class EditTransactionBase; // mozilla/EditTransactionBase.h +class EditorBase; // mozilla/EditorBase.h +class HTMLEditor; // mozilla/HTMLEditor.h +class ManualNACPtr; // mozilla/ManualNAC.h +class PendingStyle; // mozilla/PendingStyles.h +class PendingStyleCache; // mozilla/PendingStyles.h +class PendingStyles; // mozilla/PendingStyles.h +class RangeUpdater; // mozilla/SelectionState.h +class SelectionState; // mozilla/SelectionState.h +class TextEditor; // mozilla/TextEditor.h + +class AutoRangeArray; // AutoRangeArray.h +class ChangeAttributeTransaction; // ChangeAttributeTransaction.h +class CompositionTransaction; // CompositionTransaction.h +class DeleteNodeTransaction; // DeleteNodeTransaction.h +class DeleteRangeTransaction; // DeleteRangeTransaction.h +class DeleteTextTransaction; // DeleteTextTransaction.h +class EditAggregateTransaction; // EditAggregateTransaction.h +class EditorEventListener; // EditorEventListener.h +class EditResult; // HTMLEditHelpers.h +class HTMLEditorEventListener; // HTMLEditorEventListener.h +class InsertNodeTransaction; // InsertNodeTransaction.h +class InsertTextTransaction; // InsertTextTransaction.h +class InterCiter; // InterCiter.h +class JoinNodesResult; // HTMLEditHelpers.h +class JoinNodesTransaction; // JoinNodesTransaction.h +class MoveNodeResult; // HTMLEditHelpers.h +class MoveNodeTransaction; // MoveNodeTransaction.h +class PlaceholderTransaction; // PlaceholderTransaction.h +class ReplaceTextTransaction; // ReplaceTextTransaction.h +class SplitNodeResult; // HTMLEditHelpers.h +class SplitNodeTransaction; // SplitNodeTransaction.h +class SplitRangeOffFromNodeResult; // HTMLEditHelpers.h +class SplitRangeOffResult; // HTMLEditHelpers.h +class WhiteSpaceVisibilityKeeper; // WSRunObject.h +class WSRunScanner; // WSRunObject.h +class WSScanResult; // WSRunObject.h + +/****************************************************************************** + * structs + ******************************************************************************/ + +class EditorElementStyle; // HTMLEditHelpers.h +struct EditorInlineStyle; // HTMLEditHelpers.h +struct EditorInlineStyleAndValue; // HTMLEditHelpers.h +struct RangeItem; // mozilla/SelectionState.h + +/****************************************************************************** + * template classes + ******************************************************************************/ + +template <typename EditorDOMPointType> +class EditorDOMRangeBase; // mozilla/EditorDOMPoint.h + +template <typename NodeType> +class CreateNodeResultBase; // EditorUtils.h + +template <typename EditorDOMPointType> +class ReplaceRangeDataBase; // EditorUtils.h + +/****************************************************************************** + * aliases + ******************************************************************************/ + +using CreateContentResult = CreateNodeResultBase<nsIContent>; +using CreateElementResult = CreateNodeResultBase<dom::Element>; +using CreateTextResult = CreateNodeResultBase<dom::Text>; + +// InsertParagraphResult is an alias of CreateElementResult because it returns +// new paragraph from point of view of users (i.e., right paragraph if split) +// instead of newly created paragraph element. +using InsertParagraphResult = CreateElementResult; + +using EditorDOMRange = EditorDOMRangeBase<EditorDOMPoint>; +using EditorRawDOMRange = EditorDOMRangeBase<EditorRawDOMPoint>; +using EditorDOMRangeInTexts = EditorDOMRangeBase<EditorDOMPointInText>; +using EditorRawDOMRangeInTexts = EditorDOMRangeBase<EditorRawDOMPointInText>; + +using ReplaceRangeData = ReplaceRangeDataBase<EditorDOMPoint>; +using ReplaceRangeInTextsData = ReplaceRangeDataBase<EditorDOMPointInText>; + +} // namespace mozilla + +#endif // #ifndef mozilla_EditorHelperForwards_h |