Ejemplo n.º 1
0
 /// <inheritdoc />
 public void InputEvent(int xPos, int yPos, InputGestureEnum gesture)
 {
     if (gesture == InputGestureEnum.Click)
     {
         _dataContext.InputClick(xPos, yPos, ((NewsWidgetFull)FullWidget));
     }
 }
Ejemplo n.º 2
0
 /// <inheritdoc />
 public void InputEvent(int xPos, int yPos, InputGestureEnum gesture)
 {
     if (gesture == InputGestureEnum.Click)
     {
         _dataContext.InputClick(xPos, yPos, (SpotifyWidgetFull)_fullWidget);
     }
     if (gesture != InputGestureEnum.Position)
     {
         int a = 12;
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Handles timer event
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="e">Args</param>
        private void OnTimer(object sender, ElapsedEventArgs e)
        {
            _gesture = _gesture == InputGestureEnum.None && !System.Windows.Forms.Cursor.Position.Equals(_previousPosition) ?
                       InputGestureEnum.Position : _gesture;

            _previousPosition = System.Windows.Forms.Cursor.Position;

            ScreenInputEvent?.Invoke(
                this,
                new ScreenInputEventArg(
                    System.Windows.Forms.Cursor.Position.X,
                    System.Windows.Forms.Cursor.Position.Y,
                    _gesture));
            _gesture = InputGestureEnum.None;
            _timer.Start();
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Default constructor
        /// </summary>
        public MouseInput()
        {
            _settingsManager = new SettingsManager <MouseSettings>();
            _settingsManager.Initialize(Resources.SettingsFileName);

            _timer = new Timer(_settingsManager.Settings.RefreshPeriode.Value)
            {
                AutoReset = false
            };
            _timer.Elapsed += OnTimer;
            _timer.Start();

            _previousPosition = System.Windows.Forms.Cursor.Position;
            _gesture          = InputGestureEnum.None;

            Application.Current.MainWindow.MouseWheel += OnMouseWheelEvent;
            Application.Current.MainWindow.MouseDown  += OnMouseDownEvent;
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Instatiates screen input event oject
 /// </summary>
 /// <param name="x">X position</param>
 /// <param name="y">Y positon</param>
 /// <param name="gesture">Gesture</param>
 public ScreenInputEventArg(double x, double y, InputGestureEnum gesture)
 {
     XPos    = x;
     YPos    = y;
     Gesture = gesture;
 }
Ejemplo n.º 6
0
 /// <inheritdoc />
 public void InputEvent(int xPos, int yPos, InputGestureEnum gesture)
 {
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Handles mouse down event
 /// </summary>
 /// <param name="sender">Sender</param>
 /// <param name="e">Args</param>
 private void OnMouseDownEvent(object sender, MouseButtonEventArgs e)
 {
     _timer.Stop();
     _gesture = e.ChangedButton == MouseButton.Left ? InputGestureEnum.Click : InputGestureEnum.Exit;
     OnTimer(null, null);
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Handles mouse wheel event
 /// </summary>
 /// <param name="sender">Sender</param>
 /// <param name="e">Args</param>
 private void OnMouseWheelEvent(object sender, MouseWheelEventArgs e)
 {
     _timer.Stop();
     _gesture = e.Delta > 0 ? InputGestureEnum.RollIn : InputGestureEnum.Rollout;
     OnTimer(null, null);
 }
Ejemplo n.º 9
0
        /// <summary>
        /// Handles timer event
        /// </summary>
        /// <param name="sender">Sender</param>
        /// <param name="e">Args</param>
        private void OnTimer(object sender, ElapsedEventArgs e)
        {
            try
            {
                Frame  frame       = _controller.Frame();
                Hand   currentHand = GetRightHand(frame);
                Vector tip         = GetHandTip(currentHand);

                // Get reference frame get first time with a righthand
                if (_referenceFrame == null && currentHand != null)
                {
                    _referenceFrame = frame;
                }
                else if (_referenceFrame != null && currentHand == null)
                {
                    // Remove reference frame if no hand is detected
                    _referenceFrame = null;
                }

                // Compute gesture
                float rotation = 0;
                if (_referenceFrame != null && currentHand != null)
                {
                    rotation = currentHand.RotationAngle(_referenceFrame, Vector.ZAxis);
                }

                int screenX             = _settingsManager.Settings.ScreenX.Value;
                int screenY             = _settingsManager.Settings.ScreenY.Value;
                int screenH             = _settingsManager.Settings.ScreenHeight.Value;
                int delayBetweenActions = _settingsManager.Settings.DelayBetweenActions.Value;

                double xPos = tip == null ? 0f : tip.x * screenX / 180f + screenY;
                double yPos = tip == null ? 0f : screenH - tip.y * 4f;

                if (frame.Hands.Count == 2)
                {
                    _gesture = DateTime.Now.Subtract(_lastClick).TotalMilliseconds > delayBetweenActions ? InputGestureEnum.Exit : InputGestureEnum.None;
                }
                else if (_referenceFrame != null && Math.Abs(rotation) > Math.PI / 3)
                {
                    _gesture = rotation > 0 ? InputGestureEnum.RollIn : InputGestureEnum.Rollout;
                }
                else if (tip != null)
                {
                    _gesture = tip.z <0 && DateTime.Now.Subtract(_lastClick).TotalMilliseconds> delayBetweenActions ? InputGestureEnum.Click : InputGestureEnum.Position;
                }
                else
                {
                    _gesture = InputGestureEnum.None;
                }

                if (_gesture == InputGestureEnum.Click || _gesture == InputGestureEnum.Exit)
                {
                    _lastClick = DateTime.Now;
                }

                // Notify gesture
                ScreenInputEvent?.Invoke(this, new ScreenInputEventArg(xPos, yPos, _gesture));
            }
            catch (Exception ex)
            {
                LogManager.LogLine(ex.Message);
            }
            _timer.Start();
        }