Skip to content

Commit

Permalink
Implemented Mouse Middle Button support
Browse files Browse the repository at this point in the history
  • Loading branch information
tig committed Apr 23, 2020
1 parent 71f4ec1 commit a399557
Show file tree
Hide file tree
Showing 5 changed files with 175 additions and 42 deletions.
2 changes: 1 addition & 1 deletion Installer/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.2.5.19
2.2.6.1
109 changes: 90 additions & 19 deletions src/Commands/MouseCommand.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,14 @@ public class MouseCommand : Command {
new MouseCommand{ Cmd = $"{CmdPrefix }rbdc" },
new MouseCommand{ Cmd = $"{CmdPrefix }rbd" },
new MouseCommand{ Cmd = $"{CmdPrefix }rbu" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbc,3" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbcd,3" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbd,3" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbu,3" },
new MouseCommand{ Cmd = $"{CmdPrefix }mbc" },
new MouseCommand{ Cmd = $"{CmdPrefix }mbdc" },
new MouseCommand{ Cmd = $"{CmdPrefix }mbd" },
new MouseCommand{ Cmd = $"{CmdPrefix }mbu" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbc,n" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbcd,n" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbd,n" },
new MouseCommand{ Cmd = $"{CmdPrefix }xbu,n" },
new MouseCommand{ Cmd = $"{CmdPrefix }mm,x,y" },
new MouseCommand{ Cmd = $"{CmdPrefix }mt,x,y" },
new MouseCommand{ Cmd = $"{CmdPrefix }hs,x" },
Expand Down Expand Up @@ -70,22 +74,89 @@ public override bool Execute() {
return true;
}

int mb = 0;

switch (param[0]) {
case "lbc": sim.Mouse.LeftButtonClick(); break;
case "lbdc": sim.Mouse.LeftButtonDoubleClick(); break;
case "lbd": sim.Mouse.LeftButtonDown(); break;
case "lbu": sim.Mouse.LeftButtonUp(); break;

case "rbc": sim.Mouse.RightButtonClick(); break;
case "rbdc": sim.Mouse.RightButtonDoubleClick(); break;
case "rbd": sim.Mouse.RightButtonDown(); break;
case "rbu": sim.Mouse.RightButtonUp(); break;

// "mouse:xbc,3" - Mouse button 3 click
case "xbc": sim.Mouse.XButtonClick(GetIntOrZero(param, 1)); break;
case "xbdc": sim.Mouse.XButtonDoubleClick(GetIntOrZero(param, 1)); break;
case "xbd": sim.Mouse.XButtonDown(GetIntOrZero(param, 1)); break;
case "xbu": sim.Mouse.XButtonUp(GetIntOrZero(param, 1)); break;
case "lbc":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Left Button Click");
sim.Mouse.LeftButtonClick();
break;

case "lbdc":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Left Button Double Click");
sim.Mouse.LeftButtonDoubleClick();
break;

case "lbd":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Left Button Down");
sim.Mouse.LeftButtonDown();
break;

case "lbu":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Left Button Up");
sim.Mouse.LeftButtonUp();
break;

case "rbc":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Right Button Click");
sim.Mouse.RightButtonClick();
break;
case "rbdc":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Right Button Double Click");
sim.Mouse.RightButtonDoubleClick();
break;
case "rbd":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Right Button Down");
sim.Mouse.RightButtonDown();
break;
case "rbu":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Right Button Up");
sim.Mouse.RightButtonUp();
break;

case "mbc":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Middle Button Click");
sim.Mouse.MiddleButtonClick();
break;

case "mbdc":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Middle Button Double Click");
sim.Mouse.MiddleButtonDoubleClick();
break;

case "mbd":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Middle Button Down");
sim.Mouse.MiddleButtonDown();
break;
case "mbu":
Logger.Instance.Log4.Info($"{this.GetType().Name}: Middle Button Up");
sim.Mouse.MiddleButtonUp();
break;

// "mouse:xbc,3" - Mouse X button 3 click
case "xbc":
mb = GetIntOrZero(param, 1);
Logger.Instance.Log4.Info($"{this.GetType().Name}: XButton {mb} click");
sim.Mouse.XButtonClick(mb);
break;

case "xbdc":
mb = GetIntOrZero(param, 1);
Logger.Instance.Log4.Info($"{this.GetType().Name}: XButton {mb} doubleclick");
sim.Mouse.XButtonDoubleClick(mb);
break;

case "xbd":
mb = GetIntOrZero(param, 1);
Logger.Instance.Log4.Info($"{this.GetType().Name}: XButton {mb} down");
sim.Mouse.XButtonDown(mb);
break;

case "xbu":
mb = GetIntOrZero(param, 1);
Logger.Instance.Log4.Info($"{this.GetType().Name}: Xbutton {mb} up");
sim.Mouse.XButtonUp(mb);
break;

// "mouse:mb,15,20" - Move mouse 15 in X direction, and 20 in Y direction
case "mm": sim.Mouse.MoveMouseBy(GetIntOrZero(param, 1), GetIntOrZero(param, 2)); break;
Expand Down
47 changes: 28 additions & 19 deletions src/Dialogs/CommandWindow.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 22 additions & 2 deletions src/WindowsInput/IMouseSimulator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,27 @@ public interface IMouseSimulator {
/// <summary>
/// Simulates a mouse right button double-click gesture.
/// </summary>
void RightButtonDoubleClick();
void RightButtonDoubleClick();

/// <summary>
/// Simulates a mouse middle button down gesture.
/// </summary>
void MiddleButtonDown();

/// <summary>
/// Simulates a mouse middle button up gesture.
/// </summary>
void MiddleButtonUp();

/// <summary>
/// Simulates a mouse middle button click gesture.
/// </summary>
void MiddleButtonClick();

/// <summary>
/// Simulates a mouse middle button double-click gesture.
/// </summary>
void MiddleButtonDoubleClick();

/// <summary>
/// Simulates a mouse X button down gesture.
Expand Down Expand Up @@ -100,4 +120,4 @@ public interface IMouseSimulator {
/// <param name="scrollAmountInClicks">The amount to scroll in clicks. A positive value indicates that the wheel was rotated to the right; a negative value indicates that the wheel was rotated to the left.</param>
void HorizontalScroll(int scrollAmountInClicks);
}
}
}
35 changes: 34 additions & 1 deletion src/WindowsInput/MouseSimulator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,43 @@ public void RightButtonUp() {
public void RightButtonClick() {
var inputList = new InputBuilder().AddMouseButtonClick(MouseButton.RightButton).ToArray();
SendSimulatedInput(inputList);
}

/// <summary>
/// Simulates a mouse middle button down gesture.
/// </summary>
public void MiddleButtonDown() {
var inputList = new InputBuilder().AddMouseButtonDown(MouseButton.MiddleButton).ToArray();
SendSimulatedInput(inputList);
}

/// <summary>
/// Simulates a mouse middle button up gesture.
/// </summary>
public void MiddleButtonUp() {
var inputList = new InputBuilder().AddMouseButtonUp(MouseButton.MiddleButton).ToArray();
SendSimulatedInput(inputList);
}

/// <summary>
/// Simulates a mouse middle button click gesture.
/// </summary>
public void MiddleButtonClick() {
var inputList = new InputBuilder().AddMouseButtonClick(MouseButton.MiddleButton).ToArray();
SendSimulatedInput(inputList);
}

/// <summary>
/// Simulates a mouse middle button double-click gesture.
/// </summary>
public void MiddleButtonDoubleClick() {
var inputList = new InputBuilder().AddMouseButtonDoubleClick(MouseButton.MiddleButton).ToArray();
SendSimulatedInput(inputList);
}


/// <summary>
/// Simulates a mouse right button double-click gesture.
/// Simulates a mouse middle button double-click gesture.
/// </summary>
public void RightButtonDoubleClick() {
var inputList = new InputBuilder().AddMouseButtonDoubleClick(MouseButton.RightButton).ToArray();
Expand Down

0 comments on commit a399557

Please sign in to comment.