OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #import <Cocoa/Cocoa.h> | 5 #import <Cocoa/Cocoa.h> |
6 #include <stddef.h> | 6 #include <stddef.h> |
7 | 7 |
8 #import "base/mac/scoped_nsobject.h" | 8 #import "base/mac/scoped_nsobject.h" |
9 #import "base/mac/scoped_objc_class_swizzler.h" | 9 #import "base/mac/scoped_objc_class_swizzler.h" |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
234 IMP CurrentEventMethod() { | 234 IMP CurrentEventMethod() { |
235 return swizzle_current_event_->GetOriginalImplementation(); | 235 return swizzle_current_event_->GetOriginalImplementation(); |
236 } | 236 } |
237 | 237 |
238 NSWindow* window() { return window_.get(); } | 238 NSWindow* window() { return window_.get(); } |
239 ui::test::EventGenerator* owner() { return owner_; } | 239 ui::test::EventGenerator* owner() { return owner_; } |
240 | 240 |
241 // Overridden from ui::EventTarget: | 241 // Overridden from ui::EventTarget: |
242 bool CanAcceptEvent(const ui::Event& event) override { return true; } | 242 bool CanAcceptEvent(const ui::Event& event) override { return true; } |
243 ui::EventTarget* GetParentTarget() override { return nullptr; } | 243 ui::EventTarget* GetParentTarget() override { return nullptr; } |
244 scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override; | 244 std::unique_ptr<ui::EventTargetIterator> GetChildIterator() const override; |
245 ui::EventTargeter* GetEventTargeter() override { return this; } | 245 ui::EventTargeter* GetEventTargeter() override { return this; } |
246 | 246 |
247 // Overridden from ui::EventHandler: | 247 // Overridden from ui::EventHandler: |
248 void OnMouseEvent(ui::MouseEvent* event) override; | 248 void OnMouseEvent(ui::MouseEvent* event) override; |
249 void OnKeyEvent(ui::KeyEvent* event) override; | 249 void OnKeyEvent(ui::KeyEvent* event) override; |
250 void OnTouchEvent(ui::TouchEvent* event) override; | 250 void OnTouchEvent(ui::TouchEvent* event) override; |
251 | 251 |
252 // Overridden from ui::EventSource: | 252 // Overridden from ui::EventSource: |
253 ui::EventProcessor* GetEventProcessor() override { return this; } | 253 ui::EventProcessor* GetEventProcessor() override { return this; } |
254 | 254 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 } | 295 } |
296 | 296 |
297 private: | 297 private: |
298 friend struct base::DefaultSingletonTraits<EventGeneratorDelegateMac>; | 298 friend struct base::DefaultSingletonTraits<EventGeneratorDelegateMac>; |
299 | 299 |
300 EventGeneratorDelegateMac(); | 300 EventGeneratorDelegateMac(); |
301 ~EventGeneratorDelegateMac() override; | 301 ~EventGeneratorDelegateMac() override; |
302 | 302 |
303 ui::test::EventGenerator* owner_; | 303 ui::test::EventGenerator* owner_; |
304 base::scoped_nsobject<NSWindow> window_; | 304 base::scoped_nsobject<NSWindow> window_; |
305 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_pressed_; | 305 std::unique_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_pressed_; |
306 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_location_; | 306 std::unique_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_location_; |
307 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_current_event_; | 307 std::unique_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_current_event_; |
308 base::scoped_nsobject<NSMenu> fake_menu_; | 308 base::scoped_nsobject<NSMenu> fake_menu_; |
309 | 309 |
310 DISALLOW_COPY_AND_ASSIGN(EventGeneratorDelegateMac); | 310 DISALLOW_COPY_AND_ASSIGN(EventGeneratorDelegateMac); |
311 }; | 311 }; |
312 | 312 |
313 EventGeneratorDelegateMac::EventGeneratorDelegateMac() : owner_(nullptr) { | 313 EventGeneratorDelegateMac::EventGeneratorDelegateMac() : owner_(nullptr) { |
314 DCHECK(!ui::test::EventGenerator::default_delegate); | 314 DCHECK(!ui::test::EventGenerator::default_delegate); |
315 ui::test::EventGenerator::default_delegate = this; | 315 ui::test::EventGenerator::default_delegate = this; |
316 SetTargetHandler(this); | 316 SetTargetHandler(this); |
317 // Install a fake "edit" menu. This is normally provided by Chrome's | 317 // Install a fake "edit" menu. This is normally provided by Chrome's |
(...skipping 17 matching lines...) Expand all Loading... |
335 keyEquivalent:fake_menu_item[i].key_equivalent | 335 keyEquivalent:fake_menu_item[i].key_equivalent |
336 atIndex:i]; | 336 atIndex:i]; |
337 } | 337 } |
338 } | 338 } |
339 | 339 |
340 EventGeneratorDelegateMac::~EventGeneratorDelegateMac() { | 340 EventGeneratorDelegateMac::~EventGeneratorDelegateMac() { |
341 DCHECK_EQ(this, ui::test::EventGenerator::default_delegate); | 341 DCHECK_EQ(this, ui::test::EventGenerator::default_delegate); |
342 ui::test::EventGenerator::default_delegate = nullptr; | 342 ui::test::EventGenerator::default_delegate = nullptr; |
343 } | 343 } |
344 | 344 |
345 scoped_ptr<ui::EventTargetIterator> | 345 std::unique_ptr<ui::EventTargetIterator> |
346 EventGeneratorDelegateMac::GetChildIterator() const { | 346 EventGeneratorDelegateMac::GetChildIterator() const { |
347 // Return nullptr to dispatch all events to the result of GetRootTarget(). | 347 // Return nullptr to dispatch all events to the result of GetRootTarget(). |
348 return nullptr; | 348 return nullptr; |
349 } | 349 } |
350 | 350 |
351 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) { | 351 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) { |
352 NSEvent* ns_event = CreateMouseEventInWindow(window_, | 352 NSEvent* ns_event = CreateMouseEventInWindow(window_, |
353 event->type(), | 353 event->type(), |
354 event->location(), | 354 event->location(), |
355 event->changed_button_flags()); | 355 event->changed_button_flags()); |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 - (NSEvent*)currentEvent { | 484 - (NSEvent*)currentEvent { |
485 if (g_current_event) | 485 if (g_current_event) |
486 return g_current_event; | 486 return g_current_event; |
487 | 487 |
488 // Find the original implementation and invoke it. | 488 // Find the original implementation and invoke it. |
489 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod(); | 489 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod(); |
490 return original(self, _cmd); | 490 return original(self, _cmd); |
491 } | 491 } |
492 | 492 |
493 @end | 493 @end |
OLD | NEW |