public CopypastaController(IClipboard clipboard, IClipboardHistoryManager clipboardHistoryManager, IClipboardBindingManager clipboardBindingManager, IHotkey ctrlVHotkey, IHotkey ctrlCHotkey, IHotkey escHotkey, IKeyTracker keyTracker, IInputSimulator inputSimulator, INotificationDispatcher notificationDispatcher) { _clipboard = clipboard; _clipboardHistoryManager = clipboardHistoryManager; _clipboardBindingManager = clipboardBindingManager; _ctrlVHotkey = ctrlVHotkey; _ctrlCHotkey = ctrlCHotkey; _escHotkey = escHotkey; _keyTracker = keyTracker; _inputSimulator = inputSimulator; _notificationDispatcher = notificationDispatcher; _copypastaStateMachine = new StateMachine <CopypastaState, CopypastaTrigger>(CopypastaState.Idle); _keyPressedTrigger = _copypastaStateMachine.SetTriggerParameters <Key>(CopypastaTrigger.KeyPressed); ConfigureCopypastaStateMachine(); ConfigureEventTriggers(); }
public HistoryMenuViewModel(IClipboardHistoryManager clipboardHistoryManager) { _clipboardHistoryManager = clipboardHistoryManager; _modelToViewModelMappings = new Dictionary <IHistoryRecordModel, IHistoryRecordViewModel>(_clipboardHistoryManager.RecordCount); _historyList = new List <IHistoryRecordViewModel>(_clipboardHistoryManager.RecordCount); _clipboardHistoryManager.Subscribe(notification => { if (notification.WasRecordRemoved) { var removedRecord = _modelToViewModelMappings[notification.RemovedRecord]; _modelToViewModelMappings.Remove(notification.RemovedRecord); _historyList.Remove(removedRecord); } var addedRecord = new HistoryRecordViewModel(notification.AddedRecord); _modelToViewModelMappings[notification.AddedRecord] = addedRecord; _historyList.Add(addedRecord); OnPropertyChanged(nameof(HistoryList)); }); }