コード例 #1
0
        public static bool AddOpenFloderFoVS()
        {
            CommandBars cmdBars          = (CommandBars)(Common.chDTE.DTE.CommandBars);
            CommandBar  vsBarProjectItem = cmdBars["Item"];

            menuItemPI = vsBarProjectItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 2, true);

            menuItemPI.Caption = "在 Windows 资源管理器中打开文件夹(&X)";
            if (chDTE.Version != "10.0")
            {
                menuItemPI.TooltipText = menuItemPI.Caption;
            }
            menuItemHandlerPI        = (CommandBarEvents)Common.chDTE.DTE.Events.get_CommandBarEvents(menuItemPI);
            menuItemHandlerPI.Click += new _dispCommandBarControlEvents_ClickEventHandler(menuItemHandler_Click);

            if (chDTE.Version != "8.0")
            {
                return(true);
            }

            CommandBar vsBarProject = cmdBars["Project"];

            menuItem = vsBarProject.Controls.Add(MsoControlType.msoControlButton, 1, "", 2, true);

            menuItem.Caption = "在 Windows 资源管理器中打开文件夹(&X)";
            if (chDTE.Version != "10.0")
            {
                menuItem.TooltipText = menuItem.Caption;
            }
            menuItemHandler        = (CommandBarEvents)Common.chDTE.DTE.Events.get_CommandBarEvents(menuItem);
            menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(menuItemHandler_Click);
            return(true);
        }
コード例 #2
0
ファイル: Connect.cs プロジェクト: dp0h/QuickWatchEx
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _applicationObject = (DTE2)application;
            _addInInstance = (AddIn)addInInst;

            _dbgWatchConfig = new QuickWatchConfig();

            try {
                CommandBar commandBar = ((CommandBars)_applicationObject.CommandBars)["Code Window"];

                // Create Quick watch menu
                _controlQuickWatch = commandBar.Controls.Add(MsoControlType.msoControlButton, System.Reflection.Missing.Value, System.Reflection.Missing.Value, 1, true);
                _controlQuickWatch.Caption = "QuickWatchEx...";
                _controlQuickWatch.Enabled = IsInDebugMode(_applicationObject);

                _menuItemHandlerQuickWatch = (CommandBarEvents)_applicationObject.Events.CommandBarEvents[_controlQuickWatch];
                _menuItemHandlerQuickWatch.Click += MenuItemHandlerQuickWatch_Click;

                _debuggerEvents = _applicationObject.Events.DebuggerEvents;
                _debuggerEvents.OnEnterDesignMode += DebuggerEvents_OnEnterDesignMode;
                _debuggerEvents.OnEnterBreakMode += DebuggerEvents_OnEnterBreakMode;
                _debuggerEvents.OnEnterRunMode += DebuggerEvents_OnEnterRunMode;
            } catch (Exception e) {
                MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
コード例 #3
0
ファイル: MenuManager.cs プロジェクト: somelou/Randoop.NET
        /// <summary>
        /// Adds handler to the menu item click event.
        /// </summary>
        /// <param name="menuItem">The menu item.</param>
        private void AddClickEventHandler(CommandBarControl menuItem)
        {
            CommandBarEvents menuItemHandler = (EnvDTE.CommandBarEvents)application.DTE.Events.get_CommandBarEvents(menuItem);

            menuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(MenuItem_Click);
            menuItemHandlerList.Add(menuItemHandler);
        }
コード例 #4
0
 /// <summary>
 /// This event handler gets the Activated event of tool window.
 /// When db4o Browser opens for first time, it creates menu option under ObjectManager Enterprise menu.
 /// Using this menu option, user can get back to db4o Browser if he has closed it before.
 /// </summary>
 /// <param name="gotFocus"></param>
 /// <param name="lostFocus"></param>
 void OnWindowActivated(Window gotFocus, Window lostFocus)
 {
     try
     {
         if (oPopup != null)
         {
             if (gotFocus.Caption.Equals(Constants.DB4OBROWSER) && omObjectBrowserControl == null)
             {
                 omObjectBrowserControlHandler        = AddControlToToolbar(ref omObjectBrowserControl, Constants.DB4O_BROWSER_CAPTION);
                 omObjectBrowserControlHandler.Click += omObjectBrowserControlHandler_Click;
             }
             else if (gotFocus.Caption.Equals(Constants.QUERYBUILDER) && omQueryBuilderControl == null)
             {
                 omQueryBuilderControlHandler        = AddControlToToolbar(ref omQueryBuilderControl, Constants.QUERY_BUILDER_CAPTION);
                 omQueryBuilderControlHandler.Click += omQueryBuilderControlHandler_Click;
             }
             else if (gotFocus.Caption.Equals(Constants.DB4OPROPERTIES) && omPropertiesControl == null)
             {
                 omPropertiesControlHandler        = AddControlToToolbar(ref omPropertiesControl, Constants.PROPERTIES_TAB_CAPTION);
                 omPropertiesControlHandler.Click += omPropertiesControlHandler_Click;
             }
         }
     }
     catch (Exception oEx)
     {
         LoggingHelper.HandleException(oEx);
     }
 }
コード例 #5
0
        public override CommandBarEvents get_CommandBarEvents(CommandBarControl menuItem)
        {
            CommandBarButtonImpl btn = (CommandBarButtonImpl)menuItem;

            CommandBarEvents ev = new CommandBarEvents();


            btn.mItem.Click += (sender, e) =>
            {
                bool f = false;
                btn.OnClick(btn, ref f);
                ev.OnClick(btn, ref f, ref f);
            };

            return(ev);
        }
コード例 #6
0
ファイル: Connect.cs プロジェクト: bungeemonkee/VSPlugins
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _application = (DTE2)application;
            _addInInstance = (AddIn)addInInst;

            _contextMenu = ((CommandBars)_application.CommandBars)["Code Window"];
            _encoderizer = (CommandBarPopup)_contextMenu.Controls.Add(MsoControlType.msoControlPopup, Missing.Value, Missing.Value, 1, true);
            _encoderizer.Caption = "VS Encoderizer";

            _javascriptStringEncode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _javascriptStringEncode.Caption = "Javascript String Encode";
            _javascriptStringEncodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_javascriptStringEncode];
            _javascriptStringEncodeEvents.Click += JavaScriptStringEncode;

            _urlPathEncode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _urlPathEncode.Caption = "Url Path Encode";
            _urlPathEncodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_urlPathEncode];
            _urlPathEncodeEvents.Click += UrlPathEncode;

            _urlDecode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _urlDecode.Caption = "Url Decode";
            _urlDecodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_urlDecode];
            _urlDecodeEvents.Click += UrlDecode;

            _urlEncode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _urlEncode.Caption = "Url Encode";
            _urlEncodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_urlEncode];
            _urlEncodeEvents.Click += UrlEncode;

            _htmlAttributeEncode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _htmlAttributeEncode.Caption = "Html Attribute Encode";
            _htmlAttributeEncodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_htmlAttributeEncode];
            _htmlAttributeEncodeEvents.Click += HtmlAttributeEncode;

            _htmlDecode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _htmlDecode.Caption = "Html Decode";
            _htmlDecodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_htmlDecode];
            _htmlDecodeEvents.Click += HtmlDecode;

            _htmlEncode = _encoderizer.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _htmlEncode.Caption = "Html Encode";
            _htmlEncodeEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_htmlEncode];
            _htmlEncodeEvents.Click += HtmlEncode;
        }
