Index: chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm |
diff --git a/chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm b/chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm |
index cef8922a99346c86f774063d5656190433dc4343..bfe04300d02c399bdb67477bad8b2c56e1662c2c 100644 |
--- a/chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm |
+++ b/chrome/browser/ui/cocoa/infobars/translate_infobar_base.mm |
@@ -4,8 +4,6 @@ |
#import "chrome/browser/ui/cocoa/infobars/translate_infobar_base.h" |
-#import <Cocoa/Cocoa.h> |
- |
#include "base/logging.h" |
#include "base/metrics/histogram.h" |
#include "base/sys_string_conversions.h" |
@@ -18,96 +16,17 @@ |
#import "chrome/browser/ui/cocoa/infobars/infobar_container_controller.h" |
#import "chrome/browser/ui/cocoa/infobars/infobar_controller.h" |
#import "chrome/browser/ui/cocoa/infobars/infobar_gradient_view.h" |
+#import "chrome/browser/ui/cocoa/infobars/infobar_utilities.h" |
#include "chrome/browser/ui/cocoa/infobars/translate_message_infobar_controller.h" |
#include "grit/generated_resources.h" |
#include "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
#include "ui/base/l10n/l10n_util.h" |
-using TranslateInfoBarUtilities::MoveControl; |
-using TranslateInfoBarUtilities::VerticallyCenterView; |
-using TranslateInfoBarUtilities::VerifyControlOrderAndSpacing; |
-using TranslateInfoBarUtilities::CreateLabel; |
-using TranslateInfoBarUtilities::AddMenuItem; |
- |
-#pragma mark TranslateInfoBarUtilities helper functions. |
- |
-namespace TranslateInfoBarUtilities { |
- |
-// Move the |toMove| view |spacing| pixels before/after the |anchor| view. |
-// |after| signifies the side of |anchor| on which to place |toMove|. |
-void MoveControl(NSView* anchor, NSView* toMove, int spacing, bool after) { |
- NSRect anchorFrame = [anchor frame]; |
- NSRect toMoveFrame = [toMove frame]; |
- |
- // At the time of this writing, OS X doesn't natively support BiDi UIs, but |
- // it doesn't hurt to be forward looking. |
- bool toRight = after; |
- |
- if (toRight) { |
- toMoveFrame.origin.x = NSMaxX(anchorFrame) + spacing; |
- } else { |
- // Place toMove to theleft of anchor. |
- toMoveFrame.origin.x = NSMinX(anchorFrame) - |
- spacing - NSWidth(toMoveFrame); |
- } |
- [toMove setFrame:toMoveFrame]; |
-} |
- |
-// Check that the control |before| is ordered visually before the |after| |
-// control. |
-// Also, check that there is space between them. |
-bool VerifyControlOrderAndSpacing(id before, id after) { |
- NSRect beforeFrame = [before frame]; |
- NSRect afterFrame = [after frame]; |
- return NSMinX(afterFrame) >= NSMaxX(beforeFrame); |
-} |
- |
-// Vertically center |toMove| in its container. |
-void VerticallyCenterView(NSView* toMove) { |
- NSRect superViewFrame = [[toMove superview] frame]; |
- NSRect viewFrame = [toMove frame]; |
- // If the superview is the infobar view, then subtract out the anti-spoof |
- // height so that the content is centered in the content area of the infobar, |
- // rather than in the total height (which includes the bulge). |
- CGFloat superHeight = NSHeight(superViewFrame); |
- if ([[toMove superview] isKindOfClass:[InfoBarGradientView class]]) |
- superHeight = infobars::kBaseHeight; |
- viewFrame.origin.y = |
- floor((superHeight - NSHeight(viewFrame)) / 2.0); |
- [toMove setFrame:viewFrame]; |
-} |
- |
-// Creates a label control in the style we need for the translate infobar's |
-// labels within |bounds|. |
-NSTextField* CreateLabel(NSRect bounds) { |
- NSTextField* ret = [[NSTextField alloc] initWithFrame:bounds]; |
- [ret setEditable:NO]; |
- [ret setDrawsBackground:NO]; |
- [ret setBordered:NO]; |
- return ret; |
-} |
- |
-// Adds an item with the specified properties to |menu|. |
-void AddMenuItem(NSMenu *menu, id target, SEL selector, NSString* title, |
- int tag, bool enabled, bool checked) { |
- if (tag == -1) { |
- [menu addItem:[NSMenuItem separatorItem]]; |
- } else { |
- NSMenuItem* item = [[[NSMenuItem alloc] |
- initWithTitle:title |
- action:selector |
- keyEquivalent:@""] autorelease]; |
- [item setTag:tag]; |
- [menu addItem:item]; |
- [item setTarget:target]; |
- if (checked) |
- [item setState:NSOnState]; |
- if (!enabled) |
- [item setEnabled:NO]; |
- } |
-} |
- |
-} // namespace TranslateInfoBarUtilities |
+using InfoBarUtilities::MoveControl; |
+using InfoBarUtilities::VerticallyCenterView; |
+using InfoBarUtilities::VerifyControlOrderAndSpacing; |
+using InfoBarUtilities::CreateLabel; |
+using InfoBarUtilities::AddMenuItem; |
// TranslateInfoBarDelegate views specific method: |
InfoBar* TranslateInfoBarDelegate::CreateInfoBar(InfoBarTabHelper* owner) { |