/* * QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals. * Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ using Microsoft.VisualStudio.PlatformUI; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; using System; namespace QuantConnect.VisualStudioPlugin { /// /// Collection of commonly used methods to work with VisualStudio UI /// internal static class VsUtils { /// /// Display message in VisualStudio status bar /// /// Visual Studio services provider /// Message to display public static void DisplayInStatusBar(IServiceProvider serviceProvider, string msg) { var statusBar = GetStatusBar(serviceProvider); int frozen; statusBar.IsFrozen(out frozen); if (frozen == 0) { statusBar.SetText("QuantConnect: " + msg); } } private static IVsStatusbar GetStatusBar(IServiceProvider serviceProvider) { return serviceProvider.GetService(typeof(SVsStatusbar)) as IVsStatusbar; } public static void DisplayDialogWindow(DialogWindow dialogWindow) { dialogWindow.HasMinimizeButton = false; dialogWindow.HasMaximizeButton = false; dialogWindow.ShowModal(); } /// /// Display information message box /// /// Visual Studio services provider /// Title of message box /// Message to display public static void ShowMessageBox(IServiceProvider serviceProvider, string title, string message) { VsShellUtilities.ShowMessageBox( serviceProvider, message, title, OLEMSGICON.OLEMSGICON_INFO, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST ); } /// /// Display error message box /// /// Visual Studio services provider /// Title of message box /// Message to display public static void ShowErrorMessageBox(IServiceProvider serviceProvider, string title, string message) { VsShellUtilities.ShowMessageBox( serviceProvider, message, title, OLEMSGICON.OLEMSGICON_CRITICAL, OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST ); } } }