/// <summary>
 ///     Double clicks, by default - left button
 /// </summary>
 public Task DoubleClick(MouseButton btn = MouseButton.Left)
 {
     return(controller.DoubleClick(btn));
 }
 /// <summary>
 ///     Moves, presses key down, waits for given time and releases the key up.
 /// </summary>
 /// <param name="aPoint"></param>
 /// <param name="aWaitPeriod">The time to wait between the press down and up</param>
 /// <param name="btn">Which button to click</param>
 /// <returns></returns>
 public Task MoveClickHold(Point aPoint, TimeSpan aWaitPeriod, MouseButton btn = MouseButton.Left)
 {
     return(controller.MoveClickHold(tr(aPoint), aWaitPeriod, btn));
 }
 public Task MoveClick(Point aPoint, MouseButton btn = MouseButton.Left)
 {
     return(controller.MoveClick(tr(aPoint), btn));
 }
 /// <summary>
 ///     Moves, presses key down, waits for given time and releases the key up.
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <param name="aWaitPeriod">The time to wait between the press down and up</param>
 /// <param name="btn">Which button to click</param>
 /// <returns></returns>
 public Task MoveClickHold(int x, int y, TimeSpan aWaitPeriod, MouseButton btn = MouseButton.Left)
 {
     return(controller.MoveClickHold(tr(x, y), aWaitPeriod, btn));
 }
 /// <summary>
 ///     Moves and clicks.
 /// </summary>
 /// <param name="x"></param>
 /// <param name="y"></param>
 /// <param name="btn">The specific button to click</param>
 /// <returns></returns>
 public Task MoveClick(int x, int y, MouseButton btn = MouseButton.Left)
 {
     return(controller.MoveClick(tr(x, y), btn));
 }