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(); }