- Timestamp:
- Sep 19, 1999, 3:27:09 PM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/hotkey.c
r968 r983 1 /* $Id: hotkey.c,v 1. 5 1999-09-18 12:21:26cbratschi Exp $ */1 /* $Id: hotkey.c,v 1.6 1999-09-19 13:27:09 cbratschi Exp $ */ 2 2 /* 3 3 * Hotkey control … … 9 9 * NOTES 10 10 * Development in progress. 11 * CB: difficult with new User3212 11 * 13 12 * TODO: … … 48 47 49 48 infoPtr->bVKHotKey = wParam & 0xFF; 50 infoPtr->bfMods = HOTKEY_Check(infoPtr, wParam & 0xFF00);49 infoPtr->bfMods = HOTKEY_Check(infoPtr,(wParam & 0xFF00)>>8); 51 50 52 51 HOTKEY_UpdateHotKey(hwnd); … … 82 81 83 82 static LRESULT 84 HOTKEY_Char(HWND hwnd,WPARAM wParam,LPARAM lParam )83 HOTKEY_Char(HWND hwnd,WPARAM wParam,LPARAM lParam,BOOL sysKey) 85 84 { 86 85 //CB: 87 86 return 0; 88 87 } 89 90 91 static LRESULT92 HOTKEY_SysChar(HWND hwnd,WPARAM wParam,LPARAM lParam)93 {94 //CB:95 return 0;96 }97 98 88 99 89 static LRESULT … … 116 106 infoPtr->fwCombInv = 0; 117 107 infoPtr->fwModInv = 0; 108 infoPtr->cursorPos.x = 3; 109 infoPtr->cursorPos.y = 3; 118 110 119 111 /* get default font height */ … … 164 156 165 157 static LRESULT 166 HOTKEY_KeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam) 167 { 168 /* HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr (hwnd); */ 169 170 switch (wParam) { 171 case VK_RETURN: 172 case VK_TAB: 173 case VK_SPACE: 174 case VK_DELETE: 175 case VK_ESCAPE: 176 case VK_BACK: 177 return DefWindowProcA (hwnd, WM_KEYDOWN, wParam, lParam); 178 179 case VK_SHIFT: 180 case VK_CONTROL: 181 case VK_MENU: 182 // FIXME (hotkey, "modifier key pressed!\n"); 183 break; 184 185 default: 186 // FIXME (hotkey, " %d\n", wParam); 187 break; 158 HOTKEY_KeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam,BOOL sysKey) 159 { 160 HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr (hwnd); 161 INT newMods = sysKey ? HOTKEYF_ALT:0; 162 163 switch (wParam) 164 { 165 case VK_RETURN: 166 case VK_TAB: 167 case VK_SPACE: 168 case VK_DELETE: 169 case VK_ESCAPE: 170 case VK_BACK: 171 return DefWindowProcA (hwnd,sysKey ? WM_SYSKEYDOWN:WM_KEYDOWN, wParam, lParam); 172 173 case VK_SHIFT: 174 newMods |= HOTKEYF_SHIFT; 175 break; 176 177 case VK_CONTROL: 178 newMods |= HOTKEYF_CONTROL; 179 break; 180 181 default: 182 break; 188 183 } 189 184 185 infoPtr->bfMods = newMods; 186 HOTKEY_UpdateHotKey(hwnd); 187 190 188 return TRUE; 191 189 } … … 193 191 194 192 static LRESULT 195 HOTKEY_KeyUp (HWND hwnd, WPARAM wParam, LPARAM lParam )196 { 197 /* HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr (hwnd); */193 HOTKEY_KeyUp (HWND hwnd, WPARAM wParam, LPARAM lParam,BOOL sysKey) 194 { 195 HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr (hwnd); 198 196 199 197 // FIXME (hotkey, " %d\n", wParam); 200 198 201 199 return 0; 202 200 } 203 201 … … 239 237 { 240 238 HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr(hwnd); 241 RECT rect ;239 RECT rect,newRect; 242 240 char text[50]; 243 241 HFONT oldFont; 244 242 243 HideCaret(hwnd); 245 244 GetClientRect(hwnd,&rect); 246 245 DrawEdge(hdc,&rect,EDGE_SUNKEN,BF_RECT | BF_ADJUST); … … 271 270 if(infoPtr->hFont) oldFont = SelectObject(hdc,infoPtr->hFont); 272 271 SetBkMode(hdc,TRANSPARENT); 273 DrawTextA(hdc,text,strlen(text),&rect,DT_LEFT | DT_BOTTOM | DT_SINGLELINE); 272 CopyRect(&newRect,&rect); 273 DrawTextA(hdc,text,strlen(text),&newRect,DT_LEFT | DT_BOTTOM | DT_SINGLELINE); 274 DrawTextA(hdc,text,strlen(text),&newRect,DT_LEFT | DT_BOTTOM | DT_SINGLELINE | DT_CALCRECT); 274 275 if (infoPtr->hFont) SelectObject(hdc,oldFont); 276 infoPtr->cursorPos.x = (newRect.right >= rect.right)? -1:newRect.right; 277 SetCaretPos(infoPtr->cursorPos.x,infoPtr->cursorPos.y); 278 ShowCaret(hwnd); 275 279 } 276 280 … … 317 321 infoPtr->bFocus = TRUE; 318 322 319 CreateCaret (hwnd, (HBITMAP)0, 1,infoPtr->nHeight);320 SetCaretPos (3,3);321 ShowCaret 323 CreateCaret(hwnd,(HBITMAP)0,1,infoPtr->nHeight); 324 SetCaretPos(infoPtr->cursorPos.x,infoPtr->cursorPos.y); 325 ShowCaret(hwnd); 322 326 323 327 return 0; … … 352 356 353 357 354 static LRESULT WINE_UNUSED355 HOTKEY_SysKeyDown (HWND hwnd, WPARAM wParam, LPARAM lParam)356 {357 /* HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr (hwnd); */358 359 switch (wParam) {360 case VK_RETURN:361 case VK_TAB:362 case VK_SPACE:363 case VK_DELETE:364 case VK_ESCAPE:365 case VK_BACK:366 return DefWindowProcA (hwnd, WM_SYSKEYDOWN, wParam, lParam);367 368 case VK_SHIFT:369 case VK_CONTROL:370 case VK_MENU:371 // FIXME (hotkey, "modifier key pressed!\n");372 break;373 374 default:375 // FIXME (hotkey, " %d\n", wParam);376 break;377 }378 379 return TRUE;380 }381 382 383 static LRESULT WINE_UNUSED384 HOTKEY_SysKeyUp (HWND hwnd, WPARAM wParam, LPARAM lParam)385 {386 /* HOTKEY_INFO *infoPtr = HOTKEY_GetInfoPtr (hwnd); */387 388 // FIXME (hotkey, " %d\n", wParam);389 390 return 0;391 }392 393 394 395 358 static LRESULT WINAPI 396 359 HOTKEY_WindowProc (HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) … … 408 371 409 372 case WM_CHAR: 410 return HOTKEY_Char(hwnd,wParam,lParam); 373 return HOTKEY_Char(hwnd,wParam,lParam,FALSE); 374 375 case WM_SYSCHAR: 376 return HOTKEY_Char(hwnd,wParam,lParam,TRUE); 411 377 412 378 case WM_CREATE: … … 426 392 427 393 case WM_KEYDOWN: 428 return HOTKEY_KeyDown(hwnd,wParam,lParam );394 return HOTKEY_KeyDown(hwnd,wParam,lParam,FALSE); 429 395 430 396 case WM_SYSKEYDOWN: 431 return HOTKEY_ SysKeyDown (hwnd, wParam, lParam);397 return HOTKEY_KeyDown(hwnd,wParam,lParam,TRUE); 432 398 433 399 case WM_KEYUP: 434 return HOTKEY_KeyUp(hwnd,wParam,lParam );400 return HOTKEY_KeyUp(hwnd,wParam,lParam,FALSE); 435 401 436 402 case WM_SYSKEYUP: 437 return HOTKEY_ SysKeyUp (hwnd, wParam, lParam);403 return HOTKEY_KeyUp(hwnd,wParam,lParam,TRUE); 438 404 439 405 case WM_KILLFOCUS: … … 454 420 case WM_SETFONT: 455 421 return HOTKEY_SetFont (hwnd, wParam, lParam); 456 457 case WM_SYSCHAR:458 return HOTKEY_SysChar(hwnd,wParam,lParam);459 422 460 423 default:
Note:
See TracChangeset
for help on using the changeset viewer.