Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/editor/libeditor/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  DeleteTextTransaction.h   Sprache: 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/. */


#ifndef DeleteTextTransaction_h
#define DeleteTextTransaction_h

#include "DeleteContentTransactionBase.h"

#include "EditorForwards.h"

#include "mozilla/dom/Text.h"

#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsID.h"
#include "nsString.h"
#include "nscore.h"

namespace mozilla {

/**
 * A transaction that removes text from a content node.
 */

class DeleteTextTransaction final : public DeleteContentTransactionBase {
 protected:
  DeleteTextTransaction(EditorBase& aEditorBase, dom::Text& aTextNode,
                        uint32_t aOffset, uint32_t aLengthToDelete);

 public:
  /**
   * Creates a delete text transaction to remove given range.  This returns
   * nullptr if it cannot modify the text node.
   *
   * @param aEditorBase         The provider of basic editing operations.
   * @param aTextNode           The content node to remove text from.
   * @param aOffset             The location in aElement to begin the deletion.
   * @param aLenthToDelete      The length to delete.
   */

  static already_AddRefed<DeleteTextTransaction> MaybeCreate(
      EditorBase& aEditorBase, dom::Text& aTextNode, uint32_t aOffset,
      uint32_t aLengthToDelete);

  /**
   * Creates a delete text transaction to remove a previous or next character.
   * Those methods MAY return nullptr.
   *
   * @param aEditorBase         The provider of basic editing operations.
   * @param aTextNode           The content node to remove text from.
   * @param aOffset             The location in aElement to begin the deletion.
   */

  static already_AddRefed<DeleteTextTransaction>
  MaybeCreateForPreviousCharacter(EditorBase& aEditorBase, dom::Text& aTextNode,
                                  uint32_t aOffset);
  static already_AddRefed<DeleteTextTransaction> MaybeCreateForNextCharacter(
      EditorBase& aEditorBase, dom::Text& aTextNode, uint32_t aOffset);

  /**
   * CanDoIt() returns true if there are enough members and can modify the
   * text.  Otherwise, false.
   */

  bool CanDoIt() const;

  NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(DeleteTextTransaction,
                                           DeleteContentTransactionBase)
  NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr) override;

  NS_DECL_EDITTRANSACTIONBASE
  NS_DECL_EDITTRANSACTIONBASE_GETASMETHODS_OVERRIDE(DeleteTextTransaction)

  MOZ_CAN_RUN_SCRIPT NS_IMETHOD RedoTransaction() final;

  EditorDOMPoint SuggestPointToPutCaret() const final;

  dom::Text* GetText() const { return mTextNode; }
  uint32_t Offset() const { return mOffset; }
  uint32_t LengthToDelete() const { return mLengthToDelete; }

  friend std::ostream& operator<<(std::ostream& aStream,
                                  const DeleteTextTransaction& aTransaction);

 protected:
  // The CharacterData node to operate upon.
  RefPtr<dom::Text> mTextNode;

  // The offset into mTextNode where the deletion is to take place.
  uint32_t mOffset;

  // The length to delete.
  uint32_t mLengthToDelete;

  // The text that was deleted.
  nsString mDeletedText;
};

}  // namespace mozilla

#endif  // #ifndef DeleteTextTransaction_h

Messung V0.5
C=98 H=100 G=98

¤ Dauer der Verarbeitung: 0.27 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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 und die Messung sind noch experimentell.