public ClipboardListViewModel(
            IAction[] allActions,
            IClipboardUserInterfaceMediator clipboardUserInterfaceMediator,

            // ReSharper disable once SuggestBaseTypeForParameter
            IKeyInterceptor hotkeyInterceptor,
            IAsyncListDictionaryBinder <IClipboardDataControlPackage, IAction> packageActionBinder,
            IAsyncFilter asyncFilter,
            IPerformanceHandleFactory performanceHandleFactory,
            IUserInterfaceThread userInterfaceThread)
        {
            Elements = new ObservableCollection <IClipboardDataControlPackage>();
            Actions  = new ObservableCollection <IAction>();

            Actions.CollectionChanged += Actions_CollectionChanged;

            var pasteAction = allActions.OfType <IPasteAction>()
                              .Single();

            this.allActions = allActions.Where(x => x != pasteAction)
                              .ToArray();
            this.clipboardUserInterfaceMediator = clipboardUserInterfaceMediator;
            this.packageActionBinder            = packageActionBinder;
            this.asyncFilter = asyncFilter;
            this.performanceHandleFactory = performanceHandleFactory;
            this.userInterfaceThread      = userInterfaceThread;

            PreparePackageBinder(pasteAction);

            RegisterMediatorEvents(clipboardUserInterfaceMediator);
            RegisterKeyEvents(hotkeyInterceptor);
        }
示例#2
0
        public ClipboardUserInterfaceInteractionMediator(
            IClipboardCopyInterceptor clipboardCopyInterceptor,
            IPasteCombinationDurationMediator pasteCombinationDurationMediator,
            IPasteHotkeyInterceptor pasteHotkeyInterceptor,
            IClipboardPersistanceService clipboardPersistanceService,
            IClipboardDataControlPackageFactory clipboardDataControlPackageFactory,
            IKeyInterceptor hotkeyInterceptor,
            IMouseWheelHook mouseWheelHook,
            ILogger logger,
            IClipboardInjectionService clipboardInjectionService)
        {
            this.clipboardCopyInterceptor           = clipboardCopyInterceptor;
            this.pasteCombinationDurationMediator   = pasteCombinationDurationMediator;
            this.pasteHotkeyInterceptor             = pasteHotkeyInterceptor;
            this.clipboardPersistanceService        = clipboardPersistanceService;
            this.clipboardDataControlPackageFactory = clipboardDataControlPackageFactory;
            this.hotkeyInterceptor         = hotkeyInterceptor;
            this.mouseWheelHook            = mouseWheelHook;
            this.logger                    = logger;
            this.clipboardInjectionService = clipboardInjectionService;

            clipboardPackages = new List <IClipboardDataControlPackage>();

            SetupHotkeyInterceptor();
            SetupMouseHook();
        }
 public MainWindowPreparationOperation(
     IClipboardListWindow mainWindow,
     IClipboardUserInterfaceInteractionMediator clipboardUserInterfaceInteractionMediator,
     IMainWindowHandleContainer handleContainer,
     IKeyInterceptor keyInterceptor,
     IWindowMessageHook windowMessageHook)
 {
     this.mainWindow = mainWindow;
     this.clipboardUserInterfaceInteractionMediator = clipboardUserInterfaceInteractionMediator;
     this.handleContainer = handleContainer;
     this.keyInterceptor = keyInterceptor;
     this.windowMessageHook = windowMessageHook;
 }
示例#4
0
        public MainWindowPreparationOperation(
            IClipboardListWindow mainWindow,
            IClipboardUserInterfaceInteractionMediator clipboardUserInterfaceInteractionMediator,
            IMainWindowHandleContainer handleContainer,
            IKeyInterceptor keyInterceptor,
            IWindowMessageHook windowMessageHook)
        {
            this.mainWindow = mainWindow;
            this.clipboardUserInterfaceInteractionMediator = clipboardUserInterfaceInteractionMediator;
            this.handleContainer   = handleContainer;
            this.keyInterceptor    = keyInterceptor;
            this.windowMessageHook = windowMessageHook;

            SetupWindowMessageHook();
        }
        public MainWindowPreparationOperation(
            IMainWindow mainWindow,
            IClipboardUserInterfaceInteractionMediator clipboardUserInterfaceInteractionMediator,
            IMainWindowHandleContainer handleContainer,
            IKeyInterceptor keyInterceptor,
            IWindowMessageHook windowMessageHook,
            ISourceClipboardQuantityOverlay sourceClipboardQuantityOverlay)
        {
            this.mainWindow = mainWindow;
            this.clipboardUserInterfaceInteractionMediator = clipboardUserInterfaceInteractionMediator;
            this.handleContainer   = handleContainer;
            this.keyInterceptor    = keyInterceptor;
            this.windowMessageHook = windowMessageHook;
            this.sourceClipboardQuantityOverlay = sourceClipboardQuantityOverlay;

            SetupWindowMessageHook();
        }
示例#6
0
        public ClipboardListWindow(
            IClipboardListViewModel viewModel,
            IKeyInterceptor keyInterceptor,
            IWindowMessageHook windowMessageHook,
            IMainWindowHandleContainer handleContainer)
        {
            this.handleContainer   = handleContainer;
            this.keyInterceptor    = keyInterceptor;
            this.viewModel         = viewModel;
            this.windowMessageHook = windowMessageHook;

            SourceInitialized += ClipboardListWindow_SourceInitialized;
            Activated         += ClipboardListWindow_Activated;

            InitializeComponent();

            SetupViewModel();
        }
        public ClipboardListWindow(
            IClipboardListViewModel viewModel,
            IKeyInterceptor keyInterceptor,
            IWindowMessageHook windowMessageHook,
            IMainWindowHandleContainer handleContainer)
        {
            this.handleContainer = handleContainer;
            this.keyInterceptor = keyInterceptor;
            this.viewModel = viewModel;
            this.windowMessageHook = windowMessageHook;

            SourceInitialized += ClipboardListWindow_SourceInitialized;
            Activated += ClipboardListWindow_Activated;

            InitializeComponent();

            SetupViewModel();
        }
 void RegisterKeyEvents(
     IKeyInterceptor hotkeyInterceptor)
 {
     hotkeyInterceptor.HotkeyFired += HotkeyInterceptor_HotkeyFired;
 }