<?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">
<!-- /// (c) 2007 James A Briant -->
<!-- /// -->
<!-- /// Permission is granted to use or modify this source code provided that -->
<!-- /// a) this notice is kept intact -->
<!-- /// b) if you make any modications to this file you assign the -->
<!-- /// copyright of those modifications to James Briant. -->
<!-- /// c) you acknowledge that Mr. Briant offers no warranty -->
<!-- /// and will not be liable for any loss, damages, time, etc. -->
<!-- /// -->
<!-- /// Any doubt, email me: firstname (nospace) lastname at persuasivesoftware.com -->
<!-- /// -->
<!-- /// This package is inspired by Noel Llopis's P4AddIn (also available from -->
<!-- /// the perforce public depot), and also a similar package that I developed -->
<!-- /// at Bunkspeed, Inc ( www.bunkspeed.com ) makers of real-time raytracing -->
<!-- /// tools that anyone case use. -->
<!-- -->
<!-- // -->
<!-- // 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 CTC compiler (the tool that translates this file into the binary -->
<!-- // format that VisualStudio will consume) has the ability to run a preprocessor -->
<!-- // on the ctc 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. -->
<!-- -->
<Extern href="stdidcmd.h"/>
<!-- #include "stdidcmd.h" // This is the file that defines the IDs for all the -->
<!-- // commands exposed by VisualStudio. -->
<!-- -->
<Extern href="vsshlids.h"/>
<!-- #include "vsshlids.h" // This header contains the command ids for the menus -->
<!-- // provided by the shell. -->
<!-- -->
<Extern href="msobtnid.h"/>
<!-- #include "msobtnid.h" // Definition of some CTC specific constants. In this sample -->
<!-- // we use it for the IDs inside the guidOfficeIcon group. -->
<!-- -->
<!-- -->
<!-- -->
<!-- // shorthand macros for a more compact and manageable table -->
<!-- #define OI_NOID guidOfficeIcon:msotcidNoIcon -->
<!-- #define DIS_DEF DEFAULTDISABLED | DEFAULTINVISIBLE | DYNAMICVISIBILITY -->
<!-- #define VIS_DEF COMMANDWELLONLY -->
<!-- -->
<!-- -->
<!-- // The CMDS_SECTION 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="guidP4VsPkg">
<!-- CMDS_SECTION guidp4vspkgPkg -->
<!-- -->
<!-- // 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. -->
<!-- -->
<!-- // This is the sub-section that defines the menus and toolbars. -->
<Menus>
<!-- MENUS_BEGIN -->
<!-- // To define an element in this group you need an ID, a parent group, a display priority, -->
<!-- // a menu type, a name and a default text. -->
<!-- -->
<!-- // NewMenu Relative to Group Priority Type Name Text -->
<!-- -->
<!-- -->
<Menu guid="guidP4VsCmdSet" id="PerforceMenu" priority="0x200" type="Menu">
<Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_PROJECT_SCC"/>
<Strings>
<ButtonText>&Perforce</ButtonText>
</Strings>
</Menu>
<!-- -->
</Menus>
<!-- MENUS_END -->
<!-- -->
<!-- // 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. -->
<Groups>
<!-- NEWGROUPS_BEGIN -->
<!-- // NewGroup Parent Group Priority -->
<Group guid="guidP4VsCmdSet" id="PerforceInfoGroup" priority="0x0000">
<Parent guid="guidP4VsCmdSet" id="PerforceMenu"/>
</Group>
<Group guid="guidP4VsCmdSet" id="PerforceAddGroup" priority="0x0100">
<Parent guid="guidP4VsCmdSet" id="PerforceMenu"/>
</Group>
<Group guid="guidP4VsCmdSet" id="PerforceAddTreeGroup" priority="0x0180">
<Parent guid="guidP4VsCmdSet" id="PerforceMenu"/>
</Group>
<Group guid="guidP4VsCmdSet" id="PerforceDeleteGroup" priority="0x0200">
<Parent guid="guidP4VsCmdSet" id="PerforceMenu"/>
</Group>
<Group guid="guidP4VsCmdSet" id="PerforceMenuGroup" priority="0x0200">
<Parent guid="guidSHLMainMenu" id="IDG_VS_PROJ_FOLDER"/>
</Group>
<!-- -->
<!-- // IDG_VS_PROJ_FOLDER -->
</Groups>
<!-- NEWGROUPS_END -->
<!-- -->
<!-- // Button 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>
<!-- BUTTONS_BEGIN -->
<!-- // To define a menu group you have to specify its ID, the parent menu and its display priority. -->
<!-- // Some commands are not defined as shared, so they use our package CLSID -->
<!-- // as the command set GUID. Also, by specifying blank for the FLAGS, the command is -->
<!-- // default visible and enabled. Other valid values for FLAGS are the following: -->
<!-- // DEFAULTDISABLED, DEFAULTINVISIBLE, DYNAMICVISIBILITY, TEXTCHANGES -->
<!-- // These values for FLAGS can be or'ed together, e.g. "DEFAULTINVISIBLE | DYNAMICVISIBILITY" -->
<!-- // If you do not want an image next to your command, set the image to "guidOfficeIcon:msotcidNoIcon" -->
<!-- -->
<!-- // Command Parent Group Priority Image Type Visibility -->
<Button guid="guidP4VsCmdSet" id="cmdidRunP4Diff" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceInfoGroup"/>
<Strings>
<ButtonText>&Diff</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4History" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceInfoGroup"/>
<Strings>
<ButtonText>&History</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4Win" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceInfoGroup"/>
<Strings>
<ButtonText>&Win</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4Add" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceAddGroup"/>
<Strings>
<ButtonText>&Add</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4Edit" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceAddGroup"/>
<Strings>
<ButtonText>&Edit</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4AddTree" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceAddTreeGroup"/>
<Strings>
<ButtonText>Add &Tree</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4EditTree" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceAddTreeGroup"/>
<Strings>
<ButtonText>Edit Tree</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4Revert" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceDeleteGroup"/>
<Strings>
<ButtonText>&Revert</ButtonText>
</Strings>
</Button>
<Button guid="guidP4VsCmdSet" id="cmdidRunP4Delete" priority="0x0100" type="Button">
<Parent guid="guidP4VsCmdSet" id="PerforceDeleteGroup"/>
<Strings>
<ButtonText>De&lete</ButtonText>
</Strings>
</Button>
<!-- -->
<!-- -->
<!-- //IDG_VS_CTXT_ITEM_SCC -->
</Buttons>
<!-- BUTTONS_END -->
<!-- -->
<!-- // The bitmaps section is used to define the bitmaps that are used for the commands. -->
<!-- -->
</Commands>
<!-- -->
<!-- // Inside this section, we have the ability to place menu groups inside some other menu or -->
<!-- // menu / commands inside other groups. -->
<!-- // For instance, it is possible to place one of VisualStudio's menus or commands inside one of our -->
<!-- // groups or one of our groups inside a menu defined somewhere else. -->
<CommandPlacements>
<!-- CMDPLACEMENT_SECTION -->
<!-- // Command Group Priority -->
<CommandPlacement guid="guidP4VsCmdSet" id="PerforceMenu" priority="0x0100">
<Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_ITEM_SCC"/>
</CommandPlacement>
<CommandPlacement guid="guidP4VsCmdSet" id="PerforceMenu" priority="0x0100">
<Parent guid="guidSHLMainMenu" id="IDG_VS_CTXT_SOLUTION_SCC"/>
</CommandPlacement>
<CommandPlacement guid="guidP4VsCmdSet" id="PerforceMenu" priority="0x200">
<Parent guid="guidP4VsCmdSet" id="PerforceMenuGroup"/>
</CommandPlacement>
<!-- -->
</CommandPlacements>
<!-- CMDPLACEMENT_END -->
<!-- -->
<!-- -->
<Symbols>
<!-- This is the package guid. -->
<GuidSymbol name="guidP4VsPkg" value="{90809389-0fcf-4fba-a07c-5e1de751eacb}" />
<!-- This is the guid used to group the menu commands together -->
<GuidSymbol name="guidP4VsCmdSet" value="{36b378e6-ff11-4c51-9d72-5dc43c8772e9}">
<IDSymbol name="cmdidRunP4Diff" value="0x0100" />
<IDSymbol name="cmdidRunP4History" value="0x0101" />
<IDSymbol name="cmdidRunP4Win" value="0x0102" />
<IDSymbol name="cmdidRunP4Add" value="0x0103" />
<IDSymbol name="cmdidRunP4Edit" value="0x0104" />
<IDSymbol name="cmdidRunP4AddTree" value="0x0105" />
<IDSymbol name="cmdidRunP4EditTree" value="0x0106" />
<IDSymbol name="cmdidRunP4Revert" value="0x0107" />
<IDSymbol name="cmdidRunP4Delete" value="0x0108" />
<IDSymbol name="PerforceMenu" value="0x1010" />
<IDSymbol name="PerforceInfoGroup" value="0x1020" />
<IDSymbol name="PerforceAddGroup" value="0x1021" />
<IDSymbol name="PerforceAddTreeGroup" value="0x1022" />
<IDSymbol name="PerforceDeleteGroup" value="0x1023" />
<IDSymbol name="PerforceMenuGroup" value="0x1024" />
</GuidSymbol>
</Symbols>
</CommandTable>