Chromium Code Reviews| Index: chrome/browser/ui/cocoa/event_utils.mm |
| diff --git a/chrome/browser/ui/cocoa/event_utils.mm b/chrome/browser/ui/cocoa/event_utils.mm |
| index 32ad8f80c649cc2995b0335adc66fd225b714a37..de4bfc61dc34af716c0c28c40214716a1e48ce2d 100644 |
| --- a/chrome/browser/ui/cocoa/event_utils.mm |
| +++ b/chrome/browser/ui/cocoa/event_utils.mm |
| @@ -4,23 +4,66 @@ |
| #import "chrome/browser/ui/cocoa/event_utils.h" |
| +#include "chrome/browser/event_disposition.h" |
| #include "content/browser/disposition_utils.h" |
| +#include "ui/base/events.h" |
| + |
| +namespace { |
|
Avi (use Gerrit)
2011/08/30 20:11:17
mark end of namespace with // namespace, and with
shinyak (Google)
2011/08/31 06:09:23
Done.
|
| + bool isLeftButtonEvent(NSEvent* event) { |
| + NSEventType type = [event type]; |
| + return type == NSLeftMouseDown || |
| + type == NSLeftMouseDragged || |
| + type == NSLeftMouseUp; |
| + } |
| + |
| + bool isRightButtonEvent(NSEvent* event) { |
| + NSEventType type = [event type]; |
| + return type == NSRightMouseDown || |
| + type == NSRightMouseDragged || |
| + type == NSRightMouseUp; |
| + } |
| + |
| + bool isMiddleButtonEvent(NSEvent* event) { |
| + if ([event buttonNumber] != 2) |
| + return false; |
| + |
| + NSEventType type = [event type]; |
| + return type == NSOtherMouseDown || |
| + type == NSOtherMouseDragged || |
| + type == NSOtherMouseUp; |
| + } |
| +} |
| namespace event_utils { |
| +// Retrieves a bitsum of ui::EventFlags from NSEvent. |
| +int EventFlagsFromNSEvent(NSEvent* event) { |
| + NSUInteger modifiers = [event modifierFlags]; |
| + return EventFlagsFromNSEventWithModifiers(event, modifiers); |
| +} |
| + |
| +int EventFlagsFromNSEventWithModifiers(NSEvent* event, NSUInteger modifiers) { |
| + int flags = 0; |
| + flags |= (modifiers & NSAlphaShiftKeyMask) ? ui::EF_CAPS_LOCK_DOWN : 0; |
| + flags |= (modifiers & NSShiftKeyMask) ? ui::EF_SHIFT_DOWN : 0; |
| + flags |= (modifiers & NSControlKeyMask) ? ui::EF_CONTROL_DOWN : 0; |
| + flags |= (modifiers & NSAlternateKeyMask) ? ui::EF_ALT_DOWN : 0; |
| + flags |= (modifiers & NSCommandKeyMask) ? ui::EF_COMMAND_DOWN : 0; |
| + flags |= isLeftButtonEvent(event) ? ui::EF_LEFT_BUTTON_DOWN : 0; |
| + flags |= isRightButtonEvent(event) ? ui::EF_RIGHT_BUTTON_DOWN : 0; |
| + flags |= isMiddleButtonEvent(event) ? ui::EF_MIDDLE_BUTTON_DOWN : 0; |
| + return flags; |
| +} |
| + |
| WindowOpenDisposition WindowOpenDispositionFromNSEvent(NSEvent* event) { |
| NSUInteger modifiers = [event modifierFlags]; |
| return WindowOpenDispositionFromNSEventWithFlags(event, modifiers); |
| } |
| WindowOpenDisposition WindowOpenDispositionFromNSEventWithFlags( |
| - NSEvent* event, NSUInteger flags) { |
| - return disposition_utils::DispositionFromClick( |
| - [event buttonNumber] == 2, |
| - flags & NSAlternateKeyMask, |
| - flags & NSControlKeyMask, |
| - flags & NSCommandKeyMask, |
| - flags & NSShiftKeyMask); |
| + NSEvent* event, NSUInteger modifiers) { |
| + int event_flags = EventFlagsFromNSEventWithModifiers(event, modifiers); |
| + return browser::DispositionFromEventFlags(event_flags); |
| } |
| } // namespace event_utils |