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

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

Issue 2346783002: mac rtl: pin profile switcher to left edge in rtl (Closed)
Patch Set: ExperimentalMacRTLIsEnabled -> ShouldDoExperimentalRTLLayout 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
« no previous file with comments | « chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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>
11 #include <string> 11 #include <string>
12 12
13 #include "base/command_line.h" 13 #include "base/command_line.h"
14 #include "base/i18n/rtl.h"
15 #include "base/mac/mac_util.h" 14 #include "base/mac/mac_util.h"
16 #include "base/mac/scoped_nsautorelease_pool.h" 15 #include "base/mac/scoped_nsautorelease_pool.h"
17 #include "base/mac/sdk_forward_declarations.h" 16 #include "base/mac/sdk_forward_declarations.h"
18 #include "base/macros.h" 17 #include "base/macros.h"
19 #include "base/metrics/histogram_macros.h" 18 #include "base/metrics/histogram_macros.h"
20 #include "base/strings/sys_string_conversions.h" 19 #include "base/strings/sys_string_conversions.h"
21 #include "chrome/app/chrome_command_ids.h" 20 #include "chrome/app/chrome_command_ids.h"
22 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" 21 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
23 #include "chrome/browser/extensions/tab_helper.h" 22 #include "chrome/browser/extensions/tab_helper.h"
24 #include "chrome/browser/favicon/favicon_utils.h" 23 #include "chrome/browser/favicon/favicon_utils.h"
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 [[NSAnimationContext currentContext] setDuration:kMinimumTimeInterval]; 131 [[NSAnimationContext currentContext] setDuration:kMinimumTimeInterval];
133 } 132 }
134 } 133 }
135 134
136 private: 135 private:
137 bool animate_; 136 bool animate_;
138 DISALLOW_COPY_AND_ASSIGN(ScopedNSAnimationContextGroup); 137 DISALLOW_COPY_AND_ASSIGN(ScopedNSAnimationContextGroup);
139 }; 138 };
140 139
141 CGFloat FlipXInView(NSView* view, CGFloat width, CGFloat x) { 140 CGFloat FlipXInView(NSView* view, CGFloat width, CGFloat x) {
142 if (cocoa_l10n_util::ExperimentalMacRTLIsEnabled() && base::i18n::IsRTL()) 141 if (cocoa_l10n_util::ShouldDoExperimentalRTLLayout())
143 return [view frame].size.width - x - width; 142 return [view frame].size.width - x - width;
144 return x; 143 return x;
145 } 144 }
146 145
147 } // namespace 146 } // namespace
148 147
149 @interface TabStripController (Private) 148 @interface TabStripController (Private)
150 - (void)addSubviewToPermanentList:(NSView*)aView; 149 - (void)addSubviewToPermanentList:(NSView*)aView;
151 - (void)regenerateSubviewList; 150 - (void)regenerateSubviewList;
152 - (NSInteger)indexForContentsView:(NSView*)view; 151 - (NSInteger)indexForContentsView:(NSView*)view;
(...skipping 848 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 1000
1002 // Separate integral and fractional parts. 1001 // Separate integral and fractional parts.
1003 CGFloat integralPart = std::floor(nonPinnedTabWidth); 1002 CGFloat integralPart = std::floor(nonPinnedTabWidth);
1004 nonPinnedTabWidthFraction = nonPinnedTabWidth - integralPart; 1003 nonPinnedTabWidthFraction = nonPinnedTabWidth - integralPart;
1005 nonPinnedTabWidth = integralPart; 1004 nonPinnedTabWidth = integralPart;
1006 } 1005 }
1007 1006
1008 BOOL visible = [[tabStripView_ window] isVisible]; 1007 BOOL visible = [[tabStripView_ window] isVisible];
1009 1008
1010 CGFloat offset = 1009 CGFloat offset =
1011 cocoa_l10n_util::ExperimentalMacRTLIsEnabled() && base::i18n::IsRTL() 1010 cocoa_l10n_util::ShouldDoExperimentalRTLLayout()
1012 ? [self rightIndentForControls] 1011 ? [self rightIndentForControls]
1013 : [self leftIndentForControls]; 1012 : [self leftIndentForControls];
1014 bool hasPlaceholderGap = false; 1013 bool hasPlaceholderGap = false;
1015 // Whether or not the last tab processed by the loop was a pinned tab. 1014 // Whether or not the last tab processed by the loop was a pinned tab.
1016 BOOL isLastTabPinned = NO; 1015 BOOL isLastTabPinned = NO;
1017 CGFloat tabWidthAccumulatedFraction = 0; 1016 CGFloat tabWidthAccumulatedFraction = 0;
1018 NSInteger laidOutNonPinnedTabs = 0; 1017 NSInteger laidOutNonPinnedTabs = 0;
1019 1018
1020 for (TabController* tab in tabArray_.get()) { 1019 for (TabController* tab in tabArray_.get()) {
1021 // Ignore a tab that is going through a close animation. 1020 // Ignore a tab that is going through a close animation.
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 // be hidden, doing it again doesn't hurt. Otherwise position it 1154 // be hidden, doing it again doesn't hurt. Otherwise position it
1156 // appropriately, showing it if necessary. 1155 // appropriately, showing it if necessary.
1157 if (forceNewTabButtonHidden_) { 1156 if (forceNewTabButtonHidden_) {
1158 [newTabButton_ setHidden:YES]; 1157 [newTabButton_ setHidden:YES];
1159 } else { 1158 } else {
1160 NSRect newTabNewFrame = [newTabButton_ frame]; 1159 NSRect newTabNewFrame = [newTabButton_ frame];
1161 // We've already ensured there's enough space for the new tab button 1160 // We've already ensured there's enough space for the new tab button
1162 // so we don't have to check it against the available space. We do need 1161 // so we don't have to check it against the available space. We do need
1163 // to make sure we put it after any placeholder. 1162 // to make sure we put it after any placeholder.
1164 CGFloat maxTabX = MAX(offset, NSMaxX(placeholderFrame_) - kTabOverlap); 1163 CGFloat maxTabX = MAX(offset, NSMaxX(placeholderFrame_) - kTabOverlap);
1165 if (cocoa_l10n_util::ExperimentalMacRTLIsEnabled() && base::i18n::IsRTL()) { 1164 if (cocoa_l10n_util::ShouldDoExperimentalRTLLayout()) {
1166 maxTabX = FlipXInView(tabStripView_, [newTabButton_ frame].size.width, 1165 maxTabX = FlipXInView(tabStripView_, [newTabButton_ frame].size.width,
1167 maxTabX) - 1166 maxTabX) -
1168 (2 * kNewTabButtonOffset); 1167 (2 * kNewTabButtonOffset);
1169 } 1168 }
1170 newTabNewFrame.origin = NSMakePoint(maxTabX + kNewTabButtonOffset, 0); 1169 newTabNewFrame.origin = NSMakePoint(maxTabX + kNewTabButtonOffset, 0);
1171 if ([tabContentsArray_ count]) 1170 if ([tabContentsArray_ count])
1172 [newTabButton_ setHidden:NO]; 1171 [newTabButton_ setHidden:NO];
1173 1172
1174 if (!NSEqualRects(newTabTargetFrame_, newTabNewFrame)) { 1173 if (!NSEqualRects(newTabTargetFrame_, newTabNewFrame)) {
1175 // Set the new tab button image correctly based on where the cursor is. 1174 // Set the new tab button image correctly based on where the cursor is.
(...skipping 1158 matching lines...) Expand 10 before | Expand all | Expand 10 after
2334 for (int i = 0; i < tabStripModel_->count(); i++) { 2333 for (int i = 0; i < tabStripModel_->count(); i++) {
2335 [self updateIconsForContents:tabStripModel_->GetWebContentsAt(i) atIndex:i]; 2334 [self updateIconsForContents:tabStripModel_->GetWebContentsAt(i) atIndex:i];
2336 } 2335 }
2337 } 2336 }
2338 2337
2339 - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen { 2338 - (void)setVisualEffectsDisabledForFullscreen:(BOOL)fullscreen {
2340 [tabStripView_ setVisualEffectsDisabledForFullscreen:fullscreen]; 2339 [tabStripView_ setVisualEffectsDisabledForFullscreen:fullscreen];
2341 } 2340 }
2342 2341
2343 @end 2342 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/profiles/avatar_button_controller.mm ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698