| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2006-2009 Google Inc. | 3 * Copyright (C) 2006-2009 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 818 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 int modifiers = 0; | 829 int modifiers = 0; |
| 830 | 830 |
| 831 if ([event modifierFlags] & NSControlKeyMask) | 831 if ([event modifierFlags] & NSControlKeyMask) |
| 832 modifiers |= WebInputEvent::ControlKey; | 832 modifiers |= WebInputEvent::ControlKey; |
| 833 if ([event modifierFlags] & NSShiftKeyMask) | 833 if ([event modifierFlags] & NSShiftKeyMask) |
| 834 modifiers |= WebInputEvent::ShiftKey; | 834 modifiers |= WebInputEvent::ShiftKey; |
| 835 if ([event modifierFlags] & NSAlternateKeyMask) | 835 if ([event modifierFlags] & NSAlternateKeyMask) |
| 836 modifiers |= WebInputEvent::AltKey; | 836 modifiers |= WebInputEvent::AltKey; |
| 837 if ([event modifierFlags] & NSCommandKeyMask) | 837 if ([event modifierFlags] & NSCommandKeyMask) |
| 838 modifiers |= WebInputEvent::MetaKey; | 838 modifiers |= WebInputEvent::MetaKey; |
| 839 // TODO(port): Set mouse button states |
| 839 | 840 |
| 840 return modifiers; | 841 return modifiers; |
| 841 } | 842 } |
| 842 | 843 |
| 843 WebKeyboardEvent WebInputEventFactory::keyboardEvent(NSEvent* event) | 844 WebKeyboardEvent WebInputEventFactory::keyboardEvent(NSEvent* event) |
| 844 { | 845 { |
| 845 WebKeyboardEvent result; | 846 WebKeyboardEvent result; |
| 846 | 847 |
| 847 result.type = | 848 result.type = |
| 848 isKeyUpEvent(event) ? WebInputEvent::KeyUp : WebInputEvent::KeyDown; | 849 isKeyUpEvent(event) ? WebInputEvent::KeyUp : WebInputEvent::KeyDown; |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 892 [unmodifiedStr length] < WebKeyboardEvent::textLengthCap) { | 893 [unmodifiedStr length] < WebKeyboardEvent::textLengthCap) { |
| 893 [textStr getCharacters:&result.text[0]]; | 894 [textStr getCharacters:&result.text[0]]; |
| 894 [unmodifiedStr getCharacters:&result.unmodifiedText[0]]; | 895 [unmodifiedStr getCharacters:&result.unmodifiedText[0]]; |
| 895 } else | 896 } else |
| 896 ASSERT_NOT_REACHED(); | 897 ASSERT_NOT_REACHED(); |
| 897 | 898 |
| 898 [identifierStr getCString:&result.keyIdentifier[0] | 899 [identifierStr getCString:&result.keyIdentifier[0] |
| 899 maxLength:sizeof(result.keyIdentifier) | 900 maxLength:sizeof(result.keyIdentifier) |
| 900 encoding:NSASCIIStringEncoding]; | 901 encoding:NSASCIIStringEncoding]; |
| 901 | 902 |
| 903 result.timeStampSeconds = [event timestamp]; |
| 904 |
| 902 return result; | 905 return result; |
| 903 } | 906 } |
| 904 | 907 |
| 905 // WebMouseEvent -------------------------------------------------------------- | 908 // WebMouseEvent -------------------------------------------------------------- |
| 906 | 909 |
| 907 WebMouseEvent WebInputEventFactory::mouseEvent(NSEvent* event, NSView* view) | 910 WebMouseEvent WebInputEventFactory::mouseEvent(NSEvent* event, NSView* view) |
| 908 { | 911 { |
| 909 WebMouseEvent result; | 912 WebMouseEvent result; |
| 910 | 913 |
| 911 result.clickCount = 0; | 914 result.clickCount = 0; |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 963 } | 966 } |
| 964 | 967 |
| 965 NSPoint location = [NSEvent mouseLocation]; // global coordinates | 968 NSPoint location = [NSEvent mouseLocation]; // global coordinates |
| 966 result.globalX = location.x; | 969 result.globalX = location.x; |
| 967 result.globalY = location.y; | 970 result.globalY = location.y; |
| 968 | 971 |
| 969 NSPoint windowLocal = [event locationInWindow]; | 972 NSPoint windowLocal = [event locationInWindow]; |
| 970 location = [view convertPoint:windowLocal fromView:nil]; | 973 location = [view convertPoint:windowLocal fromView:nil]; |
| 971 result.y = [view frame].size.height - location.y; // flip y | 974 result.y = [view frame].size.height - location.y; // flip y |
| 972 result.x = location.x; | 975 result.x = location.x; |
| 976 result.windowX = result.x; |
| 977 result.windowY = result.y; |
| 973 | 978 |
| 974 result.modifiers = modifiersFromEvent(event); | 979 result.modifiers = modifiersFromEvent(event); |
| 975 | 980 |
| 976 result.timeStampSeconds = [event timestamp]; | 981 result.timeStampSeconds = [event timestamp]; |
| 977 | 982 |
| 978 return result; | 983 return result; |
| 979 } | 984 } |
| 980 | 985 |
| 981 // WebMouseWheelEvent --------------------------------------------------------- | 986 // WebMouseWheelEvent --------------------------------------------------------- |
| 982 | 987 |
| 983 WebMouseWheelEvent WebInputEventFactory::mouseWheelEvent(NSEvent* event, NSView* view) | 988 WebMouseWheelEvent WebInputEventFactory::mouseWheelEvent(NSEvent* event, NSView* view) |
| 984 { | 989 { |
| 985 WebMouseWheelEvent result; | 990 WebMouseWheelEvent result; |
| 986 | 991 |
| 987 result.type = WebInputEvent::MouseWheel; | 992 result.type = WebInputEvent::MouseWheel; |
| 988 result.button = WebMouseEvent::ButtonNone; | 993 result.button = WebMouseEvent::ButtonNone; |
| 989 | 994 |
| 990 result.modifiers = modifiersFromEvent(event); | 995 result.modifiers = modifiersFromEvent(event); |
| 991 | 996 |
| 992 // Set coordinates by translating event coordinates from screen to client. | 997 // Set coordinates by translating event coordinates from screen to client. |
| 993 NSPoint location = [NSEvent mouseLocation]; // global coordinates | 998 NSPoint location = [NSEvent mouseLocation]; // global coordinates |
| 994 result.globalX = location.x; | 999 result.globalX = location.x; |
| 995 result.globalY = location.y; | 1000 result.globalY = location.y; |
| 996 NSPoint windowLocal = [event locationInWindow]; | 1001 NSPoint windowLocal = [event locationInWindow]; |
| 997 location = [view convertPoint:windowLocal fromView:nil]; | 1002 location = [view convertPoint:windowLocal fromView:nil]; |
| 998 result.x = location.x; | 1003 result.x = location.x; |
| 999 result.y = [view frame].size.height - location.y; // flip y | 1004 result.y = [view frame].size.height - location.y; // flip y |
| 1005 result.windowX = result.x; |
| 1006 result.windowY = result.y; |
| 1000 | 1007 |
| 1001 // Of Mice and Men | 1008 // Of Mice and Men |
| 1002 // --------------- | 1009 // --------------- |
| 1003 // | 1010 // |
| 1004 // There are three types of scroll data available on a scroll wheel CGEvent. | 1011 // There are three types of scroll data available on a scroll wheel CGEvent. |
| 1005 // Apple's documentation ([1]) is rather vague in their differences, and not | 1012 // Apple's documentation ([1]) is rather vague in their differences, and not |
| 1006 // terribly helpful in deciding which to use. This is what's really going on. | 1013 // terribly helpful in deciding which to use. This is what's really going on. |
| 1007 // | 1014 // |
| 1008 // First, these events behave very differently depending on whether a standard | 1015 // First, these events behave very differently depending on whether a standard |
| 1009 // wheel mouse is used (one that scrolls in discrete units) or a | 1016 // wheel mouse is used (one that scrolls in discrete units) or a |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1118 result.deltaX = | 1125 result.deltaX = |
| 1119 CGEventGetIntegerValueField(cgEvent, kCGScrollWheelEventPointDeltaAxis2); | 1126 CGEventGetIntegerValueField(cgEvent, kCGScrollWheelEventPointDeltaAxis2); |
| 1120 } else { | 1127 } else { |
| 1121 // Convert wheel delta amount to a number of pixels to scroll. | 1128 // Convert wheel delta amount to a number of pixels to scroll. |
| 1122 static const double scrollbarPixelsPerCocoaTick = 40.0; | 1129 static const double scrollbarPixelsPerCocoaTick = 40.0; |
| 1123 | 1130 |
| 1124 result.deltaX = [event deltaX] * scrollbarPixelsPerCocoaTick; | 1131 result.deltaX = [event deltaX] * scrollbarPixelsPerCocoaTick; |
| 1125 result.deltaY = [event deltaY] * scrollbarPixelsPerCocoaTick; | 1132 result.deltaY = [event deltaY] * scrollbarPixelsPerCocoaTick; |
| 1126 } | 1133 } |
| 1127 | 1134 |
| 1135 result.timeStampSeconds = [event timestamp]; |
| 1136 |
| 1128 return result; | 1137 return result; |
| 1129 } | 1138 } |
| 1130 | 1139 |
| 1131 } // namespace WebKit | 1140 } // namespace WebKit |
| OLD | NEW |