Ejemplo n.º 1
0
        public static void Execute(AsyncPackage package)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            if (ShieldVsExtensionPackage.Configuration is null)
            {
                return;
            }

            ShieldVsExtensionPackage.Configuration.IsEnabled = !ShieldVsExtensionPackage.Configuration.IsEnabled;
            ShieldVsExtensionPackage.UpdateExtensionEnabled();
        }
        public static void Execute(AsyncPackage package)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            if (ShieldVsExtensionPackage.Configuration is null)
            {
                return;
            }

            //ToolWindowPane window = package.FindToolWindow(typeof(ConfigurationWindow), 0, true);
            //if (window?.Frame == null)
            //{
            //    throw new NotSupportedException("Cannot create tool window");
            //}
            //IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;
            //Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show());

            //var optionsViewModel = new OptionsViewModel(dte, configuration);

            if (!(ServiceProvider.GlobalProvider.GetService(typeof(DTE)) is DTE2 dte))
            {
                throw new ArgumentNullException(nameof(dte));
            }

            var optionsViewModel = new ConfigurationViewModel(dte, ShieldVsExtensionPackage.Configuration);
            var optionsView      = new ConfigurationWindowControl(optionsViewModel);

            var interop = new WindowInteropHelper(optionsView);

            interop.EnsureHandle();
            interop.Owner = (IntPtr)dte.MainWindow.HWnd;

            optionsView.ShowDialog();

            ShieldVsExtensionPackage.UpdateExtensionEnabled();
        }