| File: MS\Internal\Documents\IParentUndoUnit.cs | Web Access |
| Project: src\wpf\src\Microsoft.DotNet.Wpf\src\PresentationFramework\PresentationFramework.csproj (PresentationFramework) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. // // Description: // // See spec at Undo spec.htm // namespace MS.Internal.Documents { /// <summary> /// IParentUndoUnit interface /// </summary> internal interface IParentUndoUnit : IUndoUnit { //------------------------------------------------------ // // Constructors // //------------------------------------------------------ //------------------------------------------------------ // // Public Methods // //------------------------------------------------------ #region Public Methods /// <summary> /// Clear all units from the IParentUndoUnit. These units aren't "undone", they're simply deleted. /// </summary> void Clear(); /// <summary> /// Open a new IParentUndoUnit inside the deepest open IParentUndoUnit. /// IParentUndoUnits can nest arbitrarily deep. /// </summary> /// <param name="newUnit">IParentUndoUnit to open</param> void Open(IParentUndoUnit newUnit); /// <summary> /// Closes the open IParentUndoUnit within the IUndoService /// </summary> void Close(UndoCloseAction closeAction); /// <summary> /// Closes the given open IParentUndoUnit within the current container or its child /// containers. If closingUnit == null, IParentUndoUnit's currently open unit (if any) /// is closed instead. /// </summary> void Close(IParentUndoUnit closingUnit, UndoCloseAction closeAction); /// <summary> /// Adds the given unit to the deepest open IParentUndoUnit. Since newUnit is not /// necessarily an IParentUndoUnit, newUnit is not opened. /// </summary> /// <param name="newUnit">IUndoUnit to add</param> void Add(IUndoUnit newUnit); /// <summary> /// Notifies the last parent undo unit in the collection that a new unit has been added /// to the collection. The undo manager or containing parent undo unit calls this /// function on its most recently added parent undo unit to notify it that the context /// has changed and no further modifications should be made to it. /// </summary> void OnNextAdd(); /// <summary> /// Notifies the last parent undo unit in the collection that the unit immediately /// after it has been discarded. The undo manager or containing parent undo unit calls this /// function on its most recently added parent undo unit to notify it that it should unlock. /// its last unit to allow it to be changed again. /// </summary> void OnNextDiscard(); #endregion Public Methods //------------------------------------------------------ // // Public Properties // //------------------------------------------------------ #region Public Properties /// <summary> /// Last unit added to the IParentUndoUnit /// </summary> IUndoUnit LastUnit { get; } /// <summary> /// Readonly access to the unit currently open at the top level of this IParentUndoUnit /// </summary> IParentUndoUnit OpenedUnit { get; } /// <summary> /// text description of this unit /// </summary> string Description { get; set; } /// <summary> /// Whether or not the unit can accept new changes /// </summary> bool Locked { get; } /// <summary> /// IUndoService or IParentUndoUnit that contains this IParentUndoUnit. This is a backpointer /// only-- setting this value does not change the IParentUndoUnit's actual container. /// </summary> object Container { get; set; } #endregion Public Properties } }