Mercurial > dwindows
comparison win/dw.c @ 267:bf8b907f8a29
Added initial version of updated key_press_event callback.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Mon, 03 Mar 2003 19:50:19 +0000 |
parents | 9ea4ac9a097f |
children | d706e0dbb0cb |
comparison
equal
deleted
inserted
replaced
266:5c5bee286d0e | 267:bf8b907f8a29 |
---|---|
1375 } | 1375 } |
1376 } | 1376 } |
1377 break; | 1377 break; |
1378 case WM_CHAR: | 1378 case WM_CHAR: |
1379 { | 1379 { |
1380 int (*keypressfunc)(HWND, int, void *) = tmp->signalfunction; | 1380 int (*keypressfunc)(HWND, char, int, int, void *) = tmp->signalfunction; |
1381 | 1381 |
1382 if(hWnd == tmp->window) | 1382 if(hWnd == tmp->window) |
1383 { | 1383 { |
1384 result = keypressfunc(tmp->window, LOWORD(mp2), tmp->data); | 1384 int special = 0; |
1385 | |
1386 if(GetAsyncKeyState(VK_SHIFT) & 0x8000) | |
1387 special |= KC_SHIFT; | |
1388 if(GetAsyncKeyState(VK_CONTROL) & 0x8000) | |
1389 special |= KC_CTRL; | |
1390 if(mp2 & (1 << 29)) | |
1391 special |= KC_ALT; | |
1392 | |
1393 result = keypressfunc(tmp->window, (char)mp1, mp1, special, tmp->data); | |
1385 tmp = NULL; | 1394 tmp = NULL; |
1386 } | 1395 } |
1387 } | 1396 } |
1388 break; | 1397 break; |
1389 case WM_CLOSE: | 1398 case WM_CLOSE: |
1872 switch( msg ) | 1881 switch( msg ) |
1873 { | 1882 { |
1874 case WM_LBUTTONDOWN: | 1883 case WM_LBUTTONDOWN: |
1875 case WM_MBUTTONDOWN: | 1884 case WM_MBUTTONDOWN: |
1876 case WM_RBUTTONDOWN: | 1885 case WM_RBUTTONDOWN: |
1877 SetActiveWindow(hWnd); | 1886 SetFocus(hWnd); |
1878 _wndproc(hWnd, msg, mp1, mp2); | 1887 _wndproc(hWnd, msg, mp1, mp2); |
1879 break; | 1888 break; |
1880 case WM_LBUTTONUP: | 1889 case WM_LBUTTONUP: |
1881 case WM_MBUTTONUP: | 1890 case WM_MBUTTONUP: |
1882 case WM_RBUTTONUP: | 1891 case WM_RBUTTONUP: |
1883 case WM_MOUSEMOVE: | 1892 case WM_MOUSEMOVE: |
1884 case WM_PAINT: | 1893 case WM_PAINT: |
1885 case WM_SIZE: | 1894 case WM_SIZE: |
1886 case WM_COMMAND: | 1895 case WM_COMMAND: |
1896 case WM_CHAR: | |
1887 _wndproc(hWnd, msg, mp1, mp2); | 1897 _wndproc(hWnd, msg, mp1, mp2); |
1888 break; | 1898 break; |
1889 } | 1899 } |
1890 return DefWindowProc(hWnd, msg, mp1, mp2); | 1900 return DefWindowProc(hWnd, msg, mp1, mp2); |
1891 } | 1901 } |