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

Side by Side Diff: chrome/browser/ui/cocoa/bookmarks/bookmark_drag_drop_cocoa.mm

Issue 17593006: mac: Update clients of scoped_nsobject.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: iwyu, scoped_nsprotocol Created 7 years, 6 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 2012 The Chromium Authors. All rights reserved. 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 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 #include "chrome/browser/ui/cocoa/bookmarks/bookmark_drag_drop_cocoa.h" 5 #include "chrome/browser/ui/cocoa/bookmarks/bookmark_drag_drop_cocoa.h"
6 6
7 #import <Cocoa/Cocoa.h> 7 #import <Cocoa/Cocoa.h>
8 8
9 #include <cmath> 9 #include <cmath>
10 10
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/scoped_nsobject.h" 12 #include "base/mac/scoped_nsobject.h"
13 #include "base/message_loop.h" 13 #include "base/message_loop.h"
14 #include "base/strings/string16.h" 14 #include "base/strings/string16.h"
15 #include "base/strings/sys_string_conversions.h" 15 #include "base/strings/sys_string_conversions.h"
16 #include "chrome/browser/bookmarks/bookmark_model.h" 16 #include "chrome/browser/bookmarks/bookmark_model.h"
17 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 17 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
18 #include "chrome/browser/bookmarks/bookmark_node_data.h" 18 #include "chrome/browser/bookmarks/bookmark_node_data.h"
19 #include "chrome/browser/bookmarks/bookmark_pasteboard_helper_mac.h" 19 #include "chrome/browser/bookmarks/bookmark_pasteboard_helper_mac.h"
20 #include "chrome/browser/profiles/profile.h" 20 #include "chrome/browser/profiles/profile.h"
21 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h" 21 #include "chrome/browser/ui/bookmarks/bookmark_drag_drop.h"
22 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h" 22 #import "chrome/browser/ui/cocoa/bookmarks/bookmark_bar_controller.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 [[NSGraphicsContext currentContext] graphicsPort]); 62 [[NSGraphicsContext currentContext] graphicsPort]);
63 CGContextBeginTransparencyLayerWithRect(context, NSRectToCGRect(frame), 0); 63 CGContextBeginTransparencyLayerWithRect(context, NSRectToCGRect(frame), 0);
64 { // Draw text clipped to frame. 64 { // Draw text clipped to frame.
65 gfx::ScopedNSGraphicsContextSaveGState scoped_state; 65 gfx::ScopedNSGraphicsContextSaveGState scoped_state;
66 [NSBezierPath clipRect:frame]; 66 [NSBezierPath clipRect:frame];
67 [title drawAtPoint:frame.origin]; 67 [title drawAtPoint:frame.origin];
68 } 68 }
69 69
70 NSColor* color = [NSColor blackColor]; 70 NSColor* color = [NSColor blackColor];
71 NSColor* alpha_color = [color colorWithAlphaComponent:0.0]; 71 NSColor* alpha_color = [color colorWithAlphaComponent:0.0];
72 scoped_nsobject<NSGradient> mask( 72 base::scoped_nsobject<NSGradient> mask(
73 [[NSGradient alloc] initWithStartingColor:color 73 [[NSGradient alloc] initWithStartingColor:color endingColor:alpha_color]);
74 endingColor:alpha_color]);
75 // Draw the gradient mask. 74 // Draw the gradient mask.
76 CGContextSetBlendMode(context, kCGBlendModeDestinationIn); 75 CGContextSetBlendMode(context, kCGBlendModeDestinationIn);
77 [mask drawFromPoint:NSMakePoint(NSMaxX(frame) - gradient_width, 76 [mask drawFromPoint:NSMakePoint(NSMaxX(frame) - gradient_width,
78 NSMinY(frame)) 77 NSMinY(frame))
79 toPoint:NSMakePoint(NSMaxX(frame), 78 toPoint:NSMakePoint(NSMaxX(frame),
80 NSMinY(frame)) 79 NSMinY(frame))
81 options:NSGradientDrawsBeforeStartingLocation]; 80 options:NSGradientDrawsBeforeStartingLocation];
82 CGContextEndTransparencyLayer(context); 81 CGContextEndTransparencyLayer(context);
83 } 82 }
84 83
85 } // namespace 84 } // namespace
86 85
87 NSImage* DragImageForBookmark(NSImage* favicon, const string16& title) { 86 NSImage* DragImageForBookmark(NSImage* favicon, const string16& title) {
88 // If no favicon, use a default. 87 // If no favicon, use a default.
89 if (!favicon) { 88 if (!favicon) {
90 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); 89 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
91 favicon = rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON).ToNSImage(); 90 favicon = rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON).ToNSImage();
92 } 91 }
93 92
94 // If no title, just use icon. 93 // If no title, just use icon.
95 if (title.empty()) 94 if (title.empty())
96 return favicon; 95 return favicon;
97 NSString* ns_title = base::SysUTF16ToNSString(title); 96 NSString* ns_title = base::SysUTF16ToNSString(title);
98 97
99 // Set the look of the title. 98 // Set the look of the title.
100 NSDictionary* attrs = 99 NSDictionary* attrs =
101 [NSDictionary dictionaryWithObject:[NSFont systemFontOfSize: 100 [NSDictionary dictionaryWithObject:[NSFont systemFontOfSize:
102 [NSFont smallSystemFontSize]] 101 [NSFont smallSystemFontSize]]
103 forKey:NSFontAttributeName]; 102 forKey:NSFontAttributeName];
104 scoped_nsobject<NSAttributedString> rich_title( 103 base::scoped_nsobject<NSAttributedString> rich_title(
105 [[NSAttributedString alloc] initWithString:ns_title 104 [[NSAttributedString alloc] initWithString:ns_title attributes:attrs]);
106 attributes:attrs]);
107 105
108 // Set up sizes and locations for rendering. 106 // Set up sizes and locations for rendering.
109 const CGFloat kIconMargin = 2.0; // Gap between icon and text. 107 const CGFloat kIconMargin = 2.0; // Gap between icon and text.
110 CGFloat text_left = [favicon size].width + kIconMargin; 108 CGFloat text_left = [favicon size].width + kIconMargin;
111 NSSize drag_image_size = [favicon size]; 109 NSSize drag_image_size = [favicon size];
112 NSSize text_size = [rich_title size]; 110 NSSize text_size = [rich_title size];
113 CGFloat max_text_width = bookmarks::kDefaultBookmarkWidth - text_left; 111 CGFloat max_text_width = bookmarks::kDefaultBookmarkWidth - text_left;
114 text_size.width = std::min(text_size.width, max_text_width); 112 text_size.width = std::min(text_size.width, max_text_width);
115 drag_image_size.width = text_left + text_size.width; 113 drag_image_size.width = text_left + text_size.width;
116 114
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 offset:NSZeroSize 174 offset:NSZeroSize
177 event:drag_event 175 event:drag_event
178 pasteboard:[NSPasteboard pasteboardWithName:NSDragPboard] 176 pasteboard:[NSPasteboard pasteboardWithName:NSDragPboard]
179 source:nil 177 source:nil
180 slideBack:YES]; 178 slideBack:YES];
181 179
182 base::MessageLoop::current()->SetNestableTasksAllowed(was_nested); 180 base::MessageLoop::current()->SetNestableTasksAllowed(was_nested);
183 } 181 }
184 182
185 } // namespace chrome 183 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698