public IEnumerable <IMenuItem> GetMenus(ContextLevels menuForLevel) { var menuItems = new List <IMenuItem>(); if (menuForLevel == ContextLevels.Solution || menuForLevel == ContextLevels.Project || // context.FileName.EndsWith(SolZipConstants.ProjectExtension)) menuForLevel == ContextLevels.Item) { var item = new MMEContracts.MenuItem("Compress with Zip"); item.Click += MenuClicked; menuItems.Add(item); } return(menuItems); }
/// <summary> /// Converts The ContextLevels enum to a string constants recognized by Visual Studio. /// </summary> /// <param name="level">The level.</param> /// <returns>string recognized by visula studio </returns> public static string ContextToVSContext(ContextLevels level) { switch (level) { case ContextLevels.Solution: return(VSContextConstants.Solution); case ContextLevels.Project: return(VSContextConstants.Project); case ContextLevels.SolutionFolder: return(VSContextConstants.SolutionFolder); case ContextLevels.References: return(VSContextConstants.References); case ContextLevels.Item: return(VSContextConstants.Item); case ContextLevels.WebReferences: return(VSContextConstants.WebReferences); case ContextLevels.Folder: return(VSContextConstants.Folder); case ContextLevels.MenuBar: return(VSContextConstants.MenuBar); case ContextLevels.CodeWindow: return(VSContextConstants.CodeWindow); case ContextLevels.AspxContext: return(VSContextConstants.AspxContext); case ContextLevels.HtmlContext: return(VSContextConstants.HtmlContext); case ContextLevels.HtmlSourceEditing: return(VSContextConstants.HtmlSourceEditing); case ContextLevels.ScriptContext: return(VSContextConstants.ScriptContext); default: return(VSContextConstants.OtherItem); } }
/// <summary> /// Gets the Commandbar Index, Typically 1, but tries to place it right after the Tools menu, if the /// menu is to be placed in the Top menu (MenuBar). /// </summary> /// <param name="controls">The command bar controls.</param> /// <param name="level">The level.</param> /// <returns>Command bar index.</returns> private static int GetCommandbarIndex(CommandBarControls controls, ContextLevels level) { switch (level) { case ContextLevels.MenuBar: for (int i = 1; i <= controls.Count; i++) { if (controls[i].accName == "Tools") { return(i + 1); } } return(controls.Count + 1); default: return(1); } }
/// <summary> /// Adds the visual studio main menu item. /// </summary> /// <param name="commandBarName">Name of the command bar.</param> /// <param name="menuName">name of the menu.</param> /// <param name="level">Context level where menu needs to appear.</param> /// <returns>CommandBarPopup Object</returns> private CommandBarPopup AddVSMainMenuItem(string commandBarName, string menuName, ContextLevels level) { var controls = this.GetVSMainMenu(commandBarName, 1).Controls; var vsmainMenu = controls.Add(MsoControlType.msoControlPopup, Missing.Value, Missing.Value, GetCommandbarIndex(controls, level), true) as CommandBarPopup; vsmainMenu.Caption = menuName; vsmainMenu.TooltipText = string.Empty; vsmainMenu.Tag = Guid.NewGuid().ToString(); return(vsmainMenu); }
/// <summary> /// Builds the menu. /// </summary> /// <param name="level">Context level where menu needs to be dispalyed.</param> private void BuildMenu(ContextLevels level) { // Build Root Menu CommandBarPopup menu = this.AddVSMainMenuItem(VSContextUtility.ContextToVSContext(level), IntuitAnywhereResources.mainmenu, level); int position = 1; // Build Sub Items CommandBarButton javaScriptLibrary = AddVSMenuItem(menu, IntuitAnywhereResources.menu01, position++, false, IntuitAnywhereResources.JSlibrary); CommandBarButton openID = AddVSMenuItem(menu, IntuitAnywhereResources.menu02, position++, false, IntuitAnywhereResources.openid); CommandBarButton connecttoQuickBooks = AddVSMenuItem(menu, IntuitAnywhereResources.menu03, position++, false, IntuitAnywhereResources.connect_to_qb_16); CommandBarButton addBlueDotMenu = AddVSMenuItem(menu, IntuitAnywhereResources.menu04, position++, false, IntuitAnywhereResources.bluedot); CommandBarButton addLogoutMenu = AddVSMenuItem(menu, IntuitAnywhereResources.menu012, position++, false, IntuitAnywhereResources.logout_1); CommandBarButton dataServicesSDK = AddVSMenuItem(menu, IntuitAnywhereResources.menu05, position++, false, IntuitAnywhereResources.Dataservices); CommandBarButton dataServicesSDKV3 = AddVSMenuItem(menu, IntuitAnywhereResources.menu11, position++, false, IntuitAnywhereResources.Dataservices); CommandBarButton directConnectToIntuit = AddVSMenuItem(menu, IntuitAnywhereResources.menu07, position++, false, IntuitAnywhereResources.directconnect); CommandBarButton disconnet = AddVSMenuItem(menu, IntuitAnywhereResources.menu08, position++, false, IntuitAnywhereResources.disconnect_from_qb_16); CommandBarButton sdkDocHelp = AddVSMenuItem(menu, IntuitAnywhereResources.menu10, position++, false, IntuitAnywhereResources.Help_icon); CommandBarButton help = AddVSMenuItem(menu, IntuitAnywhereResources.menu06, position++, false, IntuitAnywhereResources.Help_icon); if (level == ContextLevels.MenuBar) { CommandBarButton ippDocumentation = AddVSMenuItem(menu, IntuitAnywhereResources.menu09, position++, true, IntuitAnywhereResources.docs); CommandBarButton ippSupport = AddVSMenuItem(menu, IntuitAnywhereResources.menu010, position++, false, IntuitAnywhereResources.Support); CommandBarButton ippFrontRunner = AddVSMenuItem(menu, IntuitAnywhereResources.menu011, position++, true, IntuitAnywhereResources.FrontrunnerLogo); // Add Event Handlers CommandBarEvents ippDocumentationMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(ippDocumentation); ippDocumentationMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.IppDocumentationMenuItemHandler_Click); this.menuItemHandlerList.Add(ippDocumentationMenuItemHandler); CommandBarEvents ippSupportMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(ippSupport); ippSupportMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.IppSupportMenuItemHandler_Click); this.menuItemHandlerList.Add(ippSupportMenuItemHandler); CommandBarEvents ippFrontRunnerMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(ippFrontRunner); ippFrontRunnerMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.IppFrontRunnerMenuItemHandler_Click); this.menuItemHandlerList.Add(ippFrontRunnerMenuItemHandler); } // Add Event Handlers CommandBarEvents javaScriptLibraryMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(javaScriptLibrary); javaScriptLibraryMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.JavaScriptLibraryMenuItemHandler_Click); this.menuItemHandlerList.Add(javaScriptLibraryMenuItemHandler); CommandBarEvents connecttoQuickBooksMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(connecttoQuickBooks); connecttoQuickBooksMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.ConnecttoQuickBooksMenuItemHandler_Click); this.menuItemHandlerList.Add(connecttoQuickBooksMenuItemHandler); CommandBarEvents addBlueDotMenuMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(addBlueDotMenu); addBlueDotMenuMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.AddBlueDotMenuMenuItemHandler_Click); this.menuItemHandlerList.Add(addBlueDotMenuMenuItemHandler); CommandBarEvents openIDMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(openID); openIDMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.OpenIDMenuItemHandler_Click); this.menuItemHandlerList.Add(openIDMenuItemHandler); CommandBarEvents dataServicesSDKMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(dataServicesSDK); dataServicesSDKMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.DataServicesSDKMenuItemHandler_Click); this.menuItemHandlerList.Add(dataServicesSDKMenuItemHandler); CommandBarEvents dataServicesSDKV3MenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(dataServicesSDKV3); dataServicesSDKV3MenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.DataServicesSDKV3MenuItemHandler_Click); this.menuItemHandlerList.Add(dataServicesSDKV3MenuItemHandler); CommandBarEvents directConnectToIntuitMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(directConnectToIntuit); directConnectToIntuitMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.DirectConnectToIntuitMenuItemHandler_Click); this.menuItemHandlerList.Add(directConnectToIntuitMenuItemHandler); CommandBarEvents disconnetMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(disconnet); disconnetMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.DisconnetMenuItemHandler_Click); this.menuItemHandlerList.Add(disconnetMenuItemHandler); CommandBarEvents helpMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(help); helpMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.HelpMenuItemHandler_Click); this.menuItemHandlerList.Add(helpMenuItemHandler); CommandBarEvents sdkDocHelpMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(sdkDocHelp); sdkDocHelpMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.SdkDocHelpMenuItemHandler_Click); this.menuItemHandlerList.Add(sdkDocHelpMenuItemHandler); CommandBarEvents logoutMenuItemHandler = (EnvDTE.CommandBarEvents) this.visualStudio.DTE.Events.get_CommandBarEvents(addLogoutMenu); logoutMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(this.AddLogoutMenuItemHandler_Click); this.menuItemHandlerList.Add(logoutMenuItemHandler); }