/// <summary> /// Constructor /// </summary> /// <param name="colorSettings"> /// The color settings data. /// </param> /// <param name="requirements"> /// The requirement dictionary. /// </param> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="alternativeFactory"> /// An Autofac factory for creating alternative requirements. /// </param> /// <param name="alwaysDisplayFactory"> /// An Autofac factory for creating always display dungeon items requirements. /// </param> /// <param name="dungeon"> /// The dungeon whose small keys are to be represented. /// </param> public SmallKeySmallItemVM( IColorSettings colorSettings, IRequirementDictionary requirements, IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, AlternativeRequirement.Factory alternativeFactory, AlwaysDisplayDungeonItemsRequirement.Factory alwaysDisplayFactory, IDungeon dungeon) { _colorSettings = colorSettings; _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _item = dungeon.SmallKeyItem; _spacerRequirement = alternativeFactory(new List <IRequirement> { alwaysDisplayFactory(true), requirements[RequirementType.SmallKeyShuffleOn] }); _requirement = dungeon.ID == LocationID.EasternPalace ? requirements[RequirementType.KeyDropShuffleOn] : requirements[RequirementType.NoRequirement]; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _colorSettings.PropertyChanged += OnColorsChanged; _item.PropertyChanged += OnItemChanged; _requirement.PropertyChanged += OnRequirementChanged; _spacerRequirement.PropertyChanged += OnRequirementChanged; }
public void MouseMove(PointF point) { IUndoRedoManager undo = null; if (_list.Count > 0) { IHMIForm form = _list[0].Parant; undo = form.Studio.Undo; } Invalidate(); if (undo != null) { undo.StartTransaction("Move"); } foreach (IDrawObj obj in _list) { obj.MouseMove(point); } if (undo != null) { undo.EndTransaction(); } SetListRect(); SetRotatePointPos(); Invalidate(true); }
public SaveIfRequiredCommand(Corner2CornerProject project, ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager) { this.saveCommand = new SaveCommand(project, commandsInput); this.project = project; this.commandsInput = commandsInput; this.undoRedoManager = undoRedoManager; }
public UndoRedoInputHandler(IUndoRedoManager undoRedoManager, IClock clock) { _undoRedoManager = undoRedoManager ?? throw new ArgumentNullException(nameof(undoRedoManager)); _clock = clock ?? throw new ArgumentNullException(nameof(clock)); // Time to accumulate changes _minSnapshotTime = TimeSpan.FromSeconds(1.5); _lastSnapshotTime = DateTime.MinValue; }
/// <summary> /// Konstruktor. /// </summary> /// <param name="viewManager">Obiekt menadżera widoków.</param> /// <param name="view">Obiekt zarządzanego przez prezentera widoku.</param> /// <param name="undoRedoManager">Menadżer cofania/przywracania zmian.</param> public UndoCommandPresenter(IViewManager viewManager, ICommandView view, IUndoRedoManager undoRedoManager) : base(viewManager, view) { this.undoRedoManager = undoRedoManager; this.undoRedoManager.CanUndoChanged += new EventHandler <EventArgs <bool> >(CanUndoChangedHandler); this.View.IsExecutable = this.undoRedoManager.CanUndo; }
public LoadCommand(Corner2CornerProject project, ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager) : base( project, commandsInput, Corner2CornerCommandOptions.New().ChangesEverything().ResetsOperations()) { this.undoRedoManager = undoRedoManager; }
public static void Do(this IUndoRedoManager undoRedoManager, IEnumerable <ICommand> commands) { foreach (var command in commands) { if (!undoRedoManager.Do(command)) { return; } } }
public MainForm() { InitializeComponent(); this.pictureBoxAdapter = new PictureBoxAdapter(this.pictureBox); this.pictureBoxAdapter.MouseOverPixel += PictureBoxAdapter_MouseOverPixel; this.undoRedoManager = new UndoRedoManager(); this.project = Corner2CornerProjectFactory.Create(this, this.undoRedoManager); this.undoToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Undo(); this.redoToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Redo(); this.openToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.Load)); this.openToolStripButton.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.Load)); this.saveToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.Save)); this.saveToolStripButton.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.Save)); this.saveAsToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SaveAs)); this.closeProjectToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.Close)); this.generateGridToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.GenerateImageGrid)); this.generateGridToolStripButton.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.GenerateImageGrid)); this.saveTextPatternToolStripButton.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SaveTextPattern)); this.saveTextPatternToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SaveTextPattern)); this.saveImagePatternToolStripButton.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SaveImagePattern)); this.saveImagePatternToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SaveImagePattern)); this.gridColorToolStripLabel.DoubleClick += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SetGridBackground)); this.setGridBackgroundColorToolStripMenuItem.Click += (s, e) => this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SetGridBackground)); this.pictureBoxAdapter.MouseClickPixel += (s, e) => { this.clickImagePoint = e.Location; this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.ClickImage)); }; this.FormClosing += (s, e) => { e.Cancel = !this.undoRedoManager.Do(this.project.Commands.GetCommand(Corner2CornerCommand.SaveIfRequired)); }; this.exitToolStripMenuItem.Click += (s, e) => this.Close(); this.gridWidthToolStripTextBox.TextChanged += GridWidthToolStripTextBox_TextChanged; ProjectChange(new ProjectChangeDetails(true, true, true)); Application.Idle += Application_Idle; }
/// <summary> /// Constructor /// </summary> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="section"> /// The entrance section to be represented. /// </param> public EntranceSectionIconVM( IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IEntranceSection section) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _section = section; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _section.PropertyChanged += OnSectionChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="imageSourceBase"> /// A string representing the base image source. /// </param> /// <param name="item"> /// An item that is to be represented by this control. /// </param> public LargeItemVM( IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IItem item, string imageSourceBase) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _item = item; _imageSourceBase = imageSourceBase; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _item.PropertyChanged += OnItemChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// The factory for creating undoable actions. /// </param> /// <param name="imageSourceBase"> /// A string representing the base image source. /// </param> /// <param name="dropdown"> /// An item that is to be represented by this control. /// </param> public DropdownVM( IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IDropdown dropdown, string imageSourceBase) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _dropdown = dropdown; _imageSourceBase = imageSourceBase; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _dropdown.PropertyChanged += OnDropdownChanged; }
/// <summary> /// Konstruktor. /// </summary> /// <param name="subtitlesManager">Menadżer zarządzający obiektami napisów.</param> /// <param name="undoRedoManager">Obiekt implementujący zachowania menadżera wycofywania/przywracania zmian.</param> public SubtitlesEditor(SubtitlesManager subtitlesManager, IUndoRedoManager undoRedoManager) { this.SubtitlesManager = subtitlesManager; this.SubtitlesManager.CurrentSubtitlesChanged += new EventHandler <SubtitlesChangedEventArgs>(SubtitlesManagerSubtitlesChangedHandler); this.UndoRedoManager = undoRedoManager; this.Subtitles = subtitlesManager.CurrentSubtitles; this.Subtitles.ContentChanged += new EventHandler <SubtitlesContentChangedEventArgs>(SubtitlesContentChangedHandler); this.editState = new SubtitlesEditState(); this.Clipboard = new SubtitlesClipboard(this); }
/// <summary> /// Constructor /// </summary> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// The factory for creating undoable actions. /// </param> /// <param name="imageSourceBase"> /// A string representing the base image source. /// </param> /// <param name="section"> /// An item that is to be represented by this control. /// </param> public PrizeLargeItemVM( IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IPrizeSection section, string imageSourceBase) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _section = section; _imageSourceBase = imageSourceBase; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _section.PropertyChanged += OnSectionChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="prizes"> /// The prizes dictionary. /// </param> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="section"> /// The prize section to be represented. /// </param> public PrizeSmallItemVM( IPrizeDictionary prizes, IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IPrizeSection section) { _prizes = prizes; _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _section = section; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _section.PropertyChanged += OnSectionChanged; _section.PrizePlacement.PropertyChanged += OnPrizeChanged; }
/// <summary> /// Constructor /// </summary> public ResetManager( IAutoTracker autoTracker, IBossPlacementDictionary bossPlacements, IConnectionCollection connections, IDropdownDictionary dropdowns, IItemDictionary items, ILocationDictionary locations, IPinnedLocationCollection pinnedLocations, IPrizePlacementDictionary prizePlacements, IUndoRedoManager undoRedoManager) { _autoTracker = autoTracker; _bossPlacements = bossPlacements; _connections = connections; _dropdowns = dropdowns; _items = items; _locations = locations; _pinnedLocations = pinnedLocations; _prizePlacements = prizePlacements; _undoRedoManager = undoRedoManager; }
public static TCommand LastCommand <TCommand>(this IUndoRedoManager manager, Predicate <TCommand> predicate) where TCommand : class, IUndoRedoAction { var command = manager.History.FirstOrDefault() as TCommand; if (command == null) { var composite = manager.History.FirstOrDefault() as CompositeUndoRedoAction; if (composite != null && composite.Actions.Count == 1) { command = composite.Actions[0] as TCommand; } } return(command != null && predicate(command) ? command : null); }
/// <summary> /// Constructor /// </summary> /// <param name="requirements"> /// The requirements dictionary. /// </param> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="imageSourceBase"> /// A string representing the image source base. /// </param> /// <param name="item"> /// An item that is to be represented by this control. /// </param> public SmallKeyLargeItemVM( IRequirementDictionary requirements, IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IItem item, string imageSourceBase) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _item = item; _requirement = requirements[RequirementType.GenericKeys]; _imageSourceBase = imageSourceBase; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _item.PropertyChanged += OnItemChanged; _requirement.PropertyChanged += OnRequirementChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="layoutSettings"> /// The layout settings data. /// </param> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="location"> /// The location to be represented. /// </param> /// <param name="sections"> /// The observable collection of section control ViewModels. /// </param> /// <param name="notes"> /// The pinned location note area control. /// </param> public PinnedLocationVM( ILayoutSettings layoutSettings, IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, ILocation location, List <ISectionVM> sections, IPinnedLocationNoteAreaVM notes) { _layoutSettings = layoutSettings; _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _location = location; Sections = sections; Notes = notes; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _layoutSettings.PropertyChanged += OnLayoutChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="dungeon"> /// The dungeon whose big keys are to be represented. /// </param> /// <param name="requirement"> /// The requirement for the control to be visible. /// </param> /// <param name="spacerRequirement"> /// The requirement for the control to take reserve space. /// </param> public BigKeySmallItemVM( IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IDungeon dungeon, IRequirement requirement, IRequirement spacerRequirement) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _item = dungeon.BigKeyItem ?? throw new ArgumentOutOfRangeException(nameof(dungeon)); _requirement = requirement; _spacerRequirement = spacerRequirement; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _item.PropertyChanged += OnItemChanged; _requirement.PropertyChanged += OnRequirementChanged; _spacerRequirement.PropertyChanged += OnRequirementChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="colorSettings"> /// The color settings data. /// </param> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// The factory for creating undoable actions. /// </param> /// <param name="imageSource"> /// A string representing the image source. /// </param> /// <param name="item"> /// An item that is to be represented by this control. /// </param> public CrystalRequirementLargeItemVM( IColorSettings colorSettings, IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, ICrystalRequirementItem item, string imageSource) { _colorSettings = colorSettings; _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _item = item; ImageSource = imageSource; HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); _item.PropertyChanged += OnItemChanged; _colorSettings.PropertyChanged += OnColorsChanged; _colorSettings.AccessibilityColors.PropertyChanged += OnColorsChanged; }
/// <summary> /// Constructor /// </summary> /// <param name="undoRedoManager"> /// The undo/redo manager. /// </param> /// <param name="undoableFactory"> /// A factory for creating undoable actions. /// </param> /// <param name="imageSourceBase"> /// A string representing the image source base. /// </param> /// <param name="items"> /// An array of items that are to be represented by this control. /// </param> public PairLargeItemVM( IUndoRedoManager undoRedoManager, IUndoableFactory undoableFactory, IItem[] items, string imageSourceBase) { _undoRedoManager = undoRedoManager; _undoableFactory = undoableFactory; _items = items; _imageSourceBase = imageSourceBase; if (_items.Length != 2) { throw new ArgumentOutOfRangeException(nameof(items)); } HandleClick = ReactiveCommand.Create <PointerReleasedEventArgs>(HandleClickImpl); foreach (var item in _items) { item.PropertyChanged += OnItemChanged; } }
public static IEnumerable <IUndoRedoCommand> Commands(this IUndoRedoManager manager) { foreach (var action in manager.History) { var command = action as IUndoRedoCommand; if (command == null) { var composite = action as CompositeUndoRedoAction; if (composite != null) { foreach (var nested in composite.Actions.OfType <IUndoRedoCommand>()) { yield return(nested); } } } else { yield return(command); } } }
public static bool IsLastCommand <TCommand>(this IUndoRedoManager manager, Predicate <TCommand> predicate) where TCommand : class, IUndoRedoAction { var command = LastCommand(manager, predicate); return(command != null); }
public CommandUndo(IUndoRedoManager history) { _history = history; }
public CommandFactory(ICorner2CornerCommandsInput commandsInput, Corner2CornerProject project, IUndoRedoManager undoRedoManager) { ContainerBuilder builder = new ContainerBuilder(); builder.RegisterInstance(commandsInput).As <ICorner2CornerCommandsInput>(); builder.RegisterInstance(project).As <Corner2CornerProject>(); builder.RegisterInstance(undoRedoManager).As <IUndoRedoManager>(); var commands = CommandDiscovery.FindCommands <Corner2CornerCommandAttribute, Corner2CornerCommand>(Assembly.GetExecutingAssembly()); foreach (var command in commands) { builder.RegisterType(command.Value).Keyed <ICommand>(command.Key); } container = builder.Build(); }
/// <summary> /// Constructor /// </summary> public TopMenuVM( IAppSettings appSettings, IResetManager resetManager, ISaveLoadManager saveLoadManager, IUndoRedoManager undoRedoManager, IDialogService dialogService, IFileDialogService fileDialogService, IAutoTrackerDialogVM autoTrackerDialog, IColorSelectDialogVM colorSelectDialog, ISequenceBreakDialogVM sequenceBreakDialog, IAboutDialogVM aboutDialog, IErrorBoxDialogVM.Factory errorBoxFactory, IMessageBoxDialogVM.Factory messageBoxFactory) { _appSettings = appSettings; _resetManager = resetManager; _saveLoadManager = saveLoadManager; _undoRedoManager = undoRedoManager; _dialogService = dialogService; _fileDialogService = fileDialogService; _autoTrackerDialog = autoTrackerDialog; _colorSelectDialog = colorSelectDialog; _sequenceBreakDialog = sequenceBreakDialog; _aboutDialog = aboutDialog; _errorBoxFactory = errorBoxFactory; _messageBoxFactory = messageBoxFactory; Open = ReactiveCommand.CreateFromTask(OpenImpl); Open.IsExecuting.ToProperty(this, x => x.IsOpening, out _isOpening); Save = ReactiveCommand.CreateFromTask(SaveImpl); Save.IsExecuting.ToProperty(this, x => x.IsSaving, out _isSaving); SaveAs = ReactiveCommand.CreateFromTask(SaveAsImpl); SaveAs.IsExecuting.ToProperty(this, x => x.IsSavingAs, out _isSavingAs); Reset = ReactiveCommand.CreateFromTask(ResetImpl); Reset.IsExecuting.ToProperty(this, x => x.IsResetting, out _isResetting); Close = ReactiveCommand.Create <Window>(CloseImpl); Undo = ReactiveCommand.CreateFromTask(UndoImpl, this.WhenAnyValue(x => x.CanUndo)); Undo.IsExecuting.ToProperty(this, x => x.IsUndoing, out _isUndoing); Redo = ReactiveCommand.CreateFromTask(RedoImpl, this.WhenAnyValue(x => x.CanRedo)); Redo.IsExecuting.ToProperty(this, x => x.IsRedoing, out _isRedoing); AutoTracker = ReactiveCommand.CreateFromTask(AutoTrackerImpl); AutoTracker.IsExecuting.ToProperty( this, x => x.IsOpeningAutoTracker, out _isOpeningAutoTracker); SequenceBreaks = ReactiveCommand.CreateFromTask(SequenceBreaksImpl); SequenceBreaks.IsExecuting.ToProperty( this, x => x.IsOpeningSequenceBreak, out _isOpeningSequenceBreak); ToggleDisplayAllLocations = ReactiveCommand.Create(ToggleDisplayAllLocationsImpl); ToggleShowItemCountsOnMap = ReactiveCommand.Create(ToggleShowItemCountsOnMapImpl); ToggleDisplayMapsCompasses = ReactiveCommand.Create(ToggleDisplayMapsCompassesImpl); ToggleAlwaysDisplayDungeonItems = ReactiveCommand.Create(ToggleAlwaysDisplayDungeonItemsImpl); ColorSelect = ReactiveCommand.CreateFromTask(ColorSelectImpl); ColorSelect.IsExecuting.ToProperty( this, x => x.IsOpeningColorSelect, out _isOpeningColorSelect); ChangeLayoutOrientation = ReactiveCommand.Create <string>(ChangeLayoutOrientationImpl); ChangeMapOrientation = ReactiveCommand.Create <string>(ChangeMapOrientationImpl); ChangeHorizontalUIPanelPlacement = ReactiveCommand.Create <string>(ChangeHorizontalUIPanelPlacementImpl); ChangeVerticalUIPanelPlacement = ReactiveCommand.Create <string>(ChangeVerticalUIPanelPlacementImpl); ChangeHorizontalItemsPlacement = ReactiveCommand.Create <string>(ChangeHorizontalItemsPlacementImpl); ChangeVerticalItemsPlacement = ReactiveCommand.Create <string>(ChangeVerticalItemsPlacementImpl); ChangeUIScale = ReactiveCommand.Create <string>(ChangeUIScaleImpl); About = ReactiveCommand.CreateFromTask(AboutImpl); About.IsExecuting.ToProperty( this, x => x.IsOpeningAbout, out _isOpeningAbout); _undoRedoManager.PropertyChanged += OnUndoRedoManagerChanged; _appSettings.Tracker.PropertyChanged += OnTrackerSettingsChanged; _appSettings.Layout.PropertyChanged += OnLayoutChanged; }
public static ICorner2CornerProject Create(ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager) { Corner2CornerProject result = new Corner2CornerProject(); result.Commands = new CommandFactory(commandsInput, result, undoRedoManager); result.ChangeTracking.Track(ChangeTrackingOperation.SetNew); return(result); }
public SaveTextPatternCommand(Corner2CornerProject project, ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager) : base(project, commandsInput, Corner2CornerCommandOptions.New().WithoutUndo()) { this.undoRedoManager = undoRedoManager; }
public static bool IsLastCommand <TCommand>(this IUndoRedoManager manager) where TCommand : class, IUndoRedoAction { return(IsLastCommand <TCommand>(manager, x => true)); }