| 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 "chrome/browser/ui/views/tabs/tab_strip.h" | 5 #include "chrome/browser/ui/views/tabs/tab_strip.h" |
| 6 | 6 |
| 7 #if defined(OS_WIN) | 7 #if defined(OS_WIN) |
| 8 #include <windowsx.h> | 8 #include <windowsx.h> |
| 9 #endif | 9 #endif |
| 10 | 10 |
| (...skipping 2258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2269 if (drop_info_.get() && drop_info_->drop_index == tab_data_index && | 2269 if (drop_info_.get() && drop_info_->drop_index == tab_data_index && |
| 2270 drop_info_->drop_before == drop_before) { | 2270 drop_info_->drop_before == drop_before) { |
| 2271 return; | 2271 return; |
| 2272 } | 2272 } |
| 2273 | 2273 |
| 2274 bool is_beneath; | 2274 bool is_beneath; |
| 2275 gfx::Rect drop_bounds = GetDropBounds(tab_data_index, drop_before, | 2275 gfx::Rect drop_bounds = GetDropBounds(tab_data_index, drop_before, |
| 2276 &is_beneath); | 2276 &is_beneath); |
| 2277 | 2277 |
| 2278 if (!drop_info_.get()) { | 2278 if (!drop_info_.get()) { |
| 2279 drop_info_.reset(new DropInfo(tab_data_index, drop_before, !is_beneath)); | 2279 drop_info_.reset( |
| 2280 new DropInfo(tab_data_index, drop_before, !is_beneath, GetWidget())); |
| 2280 } else { | 2281 } else { |
| 2281 drop_info_->drop_index = tab_data_index; | 2282 drop_info_->drop_index = tab_data_index; |
| 2282 drop_info_->drop_before = drop_before; | 2283 drop_info_->drop_before = drop_before; |
| 2283 if (is_beneath == drop_info_->point_down) { | 2284 if (is_beneath == drop_info_->point_down) { |
| 2284 drop_info_->point_down = !is_beneath; | 2285 drop_info_->point_down = !is_beneath; |
| 2285 drop_info_->arrow_view->SetImage( | 2286 drop_info_->arrow_view->SetImage( |
| 2286 GetDropArrowImage(drop_info_->point_down)); | 2287 GetDropArrowImage(drop_info_->point_down)); |
| 2287 } | 2288 } |
| 2288 } | 2289 } |
| 2289 | 2290 |
| (...skipping 13 matching lines...) Expand all Loading... |
| 2303 } | 2304 } |
| 2304 | 2305 |
| 2305 // static | 2306 // static |
| 2306 gfx::ImageSkia* TabStrip::GetDropArrowImage(bool is_down) { | 2307 gfx::ImageSkia* TabStrip::GetDropArrowImage(bool is_down) { |
| 2307 return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( | 2308 return ui::ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
| 2308 is_down ? IDR_TAB_DROP_DOWN : IDR_TAB_DROP_UP); | 2309 is_down ? IDR_TAB_DROP_DOWN : IDR_TAB_DROP_UP); |
| 2309 } | 2310 } |
| 2310 | 2311 |
| 2311 // TabStrip::DropInfo ---------------------------------------------------------- | 2312 // TabStrip::DropInfo ---------------------------------------------------------- |
| 2312 | 2313 |
| 2313 TabStrip::DropInfo::DropInfo(int drop_index, bool drop_before, bool point_down) | 2314 TabStrip::DropInfo::DropInfo(int drop_index, |
| 2315 bool drop_before, |
| 2316 bool point_down, |
| 2317 views::Widget* context) |
| 2314 : drop_index(drop_index), | 2318 : drop_index(drop_index), |
| 2315 drop_before(drop_before), | 2319 drop_before(drop_before), |
| 2316 point_down(point_down) { | 2320 point_down(point_down) { |
| 2317 arrow_view = new views::ImageView; | 2321 arrow_view = new views::ImageView; |
| 2318 arrow_view->SetImage(GetDropArrowImage(point_down)); | 2322 arrow_view->SetImage(GetDropArrowImage(point_down)); |
| 2319 | 2323 |
| 2320 arrow_window = new views::Widget; | 2324 arrow_window = new views::Widget; |
| 2321 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); | 2325 views::Widget::InitParams params(views::Widget::InitParams::TYPE_POPUP); |
| 2322 params.keep_on_top = true; | 2326 params.keep_on_top = true; |
| 2323 params.transparent = true; | 2327 params.transparent = true; |
| 2324 params.accept_events = false; | 2328 params.accept_events = false; |
| 2325 params.can_activate = false; | 2329 params.can_activate = false; |
| 2326 params.bounds = gfx::Rect(drop_indicator_width, drop_indicator_height); | 2330 params.bounds = gfx::Rect(drop_indicator_width, drop_indicator_height); |
| 2331 params.context = context->GetNativeView(); |
| 2327 arrow_window->Init(params); | 2332 arrow_window->Init(params); |
| 2328 arrow_window->SetContentsView(arrow_view); | 2333 arrow_window->SetContentsView(arrow_view); |
| 2329 } | 2334 } |
| 2330 | 2335 |
| 2331 TabStrip::DropInfo::~DropInfo() { | 2336 TabStrip::DropInfo::~DropInfo() { |
| 2332 // Close eventually deletes the window, which deletes arrow_view too. | 2337 // Close eventually deletes the window, which deletes arrow_view too. |
| 2333 arrow_window->Close(); | 2338 arrow_window->Close(); |
| 2334 } | 2339 } |
| 2335 | 2340 |
| 2336 /////////////////////////////////////////////////////////////////////////////// | 2341 /////////////////////////////////////////////////////////////////////////////// |
| (...skipping 255 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2592 if (!adjust_layout_) | 2597 if (!adjust_layout_) |
| 2593 return false; | 2598 return false; |
| 2594 | 2599 |
| 2595 #if !defined(OS_CHROMEOS) | 2600 #if !defined(OS_CHROMEOS) |
| 2596 if (ui::GetDisplayLayout() != ui::LAYOUT_TOUCH) | 2601 if (ui::GetDisplayLayout() != ui::LAYOUT_TOUCH) |
| 2597 return false; | 2602 return false; |
| 2598 #endif | 2603 #endif |
| 2599 | 2604 |
| 2600 return true; | 2605 return true; |
| 2601 } | 2606 } |
| OLD | NEW |