Changeset 1005 for trunk/src/user32/pmwindow.cpp
- Timestamp:
- Sep 22, 1999, 10:58:36 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/pmwindow.cpp
r1000 r1005 1 /* $Id: pmwindow.cpp,v 1. 4 1999-09-21 17:05:36 dengertExp $ */1 /* $Id: pmwindow.cpp,v 1.5 1999-09-22 08:58:35 sandervl Exp $ */ 2 2 /* 3 3 * Win32 Window Managment Code for OS/2 … … 511 511 case WM_CHAR: 512 512 { 513 ULONG repeatCount=0, virtualKey=0, keyFlags=0, scanCode=0; 514 ULONG flags = SHORT1FROMMP(mp1); 515 BOOL keyWasPressed; 516 char c; 517 USHORT virtualKeyTable [66] = { 518 0x00, // OS/2 VK Win32 VK, Entry 0 is not used 519 0x01, // VK_BUTTON1 VK_LBUTTON 520 0x02, // VK_BUTTON2 VK_RBUTTON 521 0x04, // VK_BUTTON3 VK_MBUTTON 522 0x03, // VK_BREAK VK_CANCEL 523 0x08, // VK_BACKSPACE VK_BACK 524 0x09, // VK_TAB VK_TAB 525 0x00, // VK_BACKTAB No equivalent! 526 0x0D, // VK_NEWLINE VK_RETURN 527 0x10, // VK_SHIFT VK_SHIFT 528 0x11, // VK_CTRL VK_CONTROL 529 0x12, // VK_ALT VK_MENU, best match I guess 530 0x12, // VK_ALTGRAF VK_MENU, best match I guess 531 0x13, // VK_PAUSE VK_PAUSE 532 0x14, // VK_CAPSLOCK VK_CAPITAL 533 0x1B, // VK_ESC VK_ESCAPE 534 0x20, // VK_SPACE VK_SPACE 535 0x00, // VK_PAGEUP No equivalent! At least, I think 536 0x00, // VK_PAGEDOWN No equivalent! At least, I think 537 0x23, // VK_END VK_END 538 0x24, // VK_HOME VK_HOME 539 0x25, // VK_LEFT VK_LEFT 540 0x26, // VK_UP VK_UP 541 0x27, // VK_RIGHT VK_RIGHT 542 0x28, // VK_DOWN VK_DOWN 543 0x2C, // VK_PRINTSCRN VK_SNAPSHOT 544 0x2D, // VK_INSERT VK_INSERT 545 0x2E, // VK_DELETE VK_DELETE 546 0x91, // VK_SCRLLOCK VK_SCROLL 547 0x90, // VK_NUMLOCK VK_NUMLOCK 548 0x2B, // VK_ENTER VK_EXECUTE, best match I guess 549 0x00, // VK_SYSRQ No equivalent! 550 0x70, // VK_F1 VK_F1 551 0x71, // VK_F2 VK_F2 552 0x72, // VK_F3 VK_F3 553 0x73, // VK_F4 VK_F4 554 0x74, // VK_F5 VK_F5 555 0x75, // VK_F6 VK_F6 556 0x76, // VK_F7 VK_F7 557 0x77, // VK_F8 VK_F8 558 0x78, // VK_F9 VK_F9 559 0x79, // VK_F10 VK_F10 560 0x7A, // VK_F11 VK_F11 561 0x7B, // VK_F12 VK_F12 562 0x7C, // VK_F13 VK_F13 563 0x7D, // VK_F14 VK_F14 564 0x7E, // VK_F15 VK_F15 565 0x7F, // VK_F16 VK_F16 566 0x80, // VK_F17 VK_F17 567 0x81, // VK_F18 VK_F18 568 0x82, // VK_F19 VK_F19 569 0x83, // VK_F20 VK_F20 570 0x84, // VK_F21 VK_F21 571 0x85, // VK_F22 VK_F22 572 0x86, // VK_F23 VK_F23 573 0x87, // VK_F24 VK_F24 574 0x00, // VK_ENDDRAG No equivalent! 575 0x0C, // VK_CLEAR VK_CLEAR 576 0xF9, // VK_EREOF VK_EREOF 577 0xFD, // VK_PA1 VK_PA1 578 0xF6, // VK_ATTN VK_ATTN 579 0xF7, // VK_CRSEL VK_CRSEL 580 0xF8, // VK_EXSEL VK_EXSEL 581 0x00, // VK_COPY No equivalent! 582 0x00, // VK_BLK1 No equivalent! 583 0x00}; // VK_BLK2 No equivalent! 584 585 586 repeatCount = SHORT2FROMMP (mp1) >> 8; 587 scanCode = SHORT2FROMMP (mp1) & 255; 588 keyWasPressed = ((SHORT1FROMMP (mp1) & KC_PREVDOWN) == KC_PREVDOWN); 589 590 // both WM_KEYUP & WM_KEYDOWN want a virtual key, find the right Win32 virtual key 591 // given the OS/2 virtual key and OS/2 character 592 593 if (((SHORT1FROMMP (mp1) & KC_CHAR) == KC_CHAR) || 594 ((SHORT1FROMMP (mp1) & KC_LONEKEY) == KC_LONEKEY)) 595 { 596 c = SHORT1FROMMP (mp2); 597 if ((c >= 'A') && (c <= 'Z')) { 598 virtualKey = c; 599 goto VirtualKeyFound; 600 } 601 if ((c >='a') && (c <= 'z')) { 602 virtualKey = c - 32; // make it uppercase 603 goto VirtualKeyFound; 604 } 605 if ((c >= '0') && (c <= '9')) { 606 virtualKey = c; 607 goto VirtualKeyFound; 608 } 609 } 610 611 // convert OS/2 virtual keys to Win32 virtual key 612 if (SHORT2FROMMP (mp2) <= VK_BLK2) 613 virtualKey = virtualKeyTable [SHORT2FROMMP (mp2)]; 614 615 VirtualKeyFound: 616 617 if ((WinGetKeyState (HWND_DESKTOP, VK_ALT) & 0x8000) == 0) 618 { 619 // 620 // the Alt key is not pressed 621 // 622 if ((flags & KC_KEYUP) == KC_KEYUP) { 623 // send WM_KEYUP message 624 625 if(win32wnd->MsgKeyUp (repeatCount, scanCode, virtualKey)) { 626 goto RunDefWndProc; 627 } 628 } 629 else { 630 // send WM_KEYDOWN message 631 if (win32wnd->MsgKeyDown (repeatCount, scanCode, virtualKey, keyWasPressed)) 632 goto RunDefWndProc; 633 } 634 } 635 else { 636 // 637 // the Alt key is pressed 638 // 639 if ((flags & KC_KEYUP) == KC_KEYUP) { 640 // send WM_SYSKEYUP message 641 642 if(win32wnd->MsgSysKeyUp (repeatCount, scanCode, virtualKey)) { 643 goto RunDefWndProc; 644 } 645 } 646 else { 647 // send WM_SYSKEYDOWN message 648 if (win32wnd->MsgSysKeyDown (repeatCount, scanCode, virtualKey, keyWasPressed)) 649 goto RunDefWndProc; 650 } 651 } 652 653 break; 654 } 655 #if 0 656 case WM_CHAR: 657 { 513 658 ULONG keyflags = 0, vkey = 0; 514 659 ULONG fl = SHORT1FROMMP(mp1); … … 538 683 break; 539 684 } 685 #endif 540 686 case WM_INITMENU: 541 687 case WM_MENUSELECT:
Note:
See TracChangeset
for help on using the changeset viewer.