| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "chrome/browser/ui/views/tabs/base_tab_strip.h" | 5 #include "chrome/browser/ui/views/tabs/base_tab_strip.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "chrome/browser/ui/title_prefix_matcher.h" | 8 #include "chrome/browser/ui/title_prefix_matcher.h" |
| 9 #include "chrome/browser/ui/view_ids.h" | 9 #include "chrome/browser/ui/view_ids.h" |
| 10 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" | 10 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" |
| (...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 585 bool BaseTabStrip::IsAnimating() const { | 585 bool BaseTabStrip::IsAnimating() const { |
| 586 return bounds_animator_.IsAnimating(); | 586 return bounds_animator_.IsAnimating(); |
| 587 } | 587 } |
| 588 | 588 |
| 589 BaseTab* BaseTabStrip::GetTabAtLocal(const gfx::Point& local_point) { | 589 BaseTab* BaseTabStrip::GetTabAtLocal(const gfx::Point& local_point) { |
| 590 views::View* view = GetEventHandlerForPoint(local_point); | 590 views::View* view = GetEventHandlerForPoint(local_point); |
| 591 if (!view) | 591 if (!view) |
| 592 return NULL; // No tab contains the point. | 592 return NULL; // No tab contains the point. |
| 593 | 593 |
| 594 // Walk up the view hierarchy until we find a tab, or the TabStrip. | 594 // Walk up the view hierarchy until we find a tab, or the TabStrip. |
| 595 while (view && view != this && view->GetID() != VIEW_ID_TAB) | 595 while (view && view != this && view->id() != VIEW_ID_TAB) |
| 596 view = view->parent(); | 596 view = view->parent(); |
| 597 | 597 |
| 598 return view && view->GetID() == VIEW_ID_TAB ? | 598 return view && view->id() == VIEW_ID_TAB ? |
| 599 static_cast<BaseTab*>(view) : NULL; | 599 static_cast<BaseTab*>(view) : NULL; |
| 600 } | 600 } |
| 601 | 601 |
| 602 void BaseTabStrip::StoppedDraggingTab(BaseTab* tab, bool* is_first_tab) { | 602 void BaseTabStrip::StoppedDraggingTab(BaseTab* tab, bool* is_first_tab) { |
| 603 int tab_data_index = TabIndexOfTab(tab); | 603 int tab_data_index = TabIndexOfTab(tab); |
| 604 if (tab_data_index == -1) { | 604 if (tab_data_index == -1) { |
| 605 // The tab was removed before the drag completed. Don't do anything. | 605 // The tab was removed before the drag completed. Don't do anything. |
| 606 return; | 606 return; |
| 607 } | 607 } |
| 608 | 608 |
| 609 if (*is_first_tab) { | 609 if (*is_first_tab) { |
| 610 *is_first_tab = false; | 610 *is_first_tab = false; |
| 611 PrepareForAnimation(); | 611 PrepareForAnimation(); |
| 612 | 612 |
| 613 // Animate the view back to its correct position. | 613 // Animate the view back to its correct position. |
| 614 GenerateIdealBounds(); | 614 GenerateIdealBounds(); |
| 615 AnimateToIdealBounds(); | 615 AnimateToIdealBounds(); |
| 616 } | 616 } |
| 617 bounds_animator_.AnimateViewTo(tab, ideal_bounds(TabIndexOfTab(tab))); | 617 bounds_animator_.AnimateViewTo(tab, ideal_bounds(TabIndexOfTab(tab))); |
| 618 // Install a delegate to reset the dragging state when done. We have to leave | 618 // Install a delegate to reset the dragging state when done. We have to leave |
| 619 // dragging true for the tab otherwise it'll draw beneath the new tab button. | 619 // dragging true for the tab otherwise it'll draw beneath the new tab button. |
| 620 bounds_animator_.SetAnimationDelegate( | 620 bounds_animator_.SetAnimationDelegate( |
| 621 tab, new ResetDraggingStateDelegate(tab), true); | 621 tab, new ResetDraggingStateDelegate(tab), true); |
| 622 } | 622 } |
| OLD | NEW |