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

Side by Side Diff: ash/drag_drop/drag_drop_controller.cc

Issue 2833163002: Change ui cursor identifiers to an enum class. (Closed)
Patch Set: OK, it can't be explicit for mac. Created 3 years, 8 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 | « ash/display/mirror_window_controller_unittest.cc ('k') | ash/extended_desktop_unittest.cc » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "ash/drag_drop/drag_drop_controller.h" 5 #include "ash/drag_drop/drag_drop_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "ash/drag_drop/drag_drop_tracker.h" 9 #include "ash/drag_drop/drag_drop_tracker.h"
10 #include "ash/drag_drop/drag_image_view.h" 10 #include "ash/drag_drop/drag_image_view.h"
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
429 } else { 429 } else {
430 aura::client::DragDropDelegate* delegate = 430 aura::client::DragDropDelegate* delegate =
431 aura::client::GetDragDropDelegate(drag_window_); 431 aura::client::GetDragDropDelegate(drag_window_);
432 if (delegate) { 432 if (delegate) {
433 ui::DropTargetEvent e(*drag_data_, gfx::Point(), gfx::Point(), 433 ui::DropTargetEvent e(*drag_data_, gfx::Point(), gfx::Point(),
434 drag_operation_); 434 drag_operation_);
435 e.set_location_f(event.location_f()); 435 e.set_location_f(event.location_f());
436 e.set_root_location_f(event.root_location_f()); 436 e.set_root_location_f(event.root_location_f());
437 e.set_flags(event.flags()); 437 e.set_flags(event.flags());
438 op = delegate->OnDragUpdated(e); 438 op = delegate->OnDragUpdated(e);
439 gfx::NativeCursor cursor = ui::kCursorNoDrop; 439 gfx::NativeCursor cursor = ui::CursorType::kNoDrop;
440 if (op & ui::DragDropTypes::DRAG_COPY) 440 if (op & ui::DragDropTypes::DRAG_COPY)
441 cursor = ui::kCursorCopy; 441 cursor = ui::CursorType::kCopy;
442 else if (op & ui::DragDropTypes::DRAG_LINK) 442 else if (op & ui::DragDropTypes::DRAG_LINK)
443 cursor = ui::kCursorAlias; 443 cursor = ui::CursorType::kAlias;
444 else if (op & ui::DragDropTypes::DRAG_MOVE) 444 else if (op & ui::DragDropTypes::DRAG_MOVE)
445 cursor = ui::kCursorGrabbing; 445 cursor = ui::CursorType::kGrabbing;
446 ash::Shell::Get()->cursor_manager()->SetCursor(cursor); 446 ash::Shell::Get()->cursor_manager()->SetCursor(cursor);
447 } 447 }
448 } 448 }
449 449
450 DCHECK(drag_image_.get()); 450 DCHECK(drag_image_.get());
451 if (drag_image_->visible()) { 451 if (drag_image_->visible()) {
452 gfx::Point root_location_in_screen = event.root_location(); 452 gfx::Point root_location_in_screen = event.root_location();
453 ::wm::ConvertPointToScreen(target->GetRootWindow(), 453 ::wm::ConvertPointToScreen(target->GetRootWindow(),
454 &root_location_in_screen); 454 &root_location_in_screen);
455 drag_image_->SetScreenPosition(root_location_in_screen - 455 drag_image_->SetScreenPosition(root_location_in_screen -
456 drag_image_offset_); 456 drag_image_offset_);
457 drag_image_->SetTouchDragOperation(op); 457 drag_image_->SetTouchDragOperation(op);
458 } 458 }
459 } 459 }
460 460
461 void DragDropController::Drop(aura::Window* target, 461 void DragDropController::Drop(aura::Window* target,
462 const ui::LocatedEvent& event) { 462 const ui::LocatedEvent& event) {
463 ash::Shell::Get()->cursor_manager()->SetCursor(ui::kCursorPointer); 463 ash::Shell::Get()->cursor_manager()->SetCursor(ui::CursorType::kPointer);
464 464
465 // We must guarantee that a target gets a OnDragEntered before Drop. WebKit 465 // We must guarantee that a target gets a OnDragEntered before Drop. WebKit
466 // depends on not getting a Drop without DragEnter. This behavior is 466 // depends on not getting a Drop without DragEnter. This behavior is
467 // consistent with drag/drop on other platforms. 467 // consistent with drag/drop on other platforms.
468 if (target != drag_window_) 468 if (target != drag_window_)
469 DragUpdate(target, event); 469 DragUpdate(target, event);
470 DCHECK(target == drag_window_); 470 DCHECK(target == drag_window_);
471 471
472 aura::client::DragDropDelegate* delegate = 472 aura::client::DragDropDelegate* delegate =
473 aura::client::GetDragDropDelegate(target); 473 aura::client::GetDragDropDelegate(target);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 } else { 508 } else {
509 // See comment about this in OnGestureEvent(). 509 // See comment about this in OnGestureEvent().
510 base::ThreadTaskRunnerHandle::Get()->PostTask( 510 base::ThreadTaskRunnerHandle::Get()->PostTask(
511 FROM_HERE, base::Bind(&DragDropController::ForwardPendingLongTap, 511 FROM_HERE, base::Bind(&DragDropController::ForwardPendingLongTap,
512 weak_factory_.GetWeakPtr())); 512 weak_factory_.GetWeakPtr()));
513 } 513 }
514 } 514 }
515 } 515 }
516 516
517 void DragDropController::DoDragCancel(int drag_cancel_animation_duration_ms) { 517 void DragDropController::DoDragCancel(int drag_cancel_animation_duration_ms) {
518 ash::Shell::Get()->cursor_manager()->SetCursor(ui::kCursorPointer); 518 ash::Shell::Get()->cursor_manager()->SetCursor(ui::CursorType::kPointer);
519 519
520 // |drag_window_| can be NULL if we have just started the drag and have not 520 // |drag_window_| can be NULL if we have just started the drag and have not
521 // received any DragUpdates, or, if the |drag_window_| gets destroyed during 521 // received any DragUpdates, or, if the |drag_window_| gets destroyed during
522 // a drag/drop. 522 // a drag/drop.
523 aura::client::DragDropDelegate* delegate = 523 aura::client::DragDropDelegate* delegate =
524 drag_window_ ? aura::client::GetDragDropDelegate(drag_window_) : NULL; 524 drag_window_ ? aura::client::GetDragDropDelegate(drag_window_) : NULL;
525 if (delegate) 525 if (delegate)
526 delegate->OnDragExited(); 526 delegate->OnDragExited();
527 527
528 Cleanup(); 528 Cleanup();
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 if (drag_window_) 575 if (drag_window_)
576 drag_window_->RemoveObserver(this); 576 drag_window_->RemoveObserver(this);
577 drag_window_ = NULL; 577 drag_window_ = NULL;
578 drag_data_ = NULL; 578 drag_data_ = NULL;
579 // Cleanup can be called again while deleting DragDropTracker, so delete 579 // Cleanup can be called again while deleting DragDropTracker, so delete
580 // the pointer with a local variable to avoid double free. 580 // the pointer with a local variable to avoid double free.
581 std::unique_ptr<ash::DragDropTracker> holder = std::move(drag_drop_tracker_); 581 std::unique_ptr<ash::DragDropTracker> holder = std::move(drag_drop_tracker_);
582 } 582 }
583 583
584 } // namespace ash 584 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/mirror_window_controller_unittest.cc ('k') | ash/extended_desktop_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698