/// <summary> /// Mouse click. x, y coords with button. /// </summary> /// <param name="x">cursor X position</param> /// <param name="y">cursor Y position</param> /// <param name="btn">Button to press. See MouseClicks enum.</param> public static void globalMouseClick(MouseClicks btn, int x = 0, int y = 0) { var sim = new InputSimulator(); if (btn == MouseClicks.WM_LBUTTONDOWN) { sim.Mouse.LeftButtonDown(); } else if (btn == MouseClicks.WM_LBUTTONUP) { sim.Mouse.LeftButtonUp(); } if (btn == MouseClicks.WM_RBUTTONDBLCLK) { sim.Mouse.RightButtonClick(); } if (btn == MouseClicks.WM_MBUTTONDOWN) { sim.Mouse.MiddleButtonDown(); } else if (btn == MouseClicks.WM_MBUTTONUP) { sim.Mouse.MiddleButtonUp(); } }
private MouseClickHandler[] FindHandlersFor(MouseClicks clicks, MouseButtons button) { lock (_lock) { return(_mouseClickHandlers .Where(o => o.Clicks == clicks && o.Button == button) .ToArray()); } }
/// <inheritdoc /> public MouseClickHandler AddMouseClickHandler(MouseClicks clicks, MouseButtons button, Action handler) { lock (_lock) { var handlerItem = new MouseClickHandler(clicks, button, handler); _mouseClickHandlers.Add(handlerItem); return(handlerItem); } }
/// <summary> /// Update the cursor position /// </summary> /// <param name="X">Mouse X</param> /// <param name="Y">Mouse Y</param> /// <param name="ClickCount">Number of clicks</param> /// <param name="Button">Button enum 0=None, 1=Left, 2=Right</param> /// <returns>true is cursor is drawn by game</returns> /// <remarks> /// See <see cref="NodeCursor"/> for implementation. This is a proxy method. /// </remarks> public bool SetCursor(int X, int Y, int ClickCount, MouseButtons Button, MouseClicks ClickType) { if (cursor == null) return false; return cursor.SetCursor(X, Y, ClickCount, Button, ClickType); }
/// <summary> /// Constructs a MouseClickHandler registration container /// </summary> /// <param name="clicks">Single- or Double- click handling</param> /// <param name="button">Mouse button to handle for</param> /// <param name="action">Action to run when the handler is matched</param> public MouseClickHandler(MouseClicks clicks, MouseButtons button, Action action) { Clicks = clicks; Button = button; Action = action; }