public MouseHighlighter() : base() { MouseBrush = new SolidBrush(HIGHLIGHT_COLOR); mouse = new MouseOperations(); InitializeComponent(); ChangeRadius(20); }
public static byte ClickMouse(byte button) { byte result = 0x02; switch (button) { case 0x00: //left { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); Console.WriteLine("Mouse click: left button"); result = 0x01; break; } case 0x01: //middle { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.MiddleDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.MiddleUp); Console.WriteLine("Mouse click: middle button"); result = 0x01; break; } case 0x02: //right { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightUp); Console.WriteLine("Mouse click: right button"); result = 0x01; break; } } return(result); }
private void UpdateLaser() { Laser.SetPosition(0, Laser.transform.position); Laser.SetPosition(1, Laser.transform.position + Laser.transform.forward); if (_Target && _Target.gameObject.activeInHierarchy) { if (!IsWithinRange(_Target) || !Raycast(_Target, out RaycastHit raycastHit)) { LaserVisible = false; return; } Laser.SetPosition(1, raycastHit.point); if (!IsOtherWorkingOn(_Target)) { var vector = new Vector2(raycastHit.textureCoord.x * VRGUI.Width, (1f - raycastHit.textureCoord.y) * VRGUI.Height); if (mouseDownPosition == null || Vector2.Distance(mouseDownPosition.Value, vector) > 30f) { MouseOperations.SetClientCursorPosition((int)vector.x, (int)vector.y); mouseDownPosition = null; return; } } } else { LaserVisible = false; } }
private void NuitrackManager_onHandsTrackerUpdate(nuitrack.HandTrackerData handTrackerData) { active = false; press = false; if (handTrackerData != null) { nuitrack.UserHands userHands = handTrackerData.GetUserHandsByID(CurrentUserTracker.CurrentUser); if (userHands != null) { if (userHands.RightHand != null) { Vector2 curpos = new Vector2(userHands.RightHand.Value.X * Screen.currentResolution.width, userHands.RightHand.Value.Y * Screen.currentResolution.height); MouseOperations.SetCursorPosition((int)(curpos.x), (int)(curpos.y)); active = true; press = userHands.RightHand.Value.Click; /*if (pressed != press) * { * pressed = press; * * if (pressed) * { * MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp | MouseOperations.MouseEventFlags.LeftDown); * } * }*/ } } } }
// Update is called once per frame private void Update() { if (Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0) { mouseControlled = true; } else if (Input.GetAxis("Horizontal") != 0 || Input.GetAxis("Vertical") != 0) { mouseControlled = false; } if (mouseControlled) { _cursorPosition = MouseOperations.GetCursorPosition(); } else { _cursorPosition.X += (int)(Input.GetAxis("Horizontal") * Game.Config.MapMouseEmulationSpeed); _cursorPosition.Y -= (int)(Input.GetAxis("Vertical") * Game.Config.MapMouseEmulationSpeed); MouseOperations.SetCursorPosition(_cursorPosition); } if (Input.GetAxis("Fire1") != 0 || Input.GetAxis("Submit") != 0) { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp | MouseOperations.MouseEventFlags.LeftDown); } }
private void timer1_Tick(object sender, EventArgs e) { if (radioButton4.Checked)//move the mouse { MouseOperations.SetCursorPosition(new MouseOperations.MousePoint(Convert.ToInt32(xCoordinateSelector.Value), Convert.ToInt32(yCoordinateSelector.Value))); } switch (mouseButtonSelector.SelectedIndex) { case 0: //left { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); if (clickTypeSelector.SelectedIndex == 1) //double click { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); } break; } case 1: //middle { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.MiddleDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.MiddleUp); if (clickTypeSelector.SelectedIndex == 1) //double click { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.MiddleDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.MiddleUp); } break; } case 2: //right { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightUp); if (clickTypeSelector.SelectedIndex == 1) //double click { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.RightUp); } break; } } ClicksCount++; if (ClicksCount >= ClicksLimit && ClicksLimit != 0) { StopClicking(); } timer1.Interval = Convert.ToInt32(millisecondsCounter.Value + (secondsCounter.Value * 1000) + (minutesCounter.Value * 60000) + (hoursCounter.Value * 3600000)) + ClickRandomizer.Next(-Convert.ToInt32(randomizerCount.Value * RandomizationMultiplier), Convert.ToInt32(randomizerCount.Value * RandomizationMultiplier)); }
public static void LinearSmoothMove(Point newPosition, int steps) { MouseOperations.MousePoint start = MouseOperations.GetCursorPosition(); Point p = new Point(start.X, start.Y); PointF iterPoint = p; // Find the slope of the line segment defined by start and newPosition PointF slope = new PointF(newPosition.X - start.X, newPosition.Y - start.Y); // Divide by the number of steps slope.X = slope.X / steps; slope.Y = slope.Y / steps; // Move the mouse to each iterative point. for (int i = 0; i < steps; i++) { iterPoint = new PointF(iterPoint.X + slope.X, iterPoint.Y + slope.Y); MouseOperations.MousePoint o = new MouseOperations.MousePoint((int)iterPoint.X, (int)iterPoint.Y); MouseOperations.SetCursorPosition(o); Thread.Sleep(1); } // Move the mouse to the final destination. MouseOperations.SetCursorPosition(newPosition.X, newPosition.Y); }
private void btnGoLeft_Click(object sender, EventArgs e) { ActionManager.SendAction(() => { WinUtils.ActivateWindow(Constants.KO_WINDOW); }, 2, () => { MouseOperations.Click(directions[txtLeft]); }); }
private void UpdateLaser() { Laser.SetPosition(0, Laser.transform.position); Laser.SetPosition(1, Laser.transform.position + Laser.transform.forward); if (_Target && _Target.gameObject.activeInHierarchy) { if (IsWithinRange(_Target) && Raycast(_Target, out RaycastHit hit)) { Laser.SetPosition(1, hit.point); if (!IsOtherWorkingOn(_Target)) { var newPos = new Vector2(hit.textureCoord.x * VRGUI.Width, (1 - hit.textureCoord.y) * VRGUI.Height); //VRLog.Debug("New Pos: {0}, textureCoord: {1}", newPos, hit.textureCoord); if (!mouseDownPosition.HasValue || Vector2.Distance(mouseDownPosition.Value, newPos) > MOUSE_STABILIZER_THRESHOLD) { MouseOperations.SetClientCursorPosition((int)newPos.x, (int)newPos.y); mouseDownPosition = null; } } } else { // Out of view LaserVisible = false; } } else { // May day, may day -- window is gone! LaserVisible = false; } }
// Update is called once per frame void Update() { if (Controller.GetHairTriggerUp()) { Debug.Log("controller input"); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp | MouseOperations.MouseEventFlags.LeftDown); } }
public ActionResponse Move(int x, int y) { MouseOperations.SetCursorPosition(x, y); return(new ActionResponse() { Succeeded = true, }); }
public static void MoveOne(int num, int delay) { var pos = MouseOperations.GetCursorPosition(); SendKeys.Send(num.ToString()); SendKeys.Flush(); Clicker.LeftClick(pos.X, pos.Y, delay); }
private void DoClick() { MouseOperations.DoMouseClick(); System.Threading.Thread.Sleep(autoSetting.holdTime); //MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); //System.Threading.Thread.Sleep(autoSetting.holdTime); //MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); }
private void PerformClick() { if (cur++ < max && !valid) { mousePos = new Vector(mousePos.X, mousePos.Y - 1); ActionManager.SendAction(() => { MouseOperations.Click(mousePos); }, 0.05f, PerformClick); } }
protected override void OnUpdate() { base.OnUpdate(); if (!_Current) { foreach (var quad in GUIQuadRegistry.Quads) { var result = AnalyzeQuad(quad); if (result.Position == RelativePosition.Hover) { _Current = quad; EnterState(State.Hover); break; } } } else { var result = AnalyzeQuad(_Current); if (result.TextureCoords != Vector2.zero) { var newPos = new Vector2(result.TextureCoords.x * VRGUI.Width, (1 - result.TextureCoords.y) * VRGUI.Height); if (!mouseDownPosition.HasValue || Vector2.Distance(mouseDownPosition.Value, newPos) > MOUSE_STABILIZER_THRESHOLD) { MouseOperations.SetClientCursorPosition((int)newPos.x, (int)newPos.y); mouseDownPosition = null; } } // Update state if (_CurrentState == State.Press) { if (result.Position == RelativePosition.Out) { EnterState(State.None); } else if (result.Position == RelativePosition.Hover) { EnterState(State.Hover); } } else if (_CurrentState == State.Hover) { if (result.Position == RelativePosition.Behind) { EnterState(State.Press); } else if (result.Position == RelativePosition.Out) { EnterState(State.None); } } } }
public Form1() { InitializeComponent(); this.TouchDown += MainWindow_TouchEvent; //DoMouseClick(); MousePoint foo = MouseOperations.GetCursorPosition(); SavedPoint.X = foo.X; SavedPoint.Y = foo.Y; }
void ClickAt(Point point, Action callback = null) { ActionManager.SendAction(() => { WinUtils.ActivateWindow(Constants.KO_WINDOW); }, 0.01f, () => { MouseOperations.Click(point); if (callback != null) { ActionManager.SendAction(() => { }, 0.1f, () => { callback.Invoke(); }); } }); }
protected override void OnUpdate() { base.OnUpdate(); var device = Controller; if (device.GetPressDown(ButtonMask.Touchpad | ButtonMask.Trigger)) { VR.Input.Mouse.LeftButtonDown(); pressDownTime = Time.unscaledTime; } if (device.GetPressUp(ButtonMask.Grip)) { if (Gui) { AbandonGUI(); } else { TakeGUI(GUIQuadRegistry.Quads.FirstOrDefault(q => !q.IsOwned)); } } if (device.GetTouchDown(ButtonMask.Touchpad)) { touchDownPosition = device.GetAxis(); touchDownMousePosition = MouseOperations.GetClientCursorPosition(); } if (device.GetTouch(ButtonMask.Touchpad) && (Time.unscaledTime - pressDownTime) > 0.3f) { var pos = device.GetAxis(); var diff = pos - (VR.HMD == HMDType.Oculus ? Vector2.zero : touchDownPosition); var factor = VR.HMD == HMDType.Oculus ? Time.unscaledDeltaTime * 5 : 1f; // We can only move by integral number of pixels, so accumulate them until we have an integral value _DeltaX += (diff.x * VRGUI.Width * 0.1 * factor); _DeltaY += (-diff.y * VRGUI.Height * 0.2 * factor); int deltaX = (int)(_DeltaX > 0 ? Math.Floor(_DeltaX) : Math.Ceiling(_DeltaX)); int deltaY = (int)(_DeltaY > 0 ? Math.Floor(_DeltaY) : Math.Ceiling(_DeltaY)); _DeltaX -= deltaX; _DeltaY -= deltaY; VR.Input.Mouse.MoveMouseBy(deltaX, deltaY); touchDownPosition = pos; } if (device.GetPressUp(ButtonMask.Touchpad | ButtonMask.Trigger)) { VR.Input.Mouse.LeftButtonUp(); pressDownTime = 0; } }
public void ClickPartyMember(int index) { if (index < 0 || index >= _partyBarPoints.Count) { return; } Point pos = _partyBarPoints[index]; MouseOperations.Click(pos); }
protected override void OnUpdate() { base.OnUpdate(); var device = this.Controller; if (device.GetPressDown(EVRButtonId.k_EButton_Axis0)) { VR.Input.Mouse.LeftButtonDown(); pressDownTime = Time.unscaledTime; } if (device.GetPressUp(EVRButtonId.k_EButton_Grip)) { if (Gui) { AbandonGUI(); } else { TakeGUI(GUIQuadRegistry.Quads.FirstOrDefault(q => !q.IsOwned)); } } if (device.GetTouchDown(EVRButtonId.k_EButton_Axis0)) { touchDownPosition = device.GetAxis(); touchDownMousePosition = MouseOperations.GetClientCursorPosition(); } if (device.GetTouch(EVRButtonId.k_EButton_Axis0) && (Time.unscaledTime - pressDownTime) > 0.3f) { var pos = device.GetAxis(); var diff = pos - touchDownPosition; _DeltaX += (diff.x * VRGUI.Width * 0.1); _DeltaY += (-diff.y * VRGUI.Height * 0.2); int deltaX = (int)(_DeltaX > 0 ? Math.Floor(_DeltaX) : Math.Ceiling(_DeltaX)); int deltaY = (int)(_DeltaY > 0 ? Math.Floor(_DeltaY) : Math.Ceiling(_DeltaY)); _DeltaX -= deltaX; _DeltaY -= deltaY; VR.Input.Mouse.MoveMouseBy(deltaX, deltaY); touchDownPosition = pos; } if (device.GetPressUp(EVRButtonId.k_EButton_Axis0)) { VR.Input.Mouse.LeftButtonUp(); pressDownTime = 0; } }
static void aTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { Console.WriteLine("Click.."); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); MouseOperations.MousePoint point = MouseOperations.GetCursorPosition(); point.X = point.X + (isPositive ? mouseSteps : -1 * mouseSteps); //point.Y = point.Y +(isPositive ? mouseSteps : -mouseSteps); isPositive = !isPositive; MouseOperations.SetCursorPosition(point); }
public void Invoke() { Vector2 targetPosition = getPosition(); Vector2 centerScreen = GetCenterScreen(); Vector2 offsetVector = targetPosition - centerScreen; float xScale = Math.Abs(centerScreen.x / offsetVector.x); float yScale = Math.Abs(centerScreen.y / offsetVector.y); float finalScale = offsetVector.x < offsetVector.y ? yScale : xScale; Vector2 offsetFromCenterToEdge = offsetVector * finalScale; MouseOperations.SetCursorPosition(centerScreen + offsetFromCenterToEdge); }
/// <summary> Performs a sequence of screen captures </summary> /// <para>* This function is hand-written for a particular scenario and it is only interesting for the bits of code inside, not so much for reuse</para> static void SequencedCapture() { for (int i = 0; i < 200; i++) { ScreenOperations.ImageSave("%NOW%" , System.Drawing.Imaging.ImageFormat.Png , ScreenOperations.CaptureWindow(80, 297, 2040, 2850)); System.Threading.Thread.Sleep(2000); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); } }
public void Stop() { KeyUtils.Stop(); MouseOperations.Stop(); _initTimer.Elapsed -= OnInitTimer; _initTimer.Stop(); _updateTimer.Elapsed -= OnUpdate; _updateTimer.Stop(); _gos.ForEach(g => { g.Active = false; }); Stopped?.Invoke(); _sendStart = true; ActionManager.Stop(); Debug.Log("Stop"); }
protected override void OnMouseUp(MouseButtonEventArgs args) { base.OnMouseUp(args); // Look for the mouse op to perform var op = MouseOperations.Active; if (op != null && !op.Cancelled) { op.MouseUp(args); } MouseOperations.EndOp(args.ChangedButton); }
public static void TryToContinue() { Random rn = new Random(); if (GameSession.LOLHandle == IntPtr.Zero && LOLProcess != null && NativeMethods.IsWindow(LOLProcess.Handle) && !LOLProcess.HasExited) { NativeMethods.Focus(LOLProcess.Handle); } Thread.Sleep(GameSession.RandomTimeGenerator(6000)); MouseOperations.SetCursorPosition(712 + rn.Next(-2, 2), 147 + rn.Next(-2, 2)); Thread.Sleep(GameSession.RandomTimeGenerator(100)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(GameSession.RandomTimeGenerator(25)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); Thread.Sleep(GameSession.RandomTimeGenerator(1000)); MouseOperations.SetCursorPosition(511 + rn.Next(-3, 3), 488 + rn.Next(-3, 4)); Thread.Sleep(GameSession.RandomTimeGenerator(100)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(GameSession.RandomTimeGenerator(25)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); //reconnect Thread.Sleep(GameSession.RandomTimeGenerator(1000)); MouseOperations.SetCursorPosition(418 + rn.Next(-3, 3), 364 + rn.Next(-3, 4)); Thread.Sleep(GameSession.RandomTimeGenerator(100)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(GameSession.RandomTimeGenerator(25)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); //reconnect Thread.Sleep(GameSession.RandomTimeGenerator(2000)); MouseOperations.SetCursorPosition(514 + rn.Next(-5, 5), 588 + rn.Next(-5, 5)); Thread.Sleep(GameSession.RandomTimeGenerator(100)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(GameSession.RandomTimeGenerator(25)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); // HERO PICK Thread.Sleep(GameSession.RandomTimeGenerator(2000)); MouseOperations.SetCursorPosition(510 + rn.Next(-2, 2), 386 + rn.Next(-2, 2)); Thread.Sleep(GameSession.RandomTimeGenerator(100)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(GameSession.RandomTimeGenerator(25)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); Thread.Sleep(GameSession.RandomTimeGenerator(1000)); MouseOperations.SetCursorPosition(507 + rn.Next(-3, 3), 619 + rn.Next(-2, 2)); Thread.Sleep(GameSession.RandomTimeGenerator(100)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(GameSession.RandomTimeGenerator(25)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); // HERO PICK }
public void ThenJustDoIt() { var window = Desktop.Instance.Windows().FirstOrDefault(w => w.AutomationElement.Current.ProcessId == 24740); var button = window.Get <TestStack.White.UIItems.Button>(SearchCriteria.ByText("Click Here")); var clickPoint = button.AutomationElement.GetClickablePoint(); MouseOperations.MousePoint mousePoint = new MouseOperations.MousePoint((int)clickPoint.X, (int)clickPoint.Y); MouseOperations.SetCursorPosition(mousePoint); for (int i = 0; i < 20000; i++) { MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown | MouseOperations.MouseEventFlags.LeftUp, mousePoint); } }
private void Received(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) { string IncData = serialPort1.ReadLine(); if (IncData.Contains("b")) { if (IntegratedCheck.Checked) { MouseOperations.MouseClick(); } else { DetectionZone.BackColor = Color.White; } } else if (IncData.Contains("z")) { Pingsw.Stop(); TimeSpan ts = Pingsw.Elapsed; MouseLatData.Add(ts.Milliseconds); MouseLat.Text = ts.Milliseconds.ToString() + "ms"; MinMouseLat.Text = MouseLatData.Min().ToString() + "ms"; AvgMouseLat.Text = ((float)MouseLatData.Sum() / (float)MouseLatData.Count()).ToString("F") + "ms"; UpdateIntegration(); } else { int intData = Int32.Parse(IncData) - GetLastMouse(); int SysintData = Int32.Parse(IncData); if (SysintData > 10 && SysintData < 300) { PCLatData.Add(intData); SysLatData.Add(SysintData); SysLat.Text = SysintData.ToString() + "ms"; MinSysLat.Text = SysLatData.Min().ToString() + "ms"; AvgSysLat.Text = ((float)SysLatData.Sum() / (float)SysLatData.Count()).ToString("F") + "ms"; PCLat.Text = intData.ToString() + "ms"; MinPCLat.Text = PCLatData.Min().ToString() + "ms"; AvgPCLat.Text = ((float)PCLatData.Sum() / (float)PCLatData.Count()).ToString("F") + "ms"; if (!IntegratedCheck.Checked) { DetectionZone.BackColor = Color.Black; } CheckMouseLat(); UpdateIntegration(); } } }
private void InitLongPress() { Task.Run(async() => { await Task.Delay(2000); if (_isLeftHeldDown) { Dispatcher.BeginInvoke(new Action(() => { LongClick(new LongClickArgs(MouseOperations.GetCursorPosition().X, MouseOperations.GetCursorPosition().Y)); })); } }); }
private void FinishGame() { Logger.Log("Game finished!"); Server.SetInfoText("Game finished."); if (SecondsTimer != null) { SecondsTimer.Dispose(); } SecondsTimer = null; if (TenSecondsTimer != null) { TenSecondsTimer.Dispose(); } TenSecondsTimer = null; if (HalfMinuteTimer != null) { HalfMinuteTimer.Dispose(); } HalfMinuteTimer = null; if (MinuteTimer != null) { MinuteTimer.Dispose(); } MinuteTimer = null; Thread.Sleep(10000); ClientApi.TryToContinue(); MouseOperations.SetCursorPosition(520 + RandomTimeGenerator(3), 380 + RandomTimeGenerator(3)); Thread.Sleep(RandomTimeGenerator()); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); Thread.Sleep(RandomTimeGenerator(10)); MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); Thread.Sleep(RandomTimeGenerator(6000)); /*for (int a = 0; a < 5; a++) * { * MouseOperations.SetCursorPosition(934 + RandomTimeGenerator(5), 850 + RandomTimeGenerator(5)); * Thread.Sleep(RandomTimeGenerator()); * MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftDown); * Thread.Sleep(RandomTimeGenerator(10)); * MouseOperations.MouseEvent(MouseOperations.MouseEventFlags.LeftUp); * }*/ Server.SetIndicator(IndicatorStates.Wait); //Server.GameSession = new GameSession(Server); ClientApi.StartNewGame(); }
private void ImagePreview_MouseUp(object sender, MouseEventArgs e) { if (CampoSeleccionado != null) { if (CampoSeleccionado.Rectangle.Width < 0) { CampoSeleccionado.Rectangle.Width = Math.Abs(CampoSeleccionado.Rectangle.Width); CampoSeleccionado.Rectangle.X -= CampoSeleccionado.Rectangle.Width; } if (CampoSeleccionado.Rectangle.Height < 0) { CampoSeleccionado.Rectangle.Height = Math.Abs(CampoSeleccionado.Rectangle.Height); CampoSeleccionado.Rectangle.Y -= CampoSeleccionado.Rectangle.Height; } ImagePreview.Invalidate(); } MouseOperation = MouseOperations.None; }
private void ImagePreview_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button == System.Windows.Forms.MouseButtons.Middle) { ButtonDown = new Point(e.X, e.Y); MouseOperation = MouseOperations.PageDrag; } else if (e.Button == System.Windows.Forms.MouseButtons.Left) { ButtonDown = PuntoDesdePantalla(new Point(e.X, e.Y)); Point MyButtonDown = PuntoDesdePantalla(new Point(e.X, e.Y), false); //Lbl.Impresion.Campo CampoSeleccionadoOriginal = CampoSeleccionado; if (CampoSeleccionado != null) { Rectangle RectKnob = new Rectangle(CampoSeleccionado.Rectangle.Right - KnobSize / 2, CampoSeleccionado.Rectangle.Bottom - KnobSize / 2, KnobSize, KnobSize); if (CampoSeleccionado != null && RectKnob.Contains(MyButtonDown)) { //Agarró el knob MouseOperation = MouseOperations.KnobDrag; return; } else { MouseOperation = MouseOperations.None; } } Lbl.Impresion.Plantilla Plantilla = this.Elemento as Lbl.Impresion.Plantilla; bool Select = false; CampoSeleccionado = null; foreach (Lbl.Impresion.Campo Cam in Plantilla.Campos) { //Busco el campo del clic (según coordenadas) if (Cam.Valor == null || Cam.Valor.Length == 0 && Cam.AnchoBorde > 0) { //En el caso particular de los rectángulos con borde y sin texto, tiene que hacer clic en el contorno if ((MyButtonDown.X >= (Cam.Rectangle.Left - 5) && (MyButtonDown.X <= (Cam.Rectangle.Left + 5)) || MyButtonDown.X >= (Cam.Rectangle.Right - 5) && (MyButtonDown.X <= (Cam.Rectangle.Right + 5)) || MyButtonDown.Y >= (Cam.Rectangle.Top - 5) && (MyButtonDown.Y <= (Cam.Rectangle.Top + 5)) || MyButtonDown.Y >= (Cam.Rectangle.Bottom - 5) && (MyButtonDown.Y <= (Cam.Rectangle.Bottom + 5)))) { Select = true; MouseOperation = MouseOperations.ObjectDrag; } else { Select = false; MouseOperation = MouseOperations.None; } } else if (Cam.Rectangle.Contains(MyButtonDown)) { //El resto de los campos, se seleccionan haciendo clic en cualquier parte del rectángulo Select = true; MouseOperation = MouseOperations.ObjectDrag; } if (Select) { //Encontré el campo del Click //Lo selecciono mediante la listview CampoSeleccionado = Cam; this.SeleccionarCampo(Cam); MouseOperation = MouseOperations.ObjectDrag; break; } } //if (CampoSeleccionado == null) // CampoSeleccionado = CampoSeleccionadoOriginal; if (CampoSeleccionado == null) { this.SeleccionarCampo(null); ButtonDown = new Point(e.X, e.Y); MouseOperation = MouseOperations.PageDrag; } else { CampoDown = CampoSeleccionado.Rectangle; } } else if (e.Button == System.Windows.Forms.MouseButtons.Right) { this.MostrarTextosDeEjemplo = !this.MostrarTextosDeEjemplo; ImagePreview.Invalidate(); } }