Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un VSPackage déclare ses éléments de menu et ses états par défaut via le fichier de table de commandes Visual Studio (.vsct). L’environnement de développement intégré (IDE) Visual Studio affiche les éléments de menu dans leurs états par défaut jusqu’à ce que le VSPackage soit chargé. Par la suite, la QueryStatus méthode est appelée pour activer ou désactiver les éléments de menu.
Un VSPackage peut définir une clé du registre afin qu’un VSPackage puisse être automatiquement chargé en fonction d’un contexte d’interface utilisateur de commande, bien qu’en général, un VSPackage de contrôle de code source doive se charger à la demande au lieu de simplement passer à un contexte spécifique de l’interface utilisateur. Pour plus d’informations sur la clé de Registre AutoLoadPackages , consultez Gérer les VSPackages.
Interface utilisateur VSPackage
Un package de contrôle de code source est implémenté en tant que VSPackage et n’utilise aucune interface utilisateur de Visual Studio. Chaque VSPackage de contrôle de code source doit spécifier ses propres éléments d’interface utilisateur tels que les éléments de menu, les groupes de menus, les fenêtres d’outils, les barres d’outils et toute interface utilisateur requise pour définir des options spécifiques au VSPackage du contrôle de code source. Ces éléments d’interface utilisateur peuvent être activés statiquement ou dynamiquement. Les éléments d’interface utilisateur statique sont définis dans un fichier .vsct et s’affichent si vsPackage est chargé ou non. Les éléments d’interface utilisateur dynamique peuvent être visibles en fonction d’un contexte d’interface utilisateur de commande particulier, tel que vsContextNoSolution, ou en raison d’un appel à la QueryStatus méthode. La visibilité des éléments d’interface utilisateur dynamiques est conforme à la stratégie de chargement différé des VSPackages.
Contraintes UI sur les VSPackages de gestion de code source
Étant donné que le VSPackage du contrôle de code source ne peut pas être supprimé de l’IDE après son chargement, le VSPackage doit pouvoir entrer un état inactif. Lorsqu’un VSPackage reçoit une notification indiquant qu’il n’est plus actif, vsPackage désactive son interface utilisateur et ignore toute interaction IDE externe. L’implémentation de VSPackage de la méthode QueryStatus doit masquer les commandes quand le VSPackage n’est pas actif.
Chaque VSPackage du contrôle de code source doit implémenter l’interface IVsSccProvider . Deux méthodes sur l’interface, SetActive et SetInactive, doivent être implémentées par le VSPackage.
Le VSPackage du contrôle de code source peut avoir souscrit à différents événements IDE, qui sont implémentés par le IVsSolutionEvents3, IVsTrackProjectDocumentsEvents2 et ainsi de suite. En outre, vsPackage a peut-être implémenté des interfaces de rappel compatibles avec le Registre, telles que le IVsSolutionPersistence. Ces interfaces doivent toutes être ignorées lorsqu’elles sont inactives.
La liste suivante montre les interfaces affectées par l’état actif d’un VSPackage de contrôle de code source :
Suivre les événements liés aux documents de projet.
Événements de solution.
Interfaces de persistance de solution. En cas d’inactivité, les packages ne doivent pas écrire dans les fichiers .sln et .suo .
Extensions de propriété.
Les interfaces requises IVsQueryEditQuerySave2 et IVsSccManager2, et également toutes les interfaces facultatives associées au contrôle de code source, ne sont pas appelées lorsque le VSPackage du contrôle de code source est inactif.
Au démarrage de l’IDE Visual Studio, Visual Studio définit le contexte de l’interface utilisateur de commande sur l’ID du contrôle de code source par défaut actuel VSPackage. Cela permet d'afficher l'interface utilisateur statique du VSPackage du contrôle de code source actif dans l'IDE sans réellement charger le VSPackage. Visual Studio s’interrompt pour permettre à VSPackage de s’inscrire auprès de Visual Studio avant d’effectuer des appels au VSPackage IVsRegisterScciProvider.
Le tableau suivant décrit des détails spécifiques sur la façon dont l’IDE Visual Studio masque différents éléments d’interface utilisateur.
| Élément d’interface utilisateur | Descriptif |
|---|---|
| Menus et barres d’outils | Le package de contrôle de code source doit définir les états de visibilité du menu initial et de la barre d’outils sur l’ID du package de contrôle de code source dans la section VisibilityConstraints du fichier .vsct . Cela permet à l’IDE Visual Studio de définir l’état des éléments de menu de manière appropriée sans charger VSPackage et appeler une implémentation de la QueryStatus méthode. |
| Fenêtres d'outils | Le VSPackage de contrôle de code source masque toutes les fenêtres d'outils qui lui appartiennent lorsqu'il est inactif. |
| Pages d’options spécifiques à VSPackage du contrôle de code source | La clé de Registre HKLM\SOFTWARE\Microsoft\VisualStudio\X.Y\ToolsOptionsPages\VisibilityCmdUIContexts permet à un VSPackage de définir les contextes dans lesquels ses pages d’options doivent être affichées. Une entrée de Registre sous cette clé doit être créée à l’aide de l’ID de service (SID) du service de contrôle de code source et assignée une valeur DWORD de 1. Chaque fois qu’un événement d’interface utilisateur se produit dans un contexte dans lequel le VSPackage de contrôle de code source est enregistré, le VSPackage sera appelé s’il est actif. |