Compartir a través de


Control de glifo (control de código fuente VSPackage)

Parte de la integración profunda disponible para el control de código fuente VSPackages es la capacidad de mostrar sus propios glifos para indicar el estado de los elementos en el control de código fuente.

Niveles de control de glifo

Un glifo de estado es un icono que indica el estado actual de un elemento cuando se muestra, por ejemplo, en Explorador de soluciones o en la vista de clases. Un control de código fuente VSPackage puede ejercer dos niveles de control de glifo. Puede limitar la elección de glifos a un conjunto predefinido de glifos proporcionados por el IDE de Visual Studio, o bien puede definir un conjunto personalizado de glifos que se van a mostrar.

Conjunto predeterminado de glifos

Para determinar los glifos de estado asociados a un elemento de Explorador de soluciones, un proyecto solicita el glifo de estado del control de código fuente mediante .GetSccGlyph Un vsPackage de control de código fuente puede decidir mantener la elección de glifos limitados a glifos predefinidos proporcionados por el IDE. En este caso, VSPackage pasa una matriz de valores que representan las enumeraciones de glifo definidas en vsshell.idl. Para obtener más información, vea VsStateIcon. Se trata de un conjunto predefinido de glifos establecidos por el IDE, como un candado para el glifo protegido y una marca de verificación para el glifo desprotegido.

Conjunto personalizado de glifos

Un vsPackage de control de código fuente puede usar sus propios glifos para una apariencia única cuando se instala. Cuando un nuevo control de código fuente VSPackage está activo, debería poder empezar a usar sus propios glifos incluso si un control de código fuente anterior VSPackage todavía está cargado pero inactivo. En este modo, el control de código fuente VSPackage todavía puede usar los iconos existentes para mantener una apariencia coherente con Visual Studio si lo elige.

El SVsSccManager servicio admite una interfaz, , IVsSccGlyphsque VSPackage puede implementar opcionalmente y que el IDE solicitará. Cuando el IDE realiza una solicitud, Visual Studio intentará, a su vez, obtener esta interfaz del vsPackage del control de código fuente registrado actualmente. Si la interfaz existe en el VSPackage registrado, la solicitud del IDE para glifos personalizados se realiza correctamente; De lo contrario, el IDE de Visual Studio usa su conjunto predeterminado de glifos.

Visual Studio usa el GetCustomGlyphList método para obtener una lista de imágenes que muestran varios estados de control de código fuente. El control de código fuente VSPackage vuelve al IDE un identificador de la lista de imágenes para sus glifos personalizados. El IDE realiza una copia de la lista de imágenes en este momento y lo usa más adelante para elegir los glifos que se van a mostrar. Si no se admite la nueva interfaz o el IVsSccGlyphs::GetCustomGlyphList método devuelve E_NOTIMPL, el IDE obtiene sus glifos de la lista predeterminada de glifos proporcionados por Visual Studio.