private void DeviceLocatorModeChanged(object sender, RPlotDeviceEventArgs e) { _mainThread.Post(() => { LocatorMode = e.Device.LocatorMode; LocatorModeChanged?.Invoke(this, EventArgs.Empty); }); }
private void DeviceLocatorModeChanged(object sender, RPlotDeviceEventArgs e) { _shell.DispatchOnUIThread(() => { LocatorMode = e.Device.LocatorMode; LocatorModeChanged?.Invoke(this, EventArgs.Empty); }); }
public void EndLocatorMode(LocatorResult result) { var tcs = _locatorTcs; _locatorTcs = null; tcs?.SetResult(result); _interactiveWorkflow.Shell.DispatchOnUIThread(() => SetLocatorModeUI(false)); LocatorModeChanged?.Invoke(this, null); }
public void EndLocatorMode(LocatorResult result) { _shell.AssertIsOnMainThread(); var tcs = _locatorTcs; _locatorTcs = null; tcs?.SetResult(result); LocatorMode = false; LocatorModeChanged?.Invoke(this, EventArgs.Empty); _device.LocatorMode = LocatorMode; }
public async Task <LocatorResult> StartLocatorModeAsync(CancellationToken ct) { _locatorTcs = new TaskCompletionSource <LocatorResult>(); ct.Register(EndLocatorMode); _interactiveWorkflow.Shell.DispatchOnUIThread(() => { SetLocatorModeUI(true); }); LocatorModeChanged?.Invoke(this, null); var task = _locatorTcs.Task; return(await task); }
public async Task <LocatorResult> StartLocatorModeAsync(CancellationToken ct) { _shell.AssertIsOnMainThread(); _locatorTcs = new TaskCompletionSource <LocatorResult>(); ct.Register(EndLocatorMode); LocatorMode = true; LocatorModeChanged?.Invoke(this, EventArgs.Empty); _device.LocatorMode = LocatorMode; var task = _locatorTcs.Task; return(await task); }