/* -*- 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"EditorForwards.h" #include"EditTransactionBase.h"// for EditorTransactionBase
#include"nsCOMPtr.h"// for nsCOMPtr #include"nsCycleCollectionParticipant.h" #include"nsIContent.h" #include"nsISupportsImpl.h"// for NS_DECL_ISUPPORTS_INHERITED #include"nscore.h"// for NS_IMETHOD
namespace mozilla {
/** * A transaction that splits a node into two identical nodes, with the children * divided between the new nodes.
*/ class SplitNodeTransaction final : public EditTransactionBase { private: template <typename PT, typename CT>
SplitNodeTransaction(HTMLEditor& aHTMLEditor, const EditorDOMPointBase<PT, CT>& aStartOfRightContent);
public: /** * Creates a transaction to create a new node identical to an existing node, * and split the contents between the same point in both nodes. * * @param aHTMLEditor The provider of core editing operations. * @param aStartOfRightContent The point to split. Its container will be * split, and its preceding or following * content will be moved to the new node. And * the point will be start of the right node or * end of the left node.
*/ template <typename PT, typename CT> static already_AddRefed<SplitNodeTransaction> Create(
HTMLEditor& aHTMLEditor, const EditorDOMPointBase<PT, CT>& aStartOfRightContent);
// The split offset. At undoing, this is recomputed with tracking the // first child of mSplitContent.
uint32_t SplitOffset() const { return mSplitOffset; }
// The node which should be parent of both mNewContent and mSplitContent.
nsCOMPtr<nsINode> mParentNode;
// The node we create when splitting mSplitContent.
nsCOMPtr<nsIContent> mNewContent;
// The content node which we split.
nsCOMPtr<nsIContent> mSplitContent;
// The offset where we split in mSplitContent. This is required for doing and // redoing. Therefore, this is updated when undoing.
uint32_t mSplitOffset;
};
} // namespace mozilla
#endif// #ifndef SplitNodeTransaction_h
¤ Dauer der Verarbeitung: 0.15 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.