Esempio n. 1
0
        //--------------------------------------------------------------------------------
        // IVsSccManagerTooltip specific functions
        //--------------------------------------------------------------------------------
        #region IVsSccManagerTooltip interface functions

        /// <summary>
        /// Called by solution explorer to provide tooltips for items. Returns a text describing the source control status of the item.
        /// </summary>
        public int GetGlyphTipText([InAttribute] IVsHierarchy phierHierarchy, [InAttribute] uint itemidNode, out string pbstrTooltipText)
        {
            // Initialize output parameters
            pbstrTooltipText = "";

            IList <string> files = SccProvider.GetNodeFiles(phierHierarchy, itemidNode);

            if (files.Count == 0)
            {
                return(VSConstants.S_OK);
            }

            // Return the glyph text based on the first file of node (the master file)
            HGLib.HGFileStatus status = _sccStatusTracker.GetFileStatus(files[0]);
            switch (status)
            {
            // my states
            case HGLib.HGFileStatus.scsClean:
                pbstrTooltipText = "Clean";
                break;

            case HGLib.HGFileStatus.scsModified:
                pbstrTooltipText = "Modified";
                break;

            case HGLib.HGFileStatus.scsAdded:
                pbstrTooltipText = "Added";
                break;

            case HGLib.HGFileStatus.scsRenamed:
                pbstrTooltipText = "Renamed";
                break;

            case HGLib.HGFileStatus.scsRemoved:
                pbstrTooltipText = "Removed";
                break;

            case HGLib.HGFileStatus.scsCopied:
                pbstrTooltipText = "Copied";
                break;

            case HGLib.HGFileStatus.scsIgnored:
                pbstrTooltipText = "Ignored";
                break;

            case HGLib.HGFileStatus.scsUncontrolled:
                pbstrTooltipText = "Uncontrolled";
                break;

            default:
                pbstrTooltipText = string.Empty;
                break;
            }

            if (pbstrTooltipText != string.Empty)
            {
                string root = HGLib.HG.FindRootDirectory(files[0]);
                //string branchName = HGLib.HG.GetCurrentBranchName(root);
                string branchName = _sccStatusTracker.GetCurrentBranchOf(root);

                pbstrTooltipText += " [" + branchName + "]";
            }

            return(VSConstants.S_OK);
        }