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

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

Issue 194110: Convert the AutocompletePopupPositioner into a BubblePositioner in preparatio... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/cocoa/toolbar_controller.mm
===================================================================
--- chrome/browser/cocoa/toolbar_controller.mm (revision 26251)
+++ chrome/browser/cocoa/toolbar_controller.mm (working copy)
@@ -10,7 +10,7 @@
#include "base/gfx/rect.h"
#include "chrome/app/chrome_dll_resource.h"
#include "chrome/browser/autocomplete/autocomplete_edit_view.h"
-#include "chrome/browser/autocomplete/autocomplete_popup_view.h"
+#include "chrome/browser/bubble_positioner.h"
#import "chrome/browser/cocoa/autocomplete_text_field.h"
#import "chrome/browser/cocoa/autocomplete_text_field_editor.h"
#import "chrome/browser/cocoa/back_forward_menu_controller.h"
@@ -44,16 +44,16 @@
namespace {
-// A C++ class used to correctly position the autocomplete popup.
-class AutocompletePopupPositionerMac : public AutocompletePopupPositioner {
+// A C++ class used to correctly position the omnibox.
+class BubblePositionerMac : public BubblePositioner {
public:
- AutocompletePopupPositionerMac(ToolbarController* controller)
+ BubblePositionerMac(ToolbarController* controller)
: controller_(controller) { }
- virtual ~AutocompletePopupPositionerMac() { }
+ virtual ~BubblePositionerMac() { }
- // Overridden from AutocompletePopupPositioner.
- virtual gfx::Rect GetPopupBounds() const {
- return [controller_ autocompletePopupPosition];
+ // BubblePositioner:
+ virtual gfx::Rect GetLocationStackBounds() const {
+ return [controller_ locationStackBounds];
}
private:
@@ -128,9 +128,9 @@
// bar and button state.
- (void)awakeFromNib {
[self initCommandStatus:commands_];
- popupPositioner_.reset(new AutocompletePopupPositionerMac(self));
+ bubblePositioner_.reset(new BubblePositionerMac(self));
locationBarView_.reset(new LocationBarViewMac(locationBar_,
- popupPositioner_.get(),
+ bubblePositioner_.get(),
commands_, toolbarModel_,
profile_));
[locationBar_ setFont:[NSFont systemFontOfSize:[NSFont systemFontSize]]];
@@ -514,19 +514,25 @@
}
-- (gfx::Rect)autocompletePopupPosition {
- // The popup should span from the left edge of the star button to the right
- // edge of the go button. The returned height is ignored.
+- (gfx::Rect)locationStackBounds {
+ // The number of pixels from the left or right edges of the location stack to
+ // "just inside the visible borders". When the omnibox bubble contents are
+ // aligned with this, the visible borders tacked on to the outsides will line
+ // up with the visible borders on the location stack.
+ const int kLocationStackEdgeWidth = 2;
+
NSRect locationFrame = [locationBar_ frame];
- // TODO(shess): The buttons have an extra 2 pixels between the edge
- // of the visual button and the edge of the logical button. This
- // seems wrong.
- int minX = NSMinX([starButton_ frame]) + 2.0;
- int maxX = NSMaxX([goButton_ frame]) - 2.0;
+ int minX = NSMinX([starButton_ frame]);
+ int maxX = NSMaxX([goButton_ frame]);
DCHECK(minX < NSMinX(locationFrame));
DCHECK(maxX > NSMaxX(locationFrame));
- NSRect r = NSMakeRect(minX, NSMinY(locationFrame), maxX - minX, 0);
- return gfx::Rect(NSRectToCGRect([[self view] convertRect:r toView:nil]));
+ NSRect r = NSMakeRect(minX, NSMinY(locationFrame), maxX - minX,
+ NSHeight(locationFrame));
+ gfx::Rect stack_bounds(
+ NSRectToCGRect([[self view] convertRect:r toView:nil]));
+ // Inset the bounds to just inside the visible edges (see comment above).
+ stack_bounds.Inset(kLocationStackEdgeWidth, 0);
+ return stack_bounds;
}
@end

Powered by Google App Engine
This is Rietveld 408576698