protected void OnMouseButtonDown(object sender, MouseButtonEventArgs e) { if (!Focused) { return; } gwenInput.ProcessMouseMessage(e); }
protected override void OnMouseDown(MouseButtonEventArgs e) { base.OnMouseDown(e); if (linerider.TrackFiles.TrackRecorder.Recording) { return; } var r = _input.ProcessMouseMessage(e); if (!r && (!Track.Animating || Track.Paused)) { if (!Track.Paused && OpenTK.Input.Keyboard.GetState()[Key.D]) { var pos = new Vector2d(e.X, e.Y) / Track.Zoom; var gamepos = (ScreenPosition + pos); _dragRider = Track.RiderRect.Contains((float)gamepos.X, (float)gamepos.Y); } if (!_dragRider) { if (e.Button == MouseButton.Left) { if (_handToolOverride) { _handtool.OnMouseDown(new Vector2d(e.X, e.Y)); } else { SelectedTool.OnMouseDown(new Vector2d(e.X, e.Y)); } } else if (e.Button == MouseButton.Right) { if (_handToolOverride) { _handtool.OnMouseRightDown(new Vector2d(e.X, e.Y)); } else { SelectedTool.OnMouseRightDown(new Vector2d(e.X, e.Y)); } } } if (e.Button != MouseButton.Right) { UpdateCursor(); } } else { Cursor = MouseCursor.Default; } Invalidate(); }
protected override void OnMouseMove(OpenTK.Input.MouseMoveEventArgs e) { base.OnMouseMove(e); try { input.ProcessMouseMessage(e); } catch (Exception ex) { //sdl eats exceptions Console.WriteLine(ex.ToString()); throw ex; } }
protected void OnMouseButtonDown(object sender, MouseButtonEventArgs e) { if (!Focused) { return; } //GL.MatrixMode(MatrixMode.Projection); //GL.LoadIdentity(); //GL.Ortho(-10, 10, -10, 10, -10, 10); //GLfloat m[16]; //glGetFloatv(GL_PROJECTION_MATRIX, m); int[] selectBuffer = new int[BUFSIZE]; //This has to be redifined int hits; int[] viewport = new int[4]; if (e.Button == MouseButton.Left) { GL.GetInteger(GetPName.Viewport, viewport); GL.SelectBuffer(BUFSIZE, selectBuffer); GL.RenderMode(RenderingMode.Select); GL.InitNames(); GL.PushName(0); GL.MatrixMode(MatrixMode.Projection); GL.PushMatrix(); GL.LoadIdentity(); UIntPtr Pixel = new UIntPtr(); GL.ReadPixels(e.X, viewport[3] - e.Y, 1, 1, PixelFormat.Rgba, PixelType.UnsignedByte, ref Pixel); uint SelectedTriangle = SelectedTriangle = Pixel.ToUInt32(); GL.Ortho(0, 3, 0, 3, 1, -1); // Bottom-left corner pixel has coordinate (0, 0) DrawSquares(GL.RenderMode(RenderingMode.Select)); GL.MatrixMode(MatrixMode.Projection); GL.PopMatrix(); GL.Flush(); hits = GL.RenderMode(RenderingMode.Render); ProcessHits(hits, selectBuffer); SwapBuffers(); } gwenInput.ProcessMouseMessage(e); }
public static void ProcessMouse(int oriX, int oriY) { EventArgs evnt = null; var pressed = false; prevMouseState = curMouseState; curMouseState = Mouse.GetCursorState(); Gwen.Input.InputHandler.HoveredControl = input.m_Canvas.GetControlAt(curMouseState.X - oriX, curMouseState.Y - oriY); foreach (var mouseCode in mouseCodes) { if (curMouseState[mouseCode] != prevMouseState[mouseCode]) { evnt = new MouseButtonEventArgs(curMouseState.X - oriX, curMouseState.Y - oriY, mouseCode, true);//last param bugged //evnt = new MouseButtonEventArgs (curMouseState.X, curMouseState.Y, mouseCode,true);//last param bugged if (curMouseState [mouseCode]) { pressed = true; Gwen.Input.InputHandler.MouseFocus = Gwen.Input.InputHandler.HoveredControl; OnMouseDown?.Invoke((MouseButtonEventArgs)evnt); } else { OnMouseUp?.Invoke((MouseButtonEventArgs)evnt); } } } Vector2 delta = MainWindow.lastPos - new Vector2(curMouseState.X, curMouseState.Y); if (Math.Abs(delta.X) > 0 || Math.Abs(delta.Y) > 0) { evnt = new MouseMoveEventArgs(curMouseState.X - oriX, curMouseState.Y - oriY, (int)delta.X, (int)delta.Y); OnMouseMove?.Invoke(evnt as MouseMoveEventArgs); } input.ProcessMouseMessage(evnt, pressed); MainWindow.lastPos = new Vector2(curMouseState.X, curMouseState.Y); }
protected override void OnMouseDown(MouseButtonEventArgs e) { base.OnMouseDown(e); try { InputUtils.UpdateMouse(e.Mouse); if (linerider.IO.TrackRecorder.Recording) { return; } var r = _input.ProcessMouseMessage(e); if (Canvas.GetOpenWindows().Count != 0) { return; } if (!r && !Track.Playing) { bool dragstart = false; if (!Track.Paused && e.Button == MouseButton.Left && OpenTK.Input.Keyboard.GetState()[Key.D]) { var pos = new Vector2d(e.X, e.Y) / Track.Zoom; var gamepos = (ScreenPosition + pos); dragstart = Game.Rider.GetBounds( Track.GetStart()).Contains( gamepos.X, gamepos.Y); if (dragstart) { // 5 is arbitrary, but i assume that's a decent // place to assume the user has done "work" if (!Track.MoveStartWarned && Track.LineCount > 5) { var popup = PopupWindow.Create( "You're about to move the start position of the rider." + " This cannot be undone, and may drastically change how your track plays." + "\nAre you sure you want to do this?", "Warning", true, true); popup.Dismissed += (o, args) => { if (popup.Result == DialogResult.OK) { Track.MoveStartWarned = true; } }; } else { _dragRider = dragstart; } } } if (!_dragRider && !dragstart) { if (e.Button == MouseButton.Left) { if (_handToolOverride) { HandTool.OnMouseDown(new Vector2d(e.X, e.Y)); } else { SelectedTool.OnMouseDown(new Vector2d(e.X, e.Y)); } } else if (e.Button == MouseButton.Right) { if (_handToolOverride) { HandTool.OnMouseRightDown(new Vector2d(e.X, e.Y)); } else { SelectedTool.OnMouseRightDown(new Vector2d(e.X, e.Y)); } } else if (e.Button == MouseButton.Middle) { _handToolOverride = true; HandTool.OnMouseDown(new Vector2d(e.X, e.Y)); } } if (e.Button != MouseButton.Right) { UpdateCursor(); } } else { Cursor = Cursors["default"]; } Invalidate(); } catch (Exception ex) { // SDL2 backend eats exceptions. // we have to manually crash. Program.Crash(ex, true); Close(); } }
void Mouse_ButtonDown(object sender, MouseButtonEventArgs args) { input.ProcessMouseMessage(args); }
protected override void OnMouseDown(MouseButtonEventArgs e) { base.OnMouseDown(e); try { InputUtils.UpdateMouse(e.Mouse); if (linerider.IO.TrackRecorder.Recording) { return; } var r = _input.ProcessMouseMessage(e); _uicursor = _input.MouseCaptured; if (Canvas.GetOpenWindows().Count != 0) { UpdateCursor(); return; } if (!r) { InputUtils.ProcessMouseHotkeys(); if (!Track.Playing) { bool dragstart = false; if (Track.Offset == 0 && e.Button == MouseButton.Left && InputUtils.Check(Hotkey.EditorMoveStart)) { var gamepos = ScreenPosition + (new Vector2d(e.X, e.Y) / Track.Zoom); dragstart = Game.Rider.GetBounds( Track.GetStart()).Contains( gamepos.X, gamepos.Y); if (dragstart) { // 5 is arbitrary, but i assume that's a decent // place to assume the user has done "work" if (!Track.MoveStartWarned && Track.LineCount > 5) { var popup = MessageBox.Show(Canvas, "You're about to move the start position of the rider." + " This cannot be undone, and may drastically change how your track plays." + "\nAre you sure you want to do this?", "Warning", MessageBox.ButtonType.OkCancel); popup.RenameButtons("I understand"); popup.Dismissed += (o, args) => { if (popup.Result == Gwen.DialogResult.OK) { Track.MoveStartWarned = true; } }; } else { _dragRider = dragstart; } } } if (!_dragRider && !dragstart) { if (e.Button == MouseButton.Left) { CurrentTools.SelectedTool.OnMouseDown(new Vector2d(e.X, e.Y)); } else if (e.Button == MouseButton.Right) { CurrentTools.SelectedTool.OnMouseRightDown(new Vector2d(e.X, e.Y)); } } } else if (CurrentTools.SelectedTool == CurrentTools.PencilTool && CurrentTools.PencilTool.DrawingScenery) { if (e.Button == MouseButton.Left) { CurrentTools.PencilTool.OnMouseDown(new Vector2d(e.X, e.Y)); } } } UpdateCursor(); Invalidate(); } catch (Exception ex) { // SDL2 backend eats exceptions. // we have to manually crash. Program.Crash(ex, true); Close(); } }
protected override void OnMouseDown(MouseButtonEventArgs e) { input.ProcessMouseMessage(e); base.OnMouseDown(e); }