xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/PanelKey.cpp (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker // PanelKey.cpp
2*f6dc9357SAndroid Build Coastguard Worker 
3*f6dc9357SAndroid Build Coastguard Worker #include "StdAfx.h"
4*f6dc9357SAndroid Build Coastguard Worker 
5*f6dc9357SAndroid Build Coastguard Worker #include "Panel.h"
6*f6dc9357SAndroid Build Coastguard Worker #include "HelpUtils.h"
7*f6dc9357SAndroid Build Coastguard Worker 
8*f6dc9357SAndroid Build Coastguard Worker #include "../../PropID.h"
9*f6dc9357SAndroid Build Coastguard Worker #include "App.h"
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker using namespace NWindows;
12*f6dc9357SAndroid Build Coastguard Worker 
13*f6dc9357SAndroid Build Coastguard Worker // #define kHelpTopic "FM/index.htm"
14*f6dc9357SAndroid Build Coastguard Worker 
15*f6dc9357SAndroid Build Coastguard Worker struct CVKeyPropIDPair
16*f6dc9357SAndroid Build Coastguard Worker {
17*f6dc9357SAndroid Build Coastguard Worker   WORD VKey;
18*f6dc9357SAndroid Build Coastguard Worker   PROPID PropID;
19*f6dc9357SAndroid Build Coastguard Worker };
20*f6dc9357SAndroid Build Coastguard Worker 
21*f6dc9357SAndroid Build Coastguard Worker static const CVKeyPropIDPair g_VKeyPropIDPairs[] =
22*f6dc9357SAndroid Build Coastguard Worker {
23*f6dc9357SAndroid Build Coastguard Worker   { VK_F3, kpidName },
24*f6dc9357SAndroid Build Coastguard Worker   { VK_F4, kpidExtension },
25*f6dc9357SAndroid Build Coastguard Worker   { VK_F5, kpidMTime },
26*f6dc9357SAndroid Build Coastguard Worker   { VK_F6, kpidSize },
27*f6dc9357SAndroid Build Coastguard Worker   { VK_F7, kpidNoProperty }
28*f6dc9357SAndroid Build Coastguard Worker };
29*f6dc9357SAndroid Build Coastguard Worker 
FindVKeyPropIDPair(WORD vKey)30*f6dc9357SAndroid Build Coastguard Worker static int FindVKeyPropIDPair(WORD vKey)
31*f6dc9357SAndroid Build Coastguard Worker {
32*f6dc9357SAndroid Build Coastguard Worker   for (unsigned i = 0; i < Z7_ARRAY_SIZE(g_VKeyPropIDPairs); i++)
33*f6dc9357SAndroid Build Coastguard Worker     if (g_VKeyPropIDPairs[i].VKey == vKey)
34*f6dc9357SAndroid Build Coastguard Worker       return (int)i;
35*f6dc9357SAndroid Build Coastguard Worker   return -1;
36*f6dc9357SAndroid Build Coastguard Worker }
37*f6dc9357SAndroid Build Coastguard Worker 
38*f6dc9357SAndroid Build Coastguard Worker 
OnKeyDown(LPNMLVKEYDOWN keyDownInfo,LRESULT & result)39*f6dc9357SAndroid Build Coastguard Worker bool CPanel::OnKeyDown(LPNMLVKEYDOWN keyDownInfo, LRESULT &result)
40*f6dc9357SAndroid Build Coastguard Worker {
41*f6dc9357SAndroid Build Coastguard Worker   if (keyDownInfo->wVKey == VK_TAB && keyDownInfo->hdr.hwndFrom == _listView)
42*f6dc9357SAndroid Build Coastguard Worker   {
43*f6dc9357SAndroid Build Coastguard Worker     _panelCallback->OnTab();
44*f6dc9357SAndroid Build Coastguard Worker     return false;
45*f6dc9357SAndroid Build Coastguard Worker   }
46*f6dc9357SAndroid Build Coastguard Worker   const bool alt = IsKeyDown(VK_MENU);
47*f6dc9357SAndroid Build Coastguard Worker   const bool ctrl = IsKeyDown(VK_CONTROL);
48*f6dc9357SAndroid Build Coastguard Worker   // const bool leftCtrl = IsKeyDown(VK_LCONTROL);
49*f6dc9357SAndroid Build Coastguard Worker   const bool rightCtrl = IsKeyDown(VK_RCONTROL);
50*f6dc9357SAndroid Build Coastguard Worker   const bool shift = IsKeyDown(VK_SHIFT);
51*f6dc9357SAndroid Build Coastguard Worker   result = 0;
52*f6dc9357SAndroid Build Coastguard Worker 
53*f6dc9357SAndroid Build Coastguard Worker   if (keyDownInfo->wVKey >= '0' &&
54*f6dc9357SAndroid Build Coastguard Worker       keyDownInfo->wVKey <= '9' &&
55*f6dc9357SAndroid Build Coastguard Worker       (rightCtrl || alt))
56*f6dc9357SAndroid Build Coastguard Worker   {
57*f6dc9357SAndroid Build Coastguard Worker     const unsigned index = (unsigned)(keyDownInfo->wVKey - '0');
58*f6dc9357SAndroid Build Coastguard Worker     if (shift)
59*f6dc9357SAndroid Build Coastguard Worker     {
60*f6dc9357SAndroid Build Coastguard Worker       SetBookmark(index);
61*f6dc9357SAndroid Build Coastguard Worker       return true;
62*f6dc9357SAndroid Build Coastguard Worker     }
63*f6dc9357SAndroid Build Coastguard Worker     else
64*f6dc9357SAndroid Build Coastguard Worker     {
65*f6dc9357SAndroid Build Coastguard Worker       OpenBookmark(index);
66*f6dc9357SAndroid Build Coastguard Worker       return true;
67*f6dc9357SAndroid Build Coastguard Worker     }
68*f6dc9357SAndroid Build Coastguard Worker   }
69*f6dc9357SAndroid Build Coastguard Worker 
70*f6dc9357SAndroid Build Coastguard Worker   if ((keyDownInfo->wVKey == VK_F2 ||
71*f6dc9357SAndroid Build Coastguard Worker        keyDownInfo->wVKey == VK_F1)
72*f6dc9357SAndroid Build Coastguard Worker        && alt && !ctrl && !shift)
73*f6dc9357SAndroid Build Coastguard Worker   {
74*f6dc9357SAndroid Build Coastguard Worker     _panelCallback->SetFocusToPath(keyDownInfo->wVKey == VK_F1 ? 0 : 1);
75*f6dc9357SAndroid Build Coastguard Worker     return true;
76*f6dc9357SAndroid Build Coastguard Worker   }
77*f6dc9357SAndroid Build Coastguard Worker 
78*f6dc9357SAndroid Build Coastguard Worker   if ((keyDownInfo->wVKey == VK_F9) && !alt && !ctrl && !shift)
79*f6dc9357SAndroid Build Coastguard Worker   {
80*f6dc9357SAndroid Build Coastguard Worker     g_App.SwitchOnOffOnePanel();
81*f6dc9357SAndroid Build Coastguard Worker   }
82*f6dc9357SAndroid Build Coastguard Worker 
83*f6dc9357SAndroid Build Coastguard Worker   if (keyDownInfo->wVKey >= VK_F3 && keyDownInfo->wVKey <= VK_F12 && ctrl)
84*f6dc9357SAndroid Build Coastguard Worker   {
85*f6dc9357SAndroid Build Coastguard Worker     const int index = FindVKeyPropIDPair(keyDownInfo->wVKey);
86*f6dc9357SAndroid Build Coastguard Worker     if (index >= 0)
87*f6dc9357SAndroid Build Coastguard Worker       SortItemsWithPropID(g_VKeyPropIDPairs[index].PropID);
88*f6dc9357SAndroid Build Coastguard Worker   }
89*f6dc9357SAndroid Build Coastguard Worker 
90*f6dc9357SAndroid Build Coastguard Worker   switch (keyDownInfo->wVKey)
91*f6dc9357SAndroid Build Coastguard Worker   {
92*f6dc9357SAndroid Build Coastguard Worker     case VK_SHIFT:
93*f6dc9357SAndroid Build Coastguard Worker     {
94*f6dc9357SAndroid Build Coastguard Worker       _selectionIsDefined = false;
95*f6dc9357SAndroid Build Coastguard Worker       _prevFocusedItem = _listView.GetFocusedItem();
96*f6dc9357SAndroid Build Coastguard Worker       break;
97*f6dc9357SAndroid Build Coastguard Worker     }
98*f6dc9357SAndroid Build Coastguard Worker     /*
99*f6dc9357SAndroid Build Coastguard Worker     case VK_F1:
100*f6dc9357SAndroid Build Coastguard Worker     {
101*f6dc9357SAndroid Build Coastguard Worker       // ShowHelpWindow(NULL, kHelpTopic);
102*f6dc9357SAndroid Build Coastguard Worker       break;
103*f6dc9357SAndroid Build Coastguard Worker     }
104*f6dc9357SAndroid Build Coastguard Worker     */
105*f6dc9357SAndroid Build Coastguard Worker     case VK_F2:
106*f6dc9357SAndroid Build Coastguard Worker     {
107*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl &&!shift)
108*f6dc9357SAndroid Build Coastguard Worker       {
109*f6dc9357SAndroid Build Coastguard Worker         RenameFile();
110*f6dc9357SAndroid Build Coastguard Worker         return true;
111*f6dc9357SAndroid Build Coastguard Worker       }
112*f6dc9357SAndroid Build Coastguard Worker       break;
113*f6dc9357SAndroid Build Coastguard Worker     }
114*f6dc9357SAndroid Build Coastguard Worker     case VK_F3:
115*f6dc9357SAndroid Build Coastguard Worker     {
116*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl && !shift)
117*f6dc9357SAndroid Build Coastguard Worker       {
118*f6dc9357SAndroid Build Coastguard Worker         EditItem(false);
119*f6dc9357SAndroid Build Coastguard Worker         return true;
120*f6dc9357SAndroid Build Coastguard Worker       }
121*f6dc9357SAndroid Build Coastguard Worker       break;
122*f6dc9357SAndroid Build Coastguard Worker     }
123*f6dc9357SAndroid Build Coastguard Worker     case VK_F4:
124*f6dc9357SAndroid Build Coastguard Worker     {
125*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl && !shift)
126*f6dc9357SAndroid Build Coastguard Worker       {
127*f6dc9357SAndroid Build Coastguard Worker         EditItem(true);
128*f6dc9357SAndroid Build Coastguard Worker         return true;
129*f6dc9357SAndroid Build Coastguard Worker       }
130*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl && shift)
131*f6dc9357SAndroid Build Coastguard Worker       {
132*f6dc9357SAndroid Build Coastguard Worker         CreateFile();
133*f6dc9357SAndroid Build Coastguard Worker         return true;
134*f6dc9357SAndroid Build Coastguard Worker       }
135*f6dc9357SAndroid Build Coastguard Worker       break;
136*f6dc9357SAndroid Build Coastguard Worker     }
137*f6dc9357SAndroid Build Coastguard Worker     case VK_F5:
138*f6dc9357SAndroid Build Coastguard Worker     {
139*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl)
140*f6dc9357SAndroid Build Coastguard Worker       {
141*f6dc9357SAndroid Build Coastguard Worker         _panelCallback->OnCopy(false, shift);
142*f6dc9357SAndroid Build Coastguard Worker         return true;
143*f6dc9357SAndroid Build Coastguard Worker       }
144*f6dc9357SAndroid Build Coastguard Worker       break;
145*f6dc9357SAndroid Build Coastguard Worker     }
146*f6dc9357SAndroid Build Coastguard Worker     case VK_F6:
147*f6dc9357SAndroid Build Coastguard Worker     {
148*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl)
149*f6dc9357SAndroid Build Coastguard Worker       {
150*f6dc9357SAndroid Build Coastguard Worker         _panelCallback->OnCopy(true, shift);
151*f6dc9357SAndroid Build Coastguard Worker         return true;
152*f6dc9357SAndroid Build Coastguard Worker       }
153*f6dc9357SAndroid Build Coastguard Worker       break;
154*f6dc9357SAndroid Build Coastguard Worker     }
155*f6dc9357SAndroid Build Coastguard Worker     case VK_F7:
156*f6dc9357SAndroid Build Coastguard Worker     {
157*f6dc9357SAndroid Build Coastguard Worker       if (!alt && !ctrl && !shift)
158*f6dc9357SAndroid Build Coastguard Worker       {
159*f6dc9357SAndroid Build Coastguard Worker         /* we can process F7 via menu ACCELERATOR.
160*f6dc9357SAndroid Build Coastguard Worker           But menu loading can be slow in case of UNC paths and system menu.
161*f6dc9357SAndroid Build Coastguard Worker           So we use don't use ACCELERATOR */
162*f6dc9357SAndroid Build Coastguard Worker         CreateFolder();
163*f6dc9357SAndroid Build Coastguard Worker         return true;
164*f6dc9357SAndroid Build Coastguard Worker       }
165*f6dc9357SAndroid Build Coastguard Worker       break;
166*f6dc9357SAndroid Build Coastguard Worker     }
167*f6dc9357SAndroid Build Coastguard Worker     case VK_DELETE:
168*f6dc9357SAndroid Build Coastguard Worker     {
169*f6dc9357SAndroid Build Coastguard Worker       DeleteItems(!shift);
170*f6dc9357SAndroid Build Coastguard Worker       return true;
171*f6dc9357SAndroid Build Coastguard Worker     }
172*f6dc9357SAndroid Build Coastguard Worker     case VK_INSERT:
173*f6dc9357SAndroid Build Coastguard Worker     {
174*f6dc9357SAndroid Build Coastguard Worker       if (!alt)
175*f6dc9357SAndroid Build Coastguard Worker       {
176*f6dc9357SAndroid Build Coastguard Worker         if (ctrl && !shift)
177*f6dc9357SAndroid Build Coastguard Worker         {
178*f6dc9357SAndroid Build Coastguard Worker           EditCopy();
179*f6dc9357SAndroid Build Coastguard Worker           return true;
180*f6dc9357SAndroid Build Coastguard Worker         }
181*f6dc9357SAndroid Build Coastguard Worker         if (shift && !ctrl)
182*f6dc9357SAndroid Build Coastguard Worker         {
183*f6dc9357SAndroid Build Coastguard Worker           EditPaste();
184*f6dc9357SAndroid Build Coastguard Worker           return true;
185*f6dc9357SAndroid Build Coastguard Worker         }
186*f6dc9357SAndroid Build Coastguard Worker         if (!shift && !ctrl && _mySelectMode)
187*f6dc9357SAndroid Build Coastguard Worker         {
188*f6dc9357SAndroid Build Coastguard Worker           OnInsert();
189*f6dc9357SAndroid Build Coastguard Worker           return true;
190*f6dc9357SAndroid Build Coastguard Worker         }
191*f6dc9357SAndroid Build Coastguard Worker       }
192*f6dc9357SAndroid Build Coastguard Worker       return false;
193*f6dc9357SAndroid Build Coastguard Worker     }
194*f6dc9357SAndroid Build Coastguard Worker     case VK_DOWN:
195*f6dc9357SAndroid Build Coastguard Worker     {
196*f6dc9357SAndroid Build Coastguard Worker       if (shift)
197*f6dc9357SAndroid Build Coastguard Worker         OnArrowWithShift();
198*f6dc9357SAndroid Build Coastguard Worker       return false;
199*f6dc9357SAndroid Build Coastguard Worker     }
200*f6dc9357SAndroid Build Coastguard Worker     case VK_UP:
201*f6dc9357SAndroid Build Coastguard Worker     {
202*f6dc9357SAndroid Build Coastguard Worker       if (alt)
203*f6dc9357SAndroid Build Coastguard Worker         _panelCallback->OnSetSameFolder();
204*f6dc9357SAndroid Build Coastguard Worker       else if (shift)
205*f6dc9357SAndroid Build Coastguard Worker         OnArrowWithShift();
206*f6dc9357SAndroid Build Coastguard Worker       return false;
207*f6dc9357SAndroid Build Coastguard Worker     }
208*f6dc9357SAndroid Build Coastguard Worker     case VK_RIGHT:
209*f6dc9357SAndroid Build Coastguard Worker     {
210*f6dc9357SAndroid Build Coastguard Worker       if (alt)
211*f6dc9357SAndroid Build Coastguard Worker         _panelCallback->OnSetSubFolder();
212*f6dc9357SAndroid Build Coastguard Worker       else if (shift)
213*f6dc9357SAndroid Build Coastguard Worker         OnArrowWithShift();
214*f6dc9357SAndroid Build Coastguard Worker       return false;
215*f6dc9357SAndroid Build Coastguard Worker     }
216*f6dc9357SAndroid Build Coastguard Worker     case VK_LEFT:
217*f6dc9357SAndroid Build Coastguard Worker     {
218*f6dc9357SAndroid Build Coastguard Worker       if (alt)
219*f6dc9357SAndroid Build Coastguard Worker         _panelCallback->OnSetSubFolder();
220*f6dc9357SAndroid Build Coastguard Worker       else if (shift)
221*f6dc9357SAndroid Build Coastguard Worker         OnArrowWithShift();
222*f6dc9357SAndroid Build Coastguard Worker       return false;
223*f6dc9357SAndroid Build Coastguard Worker     }
224*f6dc9357SAndroid Build Coastguard Worker     case VK_NEXT:
225*f6dc9357SAndroid Build Coastguard Worker     {
226*f6dc9357SAndroid Build Coastguard Worker       if (ctrl && !alt && !shift)
227*f6dc9357SAndroid Build Coastguard Worker       {
228*f6dc9357SAndroid Build Coastguard Worker         // EnterToFocused();
229*f6dc9357SAndroid Build Coastguard Worker         return true;
230*f6dc9357SAndroid Build Coastguard Worker       }
231*f6dc9357SAndroid Build Coastguard Worker       break;
232*f6dc9357SAndroid Build Coastguard Worker     }
233*f6dc9357SAndroid Build Coastguard Worker     case VK_ADD:
234*f6dc9357SAndroid Build Coastguard Worker     {
235*f6dc9357SAndroid Build Coastguard Worker       if (alt)
236*f6dc9357SAndroid Build Coastguard Worker         SelectByType(true);
237*f6dc9357SAndroid Build Coastguard Worker       else if (shift)
238*f6dc9357SAndroid Build Coastguard Worker         SelectAll(true);
239*f6dc9357SAndroid Build Coastguard Worker       else if (!ctrl)
240*f6dc9357SAndroid Build Coastguard Worker         SelectSpec(true);
241*f6dc9357SAndroid Build Coastguard Worker       return true;
242*f6dc9357SAndroid Build Coastguard Worker     }
243*f6dc9357SAndroid Build Coastguard Worker     case VK_SUBTRACT:
244*f6dc9357SAndroid Build Coastguard Worker     {
245*f6dc9357SAndroid Build Coastguard Worker       if (alt)
246*f6dc9357SAndroid Build Coastguard Worker         SelectByType(false);
247*f6dc9357SAndroid Build Coastguard Worker       else if (shift)
248*f6dc9357SAndroid Build Coastguard Worker         SelectAll(false);
249*f6dc9357SAndroid Build Coastguard Worker       else
250*f6dc9357SAndroid Build Coastguard Worker         SelectSpec(false);
251*f6dc9357SAndroid Build Coastguard Worker       return true;
252*f6dc9357SAndroid Build Coastguard Worker     }
253*f6dc9357SAndroid Build Coastguard Worker     /*
254*f6dc9357SAndroid Build Coastguard Worker     case VK_DELETE:
255*f6dc9357SAndroid Build Coastguard Worker       CommandDelete();
256*f6dc9357SAndroid Build Coastguard Worker       return 0;
257*f6dc9357SAndroid Build Coastguard Worker     case VK_F1:
258*f6dc9357SAndroid Build Coastguard Worker       CommandHelp();
259*f6dc9357SAndroid Build Coastguard Worker       return 0;
260*f6dc9357SAndroid Build Coastguard Worker     */
261*f6dc9357SAndroid Build Coastguard Worker     case VK_BACK:
262*f6dc9357SAndroid Build Coastguard Worker       OpenParentFolder();
263*f6dc9357SAndroid Build Coastguard Worker       return true;
264*f6dc9357SAndroid Build Coastguard Worker     /*
265*f6dc9357SAndroid Build Coastguard Worker     case VK_DIVIDE:
266*f6dc9357SAndroid Build Coastguard Worker     case '\\':
267*f6dc9357SAndroid Build Coastguard Worker     case '/':
268*f6dc9357SAndroid Build Coastguard Worker     case VK_OEM_5:
269*f6dc9357SAndroid Build Coastguard Worker     {
270*f6dc9357SAndroid Build Coastguard Worker       // OpenRootFolder();
271*f6dc9357SAndroid Build Coastguard Worker       OpenDrivesFolder();
272*f6dc9357SAndroid Build Coastguard Worker 
273*f6dc9357SAndroid Build Coastguard Worker       return true;
274*f6dc9357SAndroid Build Coastguard Worker     }
275*f6dc9357SAndroid Build Coastguard Worker     */
276*f6dc9357SAndroid Build Coastguard Worker     case 'A':
277*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
278*f6dc9357SAndroid Build Coastguard Worker       {
279*f6dc9357SAndroid Build Coastguard Worker         SelectAll(true);
280*f6dc9357SAndroid Build Coastguard Worker         return true;
281*f6dc9357SAndroid Build Coastguard Worker       }
282*f6dc9357SAndroid Build Coastguard Worker       return false;
283*f6dc9357SAndroid Build Coastguard Worker     case 'X':
284*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
285*f6dc9357SAndroid Build Coastguard Worker       {
286*f6dc9357SAndroid Build Coastguard Worker         EditCut();
287*f6dc9357SAndroid Build Coastguard Worker         return true;
288*f6dc9357SAndroid Build Coastguard Worker       }
289*f6dc9357SAndroid Build Coastguard Worker       return false;
290*f6dc9357SAndroid Build Coastguard Worker     case 'C':
291*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
292*f6dc9357SAndroid Build Coastguard Worker       {
293*f6dc9357SAndroid Build Coastguard Worker         EditCopy();
294*f6dc9357SAndroid Build Coastguard Worker         return true;
295*f6dc9357SAndroid Build Coastguard Worker       }
296*f6dc9357SAndroid Build Coastguard Worker       return false;
297*f6dc9357SAndroid Build Coastguard Worker     case 'V':
298*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
299*f6dc9357SAndroid Build Coastguard Worker       {
300*f6dc9357SAndroid Build Coastguard Worker         EditPaste();
301*f6dc9357SAndroid Build Coastguard Worker         return true;
302*f6dc9357SAndroid Build Coastguard Worker       }
303*f6dc9357SAndroid Build Coastguard Worker       return false;
304*f6dc9357SAndroid Build Coastguard Worker     case 'N':
305*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
306*f6dc9357SAndroid Build Coastguard Worker       {
307*f6dc9357SAndroid Build Coastguard Worker         CreateFile();
308*f6dc9357SAndroid Build Coastguard Worker         return true;
309*f6dc9357SAndroid Build Coastguard Worker       }
310*f6dc9357SAndroid Build Coastguard Worker       return false;
311*f6dc9357SAndroid Build Coastguard Worker     case 'R':
312*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
313*f6dc9357SAndroid Build Coastguard Worker       {
314*f6dc9357SAndroid Build Coastguard Worker         OnReload();
315*f6dc9357SAndroid Build Coastguard Worker         return true;
316*f6dc9357SAndroid Build Coastguard Worker       }
317*f6dc9357SAndroid Build Coastguard Worker       return false;
318*f6dc9357SAndroid Build Coastguard Worker     case 'W':
319*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
320*f6dc9357SAndroid Build Coastguard Worker       {
321*f6dc9357SAndroid Build Coastguard Worker         // SendMessage();
322*f6dc9357SAndroid Build Coastguard Worker         PostMessage(g_HWND, WM_COMMAND, IDCLOSE, 0);
323*f6dc9357SAndroid Build Coastguard Worker         return true;
324*f6dc9357SAndroid Build Coastguard Worker       }
325*f6dc9357SAndroid Build Coastguard Worker       return false;
326*f6dc9357SAndroid Build Coastguard Worker     case 'Z':
327*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
328*f6dc9357SAndroid Build Coastguard Worker       {
329*f6dc9357SAndroid Build Coastguard Worker         ChangeComment();
330*f6dc9357SAndroid Build Coastguard Worker         return true;
331*f6dc9357SAndroid Build Coastguard Worker       }
332*f6dc9357SAndroid Build Coastguard Worker       return false;
333*f6dc9357SAndroid Build Coastguard Worker     case '1':
334*f6dc9357SAndroid Build Coastguard Worker     case '2':
335*f6dc9357SAndroid Build Coastguard Worker     case '3':
336*f6dc9357SAndroid Build Coastguard Worker     case '4':
337*f6dc9357SAndroid Build Coastguard Worker       if (ctrl)
338*f6dc9357SAndroid Build Coastguard Worker       {
339*f6dc9357SAndroid Build Coastguard Worker         const unsigned styleIndex = (unsigned)(keyDownInfo->wVKey - '1');
340*f6dc9357SAndroid Build Coastguard Worker         SetListViewMode(styleIndex);
341*f6dc9357SAndroid Build Coastguard Worker         return true;
342*f6dc9357SAndroid Build Coastguard Worker       }
343*f6dc9357SAndroid Build Coastguard Worker       return false;
344*f6dc9357SAndroid Build Coastguard Worker     case VK_MULTIPLY:
345*f6dc9357SAndroid Build Coastguard Worker       {
346*f6dc9357SAndroid Build Coastguard Worker         InvertSelection();
347*f6dc9357SAndroid Build Coastguard Worker         return true;
348*f6dc9357SAndroid Build Coastguard Worker       }
349*f6dc9357SAndroid Build Coastguard Worker     case VK_F12:
350*f6dc9357SAndroid Build Coastguard Worker       if (alt && !ctrl && !shift)
351*f6dc9357SAndroid Build Coastguard Worker       {
352*f6dc9357SAndroid Build Coastguard Worker         FoldersHistory();
353*f6dc9357SAndroid Build Coastguard Worker         return true;
354*f6dc9357SAndroid Build Coastguard Worker       }
355*f6dc9357SAndroid Build Coastguard Worker   }
356*f6dc9357SAndroid Build Coastguard Worker   return false;
357*f6dc9357SAndroid Build Coastguard Worker }
358