Controle de glifos (controle de origem VSPackage)
Parte da integração profunda disponível para o controle do código-fonte VSPackages é a capacidade de exibir seus próprios glifos para indicar o status dos itens sob controle do código-fonte.
Níveis de controle de glifos
Um glifo de estado é um ícone que indica o status atual de um item quando exibido, por exemplo, no Gerenciador de Soluções ou no Modo de Exibição de Classe. Um VSPackage de controle de origem pode exercer dois níveis de controle de glifos. Ele pode limitar a escolha de glifos a um conjunto predefinido de glifos fornecido pelo IDE do Visual Studio ou pode definir um conjunto personalizado de glifos a serem exibidos.
Conjunto padrão de glifos
Para determinar os glifos de estado associados a um item no Gerenciador de Soluções, um projeto solicita o glifo de estado do controle do código-fonte usando o GetSccGlyph. Um VSPackage de controle de origem pode decidir manter a escolha de glifos limitada a glifos predefinidos fornecidos pelo IDE. Nesse caso, o VSPackage passa de volta uma matriz de valores que representam as enumerações de glifos definidas em vsshell.idl. Para obter mais informações, consulte VsStateIcon. Esse é um conjunto predefinido de glifos definidos pelo IDE, como um cadeado para o glifo com check-in e uma marca de seleção para o glifo com check-out.
Conjunto personalizado de glifos
Um controle de origem VSPackage pode usar seus próprios glifos para uma aparência única quando ele é instalado. Quando um novo VSPackage de controle de origem está ativo, ele deve ser capaz de começar a usar seus próprios glifos, mesmo se um VSPackage de controle de origem anterior ainda estiver carregado, mas inativo. Nesse modo, o controle de origem VSPackage ainda pode usar os ícones existentes para manter uma aparência consistente com o Visual Studio, se ele escolher.
O SVsSccManager serviço suporta uma interface, , IVsSccGlyphsque o VSPackage pode implementar opcionalmente e que será solicitada pelo IDE. Quando o IDE faz uma solicitação, o Visual Studio, por sua vez, tentará obter essa interface do controle de origem atualmente registrado VSPackage. Se a interface existir no VSPackage registrado, a solicitação do IDE para glifos personalizados será bem-sucedida; caso contrário, o IDE do Visual Studio usa seu conjunto padrão de glifos.
O GetCustomGlyphList método é usado pelo Visual Studio para obter uma lista de imagens mostrando vários estados de controle de origem. O controle de origem VSPackage retorna ao IDE um identificador para a lista de imagens para seus glifos personalizados. O IDE faz uma cópia da lista de imagens neste ponto e a usa posteriormente para escolher os glifos a serem exibidos. Se a nova interface não tiver suporte ou o IVsSccGlyphs::GetCustomGlyphList
método retornar E_NOTIMPL
, o IDE obterá seus glifos da lista padrão de glifos fornecida pelo Visual Studio.