| OLD | NEW |
| 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/shelf/shelf_view.h" | 5 #include "ash/shelf/shelf_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ash/ash_constants.h" | 9 #include "ash/ash_constants.h" |
| 10 #include "ash/ash_switches.h" | 10 #include "ash/ash_switches.h" |
| (...skipping 712 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 723 // the call in ShelfView::ButtonPressed(...). | 723 // the call in ShelfView::ButtonPressed(...). |
| 724 is_repost_event_ = IsRepostEvent(event) && (last_pressed_index_ == index); | 724 is_repost_event_ = IsRepostEvent(event) && (last_pressed_index_ == index); |
| 725 | 725 |
| 726 CHECK_EQ(ShelfButton::kViewClassName, view->GetClassName()); | 726 CHECK_EQ(ShelfButton::kViewClassName, view->GetClassName()); |
| 727 drag_view_ = static_cast<ShelfButton*>(view); | 727 drag_view_ = static_cast<ShelfButton*>(view); |
| 728 drag_origin_ = gfx::Point(event.x(), event.y()); | 728 drag_origin_ = gfx::Point(event.x(), event.y()); |
| 729 UMA_HISTOGRAM_ENUMERATION("Ash.ShelfAlignmentUsage", | 729 UMA_HISTOGRAM_ENUMERATION("Ash.ShelfAlignmentUsage", |
| 730 shelf_->SelectValueForShelfAlignment( | 730 shelf_->SelectValueForShelfAlignment( |
| 731 SHELF_ALIGNMENT_UMA_ENUM_VALUE_BOTTOM, | 731 SHELF_ALIGNMENT_UMA_ENUM_VALUE_BOTTOM, |
| 732 SHELF_ALIGNMENT_UMA_ENUM_VALUE_LEFT, | 732 SHELF_ALIGNMENT_UMA_ENUM_VALUE_LEFT, |
| 733 SHELF_ALIGNMENT_UMA_ENUM_VALUE_RIGHT, -1), | 733 SHELF_ALIGNMENT_UMA_ENUM_VALUE_RIGHT), |
| 734 SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT); | 734 SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT); |
| 735 } | 735 } |
| 736 | 736 |
| 737 void ShelfView::PointerDraggedOnButton(views::View* view, | 737 void ShelfView::PointerDraggedOnButton(views::View* view, |
| 738 Pointer pointer, | 738 Pointer pointer, |
| 739 const ui::LocatedEvent& event) { | 739 const ui::LocatedEvent& event) { |
| 740 // To prepare all drag types (moving an item in the shelf and dragging off), | 740 // To prepare all drag types (moving an item in the shelf and dragging off), |
| 741 // we should check the x-axis and y-axis offset. | 741 // we should check the x-axis and y-axis offset. |
| 742 if (!dragging() && drag_view_ && | 742 if (!dragging() && drag_view_ && |
| 743 ((std::abs(event.x() - drag_origin_.x()) >= kMinimumDragDistance) || | 743 ((std::abs(event.x() - drag_origin_.x()) >= kMinimumDragDistance) || |
| (...skipping 1048 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1792 anchor = source->GetBoundsInScreen() + | 1792 anchor = source->GetBoundsInScreen() + |
| 1793 (window->GetTargetBounds().origin() - window->bounds().origin()); | 1793 (window->GetTargetBounds().origin() - window->bounds().origin()); |
| 1794 | 1794 |
| 1795 // Adjust the anchor location for shelf items with asymmetrical borders. | 1795 // Adjust the anchor location for shelf items with asymmetrical borders. |
| 1796 if (source->border()) | 1796 if (source->border()) |
| 1797 anchor.Inset(source->border()->GetInsets()); | 1797 anchor.Inset(source->border()->GetInsets()); |
| 1798 | 1798 |
| 1799 // Determine the menu alignment dependent on the shelf. | 1799 // Determine the menu alignment dependent on the shelf. |
| 1800 menu_alignment = shelf_->SelectValueForShelfAlignment( | 1800 menu_alignment = shelf_->SelectValueForShelfAlignment( |
| 1801 views::MENU_ANCHOR_BUBBLE_ABOVE, views::MENU_ANCHOR_BUBBLE_RIGHT, | 1801 views::MENU_ANCHOR_BUBBLE_ABOVE, views::MENU_ANCHOR_BUBBLE_RIGHT, |
| 1802 views::MENU_ANCHOR_BUBBLE_LEFT, views::MENU_ANCHOR_BUBBLE_BELOW); | 1802 views::MENU_ANCHOR_BUBBLE_LEFT); |
| 1803 } | 1803 } |
| 1804 // If this is deleted while the menu is running, the shelf will also be gone. | 1804 // If this is deleted while the menu is running, the shelf will also be gone. |
| 1805 bool got_deleted = false; | 1805 bool got_deleted = false; |
| 1806 got_deleted_ = &got_deleted; | 1806 got_deleted_ = &got_deleted; |
| 1807 | 1807 |
| 1808 ShelfWidget* shelf_widget = shelf_->shelf_widget(); | 1808 ShelfWidget* shelf_widget = shelf_->shelf_widget(); |
| 1809 shelf_widget->ForceUndimming(true); | 1809 shelf_widget->ForceUndimming(true); |
| 1810 // NOTE: if you convert to HAS_MNEMONICS be sure to update menu building code. | 1810 // NOTE: if you convert to HAS_MNEMONICS be sure to update menu building code. |
| 1811 if (launcher_menu_runner_->RunMenuAt(source->GetWidget(), nullptr, anchor, | 1811 if (launcher_menu_runner_->RunMenuAt(source->GetWidget(), nullptr, anchor, |
| 1812 menu_alignment, source_type) == | 1812 menu_alignment, source_type) == |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1873 | 1873 |
| 1874 const ShelfItem* ShelfView::ShelfItemForView(const views::View* view) const { | 1874 const ShelfItem* ShelfView::ShelfItemForView(const views::View* view) const { |
| 1875 const int view_index = view_model_->GetIndexOfView(view); | 1875 const int view_index = view_model_->GetIndexOfView(view); |
| 1876 return (view_index < 0) ? nullptr : &(model_->items()[view_index]); | 1876 return (view_index < 0) ? nullptr : &(model_->items()[view_index]); |
| 1877 } | 1877 } |
| 1878 | 1878 |
| 1879 int ShelfView::CalculateShelfDistance(const gfx::Point& coordinate) const { | 1879 int ShelfView::CalculateShelfDistance(const gfx::Point& coordinate) const { |
| 1880 const gfx::Rect bounds = GetBoundsInScreen(); | 1880 const gfx::Rect bounds = GetBoundsInScreen(); |
| 1881 int distance = shelf_->SelectValueForShelfAlignment( | 1881 int distance = shelf_->SelectValueForShelfAlignment( |
| 1882 bounds.y() - coordinate.y(), coordinate.x() - bounds.right(), | 1882 bounds.y() - coordinate.y(), coordinate.x() - bounds.right(), |
| 1883 bounds.x() - coordinate.x(), coordinate.y() - bounds.bottom()); | 1883 bounds.x() - coordinate.x()); |
| 1884 return distance > 0 ? distance : 0; | 1884 return distance > 0 ? distance : 0; |
| 1885 } | 1885 } |
| 1886 | 1886 |
| 1887 } // namespace ash | 1887 } // namespace ash |
| OLD | NEW |