1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- /* -*- 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 InsertNodeTransaction_h
- #define InsertNodeTransaction_h
- #include "mozilla/EditTransactionBase.h" // for EditTransactionBase, etc.
- #include "nsCOMPtr.h" // for nsCOMPtr
- #include "nsCycleCollectionParticipant.h"
- #include "nsIContent.h" // for nsIContent
- #include "nsISupportsImpl.h" // for NS_DECL_ISUPPORTS_INHERITED
- namespace mozilla {
- class EditorBase;
- /**
- * A transaction that inserts a single element
- */
- class InsertNodeTransaction final : public EditTransactionBase
- {
- public:
- /**
- * Initialize the transaction.
- * @param aNode The node to insert.
- * @param aParent The node to insert into.
- * @param aOffset The offset in aParent to insert aNode.
- */
- InsertNodeTransaction(nsIContent& aNode, nsINode& aParent, int32_t aOffset,
- EditorBase& aEditorBase);
- NS_DECL_ISUPPORTS_INHERITED
- NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(InsertNodeTransaction,
- EditTransactionBase)
- NS_DECL_EDITTRANSACTIONBASE
- protected:
- virtual ~InsertNodeTransaction();
- // The element to insert.
- nsCOMPtr<nsIContent> mNode;
- // The node into which the new node will be inserted.
- nsCOMPtr<nsINode> mParent;
- // The index in mParent for the new node.
- int32_t mOffset;
- // The editor for this transaction.
- RefPtr<EditorBase> mEditorBase;
- };
- } // namespace mozilla
- #endif // #ifndef InsertNodeTransaction_h
|