コード例 #1
0
        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);
        }
コード例 #2
0
        private void DispatcherTimerTick(object sender, EventArgs e)
        {
            if (FilteredBuildAdapters.OfType <BuildAdapter>().All(build => build.Status != BuildStatus.Waiting))
            {
                ChangeWindowsBarColor();
            }

            ActualValue--;
            if (ActualValue > 0)
            {
                return;
            }

            Refresh();
        }
コード例 #3
0
        /// <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();
            }
        }