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

Side by Side Diff: ios/chrome/browser/ui/background_generator.mm

Issue 1058933002: [iOS] Upstream //ios/chrome/browser/ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@upstreamMemory
Patch Set: Created 5 years, 8 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
OLDNEW
(Empty)
1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "ios/chrome/browser/ui/background_generator.h"
6
7 #import <QuartzCore/QuartzCore.h>
8
9 #include "base/mac/bundle_locations.h"
10 #include "base/mac/foundation_util.h"
11 #include "base/mac/scoped_cftyperef.h"
12 #import "base/mac/scoped_nsobject.h"
13 #import "ios/chrome/browser/ui/ui_util.h"
14
15 namespace background_generator {
16
17 // This is a utility function that may be used as a standalone helper function
18 // to generate a radial gradient UIImage.
19 // TODO(blundell): This probably belongs somewhere else now.
sdefresne 2015/04/02 17:20:28 nit: I'd prefer if we could resolve or remove this
20 UIImage* GetRadialGradient(CGRect backgroundRect,
21 CGPoint centerPoint,
22 CGFloat radius,
23 CGFloat centerColor,
24 CGFloat outsideColor,
25 UIImage* tileImage,
26 UIImage* logoImage) {
27 UIGraphicsBeginImageContextWithOptions(backgroundRect.size, YES, 0);
28 CGContextRef context = UIGraphicsGetCurrentContext();
29 const size_t kColorCount = 2;
30 CGFloat gradient_colors[kColorCount * sizeof(CGFloat)] = {
sdefresne 2015/04/02 17:20:28 This does not make any sense. This is initializing
31 centerColor, 1.0, outsideColor, 1.0};
32 base::ScopedCFTypeRef<CGColorSpaceRef> grey_space(
33 CGColorSpaceCreateDeviceGray());
34 base::ScopedCFTypeRef<CGGradientRef> gradient(
35 CGGradientCreateWithColorComponents(grey_space, gradient_colors, nullptr,
36 kColorCount));
37 CGContextDrawRadialGradient(context, gradient, centerPoint, 0, centerPoint,
38 radius, kCGGradientDrawsAfterEndLocation);
39 if (tileImage)
40 [tileImage drawAsPatternInRect:backgroundRect];
41 if (logoImage) {
42 CGPoint corner = AlignPointToPixel(
43 CGPointMake(centerPoint.x - logoImage.size.width / 2.0,
44 centerPoint.y - logoImage.size.height / 2.0));
45 [logoImage drawAtPoint:corner];
46 }
47 UIImage* background = UIGraphicsGetImageFromCurrentImageContext();
48 UIGraphicsEndImageContext();
49 return background;
50 }
51
52 void InstallBackgroundInView(UIView* view) {
53 UIImageView* imageView =
54 [[[UIImageView alloc] initWithFrame:view.bounds] autorelease];
55 imageView.image = [UIImage imageNamed:@"stack_view_background_noise.jpg"];
56 imageView.contentMode = UIViewContentModeScaleAspectFill;
57 imageView.autoresizingMask =
58 UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
59 [view insertSubview:imageView atIndex:0];
60 }
61
62 } // namespace background_generator
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698