/// <summary> /// When <see cref="DockBounceType.Critical"/> is passed, the dock icon will bounce until either the application becomes /// active or the request is canceled. When <see cref="DockBounceType.Informational"/> is passed, the dock icon will bounce /// for one second. However, the request remains active until either the application becomes active or the request is canceled. /// <para/> /// Note: This method can only be used while the app is not focused; when the app is focused it will return -1. /// </summary> /// <param name="type">Can be critical or informational. The default is informational.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Return an ID representing the request.</returns> public async Task <int> BounceAsync(DockBounceType type, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); var taskCompletionSource = new TaskCompletionSource <int>(); using (cancellationToken.Register(() => taskCompletionSource.TrySetCanceled())) { BridgeConnector.Socket.On("dock-bounce-completed", (id) => { BridgeConnector.Socket.Off("dock-bounce-completed"); taskCompletionSource.SetResult((int)id); }); BridgeConnector.Socket.Emit("dock-bounce", type.GetDescription()); return(await taskCompletionSource.Task .ConfigureAwait(false)); } }
/// <summary> /// When <see cref="DockBounceType.Critical"/> is passed, the dock icon will bounce until either the application becomes /// active or the request is canceled. When <see cref="DockBounceType.Informational"/> is passed, the dock icon will bounce /// for one second. However, the request remains active until either the application becomes active or the request is canceled. /// <para/> /// Note: This method can only be used while the app is not focused; when the app is focused it will return -1. /// </summary> /// <param name="type">Can be critical or informational. The default is informational.</param> /// <param name="cancellationToken">The cancellation token.</param> /// <returns>Return an ID representing the request.</returns> public Task <int> BounceAsync(DockBounceType type, CancellationToken cancellationToken = default) { cancellationToken.ThrowIfCancellationRequested(); return(BridgeConnector.OnResult <int>("dock-bounce", "dock-bounce-completed", cancellationToken, type.GetDescription())); }