Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Side by Side Diff: chrome/browser/ui/cocoa/tabs/tab_strip_controller.mm

Issue 2248873002: Convert WindowOpenDisposition to an enum class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" 5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h"
6 6
7 #import <QuartzCore/QuartzCore.h> 7 #import <QuartzCore/QuartzCore.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 #include <limits> 10 #include <limits>
(...skipping 2000 matching lines...) Expand 10 before | Expand all | Expand 10 after
2011 2011
2012 // Modify the frame to make it "unoverlapped". 2012 // Modify the frame to make it "unoverlapped".
2013 frame.origin.x += kTabOverlap / 2.0; 2013 frame.origin.x += kTabOverlap / 2.0;
2014 frame.size.width -= kTabOverlap; 2014 frame.size.width -= kTabOverlap;
2015 if (frame.size.width < 1.0) 2015 if (frame.size.width < 1.0)
2016 frame.size.width = 1.0; // try to avoid complete failure 2016 frame.size.width = 1.0; // try to avoid complete failure
2017 2017
2018 // Drop in a new tab to the left of tab |i|? 2018 // Drop in a new tab to the left of tab |i|?
2019 if (point.x < (frame.origin.x + kLRProportion * frame.size.width)) { 2019 if (point.x < (frame.origin.x + kLRProportion * frame.size.width)) {
2020 *index = i; 2020 *index = i;
2021 *disposition = NEW_FOREGROUND_TAB; 2021 *disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
2022 return; 2022 return;
2023 } 2023 }
2024 2024
2025 // Drop on tab |i|? 2025 // Drop on tab |i|?
2026 if (point.x <= (frame.origin.x + 2026 if (point.x <= (frame.origin.x +
2027 (1.0 - kLRProportion) * frame.size.width)) { 2027 (1.0 - kLRProportion) * frame.size.width)) {
2028 *index = i; 2028 *index = i;
2029 *disposition = CURRENT_TAB; 2029 *disposition = WindowOpenDisposition::CURRENT_TAB;
2030 return; 2030 return;
2031 } 2031 }
2032 2032
2033 // (Dropping in a new tab to the right of tab |i| will be taken care of in 2033 // (Dropping in a new tab to the right of tab |i| will be taken care of in
2034 // the next iteration.) 2034 // the next iteration.)
2035 i++; 2035 i++;
2036 } 2036 }
2037 2037
2038 // If we've made it here, we want to append a new tab to the end. 2038 // If we've made it here, we want to append a new tab to the end.
2039 *index = -1; 2039 *index = -1;
2040 *disposition = NEW_FOREGROUND_TAB; 2040 *disposition = WindowOpenDisposition::NEW_FOREGROUND_TAB;
2041 } 2041 }
2042 2042
2043 - (void)openURL:(GURL*)url inView:(NSView*)view at:(NSPoint)point { 2043 - (void)openURL:(GURL*)url inView:(NSView*)view at:(NSPoint)point {
2044 // Get the index and disposition. 2044 // Get the index and disposition.
2045 NSInteger index; 2045 NSInteger index;
2046 WindowOpenDisposition disposition; 2046 WindowOpenDisposition disposition;
2047 [self droppingURLsAt:point 2047 [self droppingURLsAt:point
2048 givesIndex:&index 2048 givesIndex:&index
2049 disposition:&disposition]; 2049 disposition:&disposition];
2050 2050
2051 // Either insert a new tab or open in a current tab. 2051 // Either insert a new tab or open in a current tab.
2052 switch (disposition) { 2052 switch (disposition) {
2053 case NEW_FOREGROUND_TAB: { 2053 case WindowOpenDisposition::NEW_FOREGROUND_TAB: {
2054 content::RecordAction(UserMetricsAction("Tab_DropURLBetweenTabs")); 2054 content::RecordAction(UserMetricsAction("Tab_DropURLBetweenTabs"));
2055 chrome::NavigateParams params(browser_, *url, 2055 chrome::NavigateParams params(browser_, *url,
2056 ui::PAGE_TRANSITION_TYPED); 2056 ui::PAGE_TRANSITION_TYPED);
2057 params.disposition = disposition; 2057 params.disposition = disposition;
2058 params.tabstrip_index = index; 2058 params.tabstrip_index = index;
2059 params.tabstrip_add_types = 2059 params.tabstrip_add_types =
2060 TabStripModel::ADD_ACTIVE | TabStripModel::ADD_FORCE_INDEX; 2060 TabStripModel::ADD_ACTIVE | TabStripModel::ADD_FORCE_INDEX;
2061 chrome::Navigate(&params); 2061 chrome::Navigate(&params);
2062 break; 2062 break;
2063 } 2063 }
2064 case CURRENT_TAB: { 2064 case WindowOpenDisposition::CURRENT_TAB: {
2065 content::RecordAction(UserMetricsAction("Tab_DropURLOnTab")); 2065 content::RecordAction(UserMetricsAction("Tab_DropURLOnTab"));
2066 OpenURLParams params( 2066 OpenURLParams params(*url, Referrer(), WindowOpenDisposition::CURRENT_TAB,
2067 *url, Referrer(), CURRENT_TAB, ui::PAGE_TRANSITION_TYPED, false); 2067 ui::PAGE_TRANSITION_TYPED, false);
2068 tabStripModel_->GetWebContentsAt(index)->OpenURL(params); 2068 tabStripModel_->GetWebContentsAt(index)->OpenURL(params);
2069 tabStripModel_->ActivateTabAt(index, true); 2069 tabStripModel_->ActivateTabAt(index, true);
2070 break; 2070 break;
2071 } 2071 }
2072 default: 2072 default:
2073 NOTIMPLEMENTED(); 2073 NOTIMPLEMENTED();
2074 } 2074 }
2075 } 2075 }
2076 2076
2077 // (URLDropTargetController protocol) 2077 // (URLDropTargetController protocol)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
2122 2122
2123 NSInteger index; 2123 NSInteger index;
2124 WindowOpenDisposition disposition; 2124 WindowOpenDisposition disposition;
2125 [self droppingURLsAt:point 2125 [self droppingURLsAt:point
2126 givesIndex:&index 2126 givesIndex:&index
2127 disposition:&disposition]; 2127 disposition:&disposition];
2128 2128
2129 NSPoint arrowPos = NSMakePoint(0, arrowBaseY); 2129 NSPoint arrowPos = NSMakePoint(0, arrowBaseY);
2130 if (index == -1) { 2130 if (index == -1) {
2131 // Append a tab at the end. 2131 // Append a tab at the end.
2132 DCHECK(disposition == NEW_FOREGROUND_TAB); 2132 DCHECK(disposition == WindowOpenDisposition::NEW_FOREGROUND_TAB);
2133 NSInteger lastIndex = [tabArray_ count] - 1; 2133 NSInteger lastIndex = [tabArray_ count] - 1;
2134 NSRect overRect = [[[tabArray_ objectAtIndex:lastIndex] view] frame]; 2134 NSRect overRect = [[[tabArray_ objectAtIndex:lastIndex] view] frame];
2135 arrowPos.x = overRect.origin.x + overRect.size.width - kTabOverlap / 2.0; 2135 arrowPos.x = overRect.origin.x + overRect.size.width - kTabOverlap / 2.0;
2136 } else { 2136 } else {
2137 NSRect overRect = [[[tabArray_ objectAtIndex:index] view] frame]; 2137 NSRect overRect = [[[tabArray_ objectAtIndex:index] view] frame];
2138 switch (disposition) { 2138 switch (disposition) {
2139 case NEW_FOREGROUND_TAB: 2139 case WindowOpenDisposition::NEW_FOREGROUND_TAB:
2140 // Insert tab (to the left of the given tab). 2140 // Insert tab (to the left of the given tab).
2141 arrowPos.x = overRect.origin.x + kTabOverlap / 2.0; 2141 arrowPos.x = overRect.origin.x + kTabOverlap / 2.0;
2142 break; 2142 break;
2143 case CURRENT_TAB: 2143 case WindowOpenDisposition::CURRENT_TAB:
2144 // Overwrite the given tab. 2144 // Overwrite the given tab.
2145 arrowPos.x = overRect.origin.x + overRect.size.width / 2.0; 2145 arrowPos.x = overRect.origin.x + overRect.size.width / 2.0;
2146 break; 2146 break;
2147 default: 2147 default:
2148 NOTREACHED(); 2148 NOTREACHED();
2149 } 2149 }
2150 } 2150 }
2151 2151
2152 [tabStripView_ setDropArrowPosition:arrowPos]; 2152 [tabStripView_ setDropArrowPosition:arrowPos];
2153 [tabStripView_ setDropArrowShown:YES]; 2153 [tabStripView_ setDropArrowShown:YES];
2154 [tabStripView_ setNeedsDisplay:YES]; 2154 [tabStripView_ setNeedsDisplay:YES];
2155 2155
2156 // Perform a delayed tab transition if hovering directly over a tab. 2156 // Perform a delayed tab transition if hovering directly over a tab.
2157 if (index != -1 && disposition == CURRENT_TAB) { 2157 if (index != -1 && disposition == WindowOpenDisposition::CURRENT_TAB) {
2158 NSInteger modelIndex = [self modelIndexFromIndex:index]; 2158 NSInteger modelIndex = [self modelIndexFromIndex:index];
2159 // Only start the transition if it has a valid model index (i.e. it's not 2159 // Only start the transition if it has a valid model index (i.e. it's not
2160 // in the middle of closing). 2160 // in the middle of closing).
2161 if (modelIndex != NSNotFound) { 2161 if (modelIndex != NSNotFound) {
2162 hoverTabSelector_->StartTabTransition(modelIndex); 2162 hoverTabSelector_->StartTabTransition(modelIndex);
2163 return; 2163 return;
2164 } 2164 }
2165 } 2165 }
2166 // If a tab transition was not started, cancel the pending one. 2166 // If a tab transition was not started, cancel the pending one.
2167 hoverTabSelector_->CancelTabTransition(); 2167 hoverTabSelector_->CancelTabTransition();
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
2315 for (int i = 0; i < tabStripModel_->count(); i++) { 2315 for (int i = 0; i < tabStripModel_->count(); i++) {
2316 [self updateIconsForContents:tabStripModel_->GetWebContentsAt(i) atIndex:i]; 2316 [self updateIconsForContents:tabStripModel_->GetWebContentsAt(i) atIndex:i];
2317 } 2317 }
2318 } 2318 }
2319 2319
2320 - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen { 2320 - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen {
2321 [tabStripView_ setVisualEffectsDisabledForFullscreen:fullscreen]; 2321 [tabStripView_ setVisualEffectsDisabledForFullscreen:fullscreen];
2322 } 2322 }
2323 2323
2324 @end 2324 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/tab_contents/sad_tab_controller.mm ('k') | chrome/browser/ui/cocoa/task_manager_mac_browsertest.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698