コード例 #7
0
        public static bool AddCopyToHtmlForVS()
        {
            //
            CommandBars cmdBars          = (CommandBars)(Common.chDTE.DTE.CommandBars);
            CommandBar  vsBarProjectItem = cmdBars["Item"];

            menuItemCopyPath         = vsBarProjectItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 1, true);
            menuItemCopyPath.Caption = "复制完整路径";
            if (chDTE.Version != "10.0")
            {
                menuItemCopyPath.TooltipText = menuItemCopyPath.Caption;
            }
            menuItemHandlerCopyPath        = (CommandBarEvents)Common.chDTE.DTE.Events.get_CommandBarEvents(menuItemCopyPath);
            menuItemHandlerCopyPath.Click += new _dispCommandBarControlEvents_ClickEventHandler(menuItemHandlerCopyPath_Click);


            menuItemCTH         = vsBarProjectItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 1, true);
            menuItemCTH.Caption = "HTML格式保存并打开";
            if (chDTE.Version != "10.0")
            {
                menuItemCTH.TooltipText = menuItemCTH.Caption;
            }
            menuItemHandlerCTH        = (CommandBarEvents)Common.chDTE.DTE.Events.get_CommandBarEvents(menuItemCTH);
            menuItemHandlerCTH.Click += new _dispCommandBarControlEvents_ClickEventHandler(menuItemHandlerCTH_Click);


            menuItemCTH_C         = vsBarProjectItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 1, true);
            menuItemCTH_C.Caption = "HTML格式复制";
            if (chDTE.Version != "10.0")
            {
                menuItemCTH_C.TooltipText = menuItemCTH_C.Caption;
            }
            menuItemHandlerCTH_C        = (CommandBarEvents)Common.chDTE.DTE.Events.get_CommandBarEvents(menuItemCTH_C);
            menuItemHandlerCTH_C.Click += new _dispCommandBarControlEvents_ClickEventHandler(menuItemHandlerCTH_C_Click);
            return(true);
        }
コード例 #8
0
ファイル: Connect.cs プロジェクト: erdincay/db4o
	    private int AddSubMenu(out CommandBarControl menuItem, CommandBarPopup parent, out CommandBarEvents eventHandler, int position, string caption, string imagePath, string maskedImagePath)
		{
			menuItem = parent.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, position, true);
            menuItem.Caption = caption;

			eventHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(menuItem);

			if (!string.IsNullOrEmpty(imagePath))
			{
				Helper.SetPicture(Assembly.GetExecutingAssembly(), (CommandBarButton) menuItem.Control, imagePath, maskedImagePath);
			}
			else if (string.Equals(caption, DB4O_HOMEPAGE))
			{
				menuItem.BeginGroup = true;
			}

		    return position + 1;
		}
コード例 #9
0
ファイル: Connect.cs プロジェクト: erdincay/db4o
		private int AddSubMenu(out CommandBarControl menuItem, CommandBarPopup parent, out CommandBarEvents eventHandler, int position, string caption)
		{
			return AddSubMenu(out menuItem, parent, out eventHandler, position, caption, string.Empty, string.Empty);
		}
コード例 #10
0
ファイル: Connect.cs プロジェクト: erdincay/db4o
		/// <summary>
		/// This event handler gets the Activated event of tool window.
		/// When db4o Browser opens for first time, it creates menu option under ObjectManager Enterprise menu.
		/// Using this menu option, user can get back to db4o Browser if he has closed it before.
		/// </summary>
		/// <param name="gotFocus"></param>
		/// <param name="lostFocus"></param>
		void OnWindowActivated(Window gotFocus, Window lostFocus)
		{
			try
			{
				
				//TODO: Move this code closer to window instantiation.
				if (oPopup != null)
				{
					if (gotFocus.Caption.Equals(Constants.DB4OBROWSER) && omObjectBrowserControl == null)
					{

						omObjectBrowserControlHandler = AddControlToToolbar(ref omObjectBrowserControl, Constants.DB4O_BROWSER_CAPTION);
						omObjectBrowserControlHandler.Click += omObjectBrowserControlHandler_Click;

					}
					else if (gotFocus.Caption.Equals(Constants.QUERYBUILDER) && omQueryBuilderControl == null)
					{

						omQueryBuilderControlHandler = AddControlToToolbar(ref omQueryBuilderControl, Constants.QUERY_BUILDER_CAPTION);
						omQueryBuilderControlHandler.Click += omQueryBuilderControlHandler_Click;

					}
					else if (gotFocus.Caption.Equals(Constants.DB4OPROPERTIES) && omPropertiesControl == null)
					{
						omPropertiesControlHandler = AddControlToToolbar(ref omPropertiesControl ,Constants.PROPERTIES_TAB_CAPTION);
						omPropertiesControlHandler.Click += omPropertiesControlHandler_Click;

					}
				}


			}
			catch (System.Runtime.InteropServices.COMException)
			{
			}
			catch (Exception oEx)
			{
				LoggingHelper.HandleException(oEx);
			}
		}
