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

Unified Diff: chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm

Issue 294123002: Make the cocoa permission bubble match mocks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 7 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
diff --git a/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm b/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
index e42710a02ff96c877652c1ed2cd1309e9a1ca794..0e73629f38f6f39dd563729eea6ff0624ab392e0 100644
--- a/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
+++ b/chrome/browser/ui/cocoa/website_settings/permission_bubble_controller.mm
@@ -42,12 +42,13 @@ using base::UserMetricsAction;
namespace {
-const CGFloat kHorizontalPadding = 20.0f;
-const CGFloat kVerticalPadding = 20.0f;
-const CGFloat kButtonPadding = 10.0f;
+const CGFloat kHorizontalPadding = 13.0f;
+const CGFloat kVerticalPadding = 13.0f;
+const CGFloat kBetweenButtonsPadding = 10.0f;
+const CGFloat kButtonRightEdgePadding = 17.0f;
const CGFloat kTitlePaddingX = 50.0f;
-const CGFloat kTitleFontSize = 15.0f;
-const CGFloat kPermissionFontSize = 12.0f;
+const CGFloat kBubbleMinWidth = 315.0f;
+const NSSize kPermissionIconSize = {18, 18};
groby-ooo-7-16 2014/05/21 18:28:37 General question: Are some of those constants shar
leng 2014/05/21 22:33:51 This one currently is not, but may be used by the
groby-ooo-7-16 2014/05/21 23:50:28 Let's not add another namespace. If there's no nat
class MenuDelegate : public ui::SimpleMenuModel::Delegate {
public:
@@ -98,7 +99,7 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
if (self = [super initWithFrame:NSZeroRect pullsDown:NO]) {
ContentSetting setting =
allow ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK;
- [self setFont:[NSFont systemFontOfSize:kPermissionFontSize]];
+ [self setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]];
[self setBordered:NO];
__block PermissionBubbleView::Delegate* blockDelegate = delegate;
@@ -287,7 +288,7 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
// The maximum width of the above permissions will dictate the width of the
// bubble. It is calculated here so that it can be used for the positioning
// of the buttons.
- NSRect bubbleFrame = NSZeroRect;
+ NSRect bubbleFrame = NSMakeRect(0, 0, kVerticalPadding, kBubbleMinWidth);
for (NSView* view in [contentView subviews]) {
bubbleFrame = NSUnionRect(
bubbleFrame, NSInsetRect([view frame], -kHorizontalPadding, 0));
@@ -311,7 +312,10 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
[contentView addSubview:titleView];
[titleView setFrameOrigin:NSMakePoint(kHorizontalPadding,
kVerticalPadding + yOffset)];
- yOffset += NSHeight([titleView frame]) + kVerticalPadding;
+
+ // Fix the height of the bubble relative to the title.
+ bubbleFrame.size.height = NSMaxY([titleView frame]) + kVerticalPadding +
+ info_bubble::kBubbleArrowHeight;
// The title must fit within the bubble.
bubbleFrame.size.width = std::max(NSWidth(bubbleFrame),
@@ -319,9 +323,13 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
// 'x' button in the upper-right-hand corner.
base::scoped_nsobject<NSView> closeButton([[self closeButton] retain]);
+ CGFloat offsetFromTop = chrome_style::kCloseButtonPadding +
+ NSHeight([closeButton frame]) +
+ info_bubble::kBubbleArrowHeight;
// Place the close button at the rightmost edge of the bubble.
- [closeButton setFrameOrigin:NSMakePoint(
- NSMaxX(bubbleFrame), yOffset - chrome_style::kCloseButtonPadding)];
+ [closeButton
+ setFrameOrigin:NSMakePoint(NSWidth(bubbleFrame),
+ NSHeight(bubbleFrame) - offsetFromTop)];
// Increase the size of the bubble by the width of the close button and its
// padding.
bubbleFrame.size.width +=
@@ -330,7 +338,7 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
// Position the allow/ok button.
CGFloat xOrigin = NSWidth(bubbleFrame) - NSWidth([allowOrOkButton frame]) -
- kHorizontalPadding;
+ kButtonRightEdgePadding;
[allowOrOkButton setFrameOrigin:NSMakePoint(xOrigin, kVerticalPadding)];
[contentView addSubview:allowOrOkButton];
@@ -346,14 +354,12 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
xOrigin = NSWidth(bubbleFrame) - width - kHorizontalPadding;
[allowOrOkButton setFrameOrigin:NSMakePoint(xOrigin, kVerticalPadding)];
// Line up the block button.
- xOrigin = NSMinX([allowOrOkButton frame]) - width - kButtonPadding;
+ xOrigin = NSMinX([allowOrOkButton frame]) - width - kBetweenButtonsPadding;
[blockButton setFrameOrigin:NSMakePoint(xOrigin, kVerticalPadding)];
[contentView addSubview:blockButton];
}
- bubbleFrame.size.height = yOffset + kVerticalPadding;
bubbleFrame = [[self window] frameRectForContentRect:bubbleFrame];
-
if ([[self window] isVisible]) {
// Unfortunately, calling -setFrame followed by -setFrameOrigin (called
// within -setAnchorPoint) causes flickering. Avoid the flickering by
@@ -379,7 +385,7 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
[[NSImageView alloc] initWithFrame:NSZeroRect]);
[permissionIcon setImage:ui::ResourceBundle::GetSharedInstance().
GetNativeImageNamed(request->GetIconID()).ToNSImage()];
- [permissionIcon setFrameSize:[[permissionIcon image] size]];
+ [permissionIcon setFrameSize:kPermissionIconSize];
groby-ooo-7-16 2014/05/21 18:28:37 Are you sure you want scaling if the icon is not 1
leng 2014/05/21 22:33:51 The scaling is deliberate - I didn't want to recre
groby-ooo-7-16 2014/05/21 23:50:28 Done.
[permissionView addSubview:permissionIcon];
base::scoped_nsobject<NSTextField> permissionLabel(
@@ -389,7 +395,8 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
[permissionLabel setBezeled:NO];
[permissionLabel setEditable:NO];
[permissionLabel setSelectable:NO];
- [permissionLabel setFont:[NSFont systemFontOfSize:kPermissionFontSize]];
+ [permissionLabel
+ setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]];
[permissionLabel setStringValue:base::SysUTF16ToNSString(label)];
[permissionLabel sizeToFit];
[permissionLabel setFrameOrigin:
@@ -426,7 +433,7 @@ class MenuDelegate : public ui::SimpleMenuModel::Delegate {
[titleView setStringValue:
l10n_util::GetNSStringF(IDS_PERMISSIONS_BUBBLE_PROMPT,
base::UTF8ToUTF16(host))];
- [titleView setFont:[NSFont systemFontOfSize:kTitleFontSize]];
+ [titleView setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]];
[titleView sizeToFit];
NSRect titleFrame = [titleView frame];
[titleView setFrameSize:NSMakeSize(NSWidth(titleFrame) + kTitlePaddingX,
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698