#include "GitStatus.h"\r
#include "GitFolderStatus.h"\r
#include "uxtheme.h"\r
+#include "MenuInfo.h"\r
\r
extern UINT g_cRefThisDll; // Reference count of this DLL.\r
extern HINSTANCE g_hmodThisDll; // Instance handle for this DLL\r
{\r
protected:\r
\r
- enum GitCommands\r
- {\r
- ShellSeparator = 0,\r
- ShellSubMenu = 1,\r
- ShellSubMenuFolder,\r
- ShellSubMenuFile,\r
- ShellSubMenuLink,\r
- ShellSubMenuMultiple,\r
- ShellMenuCheckout,\r
- ShellMenuUpdate,\r
- ShellMenuCommit,\r
- ShellMenuAdd,\r
- ShellMenuAddAsReplacement,\r
- ShellMenuRevert,\r
- ShellMenuCleanup,\r
- ShellMenuResolve,\r
- ShellMenuSwitch,\r
- ShellMenuImport,\r
- ShellMenuExport,\r
- ShellMenuAbout,\r
- ShellMenuCreateRepos,\r
- ShellMenuCopy,\r
- ShellMenuMerge,\r
- ShellMenuMergeAll,\r
- ShellMenuSettings,\r
- ShellMenuRemove,\r
- ShellMenuRemoveKeep,\r
- ShellMenuRename,\r
- ShellMenuUpdateExt,\r
- ShellMenuDiff,\r
- ShellMenuPrevDiff,\r
- ShellMenuUrlDiff,\r
- ShellMenuDiffTwo,\r
- ShellMenuDropCopyAdd,\r
- ShellMenuDropMoveAdd,\r
- ShellMenuDropMove,\r
- ShellMenuDropMoveRename,\r
- ShellMenuDropCopy,\r
- ShellMenuDropCopyRename,\r
- ShellMenuDropExport,\r
- ShellMenuDropExportExtended,\r
- ShellMenuLog,\r
- ShellMenuConflictEditor,\r
- ShellMenuRelocate,\r
- ShellMenuHelp,\r
- ShellMenuShowChanged,\r
- ShellMenuIgnoreSub,\r
- ShellMenuIgnore,\r
- ShellMenuIgnoreFile,\r
- ShellMenuIgnoreCaseSensitive,\r
- ShellMenuIgnoreCaseInsensitive,\r
- ShellMenuRefLog,\r
- ShellMenuRefBrowse,\r
- ShellMenuBlame,\r
- ShellMenuApplyPatch,\r
- ShellMenuCreatePatch,\r
- ShellMenuRevisionGraph,\r
- ShellMenuUnIgnoreSub,\r
- ShellMenuUnIgnoreCaseSensitive,\r
- ShellMenuUnIgnore,\r
-// ShellMenuLock,\r
-// ShellMenuUnlock,\r
-// ShellMenuUnlockForce,\r
- ShellMenuProperties,\r
- ShellMenuDelUnversioned,\r
- ShellMenuClipPaste,\r
- ShellMenuPull,\r
- ShellMenuPush,\r
- ShellMenuClone,\r
- ShellMenuBranch,\r
- ShellMenuTag,\r
- ShellMenuFormatPatch,\r
- ShellMenuImportPatch,\r
- ShellMenuCherryPick,\r
- ShellMenuFetch,\r
- ShellMenuRebase,\r
- ShellMenuStashSave,\r
- ShellMenuStashApply,\r
- ShellMenuStashList,\r
- ShellMenuStashPop,\r
- ShellMenuSubAdd,\r
- ShellMenuSubSync,\r
- ShellMenuSendMail,\r
- ShellMenuGitSVNRebase,\r
- ShellMenuGitSVNDCommit,\r
- ShellMenuGitSVNIgnore, //import svn ignore\r
- ShellMenuSync,\r
- ShellMenuLastEntry // used to mark the menu array end\r
- };\r
-\r
- // helper struct for context menu entries\r
- typedef struct MenuInfo\r
- {\r
- GitCommands command; ///< the command which gets executed for this menu entry\r
- unsigned __int64 menuID; ///< the menu ID to recognize the entry. NULL if it shouldn't be added to the context menu automatically\r
- UINT iconID; ///< the icon to show for the menu entry\r
- UINT menuTextID; ///< the text of the menu entry\r
- UINT menuDescID; ///< the description text for the menu entry\r
- /// the following 8 params are for checking whether the menu entry should\r
- /// be added automatically, based on states of the selected item(s).\r
- /// The 'yes' states must be set, the 'no' states must not be set\r
- /// the four pairs are OR'ed together, the 'yes'/'no' states are AND'ed together.\r
- DWORD firstyes;\r
- DWORD firstno;\r
- DWORD secondyes;\r
- DWORD secondno;\r
- DWORD thirdyes;\r
- DWORD thirdno;\r
- DWORD fourthyes;\r
- DWORD fourthno;\r
- };\r
-\r
- static MenuInfo menuInfo[];\r
WORD fullver;\r
FileState m_State;\r
ULONG m_cRef;\r