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

Side by Side Diff: chrome/browser/cocoa/extensions/browser_actions_controller.mm

Issue 3054040: [Mac] Adjust browser-action and content-setting popup points (Closed) Base URL: git://codf21.jail/chromium.git
Patch Set: Merge to LKGR. Created 10 years, 4 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 | « no previous file | chrome/browser/cocoa/location_bar/content_setting_decoration.h » ('j') | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "browser_actions_controller.h" 5 #import "browser_actions_controller.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <string> 8 #include <string>
9 9
10 #include "base/nsimage_cache_mac.h" 10 #include "base/nsimage_cache_mac.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 const CGFloat kBrowserActionHeight = 29.0; 50 const CGFloat kBrowserActionHeight = 29.0;
51 const CGFloat kBrowserActionWidth = 29.0; 51 const CGFloat kBrowserActionWidth = 29.0;
52 52
53 // The padding between browser action buttons. 53 // The padding between browser action buttons.
54 const CGFloat kBrowserActionButtonPadding = 2.0; 54 const CGFloat kBrowserActionButtonPadding = 2.0;
55 55
56 // Padding between Omnibox and first button. Since the buttons have a 56 // Padding between Omnibox and first button. Since the buttons have a
57 // pixel of internal padding, this needs an extra pixel. 57 // pixel of internal padding, this needs an extra pixel.
58 const CGFloat kBrowserActionLeftPadding = kBrowserActionButtonPadding + 1.0; 58 const CGFloat kBrowserActionLeftPadding = kBrowserActionButtonPadding + 1.0;
59 59
60 // How far to inset from the bottom of the view to get the top border
61 // of the popup 2px below the bottom of the Omnibox.
62 const CGFloat kBrowserActionBubbleYOffset = 3.0;
63
60 } // namespace 64 } // namespace
61 65
62 @interface BrowserActionsController(Private) 66 @interface BrowserActionsController(Private)
63 // Used during initialization to create the BrowserActionButton objects from the 67 // Used during initialization to create the BrowserActionButton objects from the
64 // stored toolbar model. 68 // stored toolbar model.
65 - (void)createButtons; 69 - (void)createButtons;
66 70
67 // Creates and then adds the given extension's action button to the container 71 // Creates and then adds the given extension's action button to the container
68 // at the given index within the container. It does not affect the toolbar model 72 // at the given index within the container. It does not affect the toolbar model
69 // object since it is called when the toolbar model changes. 73 // object since it is called when the toolbar model changes.
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
367 int savedButtonCount = toolbarModel_->GetVisibleIconCount(); 371 int savedButtonCount = toolbarModel_->GetVisibleIconCount();
368 if (savedButtonCount < 0 || // all icons are visible 372 if (savedButtonCount < 0 || // all icons are visible
369 static_cast<NSUInteger>(savedButtonCount) > [self buttonCount]) 373 static_cast<NSUInteger>(savedButtonCount) > [self buttonCount])
370 savedButtonCount = [self buttonCount]; 374 savedButtonCount = [self buttonCount];
371 return [self containerWidthWithButtonCount:savedButtonCount]; 375 return [self containerWidthWithButtonCount:savedButtonCount];
372 } 376 }
373 377
374 - (NSPoint)popupPointForBrowserAction:(Extension*)extension { 378 - (NSPoint)popupPointForBrowserAction:(Extension*)extension {
375 if (!extension->browser_action()) 379 if (!extension->browser_action())
376 return NSZeroPoint; 380 return NSZeroPoint;
377 BrowserActionButton* button = [self buttonForExtension:extension]; 381
382 NSButton* button = [self buttonForExtension:extension];
378 if (!button) 383 if (!button)
379 return NSZeroPoint; 384 return NSZeroPoint;
380 385
381 NSView* view = button; 386 if ([hiddenButtons_ containsObject:button])
382 BOOL isHidden = [hiddenButtons_ containsObject:button]; 387 button = chevronMenuButton_.get();
383 if (isHidden)
384 view = chevronMenuButton_.get();
385 388
386 NSPoint arrowPoint = [view frame].origin; 389 // Anchor point just above the center of the bottom.
387 // Adjust the anchor point to be at the center of the browser action button 390 const NSRect bounds = [button bounds];
388 // or chevron. 391 DCHECK([button isFlipped]);
Bons 2010/08/03 21:11:49 isFlipped is deprecated on 10.6 so we don't use it
Scott Hess - ex-Googler 2010/08/03 21:22:50 The -isFlipped of the button affects whether the c
Bons 2010/08/03 21:40:36 Ah you're right. No worries. As needed.
389 arrowPoint.x += NSWidth([view frame]) / 2; 392 NSPoint anchor = NSMakePoint(NSMidX(bounds),
390 // Move the arrow up a bit in the case that it's pointing to the chevron. 393 NSMaxY(bounds) - kBrowserActionBubbleYOffset);
391 if (isHidden) 394 return [button convertPoint:anchor toView:nil];
392 arrowPoint.y += NSHeight([view frame]) / 4;
393
394 return [[view superview] convertPoint:arrowPoint toView:nil];
395 } 395 }
396 396
397 - (BOOL)chevronIsHidden { 397 - (BOOL)chevronIsHidden {
398 if (!chevronMenuButton_.get()) 398 if (!chevronMenuButton_.get())
399 return YES; 399 return YES;
400 400
401 if (![chevronAnimation_ isAnimating]) 401 if (![chevronAnimation_ isAnimating])
402 return [chevronMenuButton_ isHidden]; 402 return [chevronMenuButton_ isHidden];
403 403
404 DCHECK([[chevronAnimation_ viewAnimations] count] > 0); 404 DCHECK([[chevronAnimation_ viewAnimations] count] > 0);
(...skipping 452 matching lines...) Expand 10 before | Expand all | Expand 10 after
857 if (profile_->IsOffTheRecord()) 857 if (profile_->IsOffTheRecord())
858 index = toolbarModel_->IncognitoIndexToOriginal(index); 858 index = toolbarModel_->IncognitoIndexToOriginal(index);
859 if (index < toolbarModel_->size()) { 859 if (index < toolbarModel_->size()) {
860 Extension* extension = toolbarModel_->GetExtensionByIndex(index); 860 Extension* extension = toolbarModel_->GetExtensionByIndex(index);
861 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())]; 861 return [buttons_ objectForKey:base::SysUTF8ToNSString(extension->id())];
862 } 862 }
863 return nil; 863 return nil;
864 } 864 }
865 865
866 @end 866 @end
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/cocoa/location_bar/content_setting_decoration.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698