| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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/views/tabs/tab_strip.h" | 5 #include "chrome/browser/views/tabs/tab_strip.h" |
| 6 | 6 |
| 7 #include "base/gfx/size.h" | 7 #include "base/gfx/size.h" |
| 8 #include "chrome/app/theme/theme_resources.h" | 8 #include "chrome/app/theme/theme_resources.h" |
| 9 #include "chrome/browser/profile.h" | 9 #include "chrome/browser/profile.h" |
| 10 #include "chrome/browser/tab_contents.h" | 10 #include "chrome/browser/tab_contents.h" |
| (...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 void TabStrip::ShowApplicationMenu(const gfx::Point& p) { | 520 void TabStrip::ShowApplicationMenu(const gfx::Point& p) { |
| 521 TabStripModelDelegate* delegate = model_->delegate(); | 521 TabStripModelDelegate* delegate = model_->delegate(); |
| 522 if (delegate) | 522 if (delegate) |
| 523 delegate->ShowApplicationMenu(p); | 523 delegate->ShowApplicationMenu(p); |
| 524 } | 524 } |
| 525 | 525 |
| 526 bool TabStrip::CanProcessInputEvents() const { | 526 bool TabStrip::CanProcessInputEvents() const { |
| 527 return IsAnimating() == NULL; | 527 return IsAnimating() == NULL; |
| 528 } | 528 } |
| 529 | 529 |
| 530 bool TabStrip::PointIsWithinWindowCaption(const CPoint& point) { | 530 bool TabStrip::PointIsWithinWindowCaption(const gfx::Point& point) { |
| 531 ChromeViews::View* v = GetViewForPoint(point); | 531 ChromeViews::View* v = GetViewForPoint(point.ToPOINT()); |
| 532 | 532 |
| 533 // If there is no control at this location, claim the hit was in the title | 533 // If there is no control at this location, claim the hit was in the title |
| 534 // bar to get a move action. | 534 // bar to get a move action. |
| 535 if (v == this) | 535 if (v == this) |
| 536 return true; | 536 return true; |
| 537 | 537 |
| 538 // If the point is within the bounds of a Tab, the point can be considered | 538 // If the point is within the bounds of a Tab, the point can be considered |
| 539 // part of the caption if there are no available drag operations for the Tab. | 539 // part of the caption if there are no available drag operations for the Tab. |
| 540 if (v->GetClassName() == Tab::kTabClassName && !HasAvailableDragActions()) | 540 if (v->GetClassName() == Tab::kTabClassName && !HasAvailableDragActions()) |
| 541 return true; | 541 return true; |
| 542 | 542 |
| 543 // Check to see if the point is within the non-button parts of the new tab | 543 // Check to see if the point is within the non-button parts of the new tab |
| 544 // button. The button has a non-rectangular shape, so if it's not in the | 544 // button. The button has a non-rectangular shape, so if it's not in the |
| 545 // visual portions of the button we treat it as a click to the caption. | 545 // visual portions of the button we treat it as a click to the caption. |
| 546 CPoint point_in_newtab_coords(point); | 546 gfx::Point point_in_newtab_coords(point); |
| 547 View::ConvertPointToView(this, newtab_button_, &point_in_newtab_coords); | 547 View::ConvertPointToView(this, newtab_button_, &point_in_newtab_coords); |
| 548 if (newtab_button_->bounds().Contains(gfx::Point(point)) && | 548 if (newtab_button_->bounds().Contains(point) && |
| 549 !newtab_button_->HitTest(point_in_newtab_coords)) { | 549 !newtab_button_->HitTest(point_in_newtab_coords.ToPOINT())) { |
| 550 return true; | 550 return true; |
| 551 } | 551 } |
| 552 | 552 |
| 553 // All other regions, including the new Tab button, should be considered part | 553 // All other regions, including the new Tab button, should be considered part |
| 554 // of the containing Window's client area so that regular events can be | 554 // of the containing Window's client area so that regular events can be |
| 555 // processed for them. | 555 // processed for them. |
| 556 return false; | 556 return false; |
| 557 } | 557 } |
| 558 | 558 |
| 559 bool TabStrip::IsCompatibleWith(TabStrip* other) { | 559 bool TabStrip::IsCompatibleWith(TabStrip* other) { |
| (...skipping 674 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1234 | 1234 |
| 1235 // We only want to run the animation if we're not already at the desired | 1235 // We only want to run the animation if we're not already at the desired |
| 1236 // size. | 1236 // size. |
| 1237 if (abs(first_tab->width() - w) > 1) | 1237 if (abs(first_tab->width() - w) > 1) |
| 1238 StartResizeLayoutAnimation(); | 1238 StartResizeLayoutAnimation(); |
| 1239 } | 1239 } |
| 1240 | 1240 |
| 1241 bool TabStrip::IsCursorInTabStripZone() { | 1241 bool TabStrip::IsCursorInTabStripZone() { |
| 1242 CRect bounds; | 1242 CRect bounds; |
| 1243 GetLocalBounds(&bounds, true); | 1243 GetLocalBounds(&bounds, true); |
| 1244 CPoint tabstrip_topleft = bounds.TopLeft(); | 1244 gfx::Point tabstrip_topleft(bounds.TopLeft()); |
| 1245 View::ConvertPointToScreen(this, &tabstrip_topleft); | 1245 View::ConvertPointToScreen(this, &tabstrip_topleft); |
| 1246 bounds.MoveToXY(tabstrip_topleft); | 1246 bounds.MoveToXY(tabstrip_topleft.ToPOINT()); |
| 1247 bounds.bottom += kTabStripAnimationVSlop; | 1247 bounds.bottom += kTabStripAnimationVSlop; |
| 1248 | 1248 |
| 1249 CPoint cursor_point; | 1249 CPoint cursor_point; |
| 1250 GetCursorPos(&cursor_point); | 1250 GetCursorPos(&cursor_point); |
| 1251 | 1251 |
| 1252 return !!bounds.PtInRect(cursor_point); | 1252 return !!bounds.PtInRect(cursor_point); |
| 1253 } | 1253 } |
| 1254 | 1254 |
| 1255 void TabStrip::AddMessageLoopObserver() { | 1255 void TabStrip::AddMessageLoopObserver() { |
| 1256 if (!added_as_message_loop_observer_) { | 1256 if (!added_as_message_loop_observer_) { |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1302 center_x = tab->x() + (tab->width() / 2); | 1302 center_x = tab->x() + (tab->width() / 2); |
| 1303 } else { | 1303 } else { |
| 1304 Tab* last_tab = GetTabAt(drop_index - 1); | 1304 Tab* last_tab = GetTabAt(drop_index - 1); |
| 1305 center_x = last_tab->x() + last_tab->width() + (kTabHOffset / 2); | 1305 center_x = last_tab->x() + last_tab->width() + (kTabHOffset / 2); |
| 1306 } | 1306 } |
| 1307 | 1307 |
| 1308 // Mirror the center point if necessary. | 1308 // Mirror the center point if necessary. |
| 1309 center_x = MirroredXCoordinateInsideView(center_x); | 1309 center_x = MirroredXCoordinateInsideView(center_x); |
| 1310 | 1310 |
| 1311 // Determine the screen bounds. | 1311 // Determine the screen bounds. |
| 1312 CPoint drop_loc(center_x - drop_indicator_width / 2, -drop_indicator_height); | 1312 gfx::Point drop_loc(center_x - drop_indicator_width / 2, |
| 1313 -drop_indicator_height); |
| 1313 ConvertPointToScreen(this, &drop_loc); | 1314 ConvertPointToScreen(this, &drop_loc); |
| 1314 gfx::Rect drop_bounds(drop_loc.x, drop_loc.y, drop_indicator_width, | 1315 gfx::Rect drop_bounds(drop_loc.x(), drop_loc.y(), drop_indicator_width, |
| 1315 drop_indicator_height); | 1316 drop_indicator_height); |
| 1316 | 1317 |
| 1317 // If the rect doesn't fit on the monitor, push the arrow to the bottom. | 1318 // If the rect doesn't fit on the monitor, push the arrow to the bottom. |
| 1318 gfx::Rect monitor_bounds = win_util::GetMonitorBoundsForRect(drop_bounds); | 1319 gfx::Rect monitor_bounds = win_util::GetMonitorBoundsForRect(drop_bounds); |
| 1319 *is_beneath = (monitor_bounds.IsEmpty() || | 1320 *is_beneath = (monitor_bounds.IsEmpty() || |
| 1320 !monitor_bounds.Contains(drop_bounds)); | 1321 !monitor_bounds.Contains(drop_bounds)); |
| 1321 if (*is_beneath) | 1322 if (*is_beneath) |
| 1322 drop_bounds.Offset(0, drop_bounds.height() + height()); | 1323 drop_bounds.Offset(0, drop_bounds.height() + height()); |
| 1323 | 1324 |
| 1324 return drop_bounds; | 1325 return drop_bounds; |
| (...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1559 } | 1560 } |
| 1560 } | 1561 } |
| 1561 return -1; | 1562 return -1; |
| 1562 } | 1563 } |
| 1563 | 1564 |
| 1564 int TabStrip::GetAvailableWidthForTabs(Tab* last_tab) const { | 1565 int TabStrip::GetAvailableWidthForTabs(Tab* last_tab) const { |
| 1565 return last_tab->x() + last_tab->width(); | 1566 return last_tab->x() + last_tab->width(); |
| 1566 } | 1567 } |
| 1567 | 1568 |
| 1568 bool TabStrip::IsPointInTab(Tab* tab, const CPoint& point_in_tabstrip_coords) { | 1569 bool TabStrip::IsPointInTab(Tab* tab, const CPoint& point_in_tabstrip_coords) { |
| 1569 CPoint point_in_tab_coords(point_in_tabstrip_coords); | 1570 gfx::Point point_in_tab_coords(point_in_tabstrip_coords); |
| 1570 View::ConvertPointToView(this, tab, &point_in_tab_coords); | 1571 View::ConvertPointToView(this, tab, &point_in_tab_coords); |
| 1571 return tab->HitTest(point_in_tab_coords); | 1572 return tab->HitTest(point_in_tab_coords.ToPOINT()); |
| 1572 } | 1573 } |
| 1573 | 1574 |
| OLD | NEW |