Exemplo n.º 1
0
 public GeneralSettings()
 {
     BuildProgressSettings    = new BuildProgressSettings();
     EnableStatusBarOutput    = true;
     IndicatorsPanelVisible   = true;
     ShowWarningSignForBuilds = true;
 }
Exemplo n.º 2
0
 public GeneralSettings()
 {
     BuildProgressSettings  = new BuildProgressSettings();
     EnableStatusBarOutput  = true;
     IndicatorsPanelVisible = true;
     ParticipateInTelemetry = true;
 }
        private void ResetTaskBarInfoOnBuildDone()
        {
            BuildProgressSettings buildProgressSettings = _settings.GeneralSettings.BuildProgressSettings;

            if (!buildProgressSettings.TaskBarProgressEnabled)
            {
                return;
            }

            switch (buildProgressSettings.ResetTaskBarProgressAfterBuildDone)
            {
            case ResetTaskBarItemInfoCondition.Never:
                break;

            case ResetTaskBarItemInfoCondition.Immediately:
                ResetTaskBarInfo();
                break;

            case ResetTaskBarItemInfoCondition.AfterDelay:
            {
                int delay = buildProgressSettings.ResetTaskBarProgressDelay;
                if (delay > 0)
                {
                    _resetTaskBarInfoCts = new CancellationTokenSource();
                    var resetTask = new Task(() => Thread.Sleep(delay), _resetTaskBarInfoCts.Token);
                    resetTask.ContinueWith((tsk, cancelToken) =>
                        {
                            if (!((CancellationToken)cancelToken).IsCancellationRequested)
                            {
                                ResetTaskBarInfo();
                            }
                        },
                                           _resetTaskBarInfoCts.Token,
                                           TaskScheduler.FromCurrentSynchronizationContext());
                    resetTask.Start();
                }
                else
                {
                    ResetTaskBarInfo();
                }
            }
            break;

            case ResetTaskBarItemInfoCondition.ByMouseClick:
                Window window = Application.Current.MainWindow;
                window.PreviewMouseDown += OnMainWindowTouched;
                window.LocationChanged  += OnMainWindowTouched;
                window.SizeChanged      += OnMainWindowTouched;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }