private void ChangeWindowsBarColor() { var progressBarState = TaskbarProgressBarState.Normal; var currentValue = 100; var notIgnoredBuildAdapters = FilteredBuildAdapters.OfType <BuildAdapter>().Where(b => !b.IgnoreStatus).ToList(); if (notIgnoredBuildAdapters.Any(b => b.Status == BuildStatus.PartiallySucceeded)) { progressBarState = TaskbarProgressBarState.Paused; } if (notIgnoredBuildAdapters.Any(b => b.Status == BuildStatus.Failed)) { progressBarState = TaskbarProgressBarState.Error; } if (notIgnoredBuildAdapters.All(b => b.Status == BuildStatus.Unknown || b.Status == BuildStatus.Error)) { currentValue = 0; } var progress = TaskbarManager.Instance; progress.SetProgressState(progressBarState); progress.SetProgressValue(currentValue, 100); }
private void DispatcherTimerTick(object sender, EventArgs e) { if (FilteredBuildAdapters.OfType <BuildAdapter>().All(build => build.Status != BuildStatus.Waiting)) { ChangeWindowsBarColor(); } ActualValue--; if (ActualValue > 0) { return; } Refresh(); }
/// <summary>Refreshes this instance.</summary> internal void Refresh(object parameter = null) { ActualValue = Maximum; var handler = Refreshing; if (handler != null) { handler(this, EventArgs.Empty); } foreach (var adapter in FilteredBuildAdapters.OfType <BuildAdapter>()) { adapter.Refresh(); } }