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

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

Issue 509012: P4b.
Patch Set: Created 11 years 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/app/nibs/TabView.xib ('k') | no next file » | 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 c9469e0f37cac3290ed938c9397a07a77f932c64..7569cdaf1681c806a33a2f9bf380e1b35462c705 100644
--- a/chrome/browser/cocoa/tab_controller.mm
+++ b/chrome/browser/cocoa/tab_controller.mm
@@ -124,7 +124,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
// titleView_ under those conditions.
NSRect titleFrame = [titleView_ frame];
iconTitleXOffset_ = NSMinX(titleFrame) - NSMinX(originalIconFrame_);
- titleCloseWidthOffset_ = NSMaxX([closeButton_ frame]) - NSMaxX(titleFrame);
+ titleCloseWidthOffset_ = NSMinX(originalIconFrame_) - NSMinX([closeButton_ frame]);
[self internalSetSelected:selected_];
}
@@ -171,6 +171,9 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
- (void)setIconView:(NSView*)iconView {
[iconView_ removeFromSuperview];
iconView_ = iconView;
+
+
+NSLog(@"original frame: %@", NSStringFromRect(originalIconFrame_));
[iconView_ setFrame:originalIconFrame_];
// Ensure that the icon is suppressed if no icon is set or if the tab is too
@@ -193,7 +196,7 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
// tab. We never actually do this, but it's a helpful guide for determining
// how much space we have available.
- (int)iconCapacity {
- CGFloat width = NSMaxX([closeButton_ frame]) - NSMinX(originalIconFrame_);
+ CGFloat width = NSMaxX([titleView_ frame]) - NSMinX([closeButton_ frame]);
CGFloat iconWidth = NSWidth(originalIconFrame_);
return width / iconWidth;
@@ -242,32 +245,70 @@ class MenuDelegate : public menus::SimpleMenuModel::Delegate {
[closeButton_ setHidden:newShowCloseButton ? NO : YES];
- // Adjust the title view based on changes to the icon's and close button's
- // visibility.
- NSRect titleFrame = [titleView_ frame];
+ CGFloat overlap = NSMinX([closeButton_ frame]);
+ CGFloat availWidth = NSWidth([[self view] frame]) - 2*overlap;
+
+ if (oldShowCloseButton != newShowCloseButton) {
+ // Adjust the left edge of the title view according to the presence or
+ // absence of the close button.
+ if (newShowCloseButton) {
+ //availWidth -= titleCloseWidthOffset_;
+
+// titleFrame.origin.x += titleCloseWidthOffset_;
+// titleFrame.size.width -= titleCloseWidthOffset_;
+ } else {
+// titleFrame.origin.x -= titleCloseWidthOffset_;
+// titleFrame.size.width += titleCloseWidthOffset_;
+ }
+
+// if (newShowCloseButton) {
+// originalIconFrame_.origin.x += titleCloseWidthOffset_;
+// } else {
+// originalIconFrame_.origin.x -= titleCloseWidthOffset_;
+// }
+// [iconView_ setFrame:originalIconFrame_];
+ }
if (oldShowIcon != newShowIcon) {
// Adjust the left edge of the title view according to the presence or
// absence of the icon view.
if (newShowIcon) {
- titleFrame.origin.x += iconTitleXOffset_;
- titleFrame.size.width -= iconTitleXOffset_;
+ //availWidth -= iconTitleXOffset_;
+// titleFrame.origin.x += iconTitleXOffset_;
+// titleFrame.size.width -= iconTitleXOffset_;
} else {
- titleFrame.origin.x -= iconTitleXOffset_;
- titleFrame.size.width += iconTitleXOffset_;
+// titleFrame.origin.x -= iconTitleXOffset_;
+// titleFrame.size.width += iconTitleXOffset_;
}
}
- if (oldShowCloseButton != newShowCloseButton) {
- // Adjust the right edge of the title view according to the presence or
- // absence of the close button.
- if (newShowCloseButton)
- titleFrame.size.width -= titleCloseWidthOffset_;
- else
- titleFrame.size.width += titleCloseWidthOffset_;
+
+ // Adjust the title view based on changes to the icon's and close button's
+ // visibility.
+ [titleView_ sizeToFit];
+ NSRect titleFrame = [titleView_ frame];
+
+NSLog(@"r: %@", NSStringFromRect(titleFrame));
+
+
+ if (NSWidth(titleFrame) + titleCloseWidthOffset_ + iconTitleXOffset_ < availWidth) { // assume close and icon are always visible for now
+ // center favicon and title
+ CGFloat delta = ((availWidth) - (iconTitleXOffset_ + NSWidth(titleFrame)))/2;
+ originalIconFrame_.origin.x = (overlap) + delta;
+ titleFrame.origin.x = originalIconFrame_.origin.x + iconTitleXOffset_;
+ } else {
+ // left-align favicon and title
+ originalIconFrame_.origin.x = (newShowCloseButton ? NSMinX([closeButton_ frame]) : overlap) + titleCloseWidthOffset_;
+ titleFrame.origin.x = originalIconFrame_.origin.x + iconTitleXOffset_;
+ titleFrame.size.width = availWidth - titleCloseWidthOffset_ - iconTitleXOffset_;
}
+
+
+NSLog(@"r: %@", NSStringFromRect(titleFrame));
+
+ [iconView_ setFrame:originalIconFrame_];
[titleView_ setFrame:titleFrame];
}
« no previous file with comments | « chrome/app/nibs/TabView.xib ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698