-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathmenu_templates.cpp
More file actions
458 lines (431 loc) · 30.5 KB
/
Copy pathmenu_templates.cpp
File metadata and controls
458 lines (431 loc) · 30.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
// SPDX-FileCopyrightText: 2023 Taskscape Ltd
// SPDX-License-Identifier: GPL-2.0-or-later
// CommentsTranslationProject: TRANSLATED
#include "precomp.h"
#include "menu.h"
#include "update_check.h"
CMenuPopup MainMenu;
CMenuPopup ArchiveMenu;
CMenuPopup ArchivePanelMenu;
//
// creates and populates the menu
//
MENU_TEMPLATE_ITEM MainMenuTemplate[] =
{
{MNTT_PB, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
// Left
{MNTT_PB, IDS_MENU_LEFT, MNTS_B | MNTS_I | MNTS_A, CML_LEFT, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_CHANGEDRIVE, MNTS_B | MNTS_I | MNTS_A, CM_LCHANGEDRIVE, -1, 0, NULL},
{MNTT_PB, IDS_MENU_LEFT_GO, MNTS_B | MNTS_I | MNTS_A, CML_LEFT_GO, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_GO_BACK, MNTS_B | MNTS_I | MNTS_A, CM_LBACK, IDX_TB_BACK, 0, &EnablerLeftBackward},
{MNTT_IT, IDS_MENU_LEFT_GO_FORWARD, MNTS_B | MNTS_I | MNTS_A, CM_LFORWARD, IDX_TB_FORWARD, 0, &EnablerLeftForward},
{MNTT_IT, IDS_MENU_LEFT_GO_UPDIR, MNTS_B | MNTS_I | MNTS_A, CM_LPARENTDIR, IDX_TB_PARENTDIR, 0, &EnablerLeftUpDir},
{MNTT_IT, IDS_MENU_LEFT_GO_ROOT, MNTS_B | MNTS_I | MNTS_A, CM_LROOTDIR, IDX_TB_ROOTDIR, 0, &EnablerLeftRootDir},
{MNTT_IT, IDS_MENU_LEFT_GO_OTHER, MNTS_B | MNTS_I | MNTS_A, CM_LEFT_AS_OTHER, IDX_TB_AS_OTHER_PANEL, 0, NULL},
{MNTT_PE},
// TRANSLATOR_INSERT: IDS_BRIEF_VIEW, IDS_DETAILED_VIEW, IDS_ICONS_VIEW, IDS_THUMBNAILS_VIEW, IDS_TILES_VIEW, IDS_TYPES_VIEW
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, CML_LEFT_VIEWS1, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, CML_LEFT_VIEWS2, -1, 0, NULL},
{MNTT_PB, IDS_MENU_LEFT_SORTBY, MNTS_B | MNTS_I | MNTS_A, CML_LEFT_SORTBY, -1, 0, NULL},
{MNTT_PE},
{MNTT_PB, IDS_MENU_LEFT_VSB, MNTS_A, CML_LEFT_VISIBLE, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_VSB_DIRLINE, MNTS_A, CM_LEFTDIRLINE, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_VSB_HDRLINE, MNTS_A, CM_LEFTHEADER, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_VSB_INFOLINE, MNTS_A, CM_LEFTSTATUS, -1, 0, NULL},
{MNTT_PE},
{MNTT_IT, IDS_MENU_LEFT_VIEW, MNTS_A, CM_LCUSTOMIZEVIEW, -1, 0, &EnablerCustomizeLeftView},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_ZOOM, MNTS_I | MNTS_A, CM_LEFTZOOMPANEL, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_SWAPPANELS, MNTS_I | MNTS_A, CM_SWAPPANELS, -1, 0, NULL},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_FILTER, MNTS_I | MNTS_A, CM_LCHANGEFILTER, IDX_TB_FILTER, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_REFRESH, MNTS_B | MNTS_I | MNTS_A, CM_LEFTREFRESH, IDX_TB_REFRESH, 0, NULL},
{MNTT_PE},
// Files
{MNTT_PB, IDS_MENU_FILES, MNTS_B | MNTS_I | MNTS_A, CML_FILES, -1, 0, NULL},
{MNTT_IT, IDS_MENU_FILES_RENAME, MNTS_B | MNTS_I | MNTS_A, CM_RENAMEFILE, IDX_TB_QUICKRENAME, 0, &EnablerQuickRename},
{MNTT_IT, IDS_MENU_FILES_VIEW, MNTS_B | MNTS_I | MNTS_A, CM_VIEW, IDX_TB_VIEW, 0, &EnablerViewFile},
{MNTT_IT, IDS_MENU_FILES_ALTVIEW, MNTS_I | MNTS_A, CM_ALTVIEW, -1, 0, &EnablerViewFile},
{MNTT_PB, IDS_MENU_FILES_VIEWWITH, MNTS_A, CML_FILES_VIEWWITH, -1, 0, &EnablerViewFile},
{MNTT_PE},
{MNTT_IT, IDS_MENU_FILES_EDIT, MNTS_B | MNTS_I | MNTS_A, CM_EDIT, IDX_TB_EDIT, 0, &EnablerFileOnDiskOrArchive},
{MNTT_PB, IDS_MENU_FILES_EDITWITH, MNTS_A, CML_FILES_EDITWITH, -1, 0, &EnablerFileOnDiskOrArchive},
{MNTT_PE},
{MNTT_IT, IDS_MENU_FILES_EDITNEW, MNTS_I | MNTS_A, CM_EDITNEW, -1, 0, &EnablerOnDisk},
{MNTT_IT, IDS_MENU_FILES_COPY, MNTS_B | MNTS_I | MNTS_A, CM_COPYFILES, IDX_TB_COPY, 0, &EnablerFilesCopy},
{MNTT_IT, IDS_MENU_FILES_MOVE, MNTS_B | MNTS_I | MNTS_A, CM_MOVEFILES, IDX_TB_MOVE, 0, &EnablerFilesMove},
{MNTT_IT, IDS_MENU_FILES_EMAIL, MNTS_B | MNTS_I | MNTS_A, CM_EMAILFILES, -1, 0, &EnablerFilesOnDisk},
{MNTT_IT, IDS_MENU_FILES_DELETE, MNTS_B | MNTS_I | MNTS_A, CM_DELETEFILES, IDX_TB_DELETE, 0, &EnablerFilesDelete},
{MNTT_IT, IDS_MENU_FILES_PROPERTIES, MNTS_I | MNTS_A, CM_PROPERTIES, IDX_TB_PROPERTIES, 0, &EnablerShowProperties},
{MNTT_IT, IDS_MENU_FILES_SECURITY, MNTS_A, CM_SEC_PERMISSIONS, IDX_TB_PERMISSIONS, 0, &EnablerPermissions},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_FILES_CHANGEATTR, MNTS_I | MNTS_A, CM_CHANGEATTR, IDX_TB_CHANGEATTR, 0, &EnablerChangeAttrs},
{MNTT_PB, IDS_MENU_FILES_NTFS, MNTS_I | MNTS_A, CML_FILES_NTFS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_FILES_COMPRESS, MNTS_I | MNTS_A, CM_COMPRESS, -1, 0, &EnablerFilesOnDiskCompress},
{MNTT_IT, IDS_MENU_FILES_UNCOMPRESS, MNTS_I | MNTS_A, CM_UNCOMPRESS, -1, 0, &EnablerFilesOnDiskCompress},
{MNTT_IT, IDS_MENU_FILES_ENCRYPT, MNTS_I | MNTS_A, CM_ENCRYPT, -1, 0, &EnablerFilesOnDiskEncrypt},
{MNTT_IT, IDS_MENU_FILES_DECRYPT, MNTS_I | MNTS_A, CM_DECRYPT, -1, 0, &EnablerFilesOnDiskEncrypt},
{MNTT_PE},
{MNTT_IT, IDS_MENU_FILES_CHANGECASE, MNTS_I | MNTS_A, CM_CHANGECASE, -1, 0, &EnablerFilesOnDisk},
{MNTT_IT, IDS_MENU_FILES_CONVERT, MNTS_A, CM_CONVERTFILES, IDX_TB_CONVERT, 0, &EnablerFilesOnDisk},
{MNTT_IT, IDS_MENU_FILES_PACK, MNTS_B | MNTS_I | MNTS_A, CM_PACK, IDX_TB_PACK, 0, &EnablerFilesOnDisk},
{MNTT_IT, IDS_MENU_FILES_UNPACK, MNTS_B | MNTS_I | MNTS_A, CM_UNPACK, IDX_TB_UNPACK, 0, &EnablerFileOnDisk},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_PB, IDS_MENU_FILES_NEW, MNTS_B | MNTS_I | MNTS_A, CML_FILES_NEW, -1, 0, &EnablerOnDisk},
{MNTT_PE},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_FILES_EXIT, MNTS_B | MNTS_I | MNTS_A, CM_EXIT, -1, 0, NULL},
{MNTT_PE},
// Edit
{MNTT_PB, IDS_MENU_EDIT, MNTS_B | MNTS_I | MNTS_A, CML_EDIT, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_CUT, MNTS_B | MNTS_I | MNTS_A, CM_CLIPCUT, IDX_TB_CLIPBOARDCUT, 0, &EnablerFilesOnDisk},
{MNTT_IT, IDS_MENU_EDIT_COPY, MNTS_B | MNTS_I | MNTS_A, CM_CLIPCOPY, IDX_TB_CLIPBOARDCOPY, 0, &EnablerFilesOnDiskOrArchive},
{MNTT_IT, IDS_MENU_EDIT_PASTE, MNTS_B | MNTS_I | MNTS_A, CM_CLIPPASTE, IDX_TB_CLIPBOARDPASTE, 0, &EnablerPaste}, // !ATTENTION! !WARNING!, the item is modified in CMainWindow/WM_USER_INITMENUPOPUP (when there is text on the clipboard, "Change Directory" is added)
{MNTT_IT, IDS_MENU_EDIT_PASTELINKS, MNTS_I | MNTS_A, CM_CLIPPASTELINKS, -1, 0, &EnablerPasteLinksOnDisk},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_COPYFULLNAME, MNTS_I | MNTS_A, CM_CLIPCOPYFULLNAME, -1, 0, &EnablerFileDir},
{MNTT_IT, IDS_MENU_EDIT_COPYNAME, MNTS_A, CM_CLIPCOPYNAME, -1, 0, &EnablerFileDir},
{MNTT_IT, IDS_MENU_EDIT_COPYFULLPATH, MNTS_A, CM_CLIPCOPYFULLPATH, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_COPYUNCNAME, MNTS_A, CM_CLIPCOPYUNCNAME, -1, 0, &EnablerFilesOnDiskOrArchive},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_SELECT, MNTS_B | MNTS_I | MNTS_A, CM_ACTIVESELECT, IDX_TB_SELECT, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_UNSELECT, MNTS_I | MNTS_A, CM_ACTIVEUNSELECT, IDX_TB_UNSELECT, 0, &EnablerSelected},
{MNTT_IT, IDS_MENU_EDIT_INVERTSEL, MNTS_I | MNTS_A, CM_ACTIVEINVERTSEL, IDX_TB_INVERTSEL, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_SELECTALL, MNTS_B | MNTS_I | MNTS_A, CM_ACTIVESELECTALL, IDX_TB_SELECTALL, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_UNSELECTALL, MNTS_B | MNTS_I | MNTS_A, CM_ACTIVEUNSELECTALL, IDX_TB_UNSELECTALL, 0, &EnablerSelected},
{MNTT_IT, IDS_MENU_EDIT_RESELECT, MNTS_I | MNTS_A, CM_RESELECT, IDX_TB_RESELECT, 0, &EnablerSelectionStored},
{MNTT_SP, -1, MNTS_A, 0, -1, 0, NULL},
{MNTT_PB, IDS_MENU_EDIT_ADVANCED, MNTS_A, CML_EDIT_ADVANCED, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_STORESEL, MNTS_A, CM_STORESEL, IDX_TB_SAVESELECTION, 0, &EnablerSelected},
{MNTT_IT, IDS_MENU_EDIT_RESTORESEL, MNTS_A, CM_RESTORESEL, IDX_TB_LOADSELECTION, 0, &EnablerGlobalSelStored},
{MNTT_SP, -1, MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_BY_SELEXT, MNTS_A, CM_SELECTBYFOCUSEDEXT, IDX_TB_SEL_BY_EXT, 0, &EnablerFileDir},
{MNTT_IT, IDS_MENU_EDIT_BY_UNSELEXT, MNTS_A, CM_UNSELECTBYFOCUSEDEXT, IDX_TB_UNSEL_BY_EXT, 0, &EnablerFileDirANDSelected},
{MNTT_SP, -1, MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_BY_SELNAME, MNTS_A, CM_SELECTBYFOCUSEDNAME, IDX_TB_SEL_BY_NAME, 0, &EnablerFileDir},
{MNTT_IT, IDS_MENU_EDIT_BY_UNSELNAME, MNTS_A, CM_UNSELECTBYFOCUSEDNAME, IDX_TB_UNSEL_BY_NAME, 0, &EnablerFileDirANDSelected},
{MNTT_SP, -1, MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_HIDE_SEL, MNTS_A, CM_HIDE_SELECTED_NAMES, IDX_TB_HIDE_SELECTED, 0, &EnablerSelected},
{MNTT_IT, IDS_MENU_EDIT_HIDE_UNSEL, MNTS_A, CM_HIDE_UNSELECTED_NAMES, IDX_TB_HIDE_UNSELECTED, 0, &EnablerUnselected},
{MNTT_IT, IDS_MENU_EDIT_SHOW_ALL, MNTS_A, CM_SHOW_ALL_NAME, IDX_TB_SHOW_ALL, 0, &EnablerHiddenNames},
{MNTT_SP, -1, MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_EDIT_PREVSEL, MNTS_A, CM_GOTO_PREV_SEL, IDX_TB_PREV_SELECTED, 0, &EnablerSelGotoPrev},
{MNTT_IT, IDS_MENU_EDIT_NEXTSEL, MNTS_A, CM_GOTO_NEXT_SEL, IDX_TB_NEXT_SELECTED, 0, &EnablerSelGotoNext},
{MNTT_PE},
{MNTT_PE},
// Commands
{MNTT_PB, IDS_MENU_CMD, MNTS_B | MNTS_I | MNTS_A, CML_COMMANDS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_CREATEDIR, MNTS_B | MNTS_I | MNTS_A, CM_CREATEDIR, IDX_TB_CREATEDIR, 0, &EnablerCreateDir},
{MNTT_IT, IDS_MENU_CMD_CHANGEDIR, MNTS_I | MNTS_A, CM_ACTIVE_CHANGEDIR, IDX_TB_CHANGE_DIR, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_COMPAREDIR, MNTS_I | MNTS_A, CM_COMPAREDIRS, IDX_TB_COMPAREDIR, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_OCCUPIED, MNTS_I | MNTS_A, CM_OCCUPIEDSPACE, -1, 0, &EnablerOccupiedSpace},
{MNTT_IT, IDS_MENU_CMD_CALCDIRSIZES, MNTS_I | MNTS_A, CM_CALCDIRSIZES, -1, 0, &EnablerCalcDirSizes},
// {MNTT_IT, IDS_MENU_CMD_MEMDIRSIZES, MNTS_A, CM_REMEMBERDIRSIZES, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_DRIVEINFO, MNTS_B | MNTS_I | MNTS_A, CM_DRIVEINFO, IDX_TB_DRIVEINFO, 0, &EnablerDriveInfo},
{MNTT_IT, IDS_MENU_CMD_FINDFILE, MNTS_B | MNTS_I | MNTS_A, CM_FINDFILE, IDX_TB_FINDFILE, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FILELIST, MNTS_I | MNTS_A, CM_FILELIST, -1, 0, &EnablerFiles},
{MNTT_IT, IDS_MENU_CMD_FOCUSLNK, MNTS_A, CM_AFOCUSSHORTCUT, -1, 0, &EnablerFileOrDirLinkOnDisk},
{MNTT_SP, -1, MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FILEHISTORY, MNTS_A, CM_FILEHISTORY, -1, 0, &EnablerFileHistory},
{MNTT_IT, IDS_MENU_CMD_DIRHISTORY, MNTS_A, CM_DIRHISTORY, -1, 0, &EnablerDirHistory},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_CONNECTNET, MNTS_B | MNTS_I | MNTS_A, CM_CONNECTNET, IDX_TB_CONNECTNET, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_DISCONNECTNET, MNTS_B | MNTS_I | MNTS_A, CM_DISCONNECTNET, IDX_TB_DISCONNECTNET, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_SHARES, MNTS_B | MNTS_I | MNTS_A, CM_SHARES, -1, 0, NULL},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_SHELL, MNTS_I | MNTS_A, CM_DOSSHELL, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_REFRESHASSOC, MNTS_A, CM_REFRESHASSOC, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_PB, IDS_MENU_CMD_USERMENU, MNTS_B | MNTS_I | MNTS_A, CML_COMMANDS_USERMENU, -1, 0, &EnablerOnDisk},
{MNTT_PE},
{MNTT_PB, IDS_MENU_CMD_FLD, MNTS_I | MNTS_A, CML_COMMANDS_FOLDERS, IDX_TB_OPEN_FOLDER, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_ACTUAL, MNTS_I | MNTS_A, CM_OPENACTUALFOLDER, IDX_TB_OPENACTIVE, 0, &EnablerOpenActiveFolder},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_DESKTOP, MNTS_I | MNTS_A, CM_OPENDESKTOP, IDX_TB_OPENDESKTOP, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_MYCOMP, MNTS_I | MNTS_A, CM_OPENMYCOMP, IDX_TB_OPENMYCOMP, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_CTRLPANEL, MNTS_I | MNTS_A, CM_OPENCONROLPANEL, IDX_TB_OPENCONTROL, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_NET, MNTS_I | MNTS_A, CM_OPENNETNEIGHBOR, IDX_TB_OPENNETWORK, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_BIN, MNTS_I | MNTS_A, CM_OPENRECYCLEBIN, IDX_TB_OPENRECYCLE, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_FONTS, MNTS_I | MNTS_A, CM_OPENFONTS, IDX_TB_OPENFONTS, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_PRINTERS, MNTS_I | MNTS_A, CM_OPENPRINTERS, IDX_TB_OPENPRINTERS, 0, NULL},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_RECENT, MNTS_I | MNTS_A, CM_OPENRECENT, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_PERSONAL, MNTS_I | MNTS_A, CM_OPENPERSONAL, IDX_TB_OPENMYDOC, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_TEMPLATES, MNTS_I | MNTS_A, CM_OPENTEMPLATES, -1, 0, NULL},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_SENDTO, MNTS_I | MNTS_A, CM_OPENSENDTO, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_DESKTOPDIR, MNTS_I | MNTS_A, CM_OPENDESKTOPDIR, -1, 0, NULL},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_STARTMENU, MNTS_I | MNTS_A, CM_OPENSTARTMENU, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_PROGRAMS, MNTS_I | MNTS_A, CM_OPENPROGRAMS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_CMD_FLD_STARTUP, MNTS_I | MNTS_A, CM_OPENSTARTUP, -1, 0, NULL},
{MNTT_PE},
{MNTT_PE},
// Plugins
{MNTT_PB, IDS_MENU_PLG, MNTS_B | MNTS_I | MNTS_A, CML_PLUGINS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_PLG_PLUGINS, MNTS_B | MNTS_I | MNTS_A, CM_PLUGINS, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_PLG_LASTCMD, MNTS_B | MNTS_I | MNTS_A, CM_LAST_PLUGIN_CMD, -1, 0, NULL},
{MNTT_PE},
// Options
{MNTT_PB, IDS_MENU_OPT, MNTS_B | MNTS_I | MNTS_A, CML_OPTIONS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CONFIGURATION, MNTS_B | MNTS_I | MNTS_A, CM_CONFIGURATION, -1, 0, NULL},
{MNTT_PB, IDS_MENU_OPT_PLUGINS_CFG, MNTS_B | MNTS_I | MNTS_A, CML_OPTIONS_PLUGINS, -1, 0, NULL},
{MNTT_PE},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_SKILLLEVEL, MNTS_B | MNTS_I | MNTS_A, CM_SKILLLEVEL, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_ARCHAUTOCFG, MNTS_B | MNTS_I | MNTS_A, CM_AUTOCONFIG, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_PB, IDS_MENU_OPT_VSB, MNTS_B | MNTS_I | MNTS_A, CML_OPTIONS_VISIBLE, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_TOP, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLETOPTOOLBAR, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_PLG, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEPLUGINSBAR, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_UM, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEUSERMENUTOOLBAR, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_HP, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEHOTPATHSBAR, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_DB, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEDRIVEBAR, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_DB2, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEDRIVEBAR2, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_MID, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEMIDDLETOOLBAR, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_EDIT, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEEDITLINE, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_BOTTOM, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLEBOTTOMTOOLBAR, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_GRIPS, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLE_GRIPS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_VSB_UMLABELS, MNTS_B | MNTS_I | MNTS_A, CM_TOGGLE_UMLABELS, -1, 0, NULL},
{MNTT_PE},
{MNTT_PB, IDS_MENU_OPT_CST, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_TOP, MNTS_I | MNTS_A, CM_CUSTOMIZETOP, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_PLG, MNTS_I | MNTS_A, CM_CUSTOMIZEPLUGINS, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_UM, MNTS_I | MNTS_A, CM_CUSTOMIZEUM, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_HP, MNTS_I | MNTS_A, CM_CUSTOMIZEHP, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_LEFT, MNTS_I | MNTS_A, CM_CUSTOMIZELEFT, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_RIGHT, MNTS_I | MNTS_A, CM_CUSTOMIZERIGHT, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_CST_MID, MNTS_I | MNTS_A, CM_CUSTOMIZEMIDDLE, -1, 0, NULL},
{MNTT_PE},
{MNTT_IT, IDS_ALWAYSONTOP, MNTS_A, CM_ALWAYSONTOP, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_SAVECONFIG, MNTS_B | MNTS_I | MNTS_A, CM_SAVECONFIG, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_EXPORTCONFIG, MNTS_I | MNTS_A, CM_EXPORTCONFIG, -1, 0, NULL},
{MNTT_IT, IDS_MENU_OPT_IMPORTCONFIG, MNTS_I | MNTS_A, CM_IMPORTCONFIG, -1, 0, NULL},
{MNTT_PE},
// Right
{MNTT_PB, IDS_MENU_RIGHT, MNTS_B | MNTS_I | MNTS_A, CML_RIGHT, -1, 0, NULL},
{MNTT_IT, IDS_MENU_RIGHT_CHANGEDRIVE, MNTS_B | MNTS_I | MNTS_A, CM_RCHANGEDRIVE, -1, 0, NULL},
{MNTT_PB, IDS_MENU_LEFT_GO, MNTS_B | MNTS_I | MNTS_A, CML_RIGHT_GO, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_GO_BACK, MNTS_B | MNTS_I | MNTS_A, CM_RBACK, IDX_TB_BACK, 0, &EnablerRightBackward},
{MNTT_IT, IDS_MENU_LEFT_GO_FORWARD, MNTS_B | MNTS_I | MNTS_A, CM_RFORWARD, IDX_TB_FORWARD, 0, &EnablerRightForward},
{MNTT_IT, IDS_MENU_LEFT_GO_UPDIR, MNTS_B | MNTS_I | MNTS_A, CM_RPARENTDIR, IDX_TB_PARENTDIR, 0, &EnablerRightUpDir},
{MNTT_IT, IDS_MENU_LEFT_GO_ROOT, MNTS_B | MNTS_I | MNTS_A, CM_RROOTDIR, IDX_TB_ROOTDIR, 0, &EnablerRightRootDir},
{MNTT_IT, IDS_MENU_LEFT_GO_OTHER, MNTS_B | MNTS_I | MNTS_A, CM_RIGHT_AS_OTHER, IDX_TB_AS_OTHER_PANEL, 0, NULL},
{MNTT_PE},
// TRANSLATOR_INSERT: IDS_BRIEF_VIEW, IDS_DETAILED_VIEW, IDS_ICONS_VIEW, IDS_THUMBNAILS_VIEW, IDS_TILES_VIEW, IDS_TYPES_VIEW
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, CML_RIGHT_VIEWS1, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, CML_RIGHT_VIEWS2, -1, 0, NULL},
{MNTT_PB, IDS_MENU_LEFT_SORTBY, MNTS_B | MNTS_I | MNTS_A, CML_RIGHT_SORTBY, -1, 0, NULL},
{MNTT_PE},
{MNTT_PB, IDS_MENU_LEFT_VSB, MNTS_A, CML_RIGHT_VISIBLE, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_VSB_DIRLINE, MNTS_A, CM_RIGHTDIRLINE, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_VSB_HDRLINE, MNTS_A, CM_RIGHTHEADER, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_VSB_INFOLINE, MNTS_A, CM_RIGHTSTATUS, -1, 0, NULL},
{MNTT_PE},
{MNTT_IT, IDS_MENU_LEFT_VIEW, MNTS_A, CM_RCUSTOMIZEVIEW, -1, 0, &EnablerCustomizeRightView},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_ZOOM, MNTS_I | MNTS_A, CM_RIGHTZOOMPANEL, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_SWAPPANELS, MNTS_I | MNTS_A, CM_SWAPPANELS, -1, 0, NULL},
{MNTT_SP, -1, MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_FILTER, MNTS_I | MNTS_A, CM_RCHANGEFILTER, IDX_TB_FILTER, 0, NULL},
{MNTT_IT, IDS_MENU_LEFT_REFRESH, MNTS_B | MNTS_I | MNTS_A, CM_RIGHTREFRESH, IDX_TB_REFRESH, 0, NULL},
{MNTT_PE},
// Help
{MNTT_PB, IDS_MENU_HELP, MNTS_B | MNTS_I | MNTS_A, CML_HELP, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_CONTENTS, MNTS_B | MNTS_I | MNTS_A, CM_HELP_CONTENTS, IDX_TB_HELP, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_INDEX, MNTS_B | MNTS_I | MNTS_A, CM_HELP_INDEX, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_SEARCH, MNTS_B | MNTS_I | MNTS_A, CM_HELP_SEARCH, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_KEYBOARD, MNTS_B | MNTS_I | MNTS_A, CM_HELP_KEYBOARD, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_CONTEXT, MNTS_B | MNTS_I | MNTS_A, CM_HELP_CONTEXT, IDX_TB_CONTEXTHELP, 0, NULL},
// {MNTT_IT, IDS_MENU_HELP_TIP, MNTS_B|MNTS_I|MNTS_A, CM_HELP_TIP, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
// Both Help and CheckVer enter the same host coordinator through this
// command; only the download route needs a confirmed available release.
{MNTT_IT, IDS_MENU_HELP_CHECK_UPDATES, MNTS_B | MNTS_I | MNTS_A, CM_CHECK_FOR_UPDATES, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_UPDATE, MNTS_B | MNTS_I | MNTS_A, CM_DOWNLOAD_UPDATE, -1, 0, &EnablerUpdateAvailable},
{MNTT_IT, IDS_MENU_HELP_TASKLIST, MNTS_B | MNTS_I | MNTS_A, CM_TASKLIST, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_PB, IDS_MENU_HELP_ABOUTPLUGINS, MNTS_B | MNTS_I | MNTS_A, CML_HELP_ABOUTPLUGINS, -1, 0, NULL},
{MNTT_PE},
{MNTT_IT, IDS_MENU_HELP_ABOUT, MNTS_B | MNTS_I | MNTS_A, CM_HELP_ABOUT, -1, 0, NULL},
{MNTT_PE},
{MNTT_PE}, // terminator
};
MENU_TEMPLATE_ITEM FindMenuTemplate[] =
{
{MNTT_PB, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
// TRANSLATOR_INSERT: Dialog: IDD_FIND
// Files
{MNTT_PB, IDS_FFMENU_FILES, MNTS_B | MNTS_I | MNTS_A, CML_FIND_FILES, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_OPEN, MNTS_B | MNTS_I | MNTS_A, CM_FIND_OPEN, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_OPENSEL, MNTS_B | MNTS_I | MNTS_A, CM_FIND_OPENSEL, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_FOCUS, MNTS_B | MNTS_I | MNTS_A, CM_FIND_FOCUS, IDX_TB_FOCUS, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_HIDE, MNTS_B | MNTS_I | MNTS_A, CM_FIND_HIDESEL, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_HIDE_DUP, MNTS_B | MNTS_I | MNTS_A, CM_FIND_HIDE_DUP, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_VIEW, MNTS_B | MNTS_I | MNTS_A, CM_FIND_VIEW, IDX_TB_VIEW, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_VIEWWITH, MNTS_B | MNTS_I | MNTS_A, CM_FIND_VIEW_WITH, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_ALT_VIEW, MNTS_B | MNTS_I | MNTS_A, CM_FIND_ALTVIEW, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_EDIT, MNTS_B | MNTS_I | MNTS_A, CM_FIND_EDIT, IDX_TB_EDIT, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_EDITWITH, MNTS_B | MNTS_I | MNTS_A, CM_FIND_EDIT_WITH, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_DELETE, MNTS_B | MNTS_I | MNTS_A, CM_FIND_DELETE, IDX_TB_DELETE, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_USERMENU, MNTS_B | MNTS_I | MNTS_A, CM_FIND_USERMENU, IDX_TB_USERMENU, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_PROP, MNTS_B | MNTS_I | MNTS_A, CM_FIND_PROPERTIES, IDX_TB_PROPERTIES, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FILES_CLOSE, MNTS_B | MNTS_I | MNTS_A, IDCANCEL, -1, 0, NULL},
{MNTT_PE},
// Commands
{MNTT_PB, IDS_FFMENU_FILES_FIND, MNTS_B | MNTS_I | MNTS_A, CML_FIND_FIND, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FIND_NOW, MNTS_B | MNTS_I | MNTS_A, CM_FIND_NOW, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FIND_INTERSECT, MNTS_B | MNTS_I | MNTS_A, CM_FIND_INTERSECT, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FIND_SUBTRACT, MNTS_B | MNTS_I | MNTS_A, CM_FIND_SUBTRACT, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FIND_APPEND, MNTS_B | MNTS_I | MNTS_A, CM_FIND_APPEND, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_FIND_DUPLICATES, MNTS_B | MNTS_I | MNTS_A, CM_FIND_DUPLICATES, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_OPT_ERRORS, MNTS_B | MNTS_I | MNTS_A, CM_FIND_MESSAGES, -1, 0, NULL},
{MNTT_PE},
// Edit
{MNTT_PB, IDS_FFMENU_EDIT, MNTS_B | MNTS_I | MNTS_A, CML_FIND_EDIT, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_CUT, MNTS_B | MNTS_I | MNTS_A, CM_FIND_CLIPCUT, IDX_TB_CLIPBOARDCUT, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_COPY, MNTS_B | MNTS_I | MNTS_A, CM_FIND_CLIPCOPY, IDX_TB_CLIPBOARDCOPY, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_COPYFULLNAME, MNTS_B | MNTS_I | MNTS_A, CM_FIND_CLIPCOPYFULLNAME, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_COPYNAME, MNTS_B | MNTS_I | MNTS_A, CM_FIND_CLIPCOPYNAME, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_COPYFULLPATH, MNTS_B | MNTS_I | MNTS_A, CM_FIND_CLIPCOPYFULLPATH, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_COPYUNCNAME, MNTS_B | MNTS_I | MNTS_A, CM_FIND_CLIPCOPYUNCNAME, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_SELALL, MNTS_B | MNTS_I | MNTS_A, CM_FIND_SELECTALL, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_EDIT_INVERTSEL, MNTS_B | MNTS_I | MNTS_A, CM_FIND_INVERTSEL, -1, 0, NULL},
{MNTT_PE},
// View
{MNTT_PB, IDS_FFMENU_VIEW, MNTS_B | MNTS_I | MNTS_A, CML_FIND_VIEW, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_VIEW_NAME, MNTS_B | MNTS_I | MNTS_A, CM_FIND_NAME, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_VIEW_PATH, MNTS_B | MNTS_I | MNTS_A, CM_FIND_PATH, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_VIEW_TIME, MNTS_B | MNTS_I | MNTS_A, CM_FIND_TIME, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_VIEW_SIZE, MNTS_B | MNTS_I | MNTS_A, CM_FIND_SIZE, -1, 0, NULL},
{MNTT_PE},
// Options
{MNTT_PB, IDS_FFMENU_OPTIONS, MNTS_B | MNTS_I | MNTS_A, CML_FIND_OPTIONS, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_OPT_SHOWERRORS, MNTS_B | MNTS_I | MNTS_A, CM_FIND_SHOWERRORS, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_OPT_FULLROWSEL, MNTS_B | MNTS_I | MNTS_A, CM_FIND_FULLROWSEL, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_OPT_IGNORE, MNTS_B | MNTS_I | MNTS_A, CM_FIND_IGNORE, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_OPT_ADD, MNTS_B | MNTS_I | MNTS_A, CM_FIND_ADD_CURRENT, -1, 0, NULL},
{MNTT_IT, IDS_FFMENU_OPT_MANAGE, MNTS_B | MNTS_I | MNTS_A, CM_FIND_MANAGE, -1, 0, NULL},
{MNTT_PE},
// Help
{MNTT_PB, IDS_FFMENU_HELP, MNTS_B | MNTS_I | MNTS_A, CML_FIND_HELP, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_CONTENTS, MNTS_B | MNTS_I | MNTS_A, CM_HELP_CONTENTS, IDX_TB_HELP, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_INDEX, MNTS_B | MNTS_I | MNTS_A, CM_HELP_INDEX, -1, 0, NULL},
{MNTT_IT, IDS_MENU_HELP_SEARCH, MNTS_B | MNTS_I | MNTS_A, CM_HELP_SEARCH, -1, 0, NULL},
{MNTT_PE},
{MNTT_PE}, // terminator
};
MENU_TEMPLATE_ITEM ArchiveMenuTemplate[] =
{
{MNTT_PB, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_ARCHIVEMENU_OPEN, MNTS_B | MNTS_I | MNTS_A, CM_OPEN, -1, 0, NULL},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_ARCHIVEMENU_VIEW, MNTS_B | MNTS_I | MNTS_A, CM_VIEW, IDX_TB_VIEW, 0, &EnablerViewFile},
{MNTT_IT, IDS_ARCHIVEMENU_VIEWWITH, MNTS_B | MNTS_I | MNTS_A, CM_VIEW_WITH, -1, 0, &EnablerViewFile},
{MNTT_IT, IDS_ARCHIVEMENU_ALT_VIEW, MNTS_B | MNTS_I | MNTS_A, CM_ALTVIEW, -1, 0, &EnablerViewFile},
{MNTT_IT, IDS_ARCHIVEMENU_EDIT, MNTS_B | MNTS_I | MNTS_A, CM_EDIT, IDX_TB_EDIT, 0, &EnablerFileOnDiskOrArchive},
{MNTT_IT, IDS_ARCHIVEMENU_EDITWITH, MNTS_B | MNTS_I | MNTS_A, CM_EDIT_WITH, -1, 0, &EnablerFileOnDiskOrArchive},
{MNTT_IT, IDS_ARCHIVEMENU_COPY, MNTS_B | MNTS_I | MNTS_A, CM_COPYFILES, IDX_TB_COPY, 0, &EnablerFilesCopy},
{MNTT_IT, IDS_ARCHIVEMENU_DELETE, MNTS_B | MNTS_I | MNTS_A, CM_DELETEFILES, IDX_TB_DELETE, 0, &EnablerFilesDelete},
{MNTT_SP, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_ARCHIVEMENU_CLIPCOPY, MNTS_B | MNTS_I | MNTS_A, CM_CLIPCOPY, IDX_TB_CLIPBOARDCOPY, 0, &EnablerFilesOnDiskOrArchive},
{MNTT_PE}, // terminator
};
MENU_TEMPLATE_ITEM ArchivePanelMenuTemplate[] =
{
{MNTT_PB, -1, MNTS_B | MNTS_I | MNTS_A, 0, -1, 0, NULL},
{MNTT_IT, IDS_ARCHIVEMENU_CLIPPASTE, MNTS_B | MNTS_I | MNTS_A, CM_CLIPPASTE, IDX_TB_CLIPBOARDPASTE, 0, &EnablerPaste}, // !ATTENTION!, the item is modified in ShellAction()/saContextMenu/onlyPanelMenu (when there is text on the clipboard, "Change Directory" is added)
{MNTT_PE}, // terminator
};
BOOL BuildSalamanderMenus()
{
CALL_STACK_MESSAGE1("BuildSalamanderMenus()");
// Menus deliberately use compact command lists even when toolbar icons are enlarged.
MainMenu.LoadFromTemplate(HLanguage, MainMenuTemplate, NULL, HGrayMenuImageList, HHotMenuImageList);
// context menu in archives
ArchiveMenu.LoadFromTemplate(HLanguage, ArchiveMenuTemplate, NULL, HGrayMenuImageList, HHotMenuImageList);
ArchivePanelMenu.LoadFromTemplate(HLanguage, ArchivePanelMenuTemplate, NULL, HGrayMenuImageList, HHotMenuImageList);
return TRUE;
}
BOOL BuildFindMenu(CMenuPopup* popup)
{
CALL_STACK_MESSAGE1("BuildFindMenu()");
// Find menus follow the same compact menu sizing invariant as the main window.
return popup->LoadFromTemplate(HLanguage, FindMenuTemplate, NULL, HGrayMenuImageList, HHotMenuImageList);
}
DWORD
CfgSkillLevelToMenu(BYTE cfgSkillLevel)
{
DWORD ret;
switch (cfgSkillLevel)
{
case SKILL_LEVEL_BEGINNER:
ret = MENU_LEVEL_BEGINNER;
break;
case SKILL_LEVEL_INTERMEDIATE:
ret = MENU_LEVEL_INTERMEDIATE;
break;
case SKILL_LEVEL_ADVANCED:
ret = MENU_LEVEL_ADVANCED;
break;
default:
{
TRACE_E("Unknown cfgSkillLevel:" << cfgSkillLevel);
ret = MENU_LEVEL_ADVANCED;
break;
}
}
return ret;
}
void FillContextMenuFromButtons(CMenuPopup* popup, HWND hWindow, int* buttonsID)
{
MENU_ITEM_INFO mii;
char buff[1024];
mii.String = buff;
BOOL nextDefault = FALSE;
while (*buttonsID != 0)
{
if (*buttonsID == -2)
{
nextDefault = TRUE;
}
else
{
if (*buttonsID == -1)
{
// separator
mii.Mask = MENU_MASK_TYPE;
mii.Type = MENU_TYPE_SEPARATOR;
}
else
{
// button
mii.Mask = MENU_MASK_TYPE | MENU_MASK_STRING | MENU_MASK_ID | MENU_MASK_STATE;
mii.Type = MENU_TYPE_STRING;
mii.State = 0;
mii.ID = *buttonsID;
HWND hButton = GetDlgItem(hWindow, *buttonsID);
GetWindowText(hButton, buff, 1024);
if (!IsWindowEnabled(hButton))
mii.State |= MENU_STATE_GRAYED;
}
if (nextDefault)
{
mii.State |= MENU_STATE_DEFAULT;
nextDefault = FALSE;
}
popup->InsertItem(-1, TRUE, &mii);
}
buttonsID++;
}
}