예제 #1
0
 public void SpeedUpgradeClicked()
 {
     if (SpeedUp != null)
     {
         SpeedUp.Invoke();
     }
 }
예제 #2
0
        /// <param name="win">Окно управления</param>
        public Controller(Control win)
        {
            Form main = win.FindForm();

            win.MouseDown += (s, e) =>
            {
                switch (e.Button)
                {
                case MouseButtons.Left:
                    _isLeftMouseDown     = true;
                    CurrentMousePosition = new Point(e.X, e.Y);
                    break;

                case MouseButtons.Right:
                    _isRightMouseDown    = true;
                    CurrentMousePosition = new Point(e.X, e.Y);
                    break;

                case MouseButtons.Middle:
                    _isMiddleMouseDown   = true;
                    CurrentMousePosition = new Point(e.X, e.Y);
                    break;
                }
            };
            win.MouseUp += (s, e) =>
            {
                switch (e.Button)
                {
                case MouseButtons.Left:
                    _isLeftMouseDown = false;
                    break;

                case MouseButtons.Right:
                    _isRightMouseDown = false;
                    break;

                case MouseButtons.Middle:
                    _isMiddleMouseDown = false;
                    break;
                }
            };
            win.MouseMove += (s, e) =>
            {
                CursorPositionChanged?.Invoke(e.X, e.Y);
                // определить обработку только одной кнопки мыши
                if (_isLeftMouseDown)
                {
                    ShiftByPixel?.Invoke(e.X - CurrentMousePosition.X, e.Y - CurrentMousePosition.Y);
                    CurrentMousePosition = new Point(e.X, e.Y);
                }
                else if (_isMiddleMouseDown)
                {
                    main.Location = new Point(main.Location.X + e.X - CurrentMousePosition.X, main.Location.Y + e.Y - CurrentMousePosition.Y);
                }
            };
            win.MouseWheel += (s, e) =>
            {
                if (e.Delta > 0)
                {
                    ZoomIn?.Invoke(e.X, e.Y);
                }
                else
                {
                    ZoomOut?.Invoke(e.X, e.Y);
                }
            };
            win.KeyUp += (s, e) =>
            {
                Console.WriteLine(e.KeyValue);
                // нажатия на цифру и
                // ЛКМ - уменьшение параметра
                // ПКМ - увеличение параметра
                if (e.KeyValue > 48 && e.KeyValue < 58)
                {
                    if (_isLeftMouseDown)
                    {
                        ParameterReduced?.Invoke(e.KeyValue - 48);
                    }
                    if (_isRightMouseDown)
                    {
                        ParameterIncreased?.Invoke(e.KeyValue - 48);
                    }
                }
                switch ((HotKeys)e.KeyCode)
                {
                case HotKeys.SpeedDown:
                    SpeedDown?.Invoke();
                    break;

                case HotKeys.SpeedUp:
                    SpeedUp?.Invoke();
                    break;

                case HotKeys.StopPlay:
                    StopPlay?.Invoke();
                    break;

                case HotKeys.Statistic:
                    StatisticModeChange?.Invoke();
                    break;

                case HotKeys.ChangeWindowMode:
                    WindowModeChanged?.Invoke();
                    break;

                case HotKeys.FpsUp:
                case HotKeys.FpsUp2:
                    FpsUp?.Invoke();
                    break;

                case HotKeys.FpsDown:
                case HotKeys.FpsDown2:
                    FpsDown?.Invoke();
                    break;

                case HotKeys.SpfUp:
                    StagesByFrameUp?.Invoke();
                    break;

                case HotKeys.SpfDown:
                    StagesByFrameDown?.Invoke();
                    break;

                case HotKeys.Exit:
                    Exit?.Invoke();
                    break;
                }
            };
        }