コード例 #11
0
ファイル: Connect.cs プロジェクト: bungeemonkee/VSPlugins
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _application = (DTE2)application;
            _addInInstance = (AddIn)addInInst;

            var commandBar = ((CommandBars)_application.CommandBars)["Code Window"];
            var commandBarPopup = (CommandBarPopup)commandBar.Controls.Add(MsoControlType.msoControlPopup, Missing.Value, Missing.Value, 1, true);
            commandBarPopup.Caption = "RegExerciser";

            _searchWithRegex = commandBarPopup.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _searchWithRegex.Caption = "Search With Regular Expression";
            _searchWithRegexEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_searchWithRegex];
            _searchWithRegexEvents.Click += SearchWithRegex;

            _testRegex = commandBarPopup.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, 1, true);
            _testRegex.Caption = "Test Regular Expression";
            _testRegexEvents = (CommandBarEvents)_application.Events.CommandBarEvents[_testRegex];
            _testRegexEvents.Click += TestRegex;
        }
コード例 #12
0
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _applicationObject = (DTE2)application;
            _addInInstance = (AddIn)addInInst;
            if(connectMode == ext_ConnectMode.ext_cm_UISetup)
            {
                object []contextGUIDS = new object[] { };
                Commands2 commands = (Commands2)_applicationObject.Commands;
                string toolsMenuName = "Tools";

                //Place the command on the tools menu.
                //Find the MenuBar command bar, which is the top-level command bar holding all the main menu items:
                Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars)["MenuBar"];

                //Find the Tools command bar on the MenuBar command bar:
                CommandBarControl toolsControl = menuBarCommandBar.Controls[toolsMenuName];
                CommandBarPopup toolsPopup = (CommandBarPopup)toolsControl;

                CommandBar oCommandBar =
                 ((CommandBars)_applicationObject.CommandBars)
                 ["Code Window"];

                CommandBarControl oControl1 = (CommandBarControl)oCommandBar.Controls.Add(MsoControlType.msoControlButton, System.Reflection.Missing.Value, System.Reflection.Missing.Value, 1, true);
                // Set the caption of the submenuitem
                oControl1.Caption = "Add UM Resource String";
                oSubMenuItemHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(oControl1);
                oSubMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(oSubMenuItemHandler_Click);

                //This try/catch block can be duplicated if you wish to add multiple commands to be handled by your Add-in,
                //  just make sure you also update the QueryStatus/Exec method to include the new command names.
                try
                {
                    //Add a command to the Commands collection:
                    Command command = commands.AddNamedCommand2(_addInInstance, "CPPResourceHelper", "CPPResourceHelper", "Executes the command for CPPResourceHelper", true, 59, ref contextGUIDS, (int)vsCommandStatus.vsCommandStatusSupported+(int)vsCommandStatus.vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, vsCommandControlType.vsCommandControlTypeButton);

                    //Add a control for the command to the tools menu:
                    if((command != null) && (toolsPopup != null))
                    {
                        command.AddControl(toolsPopup.CommandBar, 1);
                    }
                }
                catch(System.ArgumentException)
                {
                    //If we are here, then the exception is probably because a command with that name
                    //  already exists. If so there is no need to recreate the command and we can
                    //  safely ignore the exception.
                }
            }
        }
コード例 #13
0
ファイル: Connect.cs プロジェクト: javasuki/RJava
        /// <summary>实现 IDTExtensibility2 接口的 OnConnection 方法。接收正在加载外接程序的通知。</summary>
        /// <param term='application'>宿主应用程序的根对象。</param>
        /// <param term='connectMode'>描述外接程序的加载方式。</param>
        /// <param term='addInInst'>表示此外接程序的对象。</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _applicationObject = (DTE2)application;
            _addInInstance = (AddIn)addInInst;

            CommandBars cmdBars = (CommandBars)(_applicationObject.DTE.CommandBars);
            CommandBar vsBarProject = cmdBars["Project"];

            int idxMenuAddRef = 1;
            int iMenuCount = vsBarProject.Controls.Count;
            for (int i = 1; i <= vsBarProject.Controls.Count; i++)
            {
                if (vsBarProject.Controls[i].Caption.StartsWith("卸载项目")) cmdUnload = vsBarProject.Controls[i];
                if (vsBarProject.Controls[i].Caption.StartsWith("重新加载项目")) cmdReload = vsBarProject.Controls[i];
                if (vsBarProject.Controls[i].Caption.StartsWith("添加 Web 引用")) idxMenuAddRef = i;// cmdReload = vsBarProject.Controls[i];
            }

            #region 建立菜单
            // O/R Mapping
            CommandBarPopup menuCode = vsBarProject.Controls.Add(MsoControlType.msoControlPopup, Missing.Value, Missing.Value, iMenuCount, true) as CommandBarPopup;
            menuCode.Caption = "NXDO.RJacoste 实用工具集";
            menuCode.TooltipText = "NXDO.RJacoste 工具集";
            //(menuCode as CommandBarButton).Style = MsoButtonStyle.msoButtonIconAndCaption;
            //(menuCode as CommandBarButton).Picture = AxImage.StdPicture("NXDO.Component.Addin.Res.image.VSAddin.bmp");

            CommandBarControl menuItemClass = menuCode.Controls.Add(MsoControlType.msoControlButton, 1, "", 1, true);
            menuItemClass.Tag = "Java 的 C# Class";
            menuItemClass.Caption = "生成 jar 的 c# 包装类";
            menuItemClass.TooltipText = "生成 jar 的 c# 包装类";
            menuJacosteHandler = (CommandBarEvents)_applicationObject.DTE.Events.get_CommandBarEvents(menuItemClass);
            menuJacosteHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(EventAction);
            CommandBarButton cmdItemClass = (CommandBarButton)menuItemClass;
            cmdItemClass.Style = MsoButtonStyle.msoButtonIconAndCaption;
            cmdItemClass.Picture = AxImage.StdPicture("NXDO.RJacoste.Addin.Res.FormIco.png");

            //CommandBar vsBarProject2 = cmdBars["Web Project Folder"];
            #endregion
        }
