int CGitExtensionsShellEx::PopulateMenu(HMENU hMenu, int id, bool isSubMenu) { CString szShellVisibleMenuItems = GetRegistryValue(HKEY_CURRENT_USER, "SOFTWARE\\GitExtensions\\GitExtensions", "ShellVisibleMenuItems"); // preset values, if not used AddFilesId = -1; ApplyPatchId = -1; BrowseId = -1; CreateBranchId = -1; CheckoutBranchId = -1; CheckoutRevisionId = -1; CloneId = -1; CommitId = -1; FileHistoryId = -1; PullId = -1; PushId = -1; SettingsId = -1; ViewDiffId = -1; ResetFileChangesId = -1; int pos = 0; if (isSubMenu) { if (IsMenuItemVisible(szShellVisibleMenuItems, 0)) AddMenuItem(hMenu, "Add files", ++id, AddFilesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 1)) AddMenuItem(hMenu, "Apply patch", ++id, ApplyPatchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 2)) AddMenuItem(hMenu, "Browse", ++id, BrowseId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 3)) AddMenuItem(hMenu, "Create branch", ++id, CreateBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 4)) AddMenuItem(hMenu, "Checkout branch", ++id, CheckoutBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 5)) AddMenuItem(hMenu, "Checkout revision", ++id, CheckoutRevisionId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 6)) AddMenuItem(hMenu, "Clone", ++id, CloneId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 7)) AddMenuItem(hMenu, "Commit", ++id, CommitId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 8)) AddMenuItem(hMenu, "File history", ++id, FileHistoryId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 9)) AddMenuItem(hMenu, "Reset file changes", ++id, ResetFileChangesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 10)) AddMenuItem(hMenu, "Pull", ++id, PullId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 11)) AddMenuItem(hMenu, "Push", ++id, PushId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 12)) AddMenuItem(hMenu, "Settings", ++id, SettingsId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 13)) AddMenuItem(hMenu, "View diff", ++id, ViewDiffId=pos++); } else { if (IsMenuItemVisible(szShellVisibleMenuItems, 0)) AddMenuItem(hMenu, "GitExtensions Add files", ++id, AddFilesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 1)) AddMenuItem(hMenu, "GitExtensions Apply patch", ++id, ApplyPatchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 2)) AddMenuItem(hMenu, "GitExtensions Browse", ++id, BrowseId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 3)) AddMenuItem(hMenu, "GitExtensions Create branch", ++id, CreateBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 4)) AddMenuItem(hMenu, "GitExtensions Checkout branch", ++id, CheckoutBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 5)) AddMenuItem(hMenu, "GitExtensions Checkout revision", ++id, CheckoutRevisionId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 6)) AddMenuItem(hMenu, "GitExtensions Clone", ++id, CloneId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 7)) AddMenuItem(hMenu, "GitExtensions Commit", ++id, CommitId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 8)) AddMenuItem(hMenu, "GitExtensions File history", ++id, FileHistoryId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 9)) AddMenuItem(hMenu, "GitExtensions Reset file changes", ++id, ResetFileChangesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 10)) AddMenuItem(hMenu, "GitExtensions Pull", ++id, PullId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 11)) AddMenuItem(hMenu, "GitExtensions Push", ++id, PushId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 12)) AddMenuItem(hMenu, "GitExtensions Settings", ++id, SettingsId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 13)) AddMenuItem(hMenu, "GitExtensions View diff", ++id, ViewDiffId=pos++); } ++id; return id; }
int CGitExtensionsShellEx::PopulateMenu(HMENU hMenu, int firstId, int id, bool isSubMenu) { CString szShellVisibleMenuItems = GetRegistryValue(HKEY_CURRENT_USER, "SOFTWARE\\GitExtensions\\GitExtensions", "ShellVisibleMenuItems"); // preset values, if not used AddFilesId = -1; ApplyPatchId = -1; BrowseId = -1; CreateBranchId = -1; CheckoutBranchId = -1; CheckoutRevisionId = -1; CloneId = -1; CommitId = -1; FileHistoryId = -1; PullId = -1; PushId = -1; SettingsId = -1; ViewDiffId = -1; ResetFileChangesId = -1; int pos = 0; if (isSubMenu) { if (IsMenuItemVisible(szShellVisibleMenuItems, 0)) AddMenuItem(hMenu, "Add files", IDI_ICONADDED, firstId, ++id, AddFilesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 1)) AddMenuItem(hMenu, "Apply patch", 0, firstId, ++id, ApplyPatchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 2)) AddMenuItem(hMenu, "Browse", IDI_ICONBROWSEFILEEXPLORER, firstId, ++id, BrowseId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 3)) AddMenuItem(hMenu, "Create branch", IDI_ICONBRANCHCREATE, firstId, ++id, CreateBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 4)) AddMenuItem(hMenu, "Checkout branch", IDI_ICONBRANCHCHECKOUT, firstId, ++id, CheckoutBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 5)) AddMenuItem(hMenu, "Checkout revision", IDI_ICONREVISIONCHECKOUT, firstId, ++id, CheckoutRevisionId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 6)) AddMenuItem(hMenu, "Clone", IDI_ICONCLONEREPOGIT, firstId, ++id, CloneId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 7)) AddMenuItem(hMenu, "Commit", IDI_ICONCOMMIT, firstId, ++id, CommitId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 8)) AddMenuItem(hMenu, "File history", IDI_ICONFILEHISTORY, firstId, ++id, FileHistoryId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 9)) AddMenuItem(hMenu, "Reset file changes", IDI_ICONTRESETFILETO, firstId, ++id, ResetFileChangesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 10)) AddMenuItem(hMenu, "Pull", IDI_ICONPULL, firstId, ++id, PullId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 11)) AddMenuItem(hMenu, "Push", IDI_ICONPUSH, firstId, ++id, PushId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 12)) AddMenuItem(hMenu, "Settings", IDI_ICONSETTINGS, firstId, ++id, SettingsId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 13)) AddMenuItem(hMenu, "View diff", IDI_ICONDIFF, firstId, ++id, ViewDiffId=pos++); } else { if (IsMenuItemVisible(szShellVisibleMenuItems, 0)) AddMenuItem(hMenu, "GitEx Add files", IDI_ICONADDED, firstId, ++id, AddFilesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 1)) AddMenuItem(hMenu, "GitEx Apply patch", 0, firstId, ++id, ApplyPatchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 2)) AddMenuItem(hMenu, "GitEx Browse", IDI_ICONBROWSEFILEEXPLORER, firstId, ++id, BrowseId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 3)) AddMenuItem(hMenu, "GitEx Create branch", IDI_ICONBRANCHCREATE, firstId, ++id, CreateBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 4)) AddMenuItem(hMenu, "GitEx Checkout branch", IDI_ICONBRANCHCHECKOUT, firstId, ++id, CheckoutBranchId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 5)) AddMenuItem(hMenu, "GitEx Checkout revision", IDI_ICONREVISIONCHECKOUT, firstId, ++id, CheckoutRevisionId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 6)) AddMenuItem(hMenu, "GitEx Clone", IDI_ICONCLONEREPOGIT, firstId, ++id, CloneId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 7)) AddMenuItem(hMenu, "GitEx Commit", IDI_ICONCOMMIT, firstId, ++id, CommitId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 8)) AddMenuItem(hMenu, "GitEx File history", IDI_ICONFILEHISTORY, firstId, ++id, FileHistoryId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 9)) AddMenuItem(hMenu, "GitEx Reset file changes", IDI_ICONTRESETFILETO, firstId, ++id, ResetFileChangesId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 10)) AddMenuItem(hMenu, "GitEx Pull", IDI_ICONPULL, firstId, ++id, PullId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 11)) AddMenuItem(hMenu, "GitEx Push", IDI_ICONPUSH, firstId, ++id, PushId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 12)) AddMenuItem(hMenu, "GitEx Settings", IDI_ICONSETTINGS, firstId, ++id, SettingsId=pos++); if (IsMenuItemVisible(szShellVisibleMenuItems, 13)) AddMenuItem(hMenu, "GitEx View diff", IDI_ICONDIFF, firstId, ++id, ViewDiffId=pos++); } ++id; return id; }