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

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

Issue 6927058: Merge 83125 - Add and use gfx::ScopedNSGraphicsContextState (ui/gfx/scoped_ns_graphics_context_st... (Closed) Base URL: svn://svn.chromium.org/chrome/branches/742/src/
Patch Set: Created 9 years, 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/ui/cocoa/styled_text_field_cell.h" 5 #import "chrome/browser/ui/cocoa/styled_text_field_cell.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "chrome/browser/themes/theme_service.h" 8 #include "chrome/browser/themes/theme_service.h"
9 #import "chrome/browser/ui/cocoa/nsview_additions.h" 9 #import "chrome/browser/ui/cocoa/nsview_additions.h"
10 #import "chrome/browser/ui/cocoa/themed_window.h" 10 #import "chrome/browser/ui/cocoa/themed_window.h"
11 #include "grit/theme_resources.h" 11 #include "grit/theme_resources.h"
12 #import "third_party/GTM/AppKit/GTMNSBezierPath+RoundRect.h" 12 #import "third_party/GTM/AppKit/GTMNSBezierPath+RoundRect.h"
13 #include "ui/base/resource/resource_bundle.h" 13 #include "ui/base/resource/resource_bundle.h"
14 #include "ui/gfx/font.h" 14 #include "ui/gfx/font.h"
15 #include "ui/gfx/scoped_ns_graphics_context_save_gstate_mac.h"
15 16
16 namespace { 17 namespace {
17 18
18 NSBezierPath* RectPathWithInset(StyledTextFieldCellRoundedFlags roundedFlags, 19 NSBezierPath* RectPathWithInset(StyledTextFieldCellRoundedFlags roundedFlags,
19 const NSRect frame, 20 const NSRect frame,
20 const CGFloat inset, 21 const CGFloat inset,
21 const CGFloat outerRadius) { 22 const CGFloat outerRadius) {
22 NSRect insetFrame = NSInsetRect(frame, inset, inset); 23 NSRect insetFrame = NSInsetRect(frame, inset, inset);
23 24
24 if (outerRadius > 0.0) { 25 if (outerRadius > 0.0) {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 const CGFloat lineWidth, 62 const CGFloat lineWidth,
62 NSColor* color) { 63 NSColor* color) {
63 const CGFloat finalInset = inset + (lineWidth / 2.0); 64 const CGFloat finalInset = inset + (lineWidth / 2.0);
64 NSBezierPath* path = 65 NSBezierPath* path =
65 RectPathWithInset(roundedFlags, frame, finalInset, outerRadius); 66 RectPathWithInset(roundedFlags, frame, finalInset, outerRadius);
66 [color setStroke]; 67 [color setStroke];
67 [path setLineWidth:lineWidth]; 68 [path setLineWidth:lineWidth];
68 [path stroke]; 69 [path stroke];
69 } 70 }
70 71
71 // TODO(shess): Maybe we need a |cocoa_util.h|?
72 class ScopedSaveGraphicsState {
73 public:
74 ScopedSaveGraphicsState()
75 : context_([NSGraphicsContext currentContext]) {
76 [context_ saveGraphicsState];
77 }
78 explicit ScopedSaveGraphicsState(NSGraphicsContext* context)
79 : context_(context) {
80 [context_ saveGraphicsState];
81 }
82 ~ScopedSaveGraphicsState() {
83 [context_ restoreGraphicsState];
84 }
85
86 private:
87 NSGraphicsContext* context_;
88 };
89
90 } // namespace 72 } // namespace
91 73
92 @implementation StyledTextFieldCell 74 @implementation StyledTextFieldCell
93 75
94 - (CGFloat)baselineAdjust { 76 - (CGFloat)baselineAdjust {
95 return 0.0; 77 return 0.0;
96 } 78 }
97 79
98 - (CGFloat)cornerRadius { 80 - (CGFloat)cornerRadius {
99 return 0.0; 81 return 0.0;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 // Fill interior with background color. 164 // Fill interior with background color.
183 FillRectWithInset(roundedFlags, frame, lineWidth, radius, 165 FillRectWithInset(roundedFlags, frame, lineWidth, radius,
184 [self backgroundColor]); 166 [self backgroundColor]);
185 167
186 // Draw the shadow. For the rounded-rect case, the shadow needs to 168 // Draw the shadow. For the rounded-rect case, the shadow needs to
187 // slightly turn in at the corners. |shadowFrame| is at the same 169 // slightly turn in at the corners. |shadowFrame| is at the same
188 // midline as the inner border line on the top and left, but at the 170 // midline as the inner border line on the top and left, but at the
189 // outer border line on the bottom and right. The clipping change 171 // outer border line on the bottom and right. The clipping change
190 // will clip the bottom and right edges (and corner). 172 // will clip the bottom and right edges (and corner).
191 { 173 {
192 ScopedSaveGraphicsState state; 174 gfx::ScopedNSGraphicsContextSaveGState state;
193 [RectPathWithInset(roundedFlags, frame, lineWidth, radius) addClip]; 175 [RectPathWithInset(roundedFlags, frame, lineWidth, radius) addClip];
194 const NSRect shadowFrame = 176 const NSRect shadowFrame =
195 NSOffsetRect(frame, halfLineWidth, halfLineWidth); 177 NSOffsetRect(frame, halfLineWidth, halfLineWidth);
196 NSColor* shadowShade = [NSColor colorWithCalibratedWhite:0.0 alpha:0.05]; 178 NSColor* shadowShade = [NSColor colorWithCalibratedWhite:0.0 alpha:0.05];
197 FrameRectWithInset(roundedFlags, shadowFrame, halfLineWidth, 179 FrameRectWithInset(roundedFlags, shadowFrame, halfLineWidth,
198 radius - halfLineWidth, lineWidth, shadowShade); 180 radius - halfLineWidth, lineWidth, shadowShade);
199 } 181 }
200 182
201 // Draw optional bezel below bottom stroke. 183 // Draw optional bezel below bottom stroke.
202 if ([self shouldDrawBezel] && themeProvider && 184 if ([self shouldDrawBezel] && themeProvider &&
(...skipping 14 matching lines...) Expand all
217 if ([self showsFirstResponder]) { 199 if ([self showsFirstResponder]) {
218 NSColor* color = 200 NSColor* color =
219 [[NSColor keyboardFocusIndicatorColor] colorWithAlphaComponent:0.5]; 201 [[NSColor keyboardFocusIndicatorColor] colorWithAlphaComponent:0.5];
220 FrameRectWithInset(roundedFlags, frame, 0.0, radius, lineWidth * 2, color); 202 FrameRectWithInset(roundedFlags, frame, 0.0, radius, lineWidth * 2, color);
221 } 203 }
222 204
223 [self drawInteriorWithFrame:cellFrame inView:controlView]; 205 [self drawInteriorWithFrame:cellFrame inView:controlView];
224 } 206 }
225 207
226 @end 208 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/location_bar/instant_opt_in_view.mm ('k') | chrome/browser/ui/cocoa/tabs/tab_view.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698