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 "ui/app_list/apps_grid_view.h" | 5 #include "ui/app_list/apps_grid_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "ui/app_list/app_list_item_model.h" | 9 #include "ui/app_list/app_list_item_model.h" |
10 #include "ui/app_list/app_list_item_view.h" | 10 #include "ui/app_list/app_list_item_view.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 pagination_model_->SelectPage(index.page, false); | 162 pagination_model_->SelectPage(index.page, false); |
163 } | 163 } |
164 | 164 |
165 void AppsGridView::InitiateDrag(views::View* view, | 165 void AppsGridView::InitiateDrag(views::View* view, |
166 Pointer pointer, | 166 Pointer pointer, |
167 const ui::LocatedEvent& event) { | 167 const ui::LocatedEvent& event) { |
168 if (drag_view_) | 168 if (drag_view_) |
169 return; | 169 return; |
170 | 170 |
171 drag_view_ = view; | 171 drag_view_ = view; |
172 drag_offset_ = event.location(); | 172 drag_start_ = event.location(); |
173 } | 173 } |
174 | 174 |
175 void AppsGridView::UpdateDrag(views::View* view, | 175 void AppsGridView::UpdateDrag(views::View* view, |
176 Pointer pointer, | 176 Pointer pointer, |
177 const ui::LocatedEvent& event) { | 177 const ui::LocatedEvent& event) { |
178 if (!dragging() && drag_view_ && | 178 if (!dragging() && drag_view_ && |
179 ExceededDragThreshold(event.x() - drag_offset_.x(), | 179 ExceededDragThreshold(event.location() - drag_start_)) { |
180 event.y() - drag_offset_.y())) { | |
181 drag_pointer_ = pointer; | 180 drag_pointer_ = pointer; |
182 // Move the view to the front so that it appears on top of other views. | 181 // Move the view to the front so that it appears on top of other views. |
183 ReorderChildView(drag_view_, -1); | 182 ReorderChildView(drag_view_, -1); |
184 bounds_animator_.StopAnimatingView(drag_view_); | 183 bounds_animator_.StopAnimatingView(drag_view_); |
185 } | 184 } |
186 if (drag_pointer_ == pointer) { | 185 if (drag_pointer_ == pointer) { |
187 last_drag_point_ = event.location(); | 186 last_drag_point_ = event.location(); |
188 views::View::ConvertPointToTarget(drag_view_, this, &last_drag_point_); | 187 views::View::ConvertPointToTarget(drag_view_, this, &last_drag_point_); |
189 | 188 |
190 const Index last_drop_target = drop_target_; | 189 const Index last_drop_target = drop_target_; |
191 CalculateDropTarget(last_drag_point_); | 190 CalculateDropTarget(last_drag_point_); |
192 MaybeStartPageFlipTimer(last_drag_point_); | 191 MaybeStartPageFlipTimer(last_drag_point_); |
193 | 192 |
194 gfx::Point page_switcher_point(last_drag_point_); | 193 gfx::Point page_switcher_point(last_drag_point_); |
195 views::View::ConvertPointToTarget(this, page_switcher_view_, | 194 views::View::ConvertPointToTarget(this, page_switcher_view_, |
196 &page_switcher_point); | 195 &page_switcher_point); |
197 page_switcher_view_->UpdateUIForDragPoint(page_switcher_point); | 196 page_switcher_view_->UpdateUIForDragPoint(page_switcher_point); |
198 | 197 |
199 if (last_drop_target != drop_target_) | 198 if (last_drop_target != drop_target_) |
200 AnimateToIdealBounds(); | 199 AnimateToIdealBounds(); |
201 drag_view_->SetPosition(last_drag_point_.Subtract(drag_offset_)); | 200 drag_view_->SetPosition( |
| 201 gfx::PointAtOffsetFromOrigin(last_drag_point_ - drag_start_)); |
202 } | 202 } |
203 } | 203 } |
204 | 204 |
205 void AppsGridView::EndDrag(bool cancel) { | 205 void AppsGridView::EndDrag(bool cancel) { |
206 if (!cancel && dragging() && drag_view_ && IsValidIndex(drop_target_)) | 206 if (!cancel && dragging() && drag_view_ && IsValidIndex(drop_target_)) |
207 MoveItemInModel(drag_view_, drop_target_); | 207 MoveItemInModel(drag_view_, drop_target_); |
208 | 208 |
209 drag_pointer_ = NONE; | 209 drag_pointer_ = NONE; |
210 drop_target_ = Index(); | 210 drop_target_ = Index(); |
211 if (drag_view_) { | 211 if (drag_view_) { |
(...skipping 486 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
698 void AppsGridView::TransitionChanged() { | 698 void AppsGridView::TransitionChanged() { |
699 // Update layout for valid page transition only since over-scroll no longer | 699 // Update layout for valid page transition only since over-scroll no longer |
700 // animates app icons. | 700 // animates app icons. |
701 const PaginationModel::Transition& transition = | 701 const PaginationModel::Transition& transition = |
702 pagination_model_->transition(); | 702 pagination_model_->transition(); |
703 if (pagination_model_->is_valid_page(transition.target_page)) | 703 if (pagination_model_->is_valid_page(transition.target_page)) |
704 Layout(); | 704 Layout(); |
705 } | 705 } |
706 | 706 |
707 } // namespace app_list | 707 } // namespace app_list |
OLD | NEW |