2570 "AwtComponent::GetShiftKeyLocation vkey = %d = 0x%x scan = %d", 2571 vkey, vkey, keyScanCode); 2572 2573 leftShiftScancode = ::MapVirtualKey(VK_LSHIFT, 0); 2574 rightShiftScancode = ::MapVirtualKey(VK_RSHIFT, 0); 2575 2576 if (keyScanCode == leftShiftScancode) { 2577 return java_awt_event_KeyEvent_KEY_LOCATION_LEFT; 2578 } 2579 if (keyScanCode == rightShiftScancode) { 2580 return java_awt_event_KeyEvent_KEY_LOCATION_RIGHT; 2581 } 2582 2583 DASSERT(false); 2584 // Note: the above should not fail on NT (or 2000) 2585 2586 // default value 2587 return java_awt_event_KeyEvent_KEY_LOCATION_LEFT; 2588 } 2589 2590 /* Returns Java extended InputEvent modifieres. 2591 * Since ::GetKeyState returns current state and Java modifiers represent 2592 * state before event, modifier on changed key are inverted. 2593 */ 2594 jint 2595 AwtComponent::GetJavaModifiers() 2596 { 2597 jint modifiers = 0; 2598 2599 if (HIBYTE(::GetKeyState(VK_CONTROL)) != 0) { 2600 modifiers |= java_awt_event_InputEvent_CTRL_DOWN_MASK; 2601 } 2602 if (HIBYTE(::GetKeyState(VK_SHIFT)) != 0) { 2603 modifiers |= java_awt_event_InputEvent_SHIFT_DOWN_MASK; 2604 } 2605 if (HIBYTE(::GetKeyState(VK_MENU)) != 0) { 2606 modifiers |= java_awt_event_InputEvent_ALT_DOWN_MASK; 2607 } 2608 if (HIBYTE(::GetKeyState(VK_RMENU)) != 0) { 2609 modifiers |= java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK; | 2570 "AwtComponent::GetShiftKeyLocation vkey = %d = 0x%x scan = %d", 2571 vkey, vkey, keyScanCode); 2572 2573 leftShiftScancode = ::MapVirtualKey(VK_LSHIFT, 0); 2574 rightShiftScancode = ::MapVirtualKey(VK_RSHIFT, 0); 2575 2576 if (keyScanCode == leftShiftScancode) { 2577 return java_awt_event_KeyEvent_KEY_LOCATION_LEFT; 2578 } 2579 if (keyScanCode == rightShiftScancode) { 2580 return java_awt_event_KeyEvent_KEY_LOCATION_RIGHT; 2581 } 2582 2583 DASSERT(false); 2584 // Note: the above should not fail on NT (or 2000) 2585 2586 // default value 2587 return java_awt_event_KeyEvent_KEY_LOCATION_LEFT; 2588 } 2589 2590 /* Returns Java ActionEvent modifieres. 2591 * When creating ActionEvent, modifiers provided by ActionEvent 2592 * class should be set. 2593 */ 2594 jint 2595 AwtComponent::GetActionModifiers() 2596 { 2597 jint modifiers = GetJavaModifiers(); 2598 2599 if (modifiers & java_awt_event_InputEvent_CTRL_DOWN_MASK) { 2600 modifiers |= java_awt_event_InputEvent_CTRL_MASK; 2601 } 2602 if (modifiers & java_awt_event_InputEvent_SHIFT_DOWN_MASK) { 2603 modifiers |= java_awt_event_InputEvent_SHIFT_MASK; 2604 } 2605 if (modifiers & java_awt_event_InputEvent_ALT_DOWN_MASK) { 2606 modifiers |= java_awt_event_InputEvent_ALT_MASK; 2607 } 2608 if (modifiers & java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK) { 2609 modifiers |= java_awt_event_InputEvent_ALT_GRAPH_MASK; 2610 } 2611 return modifiers; 2612 } 2613 2614 /* Returns Java extended InputEvent modifieres. 2615 * Since ::GetKeyState returns current state and Java modifiers represent 2616 * state before event, modifier on changed key are inverted. 2617 */ 2618 jint 2619 AwtComponent::GetJavaModifiers() 2620 { 2621 jint modifiers = 0; 2622 2623 if (HIBYTE(::GetKeyState(VK_CONTROL)) != 0) { 2624 modifiers |= java_awt_event_InputEvent_CTRL_DOWN_MASK; 2625 } 2626 if (HIBYTE(::GetKeyState(VK_SHIFT)) != 0) { 2627 modifiers |= java_awt_event_InputEvent_SHIFT_DOWN_MASK; 2628 } 2629 if (HIBYTE(::GetKeyState(VK_MENU)) != 0) { 2630 modifiers |= java_awt_event_InputEvent_ALT_DOWN_MASK; 2631 } 2632 if (HIBYTE(::GetKeyState(VK_RMENU)) != 0) { 2633 modifiers |= java_awt_event_InputEvent_ALT_GRAPH_DOWN_MASK; |