コード例 #14
0
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _applicationObject = (DTE2)application;
            _addInInstance     = (AddIn)addInInst;
            helper             = new DTEHelper(_applicationObject, _addInInstance);

            if (connectMode == ext_ConnectMode.ext_cm_UISetup)
            {
                // Get main menu bar
                CommandBar menuBarCommandBar =
                    ((CommandBars)_applicationObject.CommandBars)["MenuBar"];

                #region Add CommandViewer command

                // TODO: So many hard coded strings...
                // Get Tools menu
                string            toolsMenuName = helper.GetCulturedMenuName("Tools");
                CommandBarControl toolsControl  = menuBarCommandBar.Controls[toolsMenuName];
                CommandBarPopup   toolsPopup    = (CommandBarPopup)toolsControl;

                // Add a new command
                helper.AddNamedCommand2(toolsPopup.CommandBar, COMMAND_VIEWER_COMMAND_NAME, "CommandViewer",
                                        "View All Commands", true, 59, toolsPopup.Controls.Count + 1);

                #endregion

                #region Add CloseAllDocuments command

                // Get "Easy MDI Document Window" command bar
                CommandBar mdiDocCommandBar = helper.GetCommandBarByName("Easy MDI Document Window");
                // Place the command below "Close All But This" menu item
                CommandBarControl closeAllButThisCmd = mdiDocCommandBar.Controls["Close All But This"];
                int closeAllCmdIndex = (closeAllButThisCmd == null) ? 1 : (closeAllButThisCmd.Index + 1);
                // Add a new command
                helper.AddNamedCommand2(mdiDocCommandBar, CLOSE_ALL_DOCUMENTS_COMMAND_NAME,
                                        "Close All Documents", "Close All Documents", false, 0, closeAllCmdIndex);

                #endregion

                #region Add NPetshopSlnGenerator command

                helper.AddNamedCommand2(toolsPopup.CommandBar, NPETSHOP_SLN_GENERATOR_COMMAND_NAME, "Generate NPetshop Sln",
                                        "Generate NPetshop Solution", true, 59, toolsPopup.Controls.Count + 1);

                #endregion

                #region Add ShortcutList command

                // Get View menu
                string            viewMenuName = helper.GetCulturedMenuName("View");
                CommandBarControl viewControl  = menuBarCommandBar.Controls[viewMenuName];
                CommandBarPopup   viewPopup    = (CommandBarPopup)viewControl;
                helper.AddNamedCommand2(viewPopup.CommandBar, SHOW_SHORTCUT_LIST_COMMAND_NAME, "Show shortcut list window",
                                        "Show shortcut list window", false, 0, viewPopup.Controls.Count + 1);

                #endregion

                #region Add CollapseAllProjects command

                // Get "Solution Explorer" command bar
                CommandBar slnCommandBar = helper.GetCommandBarByName("Solution");
                // Add a new command
                helper.AddNamedCommand2(slnCommandBar, COLLAPSE_ALL_PROJECTS_COMMAND_NAME,
                                        "Collapse All Projects", "Collapse All Projects", false, 0, slnCommandBar.Controls.Count + 1);

                #endregion

                #region Add PropertyManager commands

                // Get "Code Window" command bar
                CommandBar codeWinCommandBar = helper.GetCommandBarByName("Code Window");

                int             pmPopupIndex = codeWinCommandBar.Controls.Count + 1;
                CommandBarPopup pmPopup      = codeWinCommandBar.Controls.Add(
                    MsoControlType.msoControlPopup, Type.Missing, Type.Missing,
                    pmPopupIndex, true) as CommandBarPopup;
                pmPopup.Caption = "PropertyManager";

                CommandBarButton batchPropertyCmd = helper.AddButtonToPopup(pmPopup, pmPopup.Controls.Count + 1,
                                                                            "Batch Property", "Encapsulate these fields");
                batchPropertyCmdEvent        = _applicationObject.Events.get_CommandBarEvents(batchPropertyCmd) as CommandBarEvents;
                batchPropertyCmdEvent.Click += new _dispCommandBarControlEvents_ClickEventHandler(BatchPropertyCmdEvent_Click);

                CommandBarButton convertToAutoPropCmd = helper.AddButtonToPopup(pmPopup, pmPopup.Controls.Count + 1,
                                                                                "Convert to Auto-Property", "Convert to Auto-Property(C# 3.0 style)");
                convertToAutoPropCmdEvent        = _applicationObject.Events.get_CommandBarEvents(convertToAutoPropCmd) as CommandBarEvents;
                convertToAutoPropCmdEvent.Click += new _dispCommandBarControlEvents_ClickEventHandler(ConvertToAutoPropCmdEvent_Click);

                CommandBarButton convertToNormalPropCmd = helper.AddButtonToPopup(pmPopup, pmPopup.Controls.Count + 1,
                                                                                  "Convert to Normal-Property", "Convert to Normal-Property(C# 2.0 style)");
                convertToNormalPropCmdEvent        = _applicationObject.Events.get_CommandBarEvents(convertToNormalPropCmd) as CommandBarEvents;
                convertToNormalPropCmdEvent.Click += new _dispCommandBarControlEvents_ClickEventHandler(ConvertToNormalPropCmdEvent_Click);

                #endregion

                #region Add CodeTemplate commands

                // Add popup menu item
                int             templatePopupIndex = codeWinCommandBar.Controls.Count + 1;
                CommandBarPopup codeTemplatePopup  = codeWinCommandBar.Controls.Add(
                    MsoControlType.msoControlPopup, Type.Missing, Type.Missing,
                    templatePopupIndex, true) as CommandBarPopup;
                codeTemplatePopup.Caption = "Code Template";

                List <string> templateNames = CodeTemplateManager.Instance.GetTemplateNames();
                codeTemplateCmdEvents = new CommandBarEvents[templateNames.Count];
                for (int i = 0; i < templateNames.Count; i++)
                {
                    string           name            = templateNames[i];
                    CommandBarButton codeTemplateCmd = helper.AddButtonToPopup(codeTemplatePopup, codeTemplatePopup.Controls.Count + 1,
                                                                               name, "Insert this code template");
                    codeTemplateCmdEvents[i]        = _applicationObject.Events.get_CommandBarEvents(codeTemplateCmd) as CommandBarEvents;
                    codeTemplateCmdEvents[i].Click += new _dispCommandBarControlEvents_ClickEventHandler(codeTemplateCmdEvent_Click);
                }

                #endregion

                #region Add Code Model commands

                //CommandBarButton codeModelCmd = helper.AddButtonToCmdBar(codeWinCommandBar, codeWinCommandBar.Controls.Count + 1,
                //    "Code Model", "Code Model Sample");
                //codeModelCmdEvent = _applicationObject.Events.get_CommandBarEvents(codeModelCmd) as CommandBarEvents;
                //codeModelCmdEvent.Click += new _dispCommandBarControlEvents_ClickEventHandler(CodeModelCmdEvent_Click);

                #endregion

                #region Search This commands

                int             searchThisPopupIndex = codeWinCommandBar.Controls.Count + 1;
                CommandBarPopup searchThisPopup      = codeWinCommandBar.Controls.Add(
                    MsoControlType.msoControlPopup, Type.Missing, Type.Missing,
                    searchThisPopupIndex, true) as CommandBarPopup;
                searchThisPopup.Caption = "Search This In";

                List <SearchEngine> engines = SearchEngineConfigManager.Instance.GetSearchEngines();
                searchTextCmdEvents = new CommandBarEvents[engines.Count];
                for (int i = 0; i < engines.Count; i++)
                {
                    SearchEngine     e         = engines[i];
                    CommandBarButton searchCmd = helper.AddButtonToPopup(searchThisPopup, searchThisPopup.Controls.Count + 1,
                                                                         e.Name, "Search in " + e.Name);
                    if (i == 0)
                    {
                        searchCmd.FaceId = 141;
                    }
                    searchTextCmdEvents[i]        = _applicationObject.Events.get_CommandBarEvents(searchCmd) as CommandBarEvents;
                    searchTextCmdEvents[i].Click += new _dispCommandBarControlEvents_ClickEventHandler(SearchTextCmdEvent_Click);
                }

                #endregion
            }
            else if (connectMode == ext_ConnectMode.ext_cm_AfterStartup)
            {
                object   programmingObj = null;
                string   guidString     = "{41F8DEA8-EB07-45b7-9B1D-EB969DC43EC5}";
                Windows2 windows2       = _applicationObject.Windows as Windows2;
                Assembly asm            = Assembly.GetExecutingAssembly();
                shortcutListWindow = windows2.CreateToolWindow2(_addInInstance, asm.Location,
                                                                "NEnhancer.ShortcutListControl", "Visual Studio Shortcut List",
                                                                guidString, ref programmingObj);
                shortcutListCtrl           = shortcutListWindow.Object as ShortcutListControl;
                shortcutListCtrl.DTEObject = _applicationObject;
            }
        }
