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

Unified Diff: chrome/browser/cocoa/tab_controller.mm

Issue 1119005: [Mac] Re-enable pinned tabs; add support for mini-tabs and phantom tabs. (Closed)
Patch Set: Nits Created 10 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/cocoa/tab_controller.h ('k') | chrome/browser/cocoa/tab_strip_controller.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/cocoa/tab_controller.mm
diff --git a/chrome/browser/cocoa/tab_controller.mm b/chrome/browser/cocoa/tab_controller.mm
index ef0455e24d1d73cd48a45df701c900162be6b992..8058935278ada4ae3357535763e0c74395e63069 100644
--- a/chrome/browser/cocoa/tab_controller.mm
+++ b/chrome/browser/cocoa/tab_controller.mm
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -15,10 +15,18 @@
@implementation TabController
@synthesize loadingState = loadingState_;
-@synthesize pinned = pinned_;
+@synthesize mini = mini_;
+@synthesize phantom = phantom_;
@synthesize target = target_;
@synthesize action = action_;
+namespace {
+
+// If the tab is phantom, the opacity of the TabView is adjusted to this value.
+const CGFloat kPhantomTabAlpha = 105.0 / 255.0;
+
+}; // anonymous namespace
+
namespace TabControllerInternal {
// A C++ delegate that handles enabling/disabling menu items and handling when
@@ -53,7 +61,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
// (this is not a checkmark menu item, per Apple's HIG).
if (command_id == TabStripModel::CommandTogglePinned) {
return l10n_util::GetStringUTF16(
- [owner_ pinned] ? IDS_TAB_CXMENU_UNPIN_TAB_MAC
+ [owner_ mini] ? IDS_TAB_CXMENU_UNPIN_TAB_MAC
: IDS_TAB_CXMENU_PIN_TAB_MAC);
}
return string16();
@@ -64,7 +72,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
TabController* owner_; // weak, owns me
};
-} // namespace
+} // TabControllerInternal namespace
// The min widths match the windows values and are sums of left + right
// padding, of which we have no comparable constants (we draw using paths, not
@@ -72,7 +80,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
+ (CGFloat)minTabWidth { return 31; }
+ (CGFloat)minSelectedTabWidth { return 47; }
+ (CGFloat)maxTabWidth { return 220; }
-+ (CGFloat)pinnedTabWidth { return 53; }
++ (CGFloat)miniTabWidth { return 53; }
- (TabView*)tabView {
return static_cast<TabView*>([self view]);
@@ -152,7 +160,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
- (void)setTitle:(NSString*)title {
[[self view] setToolTip:title];
- if ([self pinned] && ![self selected]) {
+ if ([self mini] && ![self selected]) {
TabView* tabView = static_cast<TabView*>([self view]);
DCHECK([tabView isKindOfClass:[TabView class]]);
[tabView startAlert];
@@ -208,7 +216,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
if (!iconView_)
return NO;
- if ([self pinned])
+ if ([self mini])
return YES;
int iconCapacity = [self iconCapacity];
@@ -220,7 +228,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
// Returns YES if we should be showing the close button. The selected tab
// always shows the close button.
- (BOOL)shouldShowCloseButton {
- if ([self pinned])
+ if ([self mini])
return NO;
return ([self selected] || [self iconCapacity] >= 3);
}
@@ -235,8 +243,13 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
[iconView_ setHidden:newShowIcon ? NO : YES];
isIconShowing_ = newShowIcon;
- // If the tab is pinned, hide the title.
- [titleView_ setHidden:[self pinned]];
+ // If the tab is a mini-tab, hide the title.
+ [titleView_ setHidden:[self mini]];
+
+ // If it's a phantom mini-tab, draw it alpha-style. Windows does this.
+ CGFloat alphaValue = [self phantom] ? kPhantomTabAlpha
+ : 1.0;
+ [[self view] setAlphaValue:alphaValue];
BOOL oldShowCloseButton = [closeButton_ isHidden] ? NO : YES;
BOOL newShowCloseButton = [self shouldShowCloseButton] ? YES : NO;
« no previous file with comments | « chrome/browser/cocoa/tab_controller.h ('k') | chrome/browser/cocoa/tab_strip_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698