Partilhar via


Interface de usuário personalizada (VSPackage de controle de origem)

Um VSPackage declara seus itens de menu e seus estados padrão por meio do arquivo da tabela de comando Visual Studio (.vsct). O Visual Studio o ambiente de desenvolvimento integrado (IDE) exibe os itens de menu em seus estados padrão até que o VSPackage seja carregado. Subseqüentemente, o QueryStatus método é chamado para ativar ou desativar itens de menu.

Um VSPackage pode definir uma chave do registro para que o VSPackage possa ser carregado automaticamente dependendo de um contexto de interface (UI) do usuário de comando, embora geralmente controlam a uma fonte deve carregar o VSPackage sob demanda em vez de simplesmente alternar para um determinado contexto de interface do usuário. Para obter mais informações sobre a chave do registro AutoLoadPackages, consulte Carregando VSPackages.

Interface de usuário VSPackage

Um pacote de controle de origem é implementado como um VSPackage e não usa qualquer interface do usuário do Visual Studio. Cada controle de origem VSPackage deve especificar seus próprios elementos de interface do usuário, como itens de menu, grupos de menus, janelas de ferramentas, barras de ferramentas e qualquer interface de usuário necessário para configurar opções específicas para o controle de origem VSPackage. Esses elementos de interface do usuário podem ser habilitados estaticamente ou dinamicamente. Elementos de interface do usuário estáticos são definidos em um arquivo de .vsct e são exibidos se o VSPackage é carregado ou não. Elementos dinâmicos de interface do usuário podem ser visíveis, dependendo do contexto de interface do usuário um determinado comando, como vsContextNoSolution, ou como resultado de uma chamada para o QueryStatus método. A visibilidade dos elementos dinâmicos de interface do usuário é compatível com a estratégia para carregamento atrasado de VSPackages.

Restrições de interface do usuário em VSPackages de controle de origem

Porque o controle de origem VSPackage não pode ser removido do IDE depois que ele é carregado, o VSPackage deve ser capaz de entrar em um estado inativo. Quando um VSPackage recebe a notificação de que não está ativo, o VSPackage desativa sua interface do usuário e ignora qualquer interação externa do IDE. Implementação do VSPackage a QueryStatus método deve ocultar comandos quando o VSPackage não está ativo.

Cada controle de origem VSPackage deve implementar a IVsSccProvider interface. Dois métodos na interface, SetActive e SetInactive, deve ser implementada pelo VSPackage.

O controle de origem VSPackage talvez tenham se inscrito para vários eventos IDE que são implementados pela IVsSolutionEvents3, IVsTrackProjectDocumentsEvents2e assim por diante. Além disso, o VSPackage pode ter implementado interfaces de retorno de chamada ativado o registro, como o IVsSolutionPersistence. Eles devem todos ser ignorados quando inativo.

A lista a seguir mostra as interfaces afetadas pela estado ativo de um controle de origem VSPackage:

  • Controlar os eventos de documentos do projeto.

  • Eventos de solução.

  • Interfaces de persistência da solução. Quando inativo, os pacotes não devem escrever arquivos. sln e. suo.

  • Extensores de propriedade.

Os IVsQueryEditQuerySave2 e IVsSccManager2, e também quaisquer interfaces opcionais associadas ao controle de origem, não são chamados quando o controle de origem VSPackage está inativo.

Quando o Visual Studio IDE começa, Visual Studio define o contexto do comando da interface do usuário para a identificação do controle de fonte padrão atual identificação de VSPackage. Isso faz com que a interface de usuário estático do controle de fonte ativa VSPackage apareça no IDE sem carregar realmente o VSPackage. Visual Studiofaz uma pausa para registrar com o VSPackage Visual Studio através do IVsRegisterScciProvider antes que ele faz com que todas as chamadas para o VSPackage.

A tabela a seguir descreve os detalhes específicos sobre como o Visual Studio IDE oculta diferentes itens de interface do usuário.

Item de interface do usuário

Descrição

Menus e barras de ferramentas

O pacote de controle de origem deve definir os estados iniciais de visibilidade de menu e barra de ferramentas na identificação de pacote de controle de origem na VisibilityConstraints seção do arquivo .vsct. Isso permite que o Visual Studio IDE para definir o estado dos itens de menu apropriadamente sem carregar o VSPackage e chamar uma implementação da QueryStatus método.

Janelas de ferramentas

O controle de origem VSPackage oculta quaisquer janelas de ferramentas é a proprietária de quando ele fica inativo.

Páginas de opções de controle de origem específicos VSPackage

A chave do registro HKLM\SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts permite a um VSPackage definir os contextos em que ele requer que suas páginas de opções a serem exibidos. Uma entrada do registro nessa chave teria que ser criado usando o serviço de identificação (SID) do serviço de controle de origem e atribuindo-lhe um valor DWORD de 1. Sempre que ocorre um evento de interface do usuário em um contexto VSPackage é registrado com o controle de origem, o VSPackage será chamado se ela estiver ativa.

Consulte também

Referência

QueryStatus

IVsQueryEditQuerySave2

IVsSccManager2

IVsRegisterScciProvider

vsContextNoSolution

Conceitos

Carregando VSPackages