コード例 #15
0
 /// <summary>实现 IDTExtensibility2 接口的 OnConnection 方法。接收正在加载外接程序的通知。</summary>
 /// <param term='application'>宿主应用程序的根对象。</param>
 /// <param term='connectMode'>描述外接程序的加载方式。</param>
 /// <param term='addInInst'>表示此外接程序的对象。</param>
 /// <seealso class='IDTExtensibility2' />
 public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
 {
     this._applicationObject = (DTE2)application;
     this._addInInstance     = (AddIn)addInInst;
     if (connectMode == ext_ConnectMode.ext_cm_UISetup || connectMode == ext_ConnectMode.ext_cm_Startup)
     {
         object[]          array             = new object[0];
         Commands2         commands          = (Commands2)this._applicationObject.Commands;
         string            index             = "Tools";
         CommandBar        commandBar        = ((CommandBars)this._applicationObject.CommandBars)["MenuBar"];
         CommandBarControl commandBarControl = commandBar.Controls[index];
         CommandBarPopup   commandBarPopup   = (CommandBarPopup)commandBarControl;
         CommandBars       commandBars       = (CommandBars)this._applicationObject.DTE.CommandBars;
         CommandBar        commandBarProject = commandBars["Project"];
         CommandBar        commandBarItem    = commandBars["Item"];
         CommandBar        commandBarFolder  = commandBars["Folder"];
         try
         {
             CommandBarControl commandBarControl2 = commandBarProject.Controls.Add(MsoControlType.msoControlButton, 1, "", 1, true);
             commandBarControl2.Tag         = "ConnectConfig";
             commandBarControl2.Caption     = "wtf配置连接";
             commandBarControl2.TooltipText = "ConnectConfig";
             this.connectItemHandler        = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl2);
             this.connectItemHandler.Click += ConnectItem_Click;
             CommandBarControl commandBarControl3 = commandBarProject.Controls.Add(MsoControlType.msoControlButton, 1, "", 2, true);
             commandBarControl3.Tag             = "AddRuleCode";
             commandBarControl3.Caption         = "wtf新增业务层";
             commandBarControl3.TooltipText     = "AddRuleCode";
             this.addRuleCodeItemHandler        = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl3);
             this.addRuleCodeItemHandler.Click += AddRuleCodeItem_Click;
             CommandBarControl commandBarControl4 = commandBarProject.Controls.Add(MsoControlType.msoControlButton, 1, "", 3, true);
             commandBarControl4.Tag               = "AddCodeConfig";
             commandBarControl4.Caption           = "wtf一键生成配置文件";
             commandBarControl4.TooltipText       = "AddCodeConfig";
             this.AddCodeConfigItemHandler        = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl4);
             this.AddCodeConfigItemHandler.Click += AddCodeConfigItem_Click;
             CommandBarControl commandBarControl5 = commandBarItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 1, true);
             commandBarControl5.Tag         = "Update";
             commandBarControl5.Caption     = "wtf更新代码";
             commandBarControl5.TooltipText = "Update";
             this.updateHandler             = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl5);
             this.updateHandler.Click      += CSItem_Click;
             CommandBarControl commandBarControl6 = commandBarItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 2, true);
             commandBarControl6.Tag         = "Update";
             commandBarControl6.Caption     = "wtf更新实体和访问层";
             commandBarControl6.TooltipText = "Update";
             this.updateEDHandler           = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl6);
             this.updateEDHandler.Click    += CSEDItem_Click;
             CommandBarControl commandBarControl7 = commandBarItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 3, true);
             commandBarControl7.Tag         = "SqlEdit";
             commandBarControl7.Caption     = "wtf新增编辑页";
             commandBarControl7.TooltipText = "SqlEdit";
             this.SqlEditHandler            = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl7);
             this.SqlEditHandler.Click     += SqlEditItem_Click;
             CommandBarControl commandBarControl8 = commandBarItem.Controls.Add(MsoControlType.msoControlButton, 1, "", 4, true);
             commandBarControl8.Tag         = "SqlLsit";
             commandBarControl8.Caption     = "wtf新增列表页";
             commandBarControl8.TooltipText = "SqlLsit";
             this.SqlListHandler            = (CommandBarEvents)this._applicationObject.DTE.Events.get_CommandBarEvents(commandBarControl8);
             this.SqlListHandler.Click     += SqlListItem_Click;
             Command command = commands.AddNamedCommand2(this._addInInstance, "WTFCode", "WTFCode", "Executes the command for WTFCode", true, 59, ref array, 3, 3, vsCommandControlType.vsCommandControlTypeButton);
             if (command != null && commandBarPopup != null)
             {
                 command.AddControl(commandBarPopup.CommandBar, 1);
             }
         }
         catch (ArgumentException)
         {
         }
     }
 }
コード例 #16
0
        /// <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);
        }
コード例 #17
0
        /////////////////////////////////////////////////////////////////////////////
        // Overriden Package Implementation
        #region Package Members

        /// <summary>
        /// Initialization of the package; this method is called right after the package is sited, so this is the place
        /// where you can put all the initilaization code that rely on services provided by VisualStudio.
        /// </summary>
        protected override void Initialize()
        {
            try
            {
                Trace.WriteLine(string.Format(CultureInfo.CurrentCulture, "Entering Initialize() of: {0}", this.ToString()));
                base.Initialize();

                // Add our command handlers for menu (commands must exist in the .vsct file)
                OleMenuCommandService mcs = GetService(typeof(IMenuCommandService)) as OleMenuCommandService;
                if (mcs != null)
                {
                    // Create the solution builder command for the Mo+ Menu
                    CommandID   incodeBuilderCommandID = new CommandID(GuidList.guidInCodeMenuCmdSet, (int)PkgCmdIDList.cmdidSolutionBuilderControl);
                    MenuCommand incodeBuilderToolWin   = new MenuCommand(SolutionBuilderCallback, incodeBuilderCommandID);
                    mcs.AddCommand(incodeBuilderToolWin);

                    // Create the solution updater command for the Mo+ Menu
                    CommandID   incodeUpdaterCommandID = new CommandID(GuidList.guidInCodeMenuCmdSet, (int)PkgCmdIDList.cmdidSolutionUpdaterControl);
                    MenuCommand incodeUpdaterToolWin   = new MenuCommand(SolutionUpdaterCallback, incodeUpdaterCommandID);
                    mcs.AddCommand(incodeUpdaterToolWin);
                }
                else
                {
                    SolutionBuilderPane.OutputString("Could not get IMenuCommandService.");
                }

                // add the handler for tracking solution opens and closes
                if (ApplicationObject != null)
                {
                    // wire up solution events
                    PackageSolutionEvents         = ApplicationObject.Events.SolutionEvents;
                    PackageSolutionEvents.Opened += new _dispSolutionEvents_OpenedEventHandler(CheckOpenCurrentSolution);

                    // get the solution command bar
                    CommandBar solutionCommandBar = ((CommandBars)ApplicationObject.CommandBars)["Solution"];

                    // set up the main Mo+ context menu
                    CommandBarPopup solutionPopup = (CommandBarPopup)solutionCommandBar.Controls.Add(MsoControlType.msoControlPopup, System.Reflection.Missing.Value, System.Reflection.Missing.Value, 3, true);
                    solutionPopup.Caption = "Mo+";

                    // add solution builder submenu
                    CommandBarControl solutionBuilderControl = solutionPopup.Controls.Add(MsoControlType.msoControlButton, System.Reflection.Missing.Value, System.Reflection.Missing.Value, 1, true);
                    solutionBuilderControl.Caption              = "Solution Builder";
                    launchSolutionBuilderMenuItemHandler        = (CommandBarEvents)ApplicationObject.Events.get_CommandBarEvents(solutionBuilderControl);
                    launchSolutionBuilderMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(launchSolutionBuilder_Click);

                    // add solution updater submenu
                    CommandBarControl solutionUpdaterControl = solutionPopup.Controls.Add(MsoControlType.msoControlButton, System.Reflection.Missing.Value, System.Reflection.Missing.Value, 1, true);
                    solutionUpdaterControl.Caption       = "Update Solution";
                    updateSolutionMenuItemHandler        = (CommandBarEvents)ApplicationObject.Events.get_CommandBarEvents(solutionUpdaterControl);
                    updateSolutionMenuItemHandler.Click += new _dispCommandBarControlEvents_ClickEventHandler(updateSolution_Click);

                    // if solution is already open, load it
                    CheckOpenCurrentSolution();
                }
            }
            catch (System.Exception ex)
            {
                // put exception message in output pane
                SolutionBuilderPane.OutputString(ex.Message);
            }
        }
コード例 #18
0
ファイル: Connect.cs プロジェクト: eneiand/Baseline
        /// <summary>Implements the OnConnection method of the IDTExtensibility2 interface. Receives notification that the Add-in is being loaded.</summary>
        /// <param term='application'>Root object of the host application.</param>
        /// <param term='connectMode'>Describes how the Add-in is being loaded.</param>
        /// <param term='addInInst'>Object representing this Add-in.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _applicationObject = (DTE2)application;
            _addInInstance = (AddIn)addInInst;
            if(connectMode == ext_ConnectMode.ext_cm_UISetup)
            {
                object []contextGUIDS = new object[] { };
                Commands2 commands = (Commands2)_applicationObject.Commands;

                //Place the command on the project context menu
                Microsoft.VisualStudio.CommandBars.CommandBar projectContextMenu = ((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars)["Project"];

                CommandBarPopup baseLinePopup = (CommandBarPopup)projectContextMenu.Controls.Add(MsoControlType.msoControlPopup,
                    System.Reflection.Missing.Value, System.Reflection.Missing.Value, 1, true );

                baseLinePopup.Caption = "Baseline";

                CommandBarControl generateTestsControl =
                baseLinePopup.Controls.Add(MsoControlType.msoControlButton,
                System.Reflection.Missing.Value,
                System.Reflection.Missing.Value, 1, true);
                // Set the caption of the submenuitem
                generateTestsControl.Caption = "Generate Unit Tests";

                m_generateTestsHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(generateTestsControl);
                m_generateTestsHandler.Click += GenerateTestsClick;

                m_NCrunchMenu =
            ((CommandBars)
             _applicationObject.CommandBars)["NCrunch"];
                //m_FinishedNCrunchSearch = new ManualResetEvent(false);
                //ThreadPool.QueueUserWorkItem((w) =>
                //{
                //    m_NCrunchMenu =
                //        ((Microsoft.VisualStudio.CommandBars.CommandBars)
                //         _applicationObject.CommandBars)["NCrunch"];
                //    m_FinishedNCrunchSearch.Set();
                //});
            }
        }
コード例 #19
0
 private int AddSubMenu(out CommandBarControl menuItem, CommandBarPopup parent, out CommandBarEvents eventHandler, int position, string caption)
 {
     return(AddSubMenu(out menuItem, parent, out eventHandler, position, caption, string.Empty, string.Empty));
 }
コード例 #20
0
ファイル: CVXConnect.cs プロジェクト: tigaliang/ClangVSx
        /// <summary>Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.</summary>
        /// <param term='custom'>Array of parameters that are host application specific.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnStartupComplete(ref Array custom)
        {
            var contextGUIDS = new object[] { };
              var commands = (Commands2)_applicationObject.Commands;
              var _commandBars =
              ((CommandBars)_applicationObject.CommandBars);

              // add a top-level menu to stick some global options in
              {
            Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar =
            ((CommandBars)_applicationObject.CommandBars)["MenuBar"];

            int nenhancerPopupIndex = menuBarCommandBar.Controls.Count + 1;
            var clangMenuRoot = menuBarCommandBar.Controls.Add(
            MsoControlType.msoControlPopup,
            Type.Missing,
            Type.Missing,
            nenhancerPopupIndex,
            true) as CommandBarPopup;
            clangMenuRoot.Caption = "Clang";

            // open the settings dialog
            {
              _dteHelper.AddNamedCommand2(
              COMMAND_CLANG_SETTINGS_DLG,
              "Settings...",
              "Settings...",
              false,
              0);
              Command commandToAdd =
              _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_SETTINGS_DLG), 0);
              SettingsButton =
              commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
              as CommandBarButton;
            }

            // get active vcproj, rebuild it with Clang
            {
              _dteHelper.AddNamedCommand2(
              COMMAND_CLANG_REBUILD_ACTIVE,
              "Rebuild Active Project",
              "Rebuild Active Project",
              false,
              0);
              Command commandToAdd =
              _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_REBUILD_ACTIVE), 0);
              RebuildActiveProjectButton =
              commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
              as CommandBarButton;
            }
            {
              _dteHelper.AddNamedCommand2(
              COMMAND_CLANG_RELINK_ACTIVE,
              "Relink",
              "Relink",
              false,
              0);
              Command commandToAdd =
              _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_RELINK_ACTIVE), 0);
              RelinkButton =
              commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
              as CommandBarButton;
            }
            {
              _dteHelper.AddNamedCommand2(
              COMMAND_CLANG_CANCEL_BUILD,
              "Cancel Build",
              "Cancel Build",
              false,
              0);
              Command commandToAdd =
              _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_CANCEL_BUILD), 0);
              CancelBuildButton =
              commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
              as CommandBarButton;
            }
              }
              // add a compile-this-file option to the editor window
              {
            Microsoft.VisualStudio.CommandBars.CommandBar codeWinCommandBar =
            _dteHelper.GetCommandBarByName("Code Window");

            int pmPopupIndex = codeWinCommandBar.Controls.Count + 1;
            var pmPopup = codeWinCommandBar.Controls.Add(
            MsoControlType.msoControlPopup,
            Type.Missing,
            Type.Missing,
            pmPopupIndex,
            true) as CommandBarPopup;
            pmPopup.Caption = "Clang Compiler";

            CommandBarButton saveAndCompileCmd = _dteHelper.AddButtonToPopup(
            pmPopup,
            pmPopup.Controls.Count + 1,
            "Compile",
            "Compile");
            CompileCmdEvent = _applicationObject.Events.get_CommandBarEvents(saveAndCompileCmd) as CommandBarEvents;
            CompileCmdEvent.Click += cvxCompileFile_menuop;

            CommandBarButton saveAndAnalyseCmd = _dteHelper.AddButtonToPopup(
            pmPopup,
            pmPopup.Controls.Count + 1,
            "Run Static Analysis",
            "Run Static Analysis");
            AnalyseCmdEvent = _applicationObject.Events.get_CommandBarEvents(saveAndAnalyseCmd) as CommandBarEvents;
            AnalyseCmdEvent.Click += cvxAnalyseFile_menuop;

            CommandBarButton saveAndDasmCmd = _dteHelper.AddButtonToPopup(
            pmPopup,
            pmPopup.Controls.Count + 1,
            "View Disassembly (LLVM)",
            "View Disassembly (LLVM)");
            DasmCmdEvent = _applicationObject.Events.get_CommandBarEvents(saveAndDasmCmd) as CommandBarEvents;
            DasmCmdEvent.Click += cvxDasmnFile_menuop;

            CommandBarButton dasmAndPreproCmd = _dteHelper.AddButtonToPopup(
            pmPopup,
            pmPopup.Controls.Count + 1,
            "View Preprocessor Result",
            "View Preprocessor Result");
            PreproCmdEvent = _applicationObject.Events.get_CommandBarEvents(dasmAndPreproCmd) as CommandBarEvents;
            PreproCmdEvent.Click += cvxPreProFile_menuop;
              }
        }
コード例 #21
0
        private int AddSubMenu(out CommandBarControl menuItem, CommandBarPopup parent, out CommandBarEvents eventHandler, int position, string caption, string imagePath, string maskedImagePath)
        {
            menuItem         = parent.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, position, true);
            menuItem.Caption = caption;

            eventHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(menuItem);

            return(position + 1);
        }
