Partager via


IVsColorableItem, interface

Fournit des couleurs de police par défaut, le style de police, et les informations de nom d'élément pour un élément coloriable personnalisé.

Espace de noms :  Microsoft.VisualStudio.TextManager.Interop
Assembly :  Microsoft.VisualStudio.TextManager.Interop (dans Microsoft.VisualStudio.TextManager.Interop.dll)

Syntaxe

'Déclaration
<InterfaceTypeAttribute()> _
<GuidAttribute("56694A40-78D0-45DD-AB15-681BC207579C")> _
Public Interface IVsColorableItem
[InterfaceTypeAttribute()]
[GuidAttribute("56694A40-78D0-45DD-AB15-681BC207579C")]
public interface IVsColorableItem
[InterfaceTypeAttribute()]
[GuidAttribute(L"56694A40-78D0-45DD-AB15-681BC207579C")]
public interface class IVsColorableItem
[<InterfaceTypeAttribute()>]
[<GuidAttribute("56694A40-78D0-45DD-AB15-681BC207579C")>]
type IVsColorableItem =  interface end
public interface IVsColorableItem

Le type IVsColorableItem expose les membres suivants.

Méthodes

  Nom Description
Méthode publique GetDefaultColors Définit l'arrière-plan et les couleurs de premier plan par défaut pour un élément coloriable personnalisé.
Méthode publique GetDefaultFontFlags Retourne les balises de la police par défaut pour l'élément coloriable personnalisé.
Méthode publique GetDisplayName Obtient le nom complet de l'élément coloriable personnalisé.

Début

Notes

Le nom complet pour l'élément coloriable personnalisé doit être localisé.

Les valeurs de couleur retournées de cette interface sont des couleurs prédéfinies. Des valeurs (24 bits) de 65536 couleurs peuvent être retournées via l'interface d'IVsHiColorItem. Voyez l'interface d'IVsHiColorItem pour un exemple.

Implémentez procédure les éléments qui autorisent la modification de la couleur personnalisés est décrit dans Éléments qui autorisent la modification de la couleur personnalisés.

Remarques à l'attention des implémenteurs

Implémentez cette interface pour fournir la police et pour nommer des informations sur un élément coloriable personnalisé qui est retourné par un service de langage.

Si vous souhaitez prendre en charge des valeurs de 65536 couleurs, vous devez implémenter l'interface d'IVsHiColorItem sur le même objet qui implémente l'interface d'IVsColorableItem.

Remarques à l'attention des appelants

Un objet d'IVsColorableItem peut être obtenu en appelant la méthode d'GetColorableItem sur l'interface d'IVsProvideColorableItems.

Exemples

Cet exemple est d'un service de langage.

using Microsoft.VisualStudio.TextManager.Interop;

namespace MyNamespace
{
    internal class MyColorItem : IVsColorableItem
    {
        //==========================================================
        // Private fields.
        private COLORINDEX foreColor;
        private COLORINDEX backColor;
        private FONTFLAGS fontFlags;
        private string name;
        private string displayName;

        //==========================================================
        // Public constructor.

        public MyColorItem(string name,
                           string displayName,
                           COLORINDEX foreColor,
                           COLORINDEX backColor,
                           FONTFLAGS fontFlags)
        {
            this.name = name;
            this.displayName = displayName;
            this.foreColor = foreColor;
            this.backColor = backColor;
            this.fontFlags = fontFlags;
        }


        //==========================================================
        // IVsColorableItem methods.
        #region IVsColorableItem Members

        int IVsColorableItem.GetDefaultColors(COLORINDEX[] piForeground,
                                              COLORINDEX[] piBackground)
        {
            int retval = VSConstants.E_POINTER;
            if (piForeground != null)
            {
                piForeground[0] = this.foreColor;
                retval = VSConstants.S_OK;
            }
            if (piBackground != null)
            {
                piBackground[0] = this.backColor;
            }
            return retval;
        }

        int IVsColorableItem.GetDefaultFontFlags(out uint pdwFontFlags)
        {
            pdwFontFlags = (uint)this.fontFlags;
            return VSConstants.S_OK;
        }

        int IVsColorableItem.GetDisplayName(out string pbstrName)
        {
            pbstrName = this.displayName;
            return VSConstants.S_OK;
        }

        #endregion
    }


    //==============================================================
    // Example of how to instantiate the MyColorItem class.

    public class MyLanguageService
    {
        private ColorableItem[] colorableItemsList;

        public MyLanguageService()
        {
            colorableItemsList = {
                new MyColorableItem("MyLanguage- Text",
                                    "MyLanguage- Text",
                                    COLORINDEX.CI_SYSPLAINTEXT_FG,
                                    COLORINDEX.CI_SYSPLAINTEXT_BK,
                                    FONTFLAGS.FF_BOLD),

                new MyColorableItem("MyLanguage- Keyword",
                                    "MyLanguage- Keyword",
                                    COLORINDEX.CI_MAROON,
                                    COLORINDEX.CI_SYSPLAINTEXT_BK,
                                    FONTFLAGS.FF_BOLD),

                new MyColorableItem("MyLanguage- Operator",
                                    "MyLanguage- Operator",
                                    COLORINDEX.CI_DARKBLUE,
                                    COLORINDEX.CI_BLUE,
                                    FONTFLAGS.FF_PLAIN)
            };
        }
    }
}

Voir aussi

Référence

Microsoft.VisualStudio.TextManager.Interop, espace de noms

Autres ressources

Éléments qui autorisent la modification de la couleur personnalisés