Prvek nabídky
Definuje jednu položku nabídky. Toto jsou šest druhů nabídek: Kontext, Menu, MenuController, MenuControllerLatched, Toolbar a ToolWindowToolbar.
Syntaxe
<Menu guid="guidMyCommandSet" id="MyCommand" priority="0x100" type="button">
<Parent>... </Parent>
<CommandFlag>... </CommandFlag>
<Strings>... </Strings>
</Menu>
Atributy a prvky
Následující části popisují atributy, podřízené prvky a nadřazené prvky.
Atributy
Atribut | Popis |
---|---|
guid | Povinný: GUID identifikátoru příkazu GUID/ID. |
ID | Povinný: ID identifikátoru příkazu GUID/ID. |
Prioritou | Nepovinné. Číselná hodnota, která určuje relativní pozici nabídky ve skupině nabídek. |
toolbarPriorityInBand | Nepovinné. Číselná hodnota, která určuje relativní pozici panelu nástrojů v pásu nástrojů při ukotvení okna. |
type | Nepovinné. Výčtová hodnota, která určuje typ prvku. Pokud není k dispozici, výchozí typ je Nabídka. Kontext Místní nabídka, která se zobrazí, když uživatel klikne pravým tlačítkem myši na okno. Místní nabídka má následující charakteristiky: - Nepoužívá pole Nadřazený a Prioritní , pokud je nabídka zobrazena jako místní nabídka. - Lze použít jako podnabídku a také jako místní nabídku. V tomto případě se respektují pole ID skupiny i priority . - Není vždy k dispozici. Místní nabídka se zobrazí pouze v případech, kdy jsou splněny následující podmínky: - Zobrazí se okno, které je hostitelem. - Obslužná rutina myši v balíčku VSPackage detekuje kliknutí pravým tlačítkem myši na okno a potom volá metodu, která zpracovává příkaz. - Místní nabídka se zobrazí voláním ShowContextMenu metody (doporučený přístup) nebo ShowContextMenu metody. Nabídka Poskytuje rozevírací nabídku. Rozevírací nabídka má následující charakteristiky: - Respektuje nadřazený prvek v jeho definici. – Musí mít nadřazenou skupinu nebo CommandPlacement pro skupinu. - Může to být podnabídka v jakémkoli jiném druhu menu. - Automaticky se zobrazí při zobrazení nadřazené nabídky. - Nevyžaduje implementaci žádného kódu VSPackage, aby se zobrazil. MenuController Poskytuje rozevírací nabídku rozděleného tlačítka, která se obvykle používá na panelech nástrojů. Nabídka MenuController má následující vlastnosti: - Musí být obsažena v jiné nabídce prostřednictvím Nadřazené nebo CommandPlacement. - Respektuje nadřazený prvek v jeho definici. - Může mít libovolný druh nabídky jako nadřazený objekt. - Automaticky se zpřístupní při zobrazení nadřazené nabídky. - Nevyžaduje programovou podporu, aby se nabídka zobrazila. Příkaz z nabídky s rozděleným tlačítkem se zobrazí na tlačítku nabídky. Zobrazený příkaz má jednu z následujících charakteristik: – Jedná se o poslední příkaz, který byl použit, pokud je příkaz stále zobrazen a povolen. - Jedná se o první zobrazený příkaz. NabídkaControllerLatched Poskytuje rozevírací nabídku rozděleného tlačítka, pro kterou lze příkaz zadat jako výchozí výběr tak, že příkaz označíte jako západku. Zamknutá příkaz je příkaz, který je v nabídce označený jako vybraný, obvykle zobrazením značky zaškrtnutí. Příkaz může být označen jako západka, pokud má OLECMDF_LATCHED příznak nastavený v implementaci QueryStatus metody IOleCommandTarget rozhraní. Nabídka MenuControllerLatched má následující vlastnosti:– Musí být obsažena v jiné nabídce prostřednictvím nadřazené skupiny nebo CommandPlacement. - Respektuje nadřazený prvek v jeho definici. - Může mít libovolný druh nabídky jako nadřazený objekt. - Je k dispozici při zobrazení nadřazené nabídky. - Nevyžaduje programovou podporu, aby se nabídka zobrazila. Příkaz z nabídky s rozděleným tlačítkem se zobrazí na tlačítku nabídky. Zobrazený příkaz má jednu z následujících charakteristik: - Jedná se o první zobrazený příkaz, který je západka. - Jedná se o první zobrazený příkaz. Panel nástrojů Poskytuje panel nástrojů. Panel nástrojů má následující vlastnosti: - Ignoruje nadřazený objekt v jeho definici. – Nelze vytvořit podnabídku žádné skupiny, a to ani pomocí CommandPlacement. - Lze vždy zobrazit kliknutím na panely nástrojů v nabídce Zobrazit . – Lze zobrazit pomocí funkce VisibilityItem. - Nevyžaduje k jeho vytvoření žádný kód. Příklad vytvoření panelu nástrojů najdete v tématu Přidání panelu nástrojů. ToolWindowToolbar Poskytuje panel nástrojů, který je připojený k určitému okně nástroje, stejně jako je panel nástrojů připojený k vývojovému prostředí. - Ignoruje nadřazený objekt v jeho definici. – Nelze vytvořit podnabídku žádné skupiny, a to ani pomocí CommandPlacement. - Zobrazí se pouze tehdy, když se zobrazí okno nástroje, které je hostitelem panelu nástrojů, a balíček VSPackage explicitně přidá panel nástrojů do okna nástroje. To se obvykle provádí, když se okno nástroje vytvoří získáním vlastnosti hostitele panelu nástrojů (jak je reprezentováno IVsToolWindowToolbarHost rozhraním) z rámečku okna nástroje a volání AddToolbar metody. |
Podmínka | Nepovinné. Viz Podmíněné atributy. |
Podřízené prvky
Element (Prvek) | Popis |
---|---|
Parent | Nepovinné. Nadřazený prvek položky nabídky. |
CommandFlag | Povinný: Viz Element příznaku příkazu. Platné hodnoty CommandFlag pro nabídku jsou následující: - Alwayscreate - DefaultDocked - DefaultInvisible – Tento příznak nemá vliv na zobrazení panelů nástrojů. - DontCache - Dynamickávisibility – tento příznak nemá vliv na zobrazení panelů nástrojů. - IconAndText - NoCustomize - NotInTBList - NoToolbarClose - TextChanges - TextIsAnchorCommand |
Řetězce | Povinný: Viz Element Strings. Podřízený ButtonText prvek musí být definován. |
Poznámka | Volitelný komentář. |
Nadřazené prvky
Element (Prvek) | Popis |
---|---|
Menus – element | Definuje všechny nabídky, které balíček VSPackage implementuje. |
Příklad
<Menu guid="cmdGuidWidgetCommands" id="menuIDEditWidget"
priority="0x0002" type="Menu">
<Parent guid="cmdSetGuidWidgetCommands" id="groupIDFileEdit"/>
<CommandFlag>AlwaysCreate</CommandFlag>
<Strings>
<ButtonText>Edit Widget</ButtonText>
</Strings>
</Menu>