Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(48)

Side by Side Diff: ui/views/test/event_generator_delegate_mac.mm

Issue 1119423003: Refactors away method implementations in ui::EventTargeter (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refactors ui::EventTargeter (rebased) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/events/test/test_event_targeter.cc ('k') | ui/views/view_targeter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 6
7 #import "base/mac/scoped_nsobject.h" 7 #import "base/mac/scoped_nsobject.h"
8 #import "base/mac/scoped_objc_class_swizzler.h" 8 #import "base/mac/scoped_objc_class_swizzler.h"
9 #include "base/memory/singleton.h" 9 #include "base/memory/singleton.h"
10 #include "ui/events/event_processor.h" 10 #include "ui/events/event_processor.h"
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 229
230 IMP CurrentEventMethod() { 230 IMP CurrentEventMethod() {
231 return swizzle_current_event_->GetOriginalImplementation(); 231 return swizzle_current_event_->GetOriginalImplementation();
232 } 232 }
233 233
234 NSWindow* window() { return window_.get(); } 234 NSWindow* window() { return window_.get(); }
235 ui::test::EventGenerator* owner() { return owner_; } 235 ui::test::EventGenerator* owner() { return owner_; }
236 236
237 // Overridden from ui::EventTarget: 237 // Overridden from ui::EventTarget:
238 bool CanAcceptEvent(const ui::Event& event) override { return true; } 238 bool CanAcceptEvent(const ui::Event& event) override { return true; }
239 ui::EventTarget* GetParentTarget() override { return NULL; } 239 ui::EventTarget* GetParentTarget() override { return nullptr; }
240 scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override; 240 scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override;
241 ui::EventTargeter* GetEventTargeter() override { return this; } 241 ui::EventTargeter* GetEventTargeter() override { return this; }
242 242
243 // Overridden from ui::EventHandler (via ui::EventTarget): 243 // Overridden from ui::EventHandler (via ui::EventTarget):
244 void OnMouseEvent(ui::MouseEvent* event) override; 244 void OnMouseEvent(ui::MouseEvent* event) override;
245 void OnKeyEvent(ui::KeyEvent* event) override; 245 void OnKeyEvent(ui::KeyEvent* event) override;
246 void OnTouchEvent(ui::TouchEvent* event) override; 246 void OnTouchEvent(ui::TouchEvent* event) override;
247 247
248 // Overridden from ui::EventSource: 248 // Overridden from ui::EventSource:
249 ui::EventProcessor* GetEventProcessor() override { return this; } 249 ui::EventProcessor* GetEventProcessor() override { return this; }
250 250
251 // Overridden from ui::EventProcessor: 251 // Overridden from ui::EventProcessor:
252 ui::EventTarget* GetRootTarget() override { return this; } 252 ui::EventTarget* GetRootTarget() override { return this; }
253 253
254 // Overridden from ui::EventDispatcherDelegate (via ui::EventProcessor): 254 // Overridden from ui::EventDispatcherDelegate (via ui::EventProcessor):
255 bool CanDispatchToTarget(EventTarget* target) override { return true; } 255 bool CanDispatchToTarget(EventTarget* target) override { return true; }
256 256
257 // Overridden from ui::EventTargeter:
258 ui::EventTarget* FindTargetForEvent(ui::EventTarget* root,
259 ui::Event* event) override {
260 return root;
261 }
262 ui::EventTarget* FindNextBestTarget(ui::EventTarget* previous_target,
263 ui::Event* event) override {
264 return nullptr;
265 }
266
257 // Overridden from ui::test::EventGeneratorDelegate: 267 // Overridden from ui::test::EventGeneratorDelegate:
258 void SetContext(ui::test::EventGenerator* owner, 268 void SetContext(ui::test::EventGenerator* owner,
259 gfx::NativeWindow root_window, 269 gfx::NativeWindow root_window,
260 gfx::NativeWindow window) override; 270 gfx::NativeWindow window) override;
261 ui::EventTarget* GetTargetAt(const gfx::Point& location) override { 271 ui::EventTarget* GetTargetAt(const gfx::Point& location) override {
262 return this; 272 return this;
263 } 273 }
264 ui::EventSource* GetEventSource(ui::EventTarget* target) override { 274 ui::EventSource* GetEventSource(ui::EventTarget* target) override {
265 return this; 275 return this;
266 } 276 }
(...skipping 16 matching lines...) Expand all
283 ui::test::EventGenerator* owner_; 293 ui::test::EventGenerator* owner_;
284 base::scoped_nsobject<NSWindow> window_; 294 base::scoped_nsobject<NSWindow> window_;
285 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_pressed_; 295 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_pressed_;
286 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_location_; 296 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_location_;
287 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_current_event_; 297 scoped_ptr<base::mac::ScopedObjCClassSwizzler> swizzle_current_event_;
288 base::scoped_nsobject<NSMenu> fake_menu_; 298 base::scoped_nsobject<NSMenu> fake_menu_;
289 299
290 DISALLOW_COPY_AND_ASSIGN(EventGeneratorDelegateMac); 300 DISALLOW_COPY_AND_ASSIGN(EventGeneratorDelegateMac);
291 }; 301 };
292 302
293 EventGeneratorDelegateMac::EventGeneratorDelegateMac() : owner_(NULL) { 303 EventGeneratorDelegateMac::EventGeneratorDelegateMac() : owner_(nullptr) {
294 DCHECK(!ui::test::EventGenerator::default_delegate); 304 DCHECK(!ui::test::EventGenerator::default_delegate);
295 ui::test::EventGenerator::default_delegate = this; 305 ui::test::EventGenerator::default_delegate = this;
296 // Install a fake "edit" menu. This is normally provided by Chrome's 306 // Install a fake "edit" menu. This is normally provided by Chrome's
297 // MainMenu.xib, but src/ui shouldn't depend on that. 307 // MainMenu.xib, but src/ui shouldn't depend on that.
298 fake_menu_.reset([[NSMenu alloc] initWithTitle:@"Edit"]); 308 fake_menu_.reset([[NSMenu alloc] initWithTitle:@"Edit"]);
299 struct { 309 struct {
300 NSString* title; 310 NSString* title;
301 SEL action; 311 SEL action;
302 NSString* key_equivalent; 312 NSString* key_equivalent;
303 } fake_menu_item[] = { 313 } fake_menu_item[] = {
304 {@"Undo", @selector(undo:), @"z"}, 314 {@"Undo", @selector(undo:), @"z"},
305 {@"Redo", @selector(redo:), @"Z"}, 315 {@"Redo", @selector(redo:), @"Z"},
306 {@"Copy", @selector(copy:), @"c"}, 316 {@"Copy", @selector(copy:), @"c"},
307 {@"Cut", @selector(cut:), @"x"}, 317 {@"Cut", @selector(cut:), @"x"},
308 {@"Paste", @selector(paste:), @"v"}, 318 {@"Paste", @selector(paste:), @"v"},
309 {@"Select All", @selector(selectAll:), @"a"}, 319 {@"Select All", @selector(selectAll:), @"a"},
310 }; 320 };
311 for (size_t i = 0; i < arraysize(fake_menu_item); ++i) { 321 for (size_t i = 0; i < arraysize(fake_menu_item); ++i) {
312 [fake_menu_ insertItemWithTitle:fake_menu_item[i].title 322 [fake_menu_ insertItemWithTitle:fake_menu_item[i].title
313 action:fake_menu_item[i].action 323 action:fake_menu_item[i].action
314 keyEquivalent:fake_menu_item[i].key_equivalent 324 keyEquivalent:fake_menu_item[i].key_equivalent
315 atIndex:i]; 325 atIndex:i];
316 } 326 }
317 } 327 }
318 328
319 EventGeneratorDelegateMac::~EventGeneratorDelegateMac() { 329 EventGeneratorDelegateMac::~EventGeneratorDelegateMac() {
320 DCHECK_EQ(this, ui::test::EventGenerator::default_delegate); 330 DCHECK_EQ(this, ui::test::EventGenerator::default_delegate);
321 ui::test::EventGenerator::default_delegate = NULL; 331 ui::test::EventGenerator::default_delegate = nullptr;
322 } 332 }
323 333
324 scoped_ptr<ui::EventTargetIterator> 334 scoped_ptr<ui::EventTargetIterator>
325 EventGeneratorDelegateMac::GetChildIterator() const { 335 EventGeneratorDelegateMac::GetChildIterator() const {
326 // Return NULL to dispatch all events to the result of GetRootTarget(). 336 // Return nullptr to dispatch all events to the result of GetRootTarget().
327 return nullptr; 337 return nullptr;
328 } 338 }
329 339
330 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) { 340 void EventGeneratorDelegateMac::OnMouseEvent(ui::MouseEvent* event) {
331 NSEvent* ns_event = CreateMouseEventInWindow(window_, 341 NSEvent* ns_event = CreateMouseEventInWindow(window_,
332 event->type(), 342 event->type(),
333 event->location(), 343 event->location(),
334 event->changed_button_flags()); 344 event->changed_button_flags());
335 if (owner_->targeting_application()) 345 if (owner_->targeting_application())
336 [NSApp sendEvent:ns_event]; 346 [NSApp sendEvent:ns_event];
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
463 - (NSEvent*)currentEvent { 473 - (NSEvent*)currentEvent {
464 if (g_current_event) 474 if (g_current_event)
465 return g_current_event; 475 return g_current_event;
466 476
467 // Find the original implementation and invoke it. 477 // Find the original implementation and invoke it.
468 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod(); 478 IMP original = EventGeneratorDelegateMac::GetInstance()->CurrentEventMethod();
469 return original(self, _cmd); 479 return original(self, _cmd);
470 } 480 }
471 481
472 @end 482 @end
OLDNEW
« no previous file with comments | « ui/events/test/test_event_targeter.cc ('k') | ui/views/view_targeter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698