public void SpeedUpgradeClicked() { if (SpeedUp != null) { SpeedUp.Invoke(); } }
/// <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; } }; }