Index: chrome/browser/cocoa/l10n_util.mm |
diff --git a/chrome/browser/cocoa/l10n_util.mm b/chrome/browser/cocoa/l10n_util.mm |
index 91691ed94a4d5adc7f23599e67f3901ecf874a67..e39bdb38057468eb765faca8c377fdf281a7830f 100644 |
--- a/chrome/browser/cocoa/l10n_util.mm |
+++ b/chrome/browser/cocoa/l10n_util.mm |
@@ -4,6 +4,8 @@ |
#import "chrome/browser/cocoa/l10n_util.h" |
+#include "base/string_util.h" |
+#include "base/sys_string_conversions.h" |
#import "third_party/GTM/AppKit/GTMUILocalizerAndLayoutTweaker.h" |
namespace cocoa_l10n_util { |
@@ -46,4 +48,31 @@ NSSize WrapOrSizeToFit(NSView* view) { |
return [GTMUILocalizerAndLayoutTweaker sizeToFitView:view]; |
} |
+CGFloat VerticallyReflowGroup(NSArray* views) { |
+ views = [views sortedArrayUsingFunction:CompareFrameY |
+ context:NULL]; |
+ CGFloat localVerticalShift = 0; |
+ for (NSInteger index = [views count] - 1; index >= 0; --index) { |
+ NSView* view = [views objectAtIndex:index]; |
+ |
+ NSSize delta = WrapOrSizeToFit(view); |
+ localVerticalShift += delta.height; |
+ if (localVerticalShift) { |
+ NSPoint origin = [view frame].origin; |
+ origin.y -= localVerticalShift; |
+ [view setFrameOrigin:origin]; |
+ } |
+ } |
+ return localVerticalShift; |
+} |
+ |
+NSString* ReplaceNSStringPlaceholders(NSString* formatString, |
+ const string16& a, |
+ size_t* offset) { |
+ return base::SysUTF16ToNSString( |
+ ReplaceStringPlaceholders(base::SysNSStringToUTF16(formatString), |
+ a, |
+ offset)); |
+} |
+ |
} // namespace cocoa_l10n_util |