Esempio n. 1
0
        private CommandHandler(DTE2 dte, Options options)
        {
            _options = options;
            _dte = dte;
            _control = new StatusbarControl(options, _dte);
            _events = _dte.Events.CommandEvents;

            _events.AfterExecute += AfterExecute;
            _events.BeforeExecute += BeforeExecute;

            var injector = new StatusBarInjector(Application.Current.MainWindow);
            injector.InjectControl(_control);

            _timer = new Timer();
            _timer.Elapsed += (s, e) =>
            {
                _timer.Stop();
                _control.SetVisibility(Visibility.Collapsed);
            };

            _options.Saved += (s, e) =>
            {
                SetTimeout();

                if (!_options.LogToStatusBar)
                    _control.SetVisibility(Visibility.Collapsed);

                if (!_options.LogToOutputWindow)
                    Logger.DeletePane();
            };

            SetTimeout();
        }
        private CommandHandler(DTE2 dte, Options options)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            _options = options;
            _dte     = dte;
            _control = new StatusbarControl(options, _dte);
            _events  = _dte.Events.CommandEvents;

            _events.AfterExecute  += AfterExecute;
            _events.BeforeExecute += BeforeExecute;

            StatusBarInjector injector = new StatusBarInjector(Application.Current.MainWindow);

            injector.InjectControlAsync(_control).ConfigureAwait(false);

            _timer          = new Timer();
            _timer.Elapsed += (s, e) =>
            {
                _timer.Stop();
                _control.SetVisibilityAsync(Visibility.Collapsed).ConfigureAwait(false);
            };

            _options.Saved += (s, e) =>
            {
                SetTimeout();

                if (!_options.LogToStatusBar)
                {
                    _control.SetVisibilityAsync(Visibility.Collapsed).ConfigureAwait(false);
                }

                if (!_options.LogToOutputWindow)
                {
                    Logger.DeletePaneAsync().ConfigureAwait(false);
                }
            };

            SetTimeout();
        }