summaryrefslogtreecommitdiff
path: root/Source/DafnyMenu/DafnyMenu.vsct
diff options
context:
space:
mode:
authorGravatar wuestholz <unknown>2013-05-23 17:55:34 -0700
committerGravatar wuestholz <unknown>2013-05-23 17:55:34 -0700
commit59cfcbb7ac83a23e7df3cb1e85c58167fc07af65 (patch)
treeb52592274f0d2615f26fc79feaff1d97aa0139c6 /Source/DafnyMenu/DafnyMenu.vsct
parentce5332305ddebb41e6235bcf1c5a501c7b93ddd8 (diff)
DafnyExtension: Added menu for invoking specific Dafny functionality (e.g., compilation).
Diffstat (limited to 'Source/DafnyMenu/DafnyMenu.vsct')
-rw-r--r--Source/DafnyMenu/DafnyMenu.vsct121
1 files changed, 121 insertions, 0 deletions
diff --git a/Source/DafnyMenu/DafnyMenu.vsct b/Source/DafnyMenu/DafnyMenu.vsct
new file mode 100644
index 00000000..1d0c783b
--- /dev/null
+++ b/Source/DafnyMenu/DafnyMenu.vsct
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<CommandTable xmlns="http://schemas.microsoft.com/VisualStudio/2005-10-18/CommandTable" xmlns:xs="http://www.w3.org/2001/XMLSchema">
+
+ <!-- This is the file that defines the actual layout and type of the commands.
+ It is divided in different sections (e.g. command definition, command
+ placement, ...), with each defining a specific set of properties.
+ See the comment before each section for more details about how to
+ use it. -->
+
+ <!-- The VSCT compiler (the tool that translates this file into the binary
+ format that VisualStudio will consume) has the ability to run a preprocessor
+ on the vsct file; this preprocessor is (usually) the C++ preprocessor, so
+ it is possible to define includes and macros with the same syntax used
+ in C++ files. Using this ability of the compiler here, we include some files
+ defining some of the constants that we will use inside the file. -->
+
+ <!--This is the file that defines the IDs for all the commands exposed by VisualStudio. -->
+ <Extern href="stdidcmd.h"/>
+
+ <!--This header contains the command ids for the menus provided by the shell. -->
+ <Extern href="vsshlids.h"/>
+
+ <!--The Commands section is where we the commands, menus and menu groups are defined.
+ This section uses a Guid to identify the package that provides the command defined inside it. -->
+ <Commands package="guidDafnyMenuPkg">
+ <!-- Inside this section we have different sub-sections: one for the menus, another
+ for the menu groups, one for the buttons (the actual commands), one for the combos
+ and the last one for the bitmaps used. Each element is identified by a command id that
+ is a unique pair of guid and numeric identifier; the guid part of the identifier is usually
+ called "command set" and is used to group different command inside a logically related
+ group; your package should define its own command set in order to avoid collisions
+ with command ids defined by other packages. -->
+
+
+ <!-- In this section you can define new menu groups. A menu group is a container for
+ other menus or buttons (commands); from a visual point of view you can see the
+ group as the part of a menu contained between two lines. The parent of a group
+ must be a menu. -->
+
+ <Menus>
+ <Menu guid="guidDafnyMenuPkg" id="DafnyMenu" priority="0x700" type="Menu">
+ <CommandFlag>DefaultInvisible</CommandFlag>
+ <CommandFlag>DynamicVisibility</CommandFlag>
+ <Parent guid="guidSHLMainMenu" id="IDG_VS_MM_TOOLSADDINS" />
+ <Strings>
+ <CommandName>Dafny</CommandName>
+ </Strings>
+ </Menu>
+ </Menus>
+
+ <Groups>
+ <Group guid="guidDafnyMenuCmdSet" id="DafnyMenuGroup" priority="0x0600">
+ <Parent guid="guidDafnyMenuPkg" id="DafnyMenu"/>
+ </Group>
+ </Groups>
+
+ <!--Buttons section. -->
+ <!--This section defines the elements the user can interact with, like a menu command or a button
+ or combo box in a toolbar. -->
+ <Buttons>
+
+ <!--To define a menu group you have to specify its ID, the parent menu and its display priority.
+ The command is visible and enabled by default. If you need to change the visibility, status, etc, you can use
+ the CommandFlag node.
+ You can add more than one CommandFlag node e.g.:
+ <CommandFlag>DefaultInvisible</CommandFlag>
+ <CommandFlag>DynamicVisibility</CommandFlag>
+ If you do not want an image next to your command, remove the Icon node /> -->
+
+ <Button guid="guidDafnyMenuCmdSet" id="cmdidCompile" priority="0x0100" type="Button">
+ <Parent guid="guidDafnyMenuCmdSet" id="DafnyMenuGroup" />
+ <!--
+ <Icon guid="guidImages" id="bmpPic1" />
+ -->
+ <Strings>
+ <ButtonText>Compile</ButtonText>
+ </Strings>
+ </Button>
+
+ </Buttons>
+
+ <!--The bitmaps section is used to define the bitmaps that are used for the commands.-->
+ <Bitmaps>
+ <!-- The bitmap id is defined in a way that is a little bit different from the others:
+ the declaration starts with a guid for the bitmap strip, then there is the resource id of the
+ bitmap strip containing the bitmaps and then there are the numeric ids of the elements used
+ inside a button definition. An important aspect of this declaration is that the element id
+ must be the actual index (1-based) of the bitmap inside the bitmap strip. -->
+
+ <!--
+ <Bitmap guid="guidImages" href="Resources\Images.png" usedList="bmpPic1, bmpPic2, bmpPicSearch, bmpPicX, bmpPicArrows"/>
+ -->
+ </Bitmaps>
+
+ </Commands>
+
+ <Symbols>
+ <!-- This is the package guid. -->
+ <GuidSymbol name="guidDafnyMenuPkg" value="{e1baf989-88a6-4acf-8d97-e0dc243476aa}">
+ <IDSymbol name="DafnyMenu" value="0x1021" />
+ </GuidSymbol>
+
+ <!-- This is the guid used to group the menu commands together -->
+ <GuidSymbol name="guidDafnyMenuCmdSet" value="{393ad46d-e125-41ce-84ee-b4d552d5ba16}">
+ <IDSymbol name="DafnyMenuGroup" value="0x1020" />
+ <IDSymbol name="cmdidCompile" value="0x0100" />
+ </GuidSymbol>
+
+ <!--
+ <GuidSymbol name="guidImages" value="{0176b216-66c6-49f6-a97d-0273c57a7da6}" >
+ <IDSymbol name="bmpPic1" value="1" />
+ <IDSymbol name="bmpPic2" value="2" />
+ <IDSymbol name="bmpPicSearch" value="3" />
+ <IDSymbol name="bmpPicX" value="4" />
+ <IDSymbol name="bmpPicArrows" value="5" />
+ <IDSymbol name="bmpPicStrikethrough" value="6" />
+ </GuidSymbol>
+ -->
+ </Symbols>
+
+</CommandTable>