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/dragged_tab_controller.h" | 5 #include "chrome/browser/ui/views/tabs/dragged_tab_controller.h" |
6 | 6 |
7 #include <math.h> | 7 #include <math.h> |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 #include "base/callback.h" | 10 #include "base/callback.h" |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
196 public: | 196 public: |
197 DockDisplayer(DraggedTabController* controller, | 197 DockDisplayer(DraggedTabController* controller, |
198 const DockInfo& info) | 198 const DockInfo& info) |
199 : controller_(controller), | 199 : controller_(controller), |
200 popup_(NULL), | 200 popup_(NULL), |
201 popup_view_(NULL), | 201 popup_view_(NULL), |
202 ALLOW_THIS_IN_INITIALIZER_LIST(animation_(this)), | 202 ALLOW_THIS_IN_INITIALIZER_LIST(animation_(this)), |
203 hidden_(false), | 203 hidden_(false), |
204 in_enable_area_(info.in_enable_area()) { | 204 in_enable_area_(info.in_enable_area()) { |
205 #if defined(OS_WIN) | 205 #if defined(OS_WIN) |
206 popup_ = views::Widget::CreateWidget(); | 206 popup_ = new views::Widget; |
207 popup_->SetOpacity(0x00); | |
208 // TODO(sky): This should "just work" on Gtk now. | 207 // TODO(sky): This should "just work" on Gtk now. |
209 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); | 208 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); |
210 params.transparent = true; | 209 params.transparent = true; |
211 params.keep_on_top = true; | 210 params.keep_on_top = true; |
212 params.bounds = info.GetPopupRect(); | 211 params.bounds = info.GetPopupRect(); |
213 popup_->Init(params); | 212 popup_->Init(params); |
214 popup_->SetContentsView(new DockView(info.type())); | 213 popup_->SetContentsView(new DockView(info.type())); |
| 214 popup_->SetOpacity(0x00); |
215 if (info.in_enable_area()) | 215 if (info.in_enable_area()) |
216 animation_.Reset(1); | 216 animation_.Reset(1); |
217 else | 217 else |
218 animation_.Show(); | 218 animation_.Show(); |
219 popup_->Show(); | 219 popup_->Show(); |
220 #else | 220 #else |
221 NOTIMPLEMENTED(); | 221 NOTIMPLEMENTED(); |
222 #endif | 222 #endif |
223 popup_view_ = popup_->GetNativeView(); | 223 popup_view_ = popup_->GetNativeView(); |
224 } | 224 } |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 animation_.Hide(); | 258 animation_.Hide(); |
259 } | 259 } |
260 | 260 |
261 virtual void AnimationProgressed(const ui::Animation* animation) { | 261 virtual void AnimationProgressed(const ui::Animation* animation) { |
262 UpdateLayeredAlpha(); | 262 UpdateLayeredAlpha(); |
263 } | 263 } |
264 | 264 |
265 virtual void AnimationEnded(const ui::Animation* animation) { | 265 virtual void AnimationEnded(const ui::Animation* animation) { |
266 if (!hidden_) | 266 if (!hidden_) |
267 return; | 267 return; |
268 #if defined(OS_WIN) | 268 popup_->Close(); |
269 static_cast<views::WidgetWin*>(popup_)->Close(); | |
270 #else | |
271 NOTIMPLEMENTED(); | |
272 #endif | |
273 delete this; | 269 delete this; |
274 } | 270 } |
275 | 271 |
276 virtual void UpdateLayeredAlpha() { | 272 virtual void UpdateLayeredAlpha() { |
277 #if defined(OS_WIN) | |
278 double scale = in_enable_area_ ? 1 : .5; | 273 double scale = in_enable_area_ ? 1 : .5; |
279 static_cast<views::WidgetWin*>(popup_)->SetOpacity( | 274 popup_->SetOpacity(static_cast<unsigned char>(animation_.GetCurrentValue() * |
280 static_cast<BYTE>(animation_.GetCurrentValue() * scale * 255.0)); | 275 scale * 255.0)); |
281 popup_->GetRootView()->SchedulePaint(); | 276 popup_->GetRootView()->SchedulePaint(); |
282 #else | |
283 NOTIMPLEMENTED(); | |
284 #endif | |
285 } | 277 } |
286 | 278 |
287 private: | 279 private: |
288 // DraggedTabController that created us. | 280 // DraggedTabController that created us. |
289 DraggedTabController* controller_; | 281 DraggedTabController* controller_; |
290 | 282 |
291 // Window we're showing. | 283 // Window we're showing. |
292 views::Widget* popup_; | 284 views::Widget* popup_; |
293 | 285 |
294 // NativeView of |popup_|. We cache this to avoid the possibility of | 286 // NativeView of |popup_|. We cache this to avoid the possibility of |
(...skipping 1153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1448 | 1440 |
1449 bool DraggedTabController::AreTabsConsecutive() { | 1441 bool DraggedTabController::AreTabsConsecutive() { |
1450 for (size_t i = 1; i < drag_data_.size(); ++i) { | 1442 for (size_t i = 1; i < drag_data_.size(); ++i) { |
1451 if (drag_data_[i - 1].source_model_index + 1 != | 1443 if (drag_data_[i - 1].source_model_index + 1 != |
1452 drag_data_[i].source_model_index) { | 1444 drag_data_[i].source_model_index) { |
1453 return false; | 1445 return false; |
1454 } | 1446 } |
1455 } | 1447 } |
1456 return true; | 1448 return true; |
1457 } | 1449 } |
OLD | NEW |