Develop and Download Open Source Software

Browse Subversion Repository

Contents of /filemv/keyboard.cpp

Parent Directory Parent Directory | Revision Log Revision Log


Revision 7 - (show annotations) (download)
Wed Jan 2 22:06:47 2008 UTC (16 years, 3 months ago) by tabasa
File MIME type: text/plain
File size: 8207 byte(s)


1
2 #ifndef STRICT
3 #define STRICT
4 #endif
5 #include "defextern.h"
6 #include <windows.h>
7
8 #include "resource.h"
9 #include "dir.h"
10 #include "myfilemv.h"
11 #include "initial.h"
12 #include "keyboard.h"
13 #include "paintflag.h"
14 #include "main.h"
15 #include "tab.h"
16
17
18 #include "mainmsg.h"
19
20
21 BYTE ksOrg[256];
22 BYTE ksAlter[256];
23
24
25 void controlkey()
26 {
27 if(KeyModified)
28 {
29 keyModifyReset();
30 return;
31 }
32 KeyModified = TRUE;
33 GetKeyboardState(ksOrg);
34 memcpy(ksAlter, ksOrg, sizeof ksAlter);
35 ksAlter[VK_CONTROL] = 0x80 | ksOrg[VK_CONTROL];
36 ksAlter[VK_LCONTROL] = 0x80 | ksOrg[VK_LCONTROL];
37 SetKeyboardState(ksAlter);
38 }
39
40
41 WORD keyfnc(WORD key)
42 {
43
44 WORD al =0;//VK_LCONTROL
45 if (GetKeyState(VK_SHIFT) < 0) al += kSHIFT;
46 if (GetKeyState(VK_CONTROL) < 0) al += kCONTROL;
47 if (GetKeyState(VK_MENU) < 0) al += kALT;
48 /*
49 if ( key == VK_DOWN || key == VK_UP )
50 {
51 KeyModified = TRUE;
52 GetKeyboardState(ksOrg);
53 memcpy(ksAlter, ksOrg, sizeof ksAlter);
54 if( al == 0 )
55 {
56 ksAlter[VK_CONTROL] = 0x80 | ksOrg[VK_CONTROL];
57 ksAlter[VK_LCONTROL] = 0x80 | ksOrg[VK_LCONTROL];
58 SetKeyboardState(ksAlter);
59 }
60 if( al == kCONTROL )
61 {
62 ksAlter[VK_CONTROL] = ~0x80 & ksOrg[VK_CONTROL];
63 ksAlter[VK_LCONTROL] = ~0x80 & ksOrg[VK_LCONTROL];
64 SetKeyboardState(ksAlter);
65 }
66 }*/
67 return transkey( key + al );
68 }
69
70
71
72 #define kCASE(a,b) case a :{ mainMsg(b) ; break; }
73
74
75 WORD lmainMsg( WORD id , int mode)
76 {
77 if(mode==0) return mainMsg( id);
78 else return id;
79 }
80
81 // �t�H�[�J�X�����X�g�������������L�[����
82
83 WORD ListKeyFunc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp,int tab,int mode, WORD ky)
84 {
85 static LPNMHDR lpnmhdr;
86 static LV_KEYDOWN *lvkeydown;
87 WORD key;
88 WORD ans=0;
89 dirw *NDir;
90 if(mode ==0)
91 {
92 NDir =GetNDir();
93 lpnmhdr = (LPNMHDR)lp;
94 lvkeydown =(LV_KEYDOWN*)lp;//EN_UPDATE
95 key =keyfnc(lvkeydown->wVKey);
96 }
97 else
98 {
99 key =keyfnc(ky);
100 }
101
102 // �R�}���h����
103 if(key >= '1'+kALT && key <= '9' +kALT)
104 ans =lmainMsg( IDM_CMD_BASE + (key - ('1'+kALT) +1 ), mode );
105 if(key >='A' +kCONTROL +kALT && key <='Z' +kCONTROL +kALT )
106 ans =lmainMsg( IDM_DRIVE_A -kCONTROL -kALT -'A' +key, mode);
107 //if(mode>0)return 0;//
108 switch (key)
109 {
110 case VK_ESCAPE :
111 {
112 if(mode>0) return 0;
113 if(mp3Playing)
114 {
115 ans =lmainMsg(IDM_mp3play, mode );
116 }
117 if(mciPlaying)
118 {
119 ans =lmainMsg(IDM_Videoplay, mode );
120 }
121 if(picshowflg)
122 {
123 picshowflg =FALSE;
124 CurrentPicshow =FALSE;
125 resize();
126 ans =lmainMsg(IDM_PicReset, mode );
127 }
128 if(KeyModified)
129 {
130 keyModifyReset();
131 }
132 else SetFocus(hEdit);
133 return 0;
134 }
135 case VK_RETURN +kSHIFT:
136 ans =lmainMsg( IDM_EDIT , mode );
137 break;
138 case VK_RETURN:
139 if(mode>0) break;
140 lpnmhdr->code =NM_DBLCLK;
141 SendMessage( hWnd, msg, wp, lp);
142 break;
143 case VK_F11:
144 ans =lmainMsg( IDM_WINDOW_MAX, mode );
145 break;
146 case VK_F11 +kSHIFT:
147 ans =lmainMsg( IDM_WINDOW_INI, mode );
148 break;
149 case VK_F12:
150 ans =lmainMsg( IDM_NEW_MEMO, mode );
151 break;
152 case VK_TAB:
153 ans =lmainMsg(IDM_focus_other, mode );
154 break;
155 case VK_BACK:
156 ans =lmainMsg( IDM_UPDIRLOCAL, mode );
157 break;
158 case VK_DELETE:
159 ans =lmainMsg( IDM_DELFILELOCAL, mode );
160 break;
161 case VK_DELETE +kSHIFT:
162 ans =lmainMsg( IDM_DEL_MENU, mode );
163 break;
164 case VK_LEFT +kSHIFT:
165 ans =lmainMsg( IDM_HIS_BACKWARD, mode );
166 break;
167 case VK_RIGHT +kSHIFT:
168 ans =lmainMsg( IDM_HIS_FORWARD, mode );
169 break;
170 case VK_LEFT +kSHIFT +kALT:
171 ans =lmainMsg( IDM_HIS_BackNoReload, mode );
172 break;
173 case VK_RIGHT +kSHIFT +kALT:
174 ans =lmainMsg( IDM_HIS_ForwNoReload, mode );
175 break;
176 case VK_HOME +kALT:
177 ans =lmainMsg( IDM_LOAD_WINS_HOME, mode );
178 break;
179 case VK_HOME +kALT +kSHIFT:
180 ans =lmainMsg( IDM_SAVE_WINS_HOME, mode );
181 break;
182 case 'A' +kCONTROL:
183 ans =lmainMsg( IDM_REV_SELECT, mode );
184 break;
185 case 'B' +kCONTROL:
186 ans =lmainMsg( IDM_UP_BUTTON, mode );
187 break;
188 case 'C' +kCONTROL:
189 ans =lmainMsg(IDM_COPY ,mode );
190 break;
191 case 'D' +kCONTROL:
192 ans =lmainMsg(IDM_DELFILELOCAL ,mode );
193 break;
194 case 'E' +kCONTROL:
195 ans =lmainMsg(IDM_EDIT ,mode );
196 break;
197 case 'E' +kSHIFT +kCONTROL:
198 //ans =lmainMsg( IDM_EDIT_INIT , mode );
199 break;
200 case 'F' +kCONTROL:
201 ans =lmainMsg( IDM_FIND , mode );
202 break;
203 case 'F' +kSHIFT +kCONTROL:
204 ans =lmainMsg( IDM_FIND2 , mode );
205 break;
206 case 'G' +kCONTROL:
207 ans =lmainMsg(IDM_COM, mode );
208 break;
209 case 'H' +kCONTROL:
210 ans =lmainMsg(IDM_his_L, mode );
211 break;
212 case 'H' +kCONTROL +kSHIFT:
213 ans =lmainMsg(IDM_his_R, mode );
214 break;
215 case 'I' +kCONTROL:
216 ans =lmainMsg(IDM_mouseG, mode );
217 break;
218 case 'G' +kSHIFT +kCONTROL:
219 ans =lmainMsg(IDM_COM_NUM, mode );
220 break;
221 case 'M' +kSHIFT:
222 ans =lmainMsg( IDM_Set_Mainmenu_Pop , mode );
223 break;
224 case 'M' +kCONTROL:
225 ans =lmainMsg(IDM_SendTomenu_Pop ,mode );
226 break;
227 case 'L' +kCONTROL:
228 ans =lmainMsg(IDM_Bothmenu_Pop ,mode );
229 break;
230 case 'N' +kCONTROL:
231 ans =lmainMsg( IDM_NEW_FILE , mode );
232 break;
233 case 'N' +kSHIFT +kCONTROL:
234 ans =lmainMsg( IDM_LOCAL_CREATE_FILE , mode );
235 break;
236 case 'O' +kCONTROL://�I�[
237 ans =lmainMsg(IDM_SameDir, mode );
238 break;
239 case 'O' +kSHIFT +kCONTROL://�I�[
240 ans =lmainMsg(IDM_SSameDir, mode );
241 break;
242 case 'P' +kSHIFT:
243 ans =lmainMsg(IDM_ZIP, mode );
244 break;
245 case 'P' +kCONTROL:
246 ans =lmainMsg(IDM_EXT_SETCOLOR, mode );
247 break;
248 case 'P' +kCONTROL +kSHIFT:
249 ans =lmainMsg(IDM_EXT_SETCOLOR_THIS, mode );
250 break;
251 case 'Q' +kCONTROL:
252 ans =lmainMsg(IDM_END, mode );
253 break;
254 case 'R' +kSHIFT +kCONTROL:
255 ans =lmainMsg(IDM_RELOAD_BOTH, mode );
256 break;
257 case 'R' +kCONTROL:
258 ans =lmainMsg(IDM_RENAME, mode );
259 break;
260 case 'S' +kCONTROL:
261 ans =lmainMsg(IDM_SAVE_DIRLOCAL, mode );
262 break;
263 case 'T' +kCONTROL:
264 ans =lmainMsg(IDM_TitleBar_SW, mode );
265 break;
266 case 'T' +kSHIFT:
267 ans =lmainMsg(IDM_add_tab, mode );
268 break;
269 case 'S' +kSHIFT +kCONTROL:
270 ans =lmainMsg(IDM_SAVE_WINS, mode );
271 break;
272 case 'W' +kCONTROL:
273 ans =lmainMsg(IDM_COMPARE, mode );
274 break;
275 case 'X' +kCONTROL:
276 ans =lmainMsg(IDM_EXCHANGE, mode );
277 break;
278 case 'X' +kSHIFT +kCONTROL:
279 ans =lmainMsg(IDM_OPEN_CUR, mode );
280 break;
281 case 'X' +kSHIFT +kALT +kCONTROL:
282 ans =lmainMsg(IDM_OPEN_INI, mode );
283 break;
284 case 'Z' +kCONTROL:
285 ans =lmainMsg(IDM_EDIT_INIT, mode );
286 break;
287 case 'Z' +kSHIFT +kCONTROL:
288 ans =lmainMsg( IDM_OPEN_KEY_FILE , mode );
289 break;
290 case '0' +kCONTROL://�[��
291 ans =lmainMsg(IDM_LOCALDRIVE, mode );
292 break;
293 case VK_ADD +kCONTROL:
294 ans =lmainMsg(IDM_LISTL_WIDTH_1, mode );
295 break;
296 case VK_DIVIDE +kCONTROL:
297 ans =lmainMsg(IDM_LISTL_WIDTH_2, mode );
298 break;
299 case VK_SUBTRACT +kCONTROL:
300 ans =lmainMsg(IDM_LISTL_WIDTH_3, mode );
301 break;
302 case VK_ADD +kALT:
303 ans =lmainMsg(IDM_PicRateUp, mode );
304 break;
305 case VK_SUBTRACT +kALT:
306 ans =lmainMsg(IDM_PicRateDown, mode );
307 break;
308 case VK_ADD +kSHIFT:
309 ans =lmainMsg(IDM_WINDOW_BIGGER, mode );
310 break;
311 case VK_SUBTRACT +kSHIFT:
312 ans =lmainMsg(IDM_WINDOW_SMALLER, mode );
313 break;
314 case '1' +kCONTROL +kALT:
315 ans =lmainMsg(IDM_SORT1, mode );
316 break;
317 case '2' +kCONTROL +kALT:
318 ans =lmainMsg(IDM_SORT2, mode );
319 break;
320 case '3' +kCONTROL +kALT:
321 ans =lmainMsg(IDM_SORT3, mode );
322 break;
323 case '4' +kCONTROL +kALT:
324 ans =lmainMsg(IDM_SORT4, mode );
325 break;
326 case '5' +kCONTROL +kALT:
327 ans =lmainMsg(IDM_SORT5, mode );
328 break;
329 case '1' +kCONTROL:
330 ans =lmainMsg(IDM_LISTL_ONLY, mode );
331 break;
332 case '2' +kCONTROL:
333 ans =lmainMsg(IDM_LISTR_ONLY, mode );
334 break;
335 case VK_DOWN +kCONTROL +kALT:
336 ans =lmainMsg(IDM_WINMODE, mode );
337 break;
338 case VK_UP +kCONTROL +kALT:
339 ans =lmainMsg(IDM_WINMODE_BACK, mode );
340 break;
341 case '0' +kALT:
342 ans =lmainMsg(IDM_PicRateReset, mode );
343 break;
344 case VK_DOWN +kALT:
345 ans =lmainMsg(IDM_PicOrgDown, mode );
346 break;
347 case VK_UP +kALT:
348 ans =lmainMsg(IDM_PicOrgUp, mode );
349 break;
350 case VK_RIGHT +kALT:
351 ans =lmainMsg(IDM_PicOrgRight, mode );
352 break;
353 case VK_LEFT +kALT:
354 ans =lmainMsg(IDM_PicOrgLeft, mode );
355 break;
356 case 220: //"\\"
357 ans =lmainMsg(IDM_ROOTDIR, mode );
358 break;
359 default:
360 break;
361 }
362 return ans;
363 }
364
365 // key �� ���b�Z�[�WID ����������������
366
367 WORD GetListKeyCmd( UINT msg, WORD ky)
368 {
369 return ListKeyFunc( hmainwnd, msg, 0, 0, 0, 1, ky);
370 }
371
372 void keyModifyReset()
373 {
374 if( KeyModified ) SetKeyboardState(ksOrg);
375 KeyModified =FALSE;
376 }

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision
svn:mime-type text/plain

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26