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/view_ids.h" | 8 #include "chrome/browser/ui/view_ids.h" |
9 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" | 9 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" |
10 #include "chrome/browser/ui/views/tabs/tab_strip_controller.h" | 10 #include "chrome/browser/ui/views/tabs/tab_strip_controller.h" |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 BaseTab* tab = CreateTab(); | 129 BaseTab* tab = CreateTab(); |
130 tab->SetData(data); | 130 tab->SetData(data); |
131 | 131 |
132 TabData d = { tab, gfx::Rect() }; | 132 TabData d = { tab, gfx::Rect() }; |
133 tab_data_.insert(tab_data_.begin() + ModelIndexToTabIndex(model_index), d); | 133 tab_data_.insert(tab_data_.begin() + ModelIndexToTabIndex(model_index), d); |
134 | 134 |
135 AddChildView(tab); | 135 AddChildView(tab); |
136 | 136 |
137 // Don't animate the first tab, it looks weird, and don't animate anything | 137 // Don't animate the first tab, it looks weird, and don't animate anything |
138 // if the containing window isn't visible yet. | 138 // if the containing window isn't visible yet. |
139 if (tab_count() > 1 && GetWindow() && GetWindow()->IsVisible()) | 139 if (tab_count() > 1 && GetWidget() && GetWidget()->IsVisible()) |
140 StartInsertTabAnimation(model_index); | 140 StartInsertTabAnimation(model_index); |
141 else | 141 else |
142 DoLayout(); | 142 DoLayout(); |
143 } | 143 } |
144 | 144 |
145 void BaseTabStrip::MoveTab(int from_model_index, int to_model_index) { | 145 void BaseTabStrip::MoveTab(int from_model_index, int to_model_index) { |
146 int from_tab_data_index = ModelIndexToTabIndex(from_model_index); | 146 int from_tab_data_index = ModelIndexToTabIndex(from_model_index); |
147 BaseTab* tab = tab_data_[from_tab_data_index].tab; | 147 BaseTab* tab = tab_data_[from_tab_data_index].tab; |
148 tab_data_.erase(tab_data_.begin() + from_tab_data_index); | 148 tab_data_.erase(tab_data_.begin() + from_tab_data_index); |
149 | 149 |
150 TabData data = {tab, gfx::Rect()}; | 150 TabData data = {tab, gfx::Rect()}; |
151 int to_tab_data_index = ModelIndexToTabIndex(to_model_index); | 151 int to_tab_data_index = ModelIndexToTabIndex(to_model_index); |
152 tab_data_.insert(tab_data_.begin() + to_tab_data_index, data); | 152 tab_data_.insert(tab_data_.begin() + to_tab_data_index, data); |
153 | 153 |
154 StartMoveTabAnimation(); | 154 StartMoveTabAnimation(); |
155 } | 155 } |
156 | 156 |
157 void BaseTabStrip::SetTabData(int model_index, const TabRendererData& data) { | 157 void BaseTabStrip::SetTabData(int model_index, const TabRendererData& data) { |
158 BaseTab* tab = GetBaseTabAtModelIndex(model_index); | 158 BaseTab* tab = GetBaseTabAtModelIndex(model_index); |
159 bool mini_state_changed = tab->data().mini != data.mini; | 159 bool mini_state_changed = tab->data().mini != data.mini; |
160 tab->SetData(data); | 160 tab->SetData(data); |
161 | 161 |
162 if (mini_state_changed) { | 162 if (mini_state_changed) { |
163 if (GetWindow() && GetWindow()->IsVisible()) | 163 if (GetWidget() && GetWidget()->IsVisible()) |
164 StartMiniTabAnimation(); | 164 StartMiniTabAnimation(); |
165 else | 165 else |
166 DoLayout(); | 166 DoLayout(); |
167 } | 167 } |
168 } | 168 } |
169 | 169 |
170 BaseTab* BaseTabStrip::GetBaseTabAtModelIndex(int model_index) const { | 170 BaseTab* BaseTabStrip::GetBaseTabAtModelIndex(int model_index) const { |
171 return base_tab_at_tab_index(ModelIndexToTabIndex(model_index)); | 171 return base_tab_at_tab_index(ModelIndexToTabIndex(model_index)); |
172 } | 172 } |
173 | 173 |
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
579 // Animate the view back to its correct position. | 579 // Animate the view back to its correct position. |
580 GenerateIdealBounds(); | 580 GenerateIdealBounds(); |
581 AnimateToIdealBounds(); | 581 AnimateToIdealBounds(); |
582 } | 582 } |
583 bounds_animator_.AnimateViewTo(tab, ideal_bounds(TabIndexOfTab(tab))); | 583 bounds_animator_.AnimateViewTo(tab, ideal_bounds(TabIndexOfTab(tab))); |
584 // Install a delegate to reset the dragging state when done. We have to leave | 584 // Install a delegate to reset the dragging state when done. We have to leave |
585 // dragging true for the tab otherwise it'll draw beneath the new tab button. | 585 // dragging true for the tab otherwise it'll draw beneath the new tab button. |
586 bounds_animator_.SetAnimationDelegate( | 586 bounds_animator_.SetAnimationDelegate( |
587 tab, new ResetDraggingStateDelegate(tab), true); | 587 tab, new ResetDraggingStateDelegate(tab), true); |
588 } | 588 } |
OLD | NEW |