| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/base/test/ui_controls.h" | 5 #include "ui/base/test/ui_controls.h" |
| 6 | 6 |
| 7 #import <Cocoa/Cocoa.h> | 7 #import <Cocoa/Cocoa.h> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 72 bool command, | 72 bool command, |
| 73 std::vector<NSEvent*>* events) { | 73 std::vector<NSEvent*>* events) { |
| 74 NSEvent* event = nil; | 74 NSEvent* event = nil; |
| 75 NSUInteger flags = 0; | 75 NSUInteger flags = 0; |
| 76 if (control) { | 76 if (control) { |
| 77 flags |= NSControlKeyMask; | 77 flags |= NSControlKeyMask; |
| 78 event = SynthesizeKeyEvent(window, true, ui::VKEY_CONTROL, flags); | 78 event = SynthesizeKeyEvent(window, true, ui::VKEY_CONTROL, flags); |
| 79 DCHECK(event); | 79 DCHECK(event); |
| 80 events->push_back(event); | 80 events->push_back(event); |
| 81 } | 81 } |
| 82 if (command) { |
| 83 flags |= NSCommandKeyMask; |
| 84 event = SynthesizeKeyEvent(window, true, ui::VKEY_COMMAND, flags); |
| 85 DCHECK(event); |
| 86 events->push_back(event); |
| 87 } |
| 82 if (shift) { | 88 if (shift) { |
| 83 flags |= NSShiftKeyMask; | 89 flags |= NSShiftKeyMask; |
| 84 event = SynthesizeKeyEvent(window, true, ui::VKEY_SHIFT, flags); | 90 event = SynthesizeKeyEvent(window, true, ui::VKEY_SHIFT, flags); |
| 85 DCHECK(event); | 91 DCHECK(event); |
| 86 events->push_back(event); | 92 events->push_back(event); |
| 87 } | 93 } |
| 88 if (alt) { | 94 if (alt) { |
| 89 flags |= NSAlternateKeyMask; | 95 flags |= NSAlternateKeyMask; |
| 90 event = SynthesizeKeyEvent(window, true, ui::VKEY_MENU, flags); | 96 event = SynthesizeKeyEvent(window, true, ui::VKEY_MENU, flags); |
| 91 DCHECK(event); | 97 DCHECK(event); |
| 92 events->push_back(event); | 98 events->push_back(event); |
| 93 } | 99 } |
| 94 if (command) { | |
| 95 flags |= NSCommandKeyMask; | |
| 96 event = SynthesizeKeyEvent(window, true, ui::VKEY_COMMAND, flags); | |
| 97 DCHECK(event); | |
| 98 events->push_back(event); | |
| 99 } | |
| 100 | 100 |
| 101 event = SynthesizeKeyEvent(window, true, keycode, flags); | 101 event = SynthesizeKeyEvent(window, true, keycode, flags); |
| 102 DCHECK(event); | 102 DCHECK(event); |
| 103 events->push_back(event); | 103 events->push_back(event); |
| 104 event = SynthesizeKeyEvent(window, false, keycode, flags); | 104 event = SynthesizeKeyEvent(window, false, keycode, flags); |
| 105 DCHECK(event); | 105 DCHECK(event); |
| 106 events->push_back(event); | 106 events->push_back(event); |
| 107 | 107 |
| 108 if (command) { | |
| 109 flags &= ~NSCommandKeyMask; | |
| 110 event = SynthesizeKeyEvent(window, false, ui::VKEY_COMMAND, flags); | |
| 111 DCHECK(event); | |
| 112 events->push_back(event); | |
| 113 } | |
| 114 if (alt) { | 108 if (alt) { |
| 115 flags &= ~NSAlternateKeyMask; | 109 flags &= ~NSAlternateKeyMask; |
| 116 event = SynthesizeKeyEvent(window, false, ui::VKEY_MENU, flags); | 110 event = SynthesizeKeyEvent(window, false, ui::VKEY_MENU, flags); |
| 117 DCHECK(event); | 111 DCHECK(event); |
| 118 events->push_back(event); | 112 events->push_back(event); |
| 119 } | 113 } |
| 120 if (shift) { | 114 if (shift) { |
| 121 flags &= ~NSShiftKeyMask; | 115 flags &= ~NSShiftKeyMask; |
| 122 event = SynthesizeKeyEvent(window, false, ui::VKEY_SHIFT, flags); | 116 event = SynthesizeKeyEvent(window, false, ui::VKEY_SHIFT, flags); |
| 123 DCHECK(event); | 117 DCHECK(event); |
| 124 events->push_back(event); | 118 events->push_back(event); |
| 125 } | 119 } |
| 120 if (command) { |
| 121 flags &= ~NSCommandKeyMask; |
| 122 event = SynthesizeKeyEvent(window, false, ui::VKEY_COMMAND, flags); |
| 123 DCHECK(event); |
| 124 events->push_back(event); |
| 125 } |
| 126 if (control) { | 126 if (control) { |
| 127 flags &= ~NSControlKeyMask; | 127 flags &= ~NSControlKeyMask; |
| 128 event = SynthesizeKeyEvent(window, false, ui::VKEY_CONTROL, flags); | 128 event = SynthesizeKeyEvent(window, false, ui::VKEY_CONTROL, flags); |
| 129 DCHECK(event); | 129 DCHECK(event); |
| 130 events->push_back(event); | 130 events->push_back(event); |
| 131 } | 131 } |
| 132 } | 132 } |
| 133 | 133 |
| 134 // A helper function to watch for the event queue. The specific task will be | 134 // A helper function to watch for the event queue. The specific task will be |
| 135 // fired when there is no more event in the queue. | 135 // fired when there is no more event in the queue. |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 void RunClosureAfterAllPendingUIEvents(const base::Closure& closure) { | 410 void RunClosureAfterAllPendingUIEvents(const base::Closure& closure) { |
| 411 base::ThreadTaskRunnerHandle::Get()->PostTask( | 411 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 412 FROM_HERE, base::Bind(&EventQueueWatcher, closure)); | 412 FROM_HERE, base::Bind(&EventQueueWatcher, closure)); |
| 413 } | 413 } |
| 414 | 414 |
| 415 bool IsFullKeyboardAccessEnabled() { | 415 bool IsFullKeyboardAccessEnabled() { |
| 416 return [NSApp isFullKeyboardAccessEnabled]; | 416 return [NSApp isFullKeyboardAccessEnabled]; |
| 417 } | 417 } |
| 418 | 418 |
| 419 } // namespace ui_controls | 419 } // namespace ui_controls |
| OLD | NEW |