private void DelayedPasteCommand(object sender, DelayerActionEventArgs <object> e)
 {
     if (DisplayBarCommand.CanExecute(null))
     {
         DisplayBarCommand.Execute(null);
     }
 }
 private void MouseAndKeyboardHookService_HotKeyDetected(object sender, HotKeyEventArgs e)
 {
     if (DisplayBarCommand.CanExecute(null))
     {
         Logger.Instance.Information($"The keyboard shortcut has hit.");
         e.Handled = true;
         _delayedPasteCommand.ResetAndTick();
     }
 }
        private void MouseAndKeyboardHookService_MouseAction(object sender, MouseHookEventArgs e)
        {
            switch (Settings.Default.PasteBarPosition)
            {
            case PasteBarPosition.Top:
                if (e.WheelAction == MouseWheelAction.WheelDown)
                {
                    var activeScreen = Screen.FromPoint(new System.Drawing.Point(System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y));
                    var screen       = SystemInfoHelper.GetAllScreenInfos().Single(s => s.DeviceName == activeScreen.DeviceName);

                    if (e.Coords.Y <= screen.Bounds.Top + 5 && DisplayBarCommand.CanExecute(null))
                    {
                        e.Handled = true;
                        Logger.Instance.Information($"Mouse gesture detected at the top of the screen.");
                        _delayedPasteCommand.ResetAndTick();
                    }
                }
                break;

            case PasteBarPosition.Bottom:
                if (e.WheelAction == MouseWheelAction.WheelUp)
                {
                    var activeScreen = Screen.FromPoint(new System.Drawing.Point(System.Windows.Forms.Cursor.Position.X, System.Windows.Forms.Cursor.Position.Y));
                    var screen       = SystemInfoHelper.GetAllScreenInfos().Single(s => s.DeviceName == activeScreen.DeviceName);

                    if (e.Coords.Y >= screen.Bounds.Bottom + screen.Bounds.Top - 5 && DisplayBarCommand.CanExecute(null))
                    {
                        e.Handled = true;
                        Logger.Instance.Information($"Mouse gesture detected at the bottom of the screen.");
                        _delayedPasteCommand.ResetAndTick();
                    }
                }
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }