예제 #1
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
            if (cmdGroup == Guids.NodejsNpmCmdSet) {
                switch (cmd) {
                    case PkgCmdId.cmdidNpmUpdateModules:
                        if (_parent.IsCurrentStateASuppressCommandsMode()) {
                            result = QueryStatusResult.SUPPORTED;
                        }
                        else {
                            if (AllChildren.Any()) {
                                result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                            }
                            else {
                                result = QueryStatusResult.SUPPORTED;
                            }
                        }
                        return VSConstants.S_OK;

                    case PkgCmdId.cmdidNpmInstallModules:
                    case PkgCmdId.cmdidNpmInstallSingleMissingModule:
                    case PkgCmdId.cmdidNpmUninstallModule:
                    case PkgCmdId.cmdidNpmUpdateSingleModule:
                    case PkgCmdId.cmdidNpmOpenModuleHomepage:
                        result = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                        return VSConstants.S_OK;
                }
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #2
0
		/// <summary>
		/// Disable certain commands for dependent file nodes 
		/// </summary>
		internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
		{
			if(cmdGroup == VsMenus.guidStandardCommandSet97)
			{
				switch((VsCommands)cmd)
				{
					case VsCommands.Copy:
					case VsCommands.Paste:
					case VsCommands.Cut:
					case VsCommands.Rename:
						result |= QueryStatusResult.NOTSUPPORTED;
						return VSConstants.S_OK;

					case VsCommands.ViewCode:
					case VsCommands.Open:
					case VsCommands.OpenWith:
						result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
						return VSConstants.S_OK;
				}
			}
			else if(cmdGroup == VsMenus.guidStandardCommandSet2K)
			{
				if((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
				{
					result |= QueryStatusResult.NOTSUPPORTED;
					return VSConstants.S_OK;
				}
			}
			else
			{
				return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
			}
			return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
		}
예제 #3
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
     //Hide Exclude from Project command, show everything else normal Folder node supports
     if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K) {
         switch ((VsCommands2K)cmd) {
             case VsCommands2K.EXCLUDEFROMPROJECT:
                 if (ItemNode.IsExcluded) {
                     result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                     return VSConstants.S_OK;
                 }
                 break;
             case VsCommands2K.INCLUDEINPROJECT:
                 if (ItemNode.IsExcluded) {
                     result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                     return VSConstants.S_OK;
                 }
                 break;
             case CommonConstants.OpenFolderInExplorerCmdId:
                 result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                 return VSConstants.S_OK;
         }
     } else if (cmdGroup == ProjectMgr.SharedCommandGuid) {
         switch ((SharedCommands)cmd) {
             case SharedCommands.AddExistingFolder:
                 result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                 return VSConstants.S_OK;
         }
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #4
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (IsEntryPoint)
     {
         if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet97
             && (VsCommands)cmd == VsCommands.Rename
             || (VsCommands)cmd == VsCommands.Cut)
         {
             result |= QueryStatusResult.NOTSUPPORTED;
             return (int)OleConstants.OLECMDERR_E_NOTSUPPORTED;
         }
         if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K
             && (VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
         {
             result |= QueryStatusResult.NOTSUPPORTED;
             return (int)OleConstants.OLECMDERR_E_NOTSUPPORTED;
         }
     }
     if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K
         && (VsCommands2K)cmd == VsCommands2K.INCLUDEINPROJECT
         && ItemNode.ItemTypeName == null)
     {
         result |= QueryStatusResult.NOTSUPPORTED;
         return (int)OleConstants.OLECMDERR_E_NOTSUPPORTED;
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #5
0
        protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == Microsoft.VisualStudio.Shell.VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                    case VsCommands.AddNewItem:
                    case VsCommands.AddExistingItem:
                    case VsCommands.ViewCode:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                    case VsCommands.ViewForm:
                        if (SubType == "Form")
                            result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            }
            else if (guidCmdGroup == RubyMenus.guidRubyProjectCmdSet && cmd == RubyMenus.SetAsMain.ID)
            {
                result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                return VSConstants.S_OK;
            }
 
            return base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result);
        }
예제 #6
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K
         && (VsCommands2K)cmd == VsCommands2K.INCLUDEINPROJECT)
     {
         result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
         return (int)VSConstants.S_OK;
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
        /// <inheritdoc />
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText,
          ref QueryStatusResult result)
        {
            if(cmdGroup == GuidList.guidSandcastleBuilderPackageCmdSet && cmd == PkgCmdIDList.AddDocSource)
            {
                result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                return VSConstants.S_OK;
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #8
0
 protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     //Hide Exclude from Project command, show everything else normal Folder node supports
     if (cmdGroup == Microsoft.VisualStudio.Project.VsMenus.guidStandardCommandSet2K) {
         if (cmd == CommonConstants.OpenFolderInExplorerCmdId) {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return VSConstants.S_OK;
         }
         else if ((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT) {
             result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
             return VSConstants.S_OK;
         }
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #9
0
 internal override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
     if (guidCmdGroup == Guids.NodejsCmdSet) {
         if (this.ProjectMgr.IsCodeFile(this.Url)) {
             switch (cmd) {
                 case PkgCmdId.cmdidSetAsNodejsStartupFile:
                     //We enable "Set as StartUp File" command only on current language code files, 
                     //the file is in project home dir and if the file is not the startup file already.
                     string startupFile = ((CommonProjectNode)ProjectMgr).GetStartupFile();
                     if (!CommonUtils.IsSamePath(startupFile, this.Url)) {
                         result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                     }
                     return VSConstants.S_OK;
             }
         }
     }
     return base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result);
 }
예제 #10
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.Copy:
                case VsCommands.Paste:
                case VsCommands.Cut:
                case VsCommands.Rename:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);

                case VsCommands.ViewCode:
                //case VsCommands.Delete: goto case VsCommands.OpenWith;
                case VsCommands.Open:
                case VsCommands.OpenWith:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
                if ((VsCommands2K)cmd == VsCommands2K.RUNCUSTOMTOOL)
                {
                    if (string.IsNullOrEmpty(this.ItemNode.GetMetadata(ProjectFileConstants.DependentUpon)) && (this.NodeProperties is SingleFileGeneratorNodeProperties))
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return(VSConstants.S_OK);
                    }
                }
            }
            else
            {
                return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
            }
            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #11
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
            if (cmdGroup == VsMenus.guidStandardCommandSet97) {
                switch ((VsCommands)cmd) {
                    case VsCommands.Copy:
                    case VsCommands.Cut:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                        return VSConstants.S_OK;
                }
            } else if (cmdGroup == GuidList.guidPythonToolsCmdSet) {
                switch (cmd) {
                    case PythonConstants.AddEnvironment:
                    case PythonConstants.AddVirtualEnv:
                    case PythonConstants.AddExistingVirtualEnv:
                    case PythonConstants.ViewAllEnvironments:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            WixProjectNode projectNode = this.ProjectMgr as WixProjectNode;

            if (projectNode != null && projectNode.QueryStatusOnProjectNode(cmdGroup, cmd, ref result))
            {
                return(VSConstants.S_OK);
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #13
0
        /// <summary>
        /// Queries the object for the command status on a list of selected nodes.
        /// </summary>
        /// <param name="cmdGroup">A unique identifier of the command group.</param>
        /// <param name="cCmds">The number of commands in the prgCmds array</param>
        /// <param name="prgCmds">A caller-allocated array of OLECMD structures that indicate the commands for which the caller requires status information. This method fills the cmdf member of each structure with values taken from the OLECMDF enumeration</param>
        /// <param name="pCmdText">Pointer to an OLECMDTEXT structure in which to return the name and/or status information of a single command. Can be NULL to indicate that the caller does not require this information. </param>
        /// <param name="commandOrigin">Specifies the origin of the command. Either it was called from the QueryStatusCommand on IVsUIHierarchy or from the IOleCommandTarget</param>
        /// <returns>If the method succeeds, it returns S_OK. If it fails, it returns an error code.</returns>
        protected virtual int QueryStatusSelection(Guid cmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText, CommandOrigin commandOrigin)
        {
            if (IsClosed)
            {
                return((int)OleConstants.OLECMDERR_E_NOTSUPPORTED);
            }

            if (cmdGroup == Guid.Empty)
            {
                return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
            }

            Utilities.ArgumentNotNull("prgCmds", prgCmds);

            uint cmd = prgCmds[0].cmdID;
            QueryStatusResult queryResult = QueryStatusResult.NOTSUPPORTED;

            // For now ask this node (that is the project node) to disable or enable a node.
            // This is an optimization. Why should we ask each node for its current state? They all are in the same state.
            // Also please note that we return QueryStatusResult.INVISIBLE instead of just QueryStatusResult.SUPPORTED.
            // The reason is that if the project has nested projects, then providing just QueryStatusResult.SUPPORTED is not enough.
            // What will happen is that the nested project will show grayed commands that belong to this project and does not belong to the nested project. (like special commands implemented by subclassed projects).
            // The reason is that a special command comes in that is not handled because we are in debug mode. Then VsCore asks the nested project can you handle it.
            // The nested project does not know about it, thus it shows it on the nested project as grayed.
            if (this.DisableCmdInCurrentMode(cmdGroup, cmd))
            {
                queryResult = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
            }
            else
            {
                bool handled = false;

                if (commandOrigin == CommandOrigin.OleCommandTarget)
                {
                    queryResult = this.QueryStatusCommandFromOleCommandTarget(cmdGroup, cmd, out handled);
                }

                if (!handled)
                {
                    IList <HierarchyNode> selectedNodes = GetSelectedNodes();

                    // Want to disable in multiselect case.
                    if (selectedNodes != null && selectedNodes.Count > 1)
                    {
                        queryResult = this.DisableCommandOnNodesThatDoNotSupportMultiSelection(cmdGroup, cmd, selectedNodes, out handled);
                    }

                    // Now go and do the job on the nodes.
                    if (!handled)
                    {
                        queryResult = this.QueryStatusSelectionOnNodes(selectedNodes, cmdGroup, cmd, pCmdText);
                    }
                }
            }

            // Process the results set in the QueryStatusResult
            if (queryResult != QueryStatusResult.NOTSUPPORTED)
            {
                // Set initial value
                prgCmds[0].cmdf = (uint)OLECMDF.OLECMDF_SUPPORTED;

                if ((queryResult & QueryStatusResult.ENABLED) != 0)
                {
                    prgCmds[0].cmdf |= (uint)OLECMDF.OLECMDF_ENABLED;
                }

                if ((queryResult & QueryStatusResult.INVISIBLE) != 0)
                {
                    prgCmds[0].cmdf |= (uint)OLECMDF.OLECMDF_INVISIBLE;
                }

                if ((queryResult & QueryStatusResult.LATCHED) != 0)
                {
                    prgCmds[0].cmdf |= (uint)OLECMDF.OLECMDF_LATCHED;
                }

                return(VSConstants.S_OK);
            }

            return((int)OleConstants.OLECMDERR_E_NOTSUPPORTED);
        }
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
     if (cmdGroup == VsMenus.guidStandardCommandSet97) {
         switch ((VsCommands)cmd) {
             case VsCommands.AddNewItem:
             case VsCommands.AddExistingItem:
                 result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                 return VSConstants.S_OK;
         }
     } else if (cmdGroup == VsMenus.guidStandardCommandSet2K) {
         if ((VsCommands2K)cmd == VsCommands2K.ADDREFERENCE) {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return VSConstants.S_OK;
         }
     } else {
         return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #15
0
        /// <summary>
        /// Handles command status on the project node. If a command cannot be handled then the base should be called.
        /// </summary>
        /// <param name="cmdGroup">A unique identifier of the command group. The pguidCmdGroup parameter can be NULL to specify the standard group.</param>
        /// <param name="cmd">The command to query status for.</param>
        /// <param name="pCmdText">Pointer to an OLECMDTEXT structure in which to return the name and/or status information of a single command. Can be NULL to indicate that the caller does not require this information.</param>
        /// <param name="result">An out parameter specifying the QueryStatusResult of the command.</param>
        /// <returns>If the method succeeds, it returns S_OK. If it fails, it returns an error code.</returns>
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                    case VsCommands.Copy:
                    case VsCommands.Paste:
                    case VsCommands.Cut:
                    case VsCommands.Rename:
                    case VsCommands.Exit:
                    case VsCommands.ProjectSettings:
                    case VsCommands.BuildSln:
                    case VsCommands.UnloadProject:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;

                    case VsCommands.ViewForm:
                        if (this.HasDesigner)
                        {
                            result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                            return VSConstants.S_OK;
                        }
                        break;

                    case VsCommands.CancelBuild:
                        result |= QueryStatusResult.SUPPORTED;
                        if (this.buildInProcess)
                            result |= QueryStatusResult.ENABLED;
                        else
                            result |= QueryStatusResult.INVISIBLE;
                        return VSConstants.S_OK;

                    case VsCommands.NewFolder:
                    case VsCommands.AddNewItem:
                    case VsCommands.AddExistingItem:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;

                    case VsCommands.SetStartupProject:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            }
            else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {

                switch ((VsCommands2K)cmd)
                {
                    case VsCommands2K.ADDREFERENCE:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;

                    case VsCommands2K.EXCLUDEFROMPROJECT:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                        return VSConstants.S_OK;

                    case ExploreFolderInWindowsCommand:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            }
            else
            {
                return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #16
0
        internal override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == GuidList.guidPythonToolsCmdSet)
            {
                if (this.ProjectMgr.IsCodeFile(this.Url))
                {
                    switch (cmd)
                    {
                    case CommonConstants.SetAsStartupFileCmdId:
                        //We enable "Set as StartUp File" command only on current language code files,
                        //the file is in project home dir and if the file is not the startup file already.
                        string startupFile = ((CommonProjectNode)ProjectMgr).GetStartupFile();
                        if (IsInProjectHome() &&
                            !CommonUtils.IsSamePath(startupFile, Url) &&
                            !IsNonMemberItem)
                        {
                            result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        }
                        return(VSConstants.S_OK);

                    case CommonConstants.StartDebuggingCmdId:
                    case CommonConstants.StartWithoutDebuggingCmdId:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return(VSConstants.S_OK);
                    }
                }
            }
            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }
예제 #17
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == Guids.NodejsNpmCmdSet)
            {
                switch (cmd)
                {
                case PkgCmdId.cmdidNpmUpdateModules:
                    if (this._parent.IsCurrentStateASuppressCommandsMode())
                    {
                        result = QueryStatusResult.SUPPORTED;
                    }
                    else
                    {
                        if (this.AllChildren.Any())
                        {
                            result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                        }
                        else
                        {
                            result = QueryStatusResult.SUPPORTED;
                        }
                    }
                    return(VSConstants.S_OK);

                case PkgCmdId.cmdidNpmInstallModules:
                case PkgCmdId.cmdidNpmInstallSingleMissingModule:
                case PkgCmdId.cmdidNpmUninstallModule:
                case PkgCmdId.cmdidNpmUpdateSingleModule:
                case PkgCmdId.cmdidNpmOpenModuleHomepage:
                    result = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #18
0
        protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (VsPkgMenus.guidStandardCommandSet97 == guidCmdGroup && this.IsNonMemberItem)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.ViewCode:
                    result = QueryStatusResult.NOTSUPPORTED;
                    return((int)OleConstants.MSOCMDERR_E_NOTSUPPORTED);
                }
            }

            int returnCode;

            if (WixHelperMethods.QueryStatusOnProjectSourceNode(this, guidCmdGroup, cmd, ref result, out returnCode))
            {
                return(returnCode);
            }

            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }
 protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == CommonConstants.Std97CmdGroupGuid)
     {
         switch ((VSConstants.VSStd97CmdID)cmd)
         {
         case VSConstants.VSStd97CmdID.BuildCtx:
         case VSConstants.VSStd97CmdID.RebuildCtx:
         case VSConstants.VSStd97CmdID.CleanCtx:
             result = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
             return(VSConstants.S_OK);
         }
     }
     else if (cmdGroup == GuidList.guidIronStudioCmdSet)
     {
         switch ((int)cmd)
         {
         case CommonConstants.AddSearchPathCommandId:
         case CommonConstants.StartWithoutDebuggingCmdId:
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
 }
예제 #20
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                switch ((VsCommands2K)cmd)
                {
                case VsCommands2K.ADDREFERENCE:
                    result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #21
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            //Hide Exclude from Project command, show everything else normal Folder node supports
            if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K)
            {
                switch ((VsCommands2K)cmd)
                {
                case VsCommands2K.EXCLUDEFROMPROJECT:
                    if (ItemNode.IsExcluded)
                    {
                        result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                        return(VSConstants.S_OK);
                    }
                    break;

                case VsCommands2K.INCLUDEINPROJECT:
                    if (ItemNode.IsExcluded)
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return(VSConstants.S_OK);
                    }
                    break;

                case CommonConstants.OpenFolderInExplorerCmdId:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else if (cmdGroup == ProjectMgr.SharedCommandGuid)
            {
                switch ((SharedCommands)cmd)
                {
                case SharedCommands.AddExistingFolder:
                    if (!ItemNode.IsExcluded)
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return(VSConstants.S_OK);
                    }
                    break;
                }
            }
            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #22
0
        protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (VsPkgMenus.guidStandardCommandSet97 == guidCmdGroup && this.IsNonMemberItem)
            {
                switch ((VsCommands)cmd)
                {
                    case VsCommands.ViewCode:
                        result = QueryStatusResult.NOTSUPPORTED;
                        return (int)OleConstants.MSOCMDERR_E_NOTSUPPORTED;
                }
            }

            int returnCode;
            if (WixHelperMethods.QueryStatusOnProjectSourceNode(this, guidCmdGroup, cmd, ref result, out returnCode))
            {
                return returnCode;
            }

            return base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result);
        }
예제 #23
0
        /// <summary>
        /// Handles the menuitems
        /// </summary>
        internal override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == Microsoft.VisualStudio.Shell.VsMenus.guidStandardCommandSet2K)
            {
                switch ((VsCommands2K)cmd)
                {
                case VsCommands2K.RUNCUSTOMTOOL:
                    result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                    return(VSConstants.S_OK);

                case VsCommands2K.EXCLUDEFROMPROJECT:
                    if (this.ItemNode.IsExcluded)
                    {
                        result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                        return(VSConstants.S_OK);
                    }
                    break;

                case VsCommands2K.INCLUDEINPROJECT:
                    if (this.ItemNode.IsExcluded)
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return(VSConstants.S_OK);
                    }
                    break;
                }
            }

            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }
예제 #24
0
 /// <summary>
 /// Disable Copy/Cut/Paste commands on Search Path node.
 /// </summary>
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet97)
     {
         switch ((VsCommands)cmd)
         {
         case VsCommands.Copy:
         case VsCommands.Cut:
         case VsCommands.Paste:
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
             return(VSConstants.S_OK);
         }
     }
     else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         switch ((VSConstants.VSStd2KCmdID)cmd)
         {
         case VSConstants.VSStd2KCmdID.EXCLUDEFROMPROJECT:
             result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
             return(VSConstants.S_OK);
         }
     }
     return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
 }
예제 #25
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == Guids.NodejsCmdSet)
     {
         switch (cmd)
         {
         case PkgCmdId.cmdidOpenReplWindow:
             result = QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
 }
예제 #26
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
            if (cmdGroup == VsMenus.guidStandardCommandSet97) {
                switch ((VsCommands)cmd) {
                    case VsCommands.Copy:
                    case VsCommands.Paste:
                    case VsCommands.Cut:
                    case VsCommands.Rename:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;

                    case VsCommands.NewFolder:
                        if (!IsNonMemberItem) {
                            result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                            return VSConstants.S_OK;
                        }
                        break;
                }
            } else if (cmdGroup == VsMenus.guidStandardCommandSet2K) {
                if ((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT) {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return VSConstants.S_OK;
                }
            } else if (cmdGroup != ProjectMgr.SharedCommandGuid) {
                return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
            }
            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #27
0
 internal override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (guidCmdGroup == Guids.NodejsCmdSet)
     {
         if (this.ProjectMgr.IsCodeFile(this.Url))
         {
             switch (cmd)
             {
             case PkgCmdId.cmdidSetAsNodejsStartupFile:
                 //We enable "Set as StartUp File" command only on current language code files,
                 //the file is in project home dir and if the file is not the startup file already.
                 string startupFile = ((CommonProjectNode)ProjectMgr).GetStartupFile();
                 if (!CommonUtils.IsSamePath(startupFile, this.Url))
                 {
                     result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                 }
                 return(VSConstants.S_OK);
             }
         }
     }
     return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
 }
예제 #28
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if ((VSConstants.VSStd2KCmdID)cmd == VSConstants.VSStd2KCmdID.ADDREFERENCE)
            {
                result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                return VSConstants.S_OK;
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #29
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else if (cmdGroup == VSProjectConstants.FSharpSendThisReferenceToInteractiveCmd.Guid && cmd == VSProjectConstants.FSharpSendThisReferenceToInteractiveCmd.ID)
            {
                if (CanBeReferencedFromFSI())
                {
                    result |= QueryStatusResult.SUPPORTED;
                    if (GetReferenceForFSI() != null)
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                }

                return(VSConstants.S_OK);
            }
            else
            {
                return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
            }
            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #30
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.Copy:
                case VsCommands.Cut:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                    return(VSConstants.S_OK);
                }
            }
            else if (cmdGroup == GuidList.guidPythonToolsCmdSet)
            {
                switch (cmd)
                {
                case PythonConstants.AddEnvironment:
                case PythonConstants.AddVirtualEnv:
                case PythonConstants.AddExistingVirtualEnv:
                case PythonConstants.ViewAllEnvironments:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #31
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            WixProjectNode projectNode = this.ProjectMgr as WixProjectNode;
            if (projectNode != null && projectNode.QueryStatusOnProjectNode(cmdGroup, cmd, ref result))
            {
                return VSConstants.S_OK;
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #32
0
        protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.Copy:
                case VsCommands.Paste:
                case VsCommands.Cut:
                case VsCommands.Rename:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);

                case VsCommands.NewFolder:
                case VsCommands.AddNewItem:
                case VsCommands.AddExistingItem:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else if (guidCmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else
            {
                return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
            }
            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }
예제 #33
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            int returnCode;
            if (WixHelperMethods.QueryStatusOnProjectSourceNode(this, cmdGroup, cmd, ref result, out returnCode))
            {
                return returnCode;
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #34
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
            if (cmdGroup == CommonConstants.Std97CmdGroupGuid) {
                switch ((VSConstants.VSStd97CmdID)cmd) {
                    case VSConstants.VSStd97CmdID.BuildCtx:
                    case VSConstants.VSStd97CmdID.RebuildCtx:
                    case VSConstants.VSStd97CmdID.CleanCtx:
                        result = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                        return VSConstants.S_OK;
                }
            } else if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K) {
                switch ((VsCommands2K)cmd) {
                    case VsCommands2K.ECMD_PUBLISHSELECTION:
                        if (pCmdText != IntPtr.Zero && NativeMethods.OLECMDTEXT.GetFlags(pCmdText) == NativeMethods.OLECMDTEXT.OLECMDTEXTF.OLECMDTEXTF_NAME) {
                            NativeMethods.OLECMDTEXT.SetText(pCmdText, "Publish " + this.Caption);
                        }

                        if (IsPublishingEnabled) {
                            result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        } else {
                            result |= QueryStatusResult.SUPPORTED;
                        }
                        return VSConstants.S_OK;

                    case VsCommands2K.ECMD_PUBLISHSLNCTX:
                        if (IsPublishingEnabled) {
                            result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        } else {
                            result |= QueryStatusResult.SUPPORTED;
                        }
                        return VSConstants.S_OK;
                    case CommonConstants.OpenFolderInExplorerCmdId:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            } else if (cmdGroup == SharedCommandGuid) {
                switch ((SharedCommands)cmd) {
                    case SharedCommands.AddExistingFolder:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
            }
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet97)
     {
         switch ((VsCommands)cmd)
         {
             case VsCommands.AddNewItem:
             case VsCommands.AddExistingItem:
                 result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                 return VSConstants.S_OK;
         }
     }
     else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         if ((VsCommands2K)cmd == VsCommands2K.ADDREFERENCE)
         {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return VSConstants.S_OK;
         }
     }
     else if(cmdGroup == VSProjectConstants.FSharpSendReferencesToInteractiveCmd.Guid)
     {
         if (cmd == VSProjectConstants.FSharpSendReferencesToInteractiveCmd.ID)
         {
             foreach(var reference in EnumReferences())
             {
                 if (!reference.CanBeReferencedFromFSI())
                 {
                     continue;
                 }
                 result |= QueryStatusResult.SUPPORTED;
                 if (reference.GetReferenceForFSI() != null)
                 {
                     result |= QueryStatusResult.ENABLED;
                     break;
                 }
             }
             return VSConstants.S_OK;
         }
     }
     else
     {
         return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #36
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
     if (cmdGroup == Guids.NodejsCmdSet) {
         switch (cmd) {
             case PkgCmdId.cmdidSetAsContent:
                 if (_containsNodeOrBrowserFiles && ContentType.HasFlag(FolderContentType.Node)) {
                     result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                 }
                 return VSConstants.S_OK;
             case PkgCmdId.cmdidSetAsCompile:
                 if (_containsNodeOrBrowserFiles && ContentType.HasFlag(FolderContentType.Browser)) {
                     result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                 }
                 return VSConstants.S_OK;
         }
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #37
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         if ((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
         {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return VSConstants.S_OK;
         }
     }
     else if (cmdGroup == VSProjectConstants.FSharpSendThisReferenceToInteractiveCmd.Guid && cmd == VSProjectConstants.FSharpSendThisReferenceToInteractiveCmd.ID)
     {
         if (CanBeReferencedFromFSI())
         {
             result |= QueryStatusResult.SUPPORTED; 
             if (GetReferenceForFSI() != null)
             {
                 result |= QueryStatusResult.ENABLED;
             }
         }
         
         return VSConstants.S_OK;
     }
     else
     {
         return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #38
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet97)
     {
         switch ((VsCommands)cmd)
         {
         case VsCommands.AddNewItem:
         case VsCommands.AddExistingItem:
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         if ((VsCommands2K)cmd == VsCommands2K.ADDREFERENCE)
         {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     else if (cmdGroup == VSProjectConstants.FSharpSendReferencesToInteractiveCmd.Guid)
     {
         if (cmd == VSProjectConstants.FSharpSendReferencesToInteractiveCmd.ID)
         {
             foreach (var reference in EnumReferences())
             {
                 if (!reference.CanBeReferencedFromFSI())
                 {
                     continue;
                 }
                 result |= QueryStatusResult.SUPPORTED;
                 if (reference.GetReferenceForFSI() != null)
                 {
                     result |= QueryStatusResult.ENABLED;
                     break;
                 }
             }
             return(VSConstants.S_OK);
         }
     }
     else
     {
         return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
     }
     return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
 }
예제 #39
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet2K && (VsCommands2K)cmd == VsCommands2K.ADDCOMPONENTS
         || cmdGroup == VSConstants.CMDSETID.StandardCommandSet12_guid && (VSConstants.VSStd12CmdID)cmd == VSConstants.VSStd12CmdID.AddReferenceProjectOnly)
     {
         result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
         return (int)VSConstants.S_OK;
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #40
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         if ((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
         {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     else
     {
         return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
     }
     return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
 }
예제 #41
0
        protected override int QueryStatusOnNode(System.Guid guidCmdGroup, uint cmd, System.IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                // Cut, Copy and ViewCode are not supported.

                case VsCommands.Cut:
                case VsCommands.Copy:
                case VsCommands.ViewCode:
                    result |= QueryStatusResult.NOTSUPPORTED;
                    return(VSConstants.S_OK);

                case VsCommands.Rename:
                case VsCommands.RenameBookmark:

                    // This never seems to be called but still include it, see GetEditLabel.

                    result |= QueryStatusResult.NOTSUPPORTED;
                    return(VSConstants.S_OK);
                }
            }
            else if (guidCmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                switch ((VsCommands2K)cmd)
                {
                // Run custom tool not supported.

                case VsCommands2K.RUNCUSTOMTOOL:
                    result |= QueryStatusResult.NOTSUPPORTED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }
예제 #42
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
     if (cmdGroup == VsMenus.guidStandardCommandSet97) {
         switch ((VsCommands)cmd) {
             case VsCommands.Copy:
             case VsCommands.Cut:
                 result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                 return VSConstants.S_OK;
             case VsCommands.Delete:
                 if (!_canUninstall) {
                     // If we can't uninstall the package, still show the
                     // item but disable it. Otherwise, let the default
                     // query handle it, which will display "Remove".
                     result |= QueryStatusResult.SUPPORTED;
                     return VSConstants.S_OK;
                 }
                 break;
         }
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #43
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            int returnCode;

            if (WixHelperMethods.QueryStatusOnProjectSourceNode(this, cmdGroup, cmd, ref result, out returnCode))
            {
                return(returnCode);
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
        /// <summary>
        /// This is overridden to handle command status on the node. 
        /// </summary>
        /// <param name="cmdGroup">A unique identifier of the command group.
        /// The <c>pguidCmdGroup</c> parameter can be null to specify the
        /// standard group.</param>
        /// <param name="cmd">The command to query status for.</param>
        /// <param name="pCmdText">Pointer to an <c>OLECMDTEXT</c> structure in
        /// which to return the name and/or status information of a single
        /// command. Can be null to indicate that the caller does not require
        /// this information.</param>
        /// <param name="result">An out parameter specifying the
        /// <c>QueryStatusResult</c> of the command.</param>
        /// <returns>If the method succeeds, it returns <c>S_OK</c>. If it
        /// fails, it returns an error code.</returns>
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText,
          ref QueryStatusResult result)
		{
            if(cmdGroup == GuidList.guidSandcastleBuilderPackageCmdSet && cmd == PkgCmdIDList.AddDocSource)
            {
                result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                return VSConstants.S_OK;
            }

            if(cmdGroup == VsMenus.guidStandardCommandSet97 && (VsCommands)cmd == VsCommands.PropSheetOrProperties)
            {
                result |= QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                return VSConstants.S_OK;
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #45
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            WixProjectNode projectNode = this.ProjectMgr as WixProjectNode;

            if (projectNode != null && projectNode.QueryStatusOnProjectNode(cmdGroup, cmd, ref result))
            {
                return(VSConstants.S_OK);
            }
            else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
                {
                    result |= QueryStatusResult.NOTSUPPORTED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #46
0
        protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == Microsoft.VisualStudio.Project.VsMenus.guidStandardCommandSet2K)
              {
              switch ((VsCommands2K)cmd)
              {
                  case VsCommands2K.ADDREFERENCE:
                      result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                      return VSConstants.S_OK;
              }
              }
              else if (guidCmdGroup == Microsoft.VisualStudio.Project.VsMenus.guidStandardCommandSet97)
              {
              switch ((VsCommands)cmd)
              {
                  case VsCommands.SetStartupProject:
                  case VsCommands.Start:
                  case VsCommands.StartNoDebug:
                      result |= QueryStatusResult.NOTSUPPORTED | QueryStatusResult.INVISIBLE;
                      return VSConstants.S_OK;
              }
              }

              return base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result);
        }
예제 #47
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            //  Latter condition is because it's only valid to carry out npm operations
            //  on top level dependencies of the user's project, not sub-dependencies.
            //  Performing operations on sub-dependencies would just break things.
            if (cmdGroup == Guids.NodejsNpmCmdSet)
            {
                switch (cmd)
                {
                case PkgCmdId.cmdidNpmOpenModuleHomepage:
                    if (this.Package.Homepages != null)
                    {
                        using (var enumerator = this.Package.Homepages.GetEnumerator())
                        {
                            if (enumerator.MoveNext() && !string.IsNullOrEmpty(enumerator.Current))
                            {
                                result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                            }
                            else
                            {
                                result = QueryStatusResult.SUPPORTED;
                            }
                        }
                    }
                    return(VSConstants.S_OK);
                }

                if (null == this._parent)
                {
                    switch (cmd)
                    {
                    case PkgCmdId.cmdidNpmInstallSingleMissingModule:
                        if (null == this._projectNode.ModulesNode ||
                            this._projectNode.ModulesNode.IsCurrentStateASuppressCommandsMode())
                        {
                            result = QueryStatusResult.SUPPORTED;
                        }
                        else
                        {
                            if (null != this.Package)
                            {
                                result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                            }
                            else
                            {
                                result = QueryStatusResult.SUPPORTED;
                            }
                        }
                        return(VSConstants.S_OK);

                    case PkgCmdId.cmdidNpmUpdateSingleModule:
                    case PkgCmdId.cmdidNpmUninstallModule:
                        if (null != this._projectNode.ModulesNode &&
                            !this._projectNode.ModulesNode.IsCurrentStateASuppressCommandsMode())
                        {
                            result = QueryStatusResult.ENABLED | QueryStatusResult.SUPPORTED;
                        }
                        else
                        {
                            result = QueryStatusResult.SUPPORTED;
                        }
                        return(VSConstants.S_OK);

                    case PkgCmdId.cmdidNpmInstallModules:
                    case PkgCmdId.cmdidNpmUpdateModules:
                        result = QueryStatusResult.SUPPORTED | QueryStatusResult.INVISIBLE;
                        return(VSConstants.S_OK);
                    }
                }
            }
            else if (cmdGroup == Microsoft.VisualStudioTools.Project.VsMenus.guidStandardCommandSet2K)
            {
                switch ((VsCommands2K)cmd)
                {
                case CommonConstants.OpenFolderInExplorerCmdId:
                    result = QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #48
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            WixProjectNode projectNode = this.ProjectMgr as WixProjectNode;
            if (projectNode != null && projectNode.QueryStatusOnProjectNode(cmdGroup, cmd, ref result))
            {
                return VSConstants.S_OK;
            }
            else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
                {
                    Guid browseGuid = this.GetBrowseGuid();
                    if (browseGuid != Guid.Empty)
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    }
                    else
                    {
                        result |= QueryStatusResult.NOTSUPPORTED;
                    }

                    return VSConstants.S_OK;
                }
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #49
0
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.Copy:
                case VsCommands.Paste:
                case VsCommands.Cut:
                case VsCommands.Rename:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);

                case VsCommands.NewFolder:
                    if (!this.IsNonMemberItem)
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return(VSConstants.S_OK);
                    }
                    break;
                }
            }
            else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else if (cmdGroup != this.ProjectMgr.SharedCommandGuid)
            {
                return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
            }
            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #50
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.Rename:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
 protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (cmdGroup == VsMenus.guidStandardCommandSet97)
     {
         switch ((VsCommands)cmd)
         {
         case VsCommands.AddNewItem:
         case VsCommands.AddExistingItem:
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         if ((VsCommands2K)cmd == VsCommands2K.ADDREFERENCE)
         {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return(VSConstants.S_OK);
         }
     }
     else
     {
         return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
     }
     return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
 }
예제 #52
0
 protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
 {
     if (guidCmdGroup == VsMenus.guidStandardCommandSet2K)
     {
         if ((VsCommands2K)cmd == VsCommands2K.QUICKOBJECTSEARCH)
         {
             result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
             return VSConstants.S_OK;
         }
     }
     else
     {
         return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
     }
     return base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result);
 }
예제 #53
0
        /// <summary>
        /// Handles the menuitems
        /// </summary>
        protected override int QueryStatusOnNode(Guid guidCmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            int returnCode;

            if (HierarchyHelpers.QueryStatusOnProjectSourceNode(this, guidCmdGroup, cmd, ref result, out returnCode))
            {
                return(returnCode);
            }

            if (guidCmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.AddNewItem:
                case VsCommands.AddExistingItem:
                case VsCommands.ViewCode:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);

                case VsCommands.ViewForm:
                    if (HasDesigner)
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);
                }
            }
            else if (guidCmdGroup == MenuCmd.guidNemerleProjectCmdSet)
            {
                if (cmd == (uint)MenuCmd.SetAsMain.ID)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }
예제 #54
0
 internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result) {
     if (cmdGroup == Guids.NodejsCmdSet) {
         switch (cmd) {
             case PkgCmdId.cmdidOpenReplWindow:
                 result = QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                 return VSConstants.S_OK;
         }
     }
     return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
 }
예제 #55
0
        /// <summary>
        /// Disable Copy/Cut/Paste commands on interpreter node.
        /// </summary>
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                switch ((VsCommands2K)cmd)
                {
                case CommonConstants.OpenFolderInExplorerCmdId:
                    result = QueryStatusResult.SUPPORTED;
                    if (_factory != null && Directory.Exists(_factory.Configuration.PrefixPath))
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);
                }
            }

            if (cmdGroup == GuidList.guidPythonToolsCmdSet)
            {
                switch (cmd)
                {
                case PythonConstants.ActivateEnvironment:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.Configuration.IsAvailable() &&
                        ProjectMgr.ActiveInterpreter != _factory &&
                        Directory.Exists(_factory.Configuration.PrefixPath)
                        )
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);

                case PythonConstants.InstallPythonPackage:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.Configuration.IsAvailable() &&
                        Directory.Exists(_factory.Configuration.PrefixPath)
                        )
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);

                case PythonConstants.InstallRequirementsTxt:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.IsRunnable() &&
                        File.Exists(PathUtils.GetAbsoluteFilePath(ProjectMgr.ProjectHome, "requirements.txt")))
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);

                case PythonConstants.GenerateRequirementsTxt:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.Configuration.IsAvailable())
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);

                case PythonConstants.OpenInteractiveForEnvironment:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.Configuration.IsAvailable() &&
                        File.Exists(_factory.Configuration.InterpreterPath)
                        )
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);
                }
            }

            if (cmdGroup == ProjectMgr.SharedCommandGuid)
            {
                switch ((SharedCommands)cmd)
                {
                case SharedCommands.OpenCommandPromptHere:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.Configuration.IsAvailable() &&
                        Directory.Exists(_factory.Configuration.PrefixPath) &&
                        File.Exists(_factory.Configuration.InterpreterPath))
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);

                case SharedCommands.CopyFullPath:
                    result |= QueryStatusResult.SUPPORTED;
                    if (_factory != null && _factory.Configuration.IsAvailable() &&
                        Directory.Exists(_factory.Configuration.PrefixPath) &&
                        File.Exists(_factory.Configuration.InterpreterPath))
                    {
                        result |= QueryStatusResult.ENABLED;
                    }
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if(cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch((VsCommands)cmd)
                {
                    case VsCommands.Copy:
                    case VsCommands.Paste:
                    case VsCommands.Cut:
                    case VsCommands.Rename:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;

                    case VsCommands.ViewCode:
                    //case VsCommands.Delete: goto case VsCommands.OpenWith;
                    case VsCommands.Open:
                    case VsCommands.OpenWith:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            }
            else if(cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return VSConstants.S_OK;
                }
                if((VsCommands2K)cmd == VsCommands2K.RUNCUSTOMTOOL)
                {
                    if(string.IsNullOrEmpty(this.ItemNode.GetMetadata(ProjectFileConstants.DependentUpon)) && (this.NodeProperties is SingleFileGeneratorNodeProperties))
                    {
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                    }
                }
            }
            else
            {
                return (int)OleConstants.OLECMDERR_E_UNKNOWNGROUP;
            }
            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #57
0
파일: FileNode.cs 프로젝트: majocha/fsharp
        internal override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.Copy:
                case VsCommands.Paste:
                case VsCommands.Cut:
                case VsCommands.Rename:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);

                case VsCommands.ViewCode:
                case VsCommands.Open:
                case VsCommands.OpenWith:
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else if (cmdGroup == VsMenus.guidStandardCommandSet2K)
            {
                if ((VsCommands2K)cmd == VsCommands2K.EXCLUDEFROMPROJECT)
                {
                    result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                    return(VSConstants.S_OK);
                }
            }
            else
            {
                return((int)OleConstants.OLECMDERR_E_UNKNOWNGROUP);
            }
            return(base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result));
        }
예제 #58
0
        protected override int QueryStatusOnNode(Guid cmdGroup, uint cmd, IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (cmdGroup == GuidList.guidJToolsCmdSet) {
                switch (cmd) {
                    case CommonConstants.AddSearchPathCommandId:
                    case CommonConstants.AddSearchPathZipCommandId:
                        result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
                        return VSConstants.S_OK;
                }
            }

            return base.QueryStatusOnNode(cmdGroup, cmd, pCmdText, ref result);
        }
예제 #59
0
        protected override int QueryStatusOnNode(System.Guid guidCmdGroup, uint cmd, System.IntPtr pCmdText, ref QueryStatusResult result)
        {
            if (guidCmdGroup == VsMenus.guidStandardCommandSet97)
            {
                switch ((VsCommands)cmd)
                {
                case VsCommands.AddNewItem:

                    // Project does not support new items.

                    result |= QueryStatusResult.NOTSUPPORTED;
                    return(VSConstants.S_OK);
                }
            }

            return(base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result));
        }