Mercurial > dwindows
comparison os2/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 | dfbda83b7cad |
comparison
equal
deleted
inserted
replaced
266:5c5bee286d0e | 267:bf8b907f8a29 |
---|---|
2060 } | 2060 } |
2061 } | 2061 } |
2062 break; | 2062 break; |
2063 case WM_CHAR: | 2063 case WM_CHAR: |
2064 { | 2064 { |
2065 int (* API keypressfunc)(HWND, int, void *) = (int (* API)(HWND, int, void *))tmp->signalfunction; | 2065 int (* API keypressfunc)(HWND, char, int, int, void *) = (int (* API)(HWND, char, int, int, void *))tmp->signalfunction; |
2066 | 2066 |
2067 if(hWnd == tmp->window) | 2067 if(hWnd == tmp->window && !(SHORT1FROMMP(mp1) & KC_KEYUP)) |
2068 { | 2068 { |
2069 result = keypressfunc(tmp->window, SHORT1FROMMP(mp2), tmp->data); | 2069 int vk; |
2070 char ch; | |
2071 | |
2072 if(SHORT1FROMMP(mp1) & KC_CHAR) | |
2073 ch = (char)SHORT1FROMMP(mp2); | |
2074 else | |
2075 ch = (char)SHORT2FROMMP(mp2); | |
2076 if(SHORT1FROMMP(mp1) & KC_VIRTUALKEY) | |
2077 vk = SHORT2FROMMP(mp2); | |
2078 else | |
2079 vk = SHORT1FROMMP(mp2); | |
2080 | |
2081 /* This is a hack to fix shift presses showing | |
2082 * up as tabs! | |
2083 */ | |
2084 if(ch == '\t' && !(SHORT1FROMMP(mp1) & KC_CHAR)) | |
2085 { | |
2086 ch = 0; | |
2087 vk = VK_SHIFT; | |
2088 } | |
2089 | |
2090 result = keypressfunc(tmp->window, ch, vk, | |
2091 SHORT1FROMMP(mp1) & (KC_ALT | KC_SHIFT | KC_CTRL), tmp->data); | |
2070 tmp = NULL; | 2092 tmp = NULL; |
2071 } | 2093 } |
2072 } | 2094 } |
2073 break; | 2095 break; |
2074 case WM_CLOSE: | 2096 case WM_CLOSE: |
3041 switch(msg) | 3063 switch(msg) |
3042 { | 3064 { |
3043 case WM_BUTTON1DOWN: | 3065 case WM_BUTTON1DOWN: |
3044 case WM_BUTTON2DOWN: | 3066 case WM_BUTTON2DOWN: |
3045 case WM_BUTTON3DOWN: | 3067 case WM_BUTTON3DOWN: |
3046 if(res) | 3068 if(res == -1) |
3069 WinSetFocus(HWND_DESKTOP, hwnd); | |
3070 else if(res) | |
3047 return (MPARAM)TRUE; | 3071 return (MPARAM)TRUE; |
3048 } | 3072 } |
3049 return WinDefWindowProc(hwnd, msg, mp1, mp2); | 3073 return WinDefWindowProc(hwnd, msg, mp1, mp2); |
3050 } | 3074 } |
3051 | 3075 |