--- /dev/null
+#pragma once\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