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

Side by Side Diff: chrome/browser/ui/cocoa/exclusive_access_bubble_view.mm

Issue 1579813002: PoC: Using the toolkit-views fullscreen access bubble on Mac (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Refine Created 4 years, 11 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 (c) 2011 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 #import "chrome/browser/ui/cocoa/exclusive_access_bubble_view.h"
6
7 #include "base/mac/mac_util.h"
8 #include "base/mac/scoped_nsobject.h"
9 #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h"
10
11 namespace {
12
13 const CGFloat kShadowTop = 20;
14 const CGFloat kShadowBottom = 50;
15 const CGFloat kShadowLeft = 50;
16 const CGFloat kShadowRight = 50;
17 const CGFloat kShadowBlurRadius = 150;
18 // NOTE(koz): The blur radius parameter to setShadowBlurRadius: has a bigger
19 // effect on lion, so use a smaller value for it.
20 const CGFloat kShadowBlurRadiusLion = 30;
21 const CGFloat kShadowAlpha = 0.5;
22 const CGFloat kBubbleCornerRadius = 8.0;
23 }
24
25 @implementation ExclusiveAccessBubbleView
26
27 - (void)drawRect:(NSRect)rect {
28 // Make room for the border to be seen.
29 NSRect bounds = [self bounds];
30 bounds.size.width -= kShadowLeft + kShadowRight;
31 bounds.size.height -= kShadowTop + kShadowBottom;
32 bounds.origin.x += kShadowLeft;
33 bounds.origin.y += kShadowBottom;
34 NSBezierPath* bezier = [NSBezierPath bezierPath];
35
36 CGFloat radius = kBubbleCornerRadius;
37 // Start with a rounded rectangle.
38 [bezier appendBezierPathWithRoundedRect:bounds xRadius:radius yRadius:radius];
39
40 [bezier closePath];
41 [[NSColor whiteColor] set];
42 gfx::ScopedNSGraphicsContextSaveGState scoped_g_state;
43 base::scoped_nsobject<NSShadow> shadow([[NSShadow alloc] init]);
44 if (base::mac::IsOSLionOrLater()) {
45 [shadow setShadowBlurRadius:kShadowBlurRadiusLion];
46 } else {
47 [shadow setShadowBlurRadius:kShadowBlurRadius];
48 }
49 [shadow setShadowColor:[[NSColor blackColor]
50 colorWithAlphaComponent:kShadowAlpha]];
51 [shadow set];
52
53 [bezier fill];
54 }
55
56 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698