Fixed issue #1220: ext/CrashServer/CommonLibs/Zlib/Zlib.vcproj immediate dir Win32...
[TortoiseGit.git] / src / TortoiseShell / MenuInfo.cpp
blob40f482ebe38b64631a2261d0493df0e1b471cede
1 // TortoiseGit - a Windows shell extension for easy version control
3 // Copyright (C) 2008-2012 - TortoiseGit
4 // Copyright (C) 2003-2008 - TortoiseSVN
6 // This program is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU General Public License
8 // as published by the Free Software Foundation; either version 2
9 // of the License, or (at your option) any later version.
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the Free Software Foundation,
18 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
20 #include "stdafx.h"
21 #include "menuinfo.h"
22 #include "resource.h"
23 #include "Globals.h"
25 MenuInfo menuInfo[] =
27 { ShellMenuClone, MENUCLONE, IDI_CLONE, IDS_MENUCLONE, IDS_MENUDESCCLONE,
28 ITEMIS_FOLDER, ITEMIS_INGIT|ITEMIS_FOLDERINGIT|ITEMIS_BAREREPO, 0, 0, 0, 0, 0, 0 },
30 { ShellMenuPull, MENUPULL, IDI_PULL, IDS_MENUPULL, IDS_MENUDESCPULL,
31 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
33 { ShellMenuFetch, MENUFETCH, IDI_PULL, IDS_MENUFETCH, IDS_MENUDESCFETCH,
34 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, ITEMIS_BAREREPO, 0, 0, 0, 0, 0 },
36 { ShellMenuPush, MENUPUSH, IDI_PUSH, IDS_MENUPUSH, IDS_MENUDESCPUSH,
37 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, ITEMIS_BAREREPO, 0, 0, 0, 0, 0 },
39 { ShellMenuSync, MENUSYNC, IDI_RELOCATE, IDS_MENUSYNC, IDS_MENUDESCSYNC,
40 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
43 // { ShellMenuUpdate, MENUSUBUPDATE, IDI_UPDATE, IDS_MENUUPDATE, IDS_MENUDESCUPDATE,
44 // ITEMIS_INGIT, 0, ITEMIS_FOLDERINGIT, 0, 0, 0, 0, 0 },
46 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
48 { ShellMenuCommit, MENUCOMMIT, IDI_COMMIT, IDS_MENUCOMMIT, IDS_MENUDESCCOMMIT,
49 ITEMIS_INGIT, 0, ITEMIS_FOLDERINGIT, 0, 0, 0, 0, 0 },
51 { ShellMenuGitSVNDCommit, MENUSVNDCOMMIT, IDI_COMMIT, IDS_MENUSVNDCOMMIT, IDS_MENUSVNDCOMMIT_DESC,
52 ITEMIS_INGIT|ITEMIS_GITSVN, 0, ITEMIS_FOLDERINGIT|ITEMIS_GITSVN, 0, 0, 0, 0, 0 },
54 { ShellMenuGitSVNRebase, MENUSVNREBASE, IDI_REBASE, IDS_MENUSVNREBASE, IDS_MENUSVNREBASE_DESC,
55 ITEMIS_FOLDERINGIT|ITEMIS_GITSVN|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0},
57 { ShellMenuGitSVNDFetch, MENUSVNFETCH, IDI_PULL, IDS_MENUSVNFETCH, IDS_MENUDESCSVNFETCH,
58 ITEMIS_FOLDERINGIT|ITEMIS_GITSVN|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
60 { ShellMenuGitSVNIgnore, MENUSVNIGNORE, IDI_IGNORE, IDS_MENUSVNIGNORE, IDS_MENUSVNIGNORE_DESC,
61 ITEMIS_INGIT|ITEMIS_GITSVN, 0, ITEMIS_FOLDERINGIT|ITEMIS_GITSVN, 0, 0, 0, 0, 0},
63 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
65 { ShellMenuDiff, MENUDIFF, IDI_DIFF, IDS_MENUDIFF, IDS_MENUDESCDIFF,
66 ITEMIS_INGIT|ITEMIS_ONLYONE, 0, ITEMIS_TWO, 0, 0, 0, 0, 0 },
68 { ShellMenuPrevDiff, MENUPREVDIFF, IDI_DIFF, IDS_MENUPREVDIFF, IDS_MENUDESCPREVDIFF,
69 ITEMIS_INGIT|ITEMIS_ONLYONE, ITEMIS_ADDED, 0, 0, 0, 0, 0, 0 },
71 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
73 { ShellMenuLog, MENULOG, IDI_LOG, IDS_MENULOG, IDS_MENUDESCLOG,
74 ITEMIS_INGIT|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_BAREREPO, 0 },
76 { ShellMenuRefLog, MENUREFLOG, IDI_LOG, IDS_MENUREFLOG, IDS_MENUDESCREFLOG,
77 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, ITEMIS_BAREREPO, 0, 0, 0, 0, 0 },
79 { ShellMenuRefBrowse, MENUREFBROWSE, IDI_REPOBROWSE, IDS_MENUREFBROWSE, IDS_MENUDESCREFBROWSE,
80 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, ITEMIS_BAREREPO, 0, 0, 0, 0, 0 },
82 { ShellMenuRepoBrowse, MENUREPOBROWSE, IDI_REPOBROWSE, IDS_MENUREPOBROWSE, IDS_MENUDESCREPOBROWSE,
83 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, ITEMIS_BAREREPO|ITEMIS_ONLYONE, 0, 0, 0, 0, 0 },
85 { ShellMenuShowChanged, MENUSHOWCHANGED, IDI_SHOWCHANGED, IDS_MENUSHOWCHANGED, IDS_MENUDESCSHOWCHANGED,
86 ITEMIS_INGIT, 0, ITEMIS_FOLDER|ITEMIS_FOLDERINGIT, 0, 0, 0, 0, 0},
88 { ShellMenuRebase, MENUREBASE, IDI_REBASE, IDS_MENUREBASE, IDS_MENUREBASE,
89 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0},
91 { ShellMenuStashSave, MENUSTASHSAVE, IDI_COMMIT, IDS_MENUSTASHSAVE, IDS_MENUSTASHSAVE,
92 ITEMIS_INGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
93 { ShellMenuStashApply, MENUSTASHAPPLY, IDI_RELOCATE, IDS_MENUSTASHAPPLY, IDS_MENUSTASHAPPLY,
94 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE|ITEMIS_STASH, 0, 0, 0, 0, 0, 0, 0 },
95 { ShellMenuStashPop, MENUSTASHPOP, IDI_RELOCATE, IDS_MENUSTASHPOP, IDS_MENUSTASHPOP,
96 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE|ITEMIS_STASH, 0, 0, 0, 0, 0, 0, 0 },
97 { ShellMenuStashList, MENUSTASHLIST, IDI_LOG, IDS_MENUSTASHLIST, IDS_MENUSTASHLIST,
98 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE|ITEMIS_STASH, 0, 0, 0, 0, 0, 0, 0 },
100 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
102 { ShellMenuBisectStart, MENUBISECTSTART, 0, IDS_MENUBISECTSTART, IDS_MENUDESCBISECTSTART,
103 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, ITEMIS_BISECT, 0, 0, 0, 0, 0, 0 },
105 { ShellMenuBisectGood, MENUBISECTGOOD, IDI_THUMB_UP, IDS_MENUBISECTGOOD, IDS_MENUDESCBISECTGOOD,
106 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE|ITEMIS_BISECT, 0, 0, 0, 0, 0, 0, 0 },
108 { ShellMenuBisectBad, MENUBISECTBAD, IDI_THUMB_DOWN, IDS_MENUBISECTBAD, IDS_MENUDESCBISECTBAD,
109 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE|ITEMIS_BISECT, 0, 0, 0, 0, 0, 0, 0 },
111 { ShellMenuBisectReset, MENUBISECTRESET, 0, IDS_MENUBISECTRESET, IDS_MENUDESCBISECTRESET,
112 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE|ITEMIS_BISECT, 0, 0, 0, 0, 0, 0, 0 },
114 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
116 { ShellMenuConflictEditor, MENUCONFLICTEDITOR, IDI_CONFLICT, IDS_MENUCONFLICT, IDS_MENUDESCCONFLICT,
117 ITEMIS_INGIT|ITEMIS_CONFLICTED, ITEMIS_FOLDER, 0, 0, 0, 0, 0, 0 },
119 { ShellMenuResolve, MENURESOLVE, IDI_RESOLVE, IDS_MENURESOLVE, IDS_MENUDESCRESOLVE,
120 ITEMIS_INGIT|ITEMIS_CONFLICTED, 0, ITEMIS_INGIT|ITEMIS_FOLDER, 0, ITEMIS_FOLDERINGIT, 0, 0, 0 },
123 { ShellMenuRename, MENURENAME, IDI_RENAME, IDS_MENURENAME, IDS_MENUDESCRENAME,
124 ITEMIS_INGIT|ITEMIS_ONLYONE|ITEMIS_INVERSIONEDFOLDER, ITEMIS_ADDED|ITEMIS_WCROOT, 0, 0, 0, 0, 0, 0 },
126 { ShellMenuRemove, MENUREMOVE, IDI_DELETE, IDS_MENUREMOVE, IDS_MENUDESCREMOVE,
127 ITEMIS_INGIT|ITEMIS_INVERSIONEDFOLDER, ITEMIS_ADDED|ITEMIS_WCROOT, 0, 0, 0, 0, 0, 0 },
129 { ShellMenuRemoveKeep, MENUREMOVEKEEP, IDI_DELETE, IDS_MENUREMOVEKEEP, IDS_MENUDESCREMOVEKEEP,
130 ITEMIS_INGIT|ITEMIS_INVERSIONEDFOLDER, ITEMIS_ADDED|ITEMIS_WCROOT, 0, 0, 0, 0, 0, 0 },
132 { ShellMenuRevert, MENUREVERT, IDI_REVERT, IDS_MENUREVERT, IDS_MENUDESCREVERT,
133 ITEMIS_INGIT, ITEMIS_NORMAL, ITEMIS_FOLDERINGIT, 0, 0, 0, 0, 0 },
135 { ShellMenuCleanup, MENUCLEANUP, IDI_CLEANUP, IDS_MENUCLEANUP, IDS_MENUDESCCLEANUP,
136 ITEMIS_FOLDERINGIT|ITEMIS_FOLDER, 0, 0, 0, 0, 0, 0, 0 },
138 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
140 // { ShellMenuCopy, MENUCOPY, IDI_COPY, IDS_MENUBRANCH, IDS_MENUDESCCOPY,
141 // ITEMIS_INGIT|ITEMIS_ONLYONE, ITEMIS_ADDED, ITEMIS_FOLDER|ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0 },
143 { ShellMenuSwitch, MENUSWITCH, IDI_SWITCH, IDS_MENUSWITCH, IDS_MENUDESCSWITCH,
144 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
146 { ShellMenuMerge, MENUMERGE, IDI_MERGE, IDS_MENUMERGE, IDS_MENUDESCMERGE,
147 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
149 { ShellMenuBranch, MENUCOPY, IDI_COPY, IDS_MENUBRANCH, IDS_MENUDESCCOPY,
150 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
151 { ShellMenuTag, MENUTAG, IDI_TAG, IDS_MENUTAG, IDS_MENUDESCCOPY,
152 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
154 { ShellMenuExport, MENUEXPORT, IDI_EXPORT, IDS_MENUEXPORT, IDS_MENUDESCEXPORT,
155 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
157 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
159 { ShellMenuCreateRepos, MENUCREATEREPOS, IDI_CREATEREPOS, IDS_MENUCREATEREPOS, IDS_MENUDESCCREATEREPOS,
160 ITEMIS_FOLDER, ITEMIS_INGIT|ITEMIS_FOLDERINGIT|ITEMIS_BAREREPO, 0, 0, 0, 0, 0, 0 },
162 { ShellMenuAdd, MENUADD, IDI_ADD, IDS_MENUADD, IDS_MENUDESCADD,
163 ITEMIS_INVERSIONEDFOLDER, ITEMIS_INGIT, ITEMIS_INGIT|ITEMIS_FOLDER, 0, ITEMIS_IGNORED, 0, ITEMIS_DELETED, ITEMIS_FOLDER|ITEMIS_ONLYONE },
165 // { ShellMenuAddAsReplacement, MENUADD, IDI_ADD, IDS_MENUADDASREPLACEMENT, IDS_MENUADDASREPLACEMENT,
166 // ITEMIS_DELETED|ITEMIS_ONLYONE, ITEMIS_FOLDER, 0, 0, 0, 0, 0, 0 },
168 { ShellMenuBlame, MENUBLAME, IDI_BLAME, IDS_MENUBLAME, IDS_MENUDESCBLAME,
169 ITEMIS_INGIT|ITEMIS_ONLYONE, ITEMIS_FOLDER|ITEMIS_ADDED, 0, 0, 0, 0, 0, 0 },
171 { ShellMenuIgnoreSub, MENUIGNORE, IDI_IGNORE, IDS_MENUIGNORE, IDS_MENUDESCIGNORE,
172 ITEMIS_INVERSIONEDFOLDER, ITEMIS_IGNORED|ITEMIS_INGIT|ITEMIS_WCROOT, 0, 0, 0, 0, 0, 0 },
174 { ShellMenuDeleteIgnoreSub, MENUIGNORE, IDI_IGNORE, IDS_MENUDELETEIGNORE, IDS_MENUDESCDELETEIGNORE,
175 ITEMIS_INVERSIONEDFOLDER|ITEMIS_INGIT, ITEMIS_IGNORED|ITEMIS_WCROOT, 0, 0, 0, 0, 0, 0 },
177 // no support for this atm since we do not use "ignoredprops"-vector in ContextMenu.cpp
178 // { ShellMenuUnIgnoreSub, MENUIGNORE, IDI_IGNORE, IDS_MENUUNIGNORE, IDS_MENUDESCUNIGNORE,
179 // ITEMIS_IGNORED, 0, 0, 0, 0, 0, 0, 0 },
181 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
183 { ShellMenuSubAdd, MENUSUBADD, IDI_ADD, IDS_MENUSUBADD, IDS_MENUSUBADD,
184 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
186 { ShellMenuUpdateExt, MENUUPDATEEXT, IDI_UPDATE, IDS_MENUUPDATEEXT, IDS_MENUDESCUPDATEEXT,
187 ITEMIS_FOLDERINGIT|ITEMIS_SUBMODULECONTAINER, 0, 0, 0, 0, 0, 0, 0 },
189 { ShellMenuSubSync, MENUSUBSYNC, IDI_MENUSYNC, IDS_MENUSUBSYNC, IDS_MENUSUBSYNC,
190 ITEMIS_FOLDERINGIT|ITEMIS_SUBMODULECONTAINER, 0, 0, 0, 0, 0, 0, 0 },
194 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
196 // { ShellMenuCherryPick, MENUCHERRYPICK, IDI_CREATEPATCH, IDS_MENUCHERRYPICK, IDS_MENUDESCCREATEPATCH,
197 // ITEMIS_INGIT, ITEMIS_NORMAL, ITEMIS_FOLDERINGIT, 0, 0, 0, 0, 0 },
199 { ShellMenuFormatPatch, MENUFORMATPATCH, IDI_CREATEPATCH, IDS_MENUFORMATPATCH, IDS_MENUDESCCREATEPATCH,
200 ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0, 0, 0 },
202 // Really apply patch
203 { ShellMenuImportPatch, MENUIMPORTPATCH, IDI_PATCH, IDS_MENUIMPORTPATCH, IDS_MENUDESCIMPORTPATCH,
204 ITEMIS_PATCHFILE, 0, ITEMIS_FOLDERINGIT|ITEMIS_ONLYONE, 0, 0, 0, 0, 0 },
207 // { ShellMenuCreatePatch, MENUCREATEPATCH, IDI_CREATEPATCH, IDS_MENUCREATEPATCH, IDS_MENUDESCCREATEPATCH,
208 // ITEMIS_INGIT, ITEMIS_NORMAL, ITEMIS_FOLDERINGIT, 0, 0, 0, 0, 0 },
210 // Review Patch
211 { ShellMenuApplyPatch, MENUAPPLYPATCH, IDI_PATCH, IDS_MENUAPPLYPATCH, IDS_MENUDESCAPPLYPATCH,
212 ITEMIS_PATCHFILE|ITEMIS_ONLYONE, 0, ITEMIS_EXTENDED|ITEMIS_ONLYONE, ITEMIS_FOLDER, 0, 0, 0, 0 },
214 { ShellMenuSendMail, MENUSENDMAIL, IDI_MENUSENDMAIL, IDS_MENUSENDMAIL, IDS_MENUDESSENDMAIL,
215 ITEMIS_PATCHFILE, 0, ITEMIS_EXTENDED, ITEMIS_FOLDER, 0, 0, 0, 0 },
217 // we do not support paste atm
218 // { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
219 // { ShellMenuClipPaste, MENUCLIPPASTE, IDI_CLIPPASTE, IDS_MENUCLIPPASTE, IDS_MENUDESCCLIPPASTE,
220 // ITEMIS_INGIT|ITEMIS_FOLDER|ITEMIS_PATHINCLIPBOARD, 0, 0, 0, 0, 0, 0, 0 },
222 { ShellSeparator, 0, 0, 0, 0, 0, 0, 0, 0},
224 { ShellMenuSettings, MENUSETTINGS, IDI_SETTINGS, IDS_MENUSETTINGS, IDS_MENUDESCSETTINGS,
225 ITEMIS_FOLDER, 0, 0, ITEMIS_FOLDER, 0, 0, 0, 0 },
226 { ShellMenuHelp, MENUHELP, IDI_HELP, IDS_MENUHELP, IDS_MENUDESCHELP,
227 ITEMIS_FOLDER, 0, 0, ITEMIS_FOLDER, 0, 0, 0, 0 },
228 { ShellMenuAbout, MENUABOUT, IDI_ABOUT, IDS_MENUABOUT, IDS_MENUDESCABOUT,
229 ITEMIS_FOLDER, 0, 0, ITEMIS_FOLDER, 0, 0, 0, 0 },
231 // the sub menus - they're not added like the the commands, therefore the menu ID is zero
232 // but they still need to be in here, because we use the icon and string information anyway.
233 { ShellSubMenu, NULL, IDI_APP, IDS_MENUSUBMENU, 0,
234 0, 0, 0, 0, 0, 0, 0, 0 },
235 { ShellSubMenuFile, NULL, IDI_MENUFILE, IDS_MENUSUBMENU, 0,
236 0, 0, 0, 0, 0, 0, 0, 0 },
237 { ShellSubMenuFolder, NULL, IDI_MENUFOLDER, IDS_MENUSUBMENU, 0,
238 0, 0, 0, 0, 0, 0, 0, 0 },
239 { ShellSubMenuLink, NULL, IDI_MENULINK, IDS_MENUSUBMENU, 0,
240 0, 0, 0, 0, 0, 0, 0, 0 },
241 { ShellSubMenuMultiple, NULL, IDI_MENUMULTIPLE, IDS_MENUSUBMENU, 0,
242 0, 0, 0, 0, 0, 0, 0, 0 },
243 // mark the last entry to tell the loop where to stop iterating over this array
244 { ShellMenuLastEntry, 0, 0, 0, 0,
245 0, 0, 0, 0, 0, 0, 0, 0 },