コード例 #1
0
        /// <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;
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public SaveIfRequiredCommand(Corner2CornerProject project, ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager)
 {
     this.saveCommand     = new SaveCommand(project, commandsInput);
     this.project         = project;
     this.commandsInput   = commandsInput;
     this.undoRedoManager = undoRedoManager;
 }
コード例 #4
0
 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;
 }
コード例 #5
0
        /// <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;
        }
コード例 #6
0
ファイル: LoadCommand.cs プロジェクト: fergusbown/crochet
 public LoadCommand(Corner2CornerProject project, ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager)
     : base(
         project,
         commandsInput,
         Corner2CornerCommandOptions.New().ChangesEverything().ResetsOperations())
 {
     this.undoRedoManager = undoRedoManager;
 }
コード例 #7
0
 public static void Do(this IUndoRedoManager undoRedoManager, IEnumerable <ICommand> commands)
 {
     foreach (var command in commands)
     {
         if (!undoRedoManager.Do(command))
         {
             return;
         }
     }
 }
コード例 #8
0
ファイル: MainForm.cs プロジェクト: fergusbown/crochet
        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;
        }
コード例 #9
0
        /// <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;
        }
コード例 #10
0
        /// <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;
        }
コード例 #11
0
ファイル: DropdownVM.cs プロジェクト: jimfasoline/OpenTracker
        /// <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;
        }
コード例 #12
0
        /// <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);
        }
コード例 #13
0
        /// <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;
        }
コード例 #14
0
        /// <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;
        }
コード例 #15
0
 /// <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;
 }
コード例 #16
0
        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);
        }
コード例 #17
0
        /// <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;
        }
コード例 #18
0
        /// <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;
        }
コード例 #19
0
        /// <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;
        }
コード例 #20
0
        /// <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;
        }
コード例 #21
0
        /// <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;
            }
        }
コード例 #22
0
        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);
                }
            }
        }
コード例 #23
0
        public static bool IsLastCommand <TCommand>(this IUndoRedoManager manager, Predicate <TCommand> predicate) where TCommand : class, IUndoRedoAction
        {
            var command = LastCommand(manager, predicate);

            return(command != null);
        }
コード例 #24
0
 public CommandUndo(IUndoRedoManager history)
 {
     _history = history;
 }
コード例 #25
0
            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();
            }
コード例 #26
0
ファイル: TopMenuVM.cs プロジェクト: jimfasoline/OpenTracker
        /// <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;
        }
コード例 #27
0
        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);
        }
コード例 #28
0
 public SaveTextPatternCommand(Corner2CornerProject project, ICorner2CornerCommandsInput commandsInput, IUndoRedoManager undoRedoManager)
     : base(project, commandsInput, Corner2CornerCommandOptions.New().WithoutUndo())
 {
     this.undoRedoManager = undoRedoManager;
 }
コード例 #29
0
 public static bool IsLastCommand <TCommand>(this IUndoRedoManager manager) where TCommand : class, IUndoRedoAction
 {
     return(IsLastCommand <TCommand>(manager, x => true));
 }