コード例 #22
0
ファイル: CVXConnect.cs プロジェクト: tigaliang/ClangVSx
        /// <summary>Implements the OnStartupComplete method of the IDTExtensibility2 interface. Receives notification that the host application has completed loading.</summary>
        /// <param term='custom'>Array of parameters that are host application specific.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnStartupComplete(ref Array custom)
        {
            var contextGUIDS = new object[] { };
            var commands     = (Commands2)_applicationObject.Commands;
            var _commandBars =
                ((CommandBars)_applicationObject.CommandBars);

            // add a top-level menu to stick some global options in
            {
                Microsoft.VisualStudio.CommandBars.CommandBar menuBarCommandBar =
                    ((CommandBars)_applicationObject.CommandBars)["MenuBar"];

                int nenhancerPopupIndex = menuBarCommandBar.Controls.Count + 1;
                var clangMenuRoot       = menuBarCommandBar.Controls.Add(
                    MsoControlType.msoControlPopup,
                    Type.Missing,
                    Type.Missing,
                    nenhancerPopupIndex,
                    true) as CommandBarPopup;
                clangMenuRoot.Caption = "Clang";

                // open the settings dialog
                {
                    _dteHelper.AddNamedCommand2(
                        COMMAND_CLANG_SETTINGS_DLG,
                        "Settings...",
                        "Settings...",
                        false,
                        0);
                    Command commandToAdd =
                        _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_SETTINGS_DLG), 0);
                    SettingsButton =
                        commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
                        as CommandBarButton;
                }

                // get active vcproj, rebuild it with Clang
                {
                    _dteHelper.AddNamedCommand2(
                        COMMAND_CLANG_REBUILD_ACTIVE,
                        "Rebuild Active Project",
                        "Rebuild Active Project",
                        false,
                        0);
                    Command commandToAdd =
                        _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_REBUILD_ACTIVE), 0);
                    RebuildActiveProjectButton =
                        commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
                        as CommandBarButton;
                }
                {
                    _dteHelper.AddNamedCommand2(
                        COMMAND_CLANG_RELINK_ACTIVE,
                        "Relink",
                        "Relink",
                        false,
                        0);
                    Command commandToAdd =
                        _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_RELINK_ACTIVE), 0);
                    RelinkButton =
                        commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
                        as CommandBarButton;
                }
                {
                    _dteHelper.AddNamedCommand2(
                        COMMAND_CLANG_CANCEL_BUILD,
                        "Cancel Build",
                        "Cancel Build",
                        false,
                        0);
                    Command commandToAdd =
                        _applicationObject.Commands.Item(GetCommandFullName(COMMAND_CLANG_CANCEL_BUILD), 0);
                    CancelBuildButton =
                        commandToAdd.AddControl(clangMenuRoot.CommandBar, clangMenuRoot.CommandBar.Controls.Count + 1)
                        as CommandBarButton;
                }
            }
            // add a compile-this-file option to the editor window
            {
                Microsoft.VisualStudio.CommandBars.CommandBar codeWinCommandBar =
                    _dteHelper.GetCommandBarByName("Code Window");

                int pmPopupIndex = codeWinCommandBar.Controls.Count + 1;
                var pmPopup      = codeWinCommandBar.Controls.Add(
                    MsoControlType.msoControlPopup,
                    Type.Missing,
                    Type.Missing,
                    pmPopupIndex,
                    true) as CommandBarPopup;
                pmPopup.Caption = "Clang Compiler";

                CommandBarButton saveAndCompileCmd = _dteHelper.AddButtonToPopup(
                    pmPopup,
                    pmPopup.Controls.Count + 1,
                    "Compile",
                    "Compile");
                CompileCmdEvent        = _applicationObject.Events.get_CommandBarEvents(saveAndCompileCmd) as CommandBarEvents;
                CompileCmdEvent.Click += cvxCompileFile_menuop;

                CommandBarButton saveAndAnalyseCmd = _dteHelper.AddButtonToPopup(
                    pmPopup,
                    pmPopup.Controls.Count + 1,
                    "Run Static Analysis",
                    "Run Static Analysis");
                AnalyseCmdEvent        = _applicationObject.Events.get_CommandBarEvents(saveAndAnalyseCmd) as CommandBarEvents;
                AnalyseCmdEvent.Click += cvxAnalyseFile_menuop;

                CommandBarButton saveAndDasmCmd = _dteHelper.AddButtonToPopup(
                    pmPopup,
                    pmPopup.Controls.Count + 1,
                    "View Disassembly (LLVM)",
                    "View Disassembly (LLVM)");
                DasmCmdEvent        = _applicationObject.Events.get_CommandBarEvents(saveAndDasmCmd) as CommandBarEvents;
                DasmCmdEvent.Click += cvxDasmnFile_menuop;

                CommandBarButton dasmAndPreproCmd = _dteHelper.AddButtonToPopup(
                    pmPopup,
                    pmPopup.Controls.Count + 1,
                    "View Preprocessor Result",
                    "View Preprocessor Result");
                PreproCmdEvent        = _applicationObject.Events.get_CommandBarEvents(dasmAndPreproCmd) as CommandBarEvents;
                PreproCmdEvent.Click += cvxPreProFile_menuop;
            }
        }
コード例 #23
0
ファイル: Connect.cs プロジェクト: nhu/RefLoc
        /// <summary>Implementiert die OnConnection-Methode der IDTExtensibility2-Schnittstelle. Empfängt eine Benachrichtigung, wenn das Add-In geladen wird.</summary>
        /// <param term='application'>Stammobjekt der Hostanwendung.</param>
        /// <param term='connectMode'>Beschreibt, wie das Add-In geladen wird.</param>
        /// <param term='addInInst'>Objekt, das dieses Add-In darstellt.</param>
        /// <seealso class='IDTExtensibility2' />
        public void OnConnection(object application, ext_ConnectMode connectMode, object addInInst, ref Array custom)
        {
            _applicationObject = (DTE2) application;
            _addInInstance = (AddIn) addInInst;

            AssemblyDetectionProvider = new AssemblyDetectionProvider(new AssemblyDetectionService(),
                                                                      new AssemblyMemoryStoreService());

            var oCommandBar = ((CommandBars)_applicationObject.CommandBars)["Code Window"];

            var button = (CommandBarButton)
              oCommandBar.Controls.Add(MsoControlType.msoControlButton,
              Missing.Value,
              Missing.Value, 1, true);
            button.Caption = "Reference detection";

            _oSubMenuItemHandler = (CommandBarEvents)_applicationObject.Events.get_CommandBarEvents(button);
            _oSubMenuItemHandler.Click += ProcessDetectButtonClick;
        }